Leveraging Recursive File Scanning Frameworks To Amplify Reverse Engineering Results
Leveraging Recursive File Scanning Frameworks To Amplify Reverse Engineering Results
Philosophy
• Motivation
• Paradigm Shift
• Implementation
Case Study
• Unrealized Analysis
• Capability
• Empowerment
Conclusion
• Takeaways
• Questions
• Resources
Motivation Implementation
Paradigm Shift
Capability Empowerment
The journey…
• I can write signatures on anything using YARA…
• I can dictate execution flow using my signatures…
What if…
• I did this recursively?
• We alert on certain YARA signatures that fire?
• I exposed useful metadata for every object I scanned?
• Results were structured data representing the object hierarchy?
• I could make all my generated data searchable?
• I could inform detections using the exposed metadata and
relationships?
Leveraging Recursive File Scanning Frameworks to
Amplify Reverse Engineering Results
Date October 5th, 2016
© 2016 Carnegie Mellon University
10
[Distribution Statement A] This material has been approved for public release and unlimited distribution.
Leveraging Recursive File Scanning Frameworks to
Amplify Reverse Engineering Results
Date October 5th, 2016
© 2016 Carnegie Mellon University
11
[Distribution Statement A] This material has been approved for public release and unlimited distribution.
Capability
Languages
• Python for core framework and modules
• YARA for signatures identifying opportunities
• JQ to capture observations
Paradigm
• Client / Server
• Dual purpose as an analyst tool and perimeter defense tool
• Integration with Bro / Suricata for file extraction
• Identify ZIP
ZIP •
•
Extract ZIP contents
Enumerate metadata
• Identify EXE
• Enumerate metadata
UPX • Identify UPX
• Unpack UPX
• Identify EXE
• Enumerate metadata
Raw EXE • Identify exposed malware
• Assign alert flag
• Identify EXE
SFX •
•
Enumerate metadata
Extract embedded RAR
• Identify RAR
RAR •
•
Enumerate metadata
Decompress embedded files
• Identify EXE
• Enumerate metadata
Legit EXE
• Identify DLL
• Enumerate metadata
Bootstrap DLL • Identify NT Dropper
• Decode embedded config
Encoded Payload
• Enumerate metadata
JQ integration allows us to capture and detect on additional insights once a scan is complete…
Takeaways Questions
Resources
It's up to us…
Yara
• http://yara.readthedocs.io/en/v3.5.0/
JQ
• https://stedolan.github.io/jq/
Bro
• https://www.bro.org/
Suricata
• https://suricata-ids.org/