An introduction to honeyclient technologies Christian Seifert Angelo Dell'Aera
Speakers Christian Seifert Full Member of the Honeynet Project since 2007 PhD from Victoria University of Wellington, NZ Research Software Microsoft Bing Angelo Dell'Aera Full Member of the Honeynet Project since 2009 Senior Threat Security Reply (7 years) Information Security Independent Antifork Research (13 years)
Agenda Introduction Honeyclient technologies Low-Interaction (PhoneyC) High-Interaction (Capture-HPC) Malware Distribution Networks Challenges and Future Work
New trends, new tools In the last years more and more attacks against client systems The end user as the weakest link of the security chain New tools are required to learn more about such client-side attacks
New trends, new tools The browser is the most popular client system deployed on every user system A lot of vulnerabilities are daily identified and (almost always) reported in the most used browsers The browser is currently the preferred way to own an host
Honeyclients What we need is something which seems like a real browser the same way as a classical honeypot system seems like a real vulnerable server A real system (high-interaction) Or an emulated one (low-interaction)? Queuer Visitor Analysis Engine
Low-interaction strengths and weaknesses + Different browser versions (“personalities”) + Different ActiveX and plugins modules (even different versions) + Much more safer + More scalable - Easy to detect
PhoneyC - Brief History A pure Python low-interaction honeyclient First version developed by Jose Nazario Great improvements during GSoC 2009 And the history continues...
PhoneyC – DOM Emulation “The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page.” (W3C definition) Huge improvements during GSoC 2009 Python object __getattr__ and __setattr__ methods
PhoneyC - Browser Personalities Currently supported personalities: Internet Explorer 6.0 (Windows XP) Internet Explorer 6.1 (Windows XP) Internet Explorer 7.0 (Windows XP) Internet Explorer 8.0 (Windows XP) Internet Explorer 6.0 (Windows 2000) Internet Explorer 8.0 (Windows 2000) Easy to add new personalities
PhoneyC - Javascript Engine Based on SpiderMonkey, the Mozilla implementation of the Javascript engine HoneyJS: a bridge between Python and SpiderMonkey which wraps a subset of its APIs HoneyJS based on python-spidermonkey
PhoneyC - Vulnerability Modules Python-based vulnerability modules Core browser functionalities Browser plugins (Mock) ActiveX controls
PhoneyC - Shellcode detection and emulation HoneyJS “The shellcode manipulation and the spraying of the fillblock involve assignments.The shellcode will be detected immediately on its assignment if we are able to interrupt spidermonkey at the interpretion of certain bytecodes related to an assignment and check its arguments and values for shellcodes” Libemu integration (shellcode detection, execution and profiling)
PhoneyC - Future Improvements A new and more reliable DOM (Document Object Model) emulation Replacing Spidermonkey with Google V8 Mixed static/dynamic analysis for detecting potential attacks
High-interaction Client Honeypot Real system Observe effects of attack Request Response Request Attack Malicious Server Benign Server No state changes detected New file appeared in start up folder Client Honeypots
High-interaction strengths and weaknesses + No emulation necessary + Accurate classification (extremely low false positive rate) + Ability to detect zero-day attacks + More difficult to evade - Miss attacks - “Dangerous” - More computationally expensive
Capture-HPC (v2.5) - Functionality Platform Independence * Flexibility around client application Forensically ready Records information at kernel level Collects modified files (e.g. malware) Collects network traffic (pcap) Maintained by the New Zealand Honeynet Project Chapter
Malware Distribution Networks
Malware Distribution Networks Overview Set of web servers (network) controlled by a group of cyber criminals to distribute malware efficiently Specialized structures that support specialized roles of the cyber criminal Malware distribution networks allow for campaigns and temp renting out components of the distribution network
Malware Distribution Networks Source: Microsoft Security Intelligence Threat Report (
Malware Distribution Network
Exploit Servers 12.8% of exploit servers responsible for 84.1% of drive-by- download pages Source: Microsoft Security Intelligence Threat Report (
Challenges and Future Work
Malware Distribution Network
Malware Distribution Networks Fast-Flux LP1LP2 R1 ES1 ES2 R2 LP infected with script that contacts twitter to obtain popular topics (e.g. japan) From popular query from last week, script constructs host name (e.g. “j” + date) Next day, the same LP will contact twitter to obtain popular topics (e.g. tunesia) Now, it will construct different host name (e.g. “t” + date) Attacker registers hostname a few days in advance twitter.comh1h2h3h4h5h6h7h8h9h10 3/19/ /20/ /21/ /22/ /23/ /24/ /25/ /26/ /27/ /28/ /29/201111
Evasion Techniques Technology Differences (Browser vs Honeyclient) Human vs Machine Interaction Decrease visibility
The Threats Integrity Availability Confidentiality Drive-by-Downloads Cookie, history, file, and clipboard stealing Network scanners Phishing Crashes Popup floods Network floods/ Puppetnets Web spam/ junk pages Cross-X attacks Hosting of malware Drive-by-pharming Social Engineering
References Jose Nazario, “PhoneyC: A virtual client honeypot”, LEET 2009 The Honeynet Project, KYE: Malicious Web Servers, Junjie Zhang, Jack Stokes, Christian Seifert and Wenke Lee, ARROW: Generating Signatures to Detect Drive-By Downloads, in proceedings of www conference, Hyderabad, India, 2011 Microsoft, Security Intelligence Threat Report,
Thanks for the attention Questions? Christian Seifert Angelo Dell'Aera