Vulnerabilities / Threats
8/4/2014
03:20 PM
Connect Directly
Google+
Twitter
RSS
E-Mail
100%
0%

How Malware Writers Cheat AV Zero-Day Detection

A researcher reverse engineers AVG's code emulation engine after easily bypassing other major antivirus software products.

As an experiment, Kyle Adams wrote what he describes as "ridiculously obvious" malware that most major antivirus products ultimately failed to detect. The only AV product that caught his malware was the freebie AVG, whose code-emulation feature sniffed it out.

So Adams, chief software architect for Junos Webapp Secure at Juniper Networks, kicked it up a notch and reverse engineered AVG's code emulation engine. Then he was able to bypass AVG's engine, as well, but he also noticed what attackers could do in that situatoin. On Tuesday, Aug. 5, at BSides Las Vegas, Adams will demonstrate how he cheated various AV products and how AV's code emulation feature for catching zero-day exploits has some weaknesses of its own.

"You start to realize things [the engines] can't handle, and if you explore them, you start to uncover compromises they didn't recognize," Adams says. However, "I didn't find anything that let me compromise the [code emulation engine] simply by [having the malware] scanned."

He plans to expose some of the engine weaknesses and name some of the major AV products his malware cheated in the first phase of his experiment. "If you know how the engine works, you can get around it."

His research shows that code emulation needs to be improved in AV products. "In some aspects, how code emulation works could be grounds for new exploits."

Adams says he's definitely not the first person to cheat an AV engine -- bad guys do it regularly -- but he wants to educate the security community on the problem. "I'd like to show how the malware authors approach the problem. I'm going to show building a virus from scratch… and testing it against the AV products like attackers do as they try to figure out how not to get detected."

His research shows that code emulation and sandboxing aren't really working anymore. "Now you can start to attack code emulators and sandboxes" themselves. At least 10% of attacks are attempting this today.

The malware Adams wrote and will demonstrate is a command-and-control bot. The JavaScript malcode he wrote runs on Windows. "It could be put together by anyone."

What can AV vendors do to beef up their code emulation? For one thing, "they should start penetration-testing their own AV software."

Adams will propose other solutions for improving code emulation. And he says he's definitely not picking on AVG, which he tried to contact before his presentation. "This is not a jab against AVG, as they get enormous credit for including such a powerful tool in a free antivirus client," he wrote in an abstract for his BSides talk.

Kelly Jackson Higgins is Executive Editor at DarkReading.com. She is an award-winning veteran technology and business journalist with more than two decades of experience in reporting and editing for various publications, including Network Computing, Secure Enterprise ... View Full Bio

Comment  | 
Print  | 
More Insights
Register for Dark Reading Newsletters
White Papers
Cartoon
Current Issue
Dark Reading Must Reads - September 25, 2014
Dark Reading's new Must Reads is a compendium of our best recent coverage of identity and access management. Learn about access control in the age of HTML5, how to improve authentication, why Active Directory is dead, and more.
Flash Poll
Video
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2012-5485
Published: 2014-09-30
registerConfiglet.py in Plone before 4.2.3 and 4.3 before beta 1 allows remote attackers to execute Python code via unspecified vectors, related to the admin interface.

CVE-2012-5486
Published: 2014-09-30
ZPublisher.HTTPRequest._scrubHeader in Zope 2 before 2.13.19, as used in Plone before 4.3 beta 1, allows remote attackers to inject arbitrary HTTP headers via a linefeed (LF) character.

CVE-2012-5487
Published: 2014-09-30
The sandbox whitelisting function (allowmodule.py) in Plone before 4.2.3 and 4.3 before beta 1 allows remote authenticated users with certain privileges to bypass the Python sandbox restriction and execute arbitrary Python code via vectors related to importing.

CVE-2012-5488
Published: 2014-09-30
python_scripts.py in Plone before 4.2.3 and 4.3 before beta 1 allows remote attackers to execute Python code via a crafted URL, related to createObject.

CVE-2012-5489
Published: 2014-09-30
The App.Undo.UndoSupport.get_request_var_or_attr function in Zope before 2.12.21 and 3.13.x before 2.13.11, as used in Plone before 4.2.3 and 4.3 before beta 1, allows remote authenticated users to gain access to restricted attributes via unspecified vectors.

Best of the Web
Dark Reading Radio
Archived Dark Reading Radio
In our next Dark Reading Radio broadcast, we’ll take a close look at some of the latest research and practices in application security.