Attacks/Breaches

8/1/2018
09:00 AM
100%
0%

Google Researcher Unpacks Rare Android Malware Obfuscation Library

Analysis exposes the lengths malware authors will go to in order to protect their code from disassembly and reverse engineering.

A malware sample that had code in all the wrong places piqued Maddie Stone's curiosity. So she dug into the sample and emerged many hours later with a description of a complex anti-analysis library that threat actors are using to, among other things, give new life to old threats.

"I came across this app that had a native code library, which is not that common in the Android security space where I was doing the malware analysis," says Stone, a security engineer for Google Android security. "It was strange compared to all the other ones I've looked at before — nothing looked where it should have been." 

As she dug deeper and deeper into the code, Stone became more interested because of the novelty of the defense mechanisms. "I found that this was actually a brand new anti-analysis library being used by a few large malicious campaigns in the Android ecosystem," she says. And it wasn't just new — it was very complex.

[See Stone's session, Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Native Library on Thursday, August 9 at Black Hat USA.]

"They're using four groups of techniques for about 45 different checks. And if a single one of them fails then the application exits," Stone says. The rigorous checking mechanism means that the threat actors are willing to miss out on an expanded attack surface if it means keeping their code out of the hands of defenders.

Stone, who will present her findings next week at Black Hat USA in Las Vegas, describes the defense architecture as a "wedding cake" because there are many layers to the defense. The first is aimed at thwarting human analysts, the second at humans using automated systems, and the third autonomous systems running alone.

"They're really trying to hedge their bets and ensure that there's no way, shape, or form that they could be run in an emulator or debugger, and that if I reverse engineer and am going to take the time to disassemble them, it's really going to take a lot of work," she says.

What malware is so valuable that it warrants delivering with such an advanced mechanism? Stone says that one of the primary campaigns she's seen uses this library to re-launch Chamois, a Trojan that Google engineers were able to shut down in 2017. The attackers haven't tried to get back into Play, but are depending on users willing to side-load software to gain entry to a particular Android phone, she says.

As with side-loading itself, the individual mechanisms used in this malware family aren't novel or unique; the novelty comes from the sheer volume and combination of techniques used to protect the payload.

"We're seeing a lot more of both native and Java obfuscation and trying to cloak themselves and prevent any sort of dynamic analysis of the application," Stone says. "As there's no longer this low, low hanging fruit for security, the malware authors have to continue developing more robust schemes." 

The priorities shown in the mechanisms are a reflection, Stone says, of the value of the investment malware represents. Malware development and reverse engineering are each forms of asymmetric warfare, each side trying to force the other to invest more and more to counter their own efforts.

"As the Android platform security mechanisms have continued to grow in how our detection pipeline will be able to catch more things, they're trying to do anything they can to get around the automated detection, because that's what so many different malware detectors are using now," she says.

Related Content:

 

Black Hat USA returns to Las Vegas with hands-on technical Trainings, cutting-edge Briefings, Arsenal open-source tool demonstrations, top-tier security solutions and service providers in the Business Hall. Click for information on the conference and to register.

Curtis Franklin Jr. is Senior Editor at Dark Reading. In this role he focuses on product and technology coverage for the publication. In addition he works on audio and video programming for Dark Reading and contributes to activities at Interop ITX, Black Hat, INsecurity, and ... View Full Bio

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Election Websites, Back-End Systems Most at Risk of Cyberattack in Midterms
Kelly Jackson Higgins, Executive Editor at Dark Reading,  8/14/2018
Intel Reveals New Spectre-Like Vulnerability
Curtis Franklin Jr., Senior Editor at Dark Reading,  8/15/2018
Australian Teen Hacked Apple Network
Dark Reading Staff 8/17/2018
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2018-15504
PUBLISHED: 2018-08-18
An issue was discovered in Embedthis GoAhead before 4.0.1 and Appweb before 7.0.2. The server mishandles some HTTP request fields associated with time, which results in a NULL pointer dereference, as demonstrated by If-Modified-Since or If-Unmodified-Since with a month greater than 11.
CVE-2018-15505
PUBLISHED: 2018-08-18
An issue was discovered in Embedthis GoAhead before 4.0.1 and Appweb before 7.0.2. An HTTP POST request with a specially crafted "Host" header field may cause a NULL pointer dereference and thus cause a denial of service, as demonstrated by the lack of a trailing ']' character in an IPv6 a...
CVE-2018-15492
PUBLISHED: 2018-08-18
A vulnerability in the lservnt.exe component of Sentinel License Manager version 8.5.3.35 (fixed in 8.5.3.2403) causes UDP amplification.
CVE-2018-15494
PUBLISHED: 2018-08-18
In Dojo Toolkit before 1.14, there is unescaped string injection in dojox/Grid/DataGrid.
CVE-2018-15495
PUBLISHED: 2018-08-18
/filemanager/upload.php in Responsive FileManager before 9.13.3 allows Directory Traversal and SSRF because the url parameter is used directly in a curl_exec call, as demonstrated by a file:///etc/passwd value.