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."
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