Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Endpoint Security

1/28/2019
09:15 AM
Larry Loeb
Larry Loeb
Larry Loeb
50%
50%

'Steganography' Obsfucation Hides Old PDF Exploits From Antivirus Tools

EdgeSpot has found two new obsfucation methods to hide old PDF exploits from various antivirus tools.

Security firm EdgeSpot has been looking for PDF file exploits lately. Now, the firm's researchers have found two interesting ones.

The first is one that uses the PDF JS API this.getPageNumWords() and this.getPageNthWord() to "read" the Javascript contents on the PDF page. It executes the Javascript via eval(box).

This exploit is very similar to CVE-2013-3346, which was not obfuscated at that time of first discovery. Because of the obsfucation, it will bypass antivirus detection.

The obsfucation method that EdgeSpot researchers found could be used to hide other exploits besides this one.

After finding the first one, a second method of obsfucation was found a week later -- and it is potentially much more powerful.

It hides inside images in PDF files. This "steganography" method seems to be designed to once again hide from detection by AV engines. Specifically, researchers found that two layers of obfuscation were used in this exploit. The first layer is what they have previously discussed -- the method of "this.getPageNumWords()" and "this.getPageNthWord()". The exploit uses "this.getPageNumWords()" and "this.getPageNthWord()" to read and execute the Javascript hidden as “content."

The second layer is new and contains "Javascript content."

The API references say that these two APIs, working together, are used to read the stream of an image named "icon" which stored in the PDF file.

Looking at their sample’s Javascript code, researchers figured out that the code's function is to read and decode the "message" hidden in the icon's stream. Once it read the "message" successfully, it executes the "message" as Javascript code, via “eval(msg)”.

The icon stream, which is simply named "icon," could be saved as a "jpg" file and viewed in image viewer without problem.

This led the researchers to conclude that the attacker likely copied a project/technique called "steganography.js", which is open sourced. The project was developed working on browsers.

EdgeSpot researchers also believe the person or persons behind the PDF samples made their innovation as they successfully leveraged the technique in PDF format. They could not find any information mentioning this technique in PDF exploits previously, so they think this is the first time that the "steganography" technique has been used to hide PDF exploits.

By using this technique, all streams look normal, all images are viewable, and everything looks legitimate. This can probably explain why almost all AV engines missed it.

Old exploits can be dressed up to hide themselves from detection. Security teams have to be aware that such mutation may occur, and adjust their own techniques accordingly.

Related posts:

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
COVID-19: Latest Security News & Commentary
Dark Reading Staff 9/25/2020
Hacking Yourself: Marie Moe and Pacemaker Security
Gary McGraw Ph.D., Co-founder Berryville Institute of Machine Learning,  9/21/2020
Startup Aims to Map and Track All the IT and Security Things
Kelly Jackson Higgins, Executive Editor at Dark Reading,  9/22/2020
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
Special Report: Computing's New Normal
This special report examines how IT security organizations have adapted to the "new normal" of computing and what the long-term effects will be. Read it and get a unique set of perspectives on issues ranging from new threats & vulnerabilities as a result of remote working to how enterprise security strategy will be affected long term.
Flash Poll
How IT Security Organizations are Attacking the Cybersecurity Problem
How IT Security Organizations are Attacking the Cybersecurity Problem
The COVID-19 pandemic turned the world -- and enterprise computing -- on end. Here's a look at how cybersecurity teams are retrenching their defense strategies, rebuilding their teams, and selecting new technologies to stop the oncoming rise of online attacks.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2020-15208
PUBLISHED: 2020-09-25
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, when determining the common dimension size of two tensors, TFLite uses a `DCHECK` which is no-op outside of debug compilation modes. Since the function always returns the dimension of the first tensor, malicious attackers can ...
CVE-2020-15209
PUBLISHED: 2020-09-25
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, a crafted TFLite model can force a node to have as input a tensor backed by a `nullptr` buffer. This can be achieved by changing a buffer index in the flatbuffer serialization to convert a read-only tensor to a read-write one....
CVE-2020-15210
PUBLISHED: 2020-09-25
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, if a TFLite saved model uses the same tensor as both input and output of an operator, then, depending on the operator, we can observe a segmentation fault or just memory corruption. We have patched the issue in d58c96946b and ...
CVE-2020-15211
PUBLISHED: 2020-09-25
In TensorFlow Lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, saved models in the flatbuffer format use a double indexing scheme: a model has a set of subgraphs, each subgraph has a set of operators and each operator has a set of input/output tensors. The flatbuffer format uses indices f...
CVE-2020-15212
PUBLISHED: 2020-09-25
In TensorFlow Lite before versions 2.2.1 and 2.3.1, models using segment sum can trigger writes outside of bounds of heap allocated buffers by inserting negative elements in the segment ids tensor. Users having access to `segment_ids_data` can alter `output_index` and then write to outside of `outpu...