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.

Threat Intelligence

Xori Adds Speed, Breadth to Disassembler Lineup

A new open source tool, introduced at Black Hat USA, places a priority on speed and automation.

One of the problems in malware analysis is that there's just so much malware to analyze. An automated dis-assembler would help, but that would require writing an automated disassembler — which is what Amanda Rousseau and Rich Seymour did when they built Xori.

In their Black Hat USA presentation, Rousseau and Seymour described the reasoning behind writing Xori, the process of building the software — and the results that come from the effort. "I'm constantly looking at tons and tons of samples and I need to reverse them fast," said Rousseau, senior malware researcher at Endgame, in an interview before the conference. When told by her boss that there were a thousand samples to be analyzed, she decided that automation was the only real answer.

Rousseau enlisted Seymour, a senior data scientist and Endgame, to help with development. He began, he said, with the parser. "I started writing that parser while Amanda was working on disassembly — what you can do on just raw bytes — and we sort of met in the middle," he explained.

Speed, in both process and execution, was a primary objective of Xori, and Seymour said that they were successful in that objective. "Xori can process a thousand samples on a five-year-old computer I had under my desk in 20 minutes," he said, noting that it's not doing complete analysis, but what it is doing is disassembly in far less than the six hours per sample earlier methods required. "It can process [samples] at about a second per sample," he said.

The processing results in a GUI output that presents the sample as a flowchart, or sequence of boxes that show the elements of the malware and the connections between them. Xori doesn't stop there, however. "Besides making that flowchart for you, it also tries to enhance and annotate as much of the code as possible so you don't have to really get into the actual assembly instructions themselves unless you really have to," Seymour explained.

Getting to this point required considerable effort. Asked about the work, Rousseau laughed, saying, "Many, many nights! I couldn't turn off my brain. Every day from 9 am until, oh, 10 pm, doing manual verification, learning the language, learning Rust, period, and trying to learn and trying to read the Intel manual," she said.

Rust itself was a choice that had implications for Rousseau. "It kind of started under the Mozilla umbrella, but it's since blossomed into a really great language and community that rides the line between strict type safety and academic languages, and then sort of the classic C/C++ type programming," she explained.

One major difference between Xori and other disassemblers is that Rousseau and Seymour wrote their tool to provide basic screening of as many samples, in as short a time, as possible. Other disassemblers tend to focus on going deeply into a single sample, no matter how long that effort takes. Now, Rousseau said, "It'll be good to put this out there as open source. Hopefully folks will not be afraid to contribute because I think it really does have a lot of potential."

Related content:

Learn from the industry's most knowledgeable CISOs and IT security experts in a setting that is conducive to interaction and conversation. Early bird rate ends August 31. Click for more info

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
7 Truths About BEC Scams
Ericka Chickowski, Contributing Writer,  6/13/2019
DNS Firewalls Could Prevent Billions in Losses to Cybercrime
Curtis Franklin Jr., Senior Editor at Dark Reading,  6/13/2019
Cognitive Bias Can Hamper Security Decisions
Kelly Sheridan, Staff Editor, Dark Reading,  6/10/2019
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
Building and Managing an IT Security Operations Program
As cyber threats grow, many organizations are building security operations centers (SOCs) to improve their defenses. In this Tech Digest you will learn tips on how to get the most out of a SOC in your organization - and what to do if you can't afford to build one.
Flash Poll
The State of IT Operations and Cybersecurity Operations
The State of IT Operations and Cybersecurity Operations
Your enterprise's cyber risk may depend upon the relationship between the IT team and the security team. Heres some insight on what's working and what isn't in the data center.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2019-12855
PUBLISHED: 2019-06-16
In words.protocols.jabber.xmlstream in Twisted through 19.2.1, XMPP support did not verify certificates when used with TLS, allowing an attacker to MITM connections.
CVE-2013-7472
PUBLISHED: 2019-06-15
The "Count per Day" plugin before 3.2.6 for WordPress allows XSS via the wp-admin/?page=cpd_metaboxes daytoshow parameter.
CVE-2019-12839
PUBLISHED: 2019-06-15
In OrangeHRM 4.3.1 and before, there is an input validation error within admin/listMailConfiguration (txtSendmailPath parameter) that allows authenticated attackers to achieve arbitrary command execution.
CVE-2019-12840
PUBLISHED: 2019-06-15
In Webmin through 1.910, any user authorized to the "Package Updates" module can execute arbitrary commands with root privileges via the data parameter to update.cgi.
CVE-2019-12835
PUBLISHED: 2019-06-15
formats/xml.cpp in Leanify 0.4.3 allows for a controlled out-of-bounds write in xml_memory_writer::write via characters that require escaping.