universität - DFN-CERT
Transcription
universität - DFN-CERT
Sammeln von Malware mit Honeypots Die Technik hinter mwcollect / nepenthes UNIVERSITÄT MANNHEIM Pi1 - Laboratory for Dependable Distributed Systems Gliederung • Motivation • Schematischer Aufbau von mwcollect / nepenthes • Einsatzszenarien • Resultate Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Motivation • Automatisiert weiterverbreitende Malware (vor allem Bots) ist ein Problem • Time to compromise etwa 10 Minuten für ungepatchte Windows-Maschine • Schwachstellen vor allem DCOM, LSASS, ... • Oft mehr als eine Infektion pro Maschine • Sammeln von Malware, um mehr über diese Gefahr zu lernen • Motto: Know Your Enemy Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Honeypots & Malware • Honeypots können zum Sammeln von Malware benutzt werden • Standardinstallation eines GenIII Honeypots • Probleme: • Absturz / Reboot bei Exploit mit falschem Offset • Manuelle Analyse des Honeypots erforderlich • Keine gute Skalierbarkeit Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Honeypots & Malware • Honeypots spezialisiert auf Sammeln von Malware nötig • mwcollect (http://mwcollect.org) • nepenthes (http://nepenthes.mwcollect.org) • Low-interaction Honeypots • Schwachstellen emulieren • Einkommende Exploits und Payload analysieren • Zugehörige Malware herunterladen Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Überblick mwcollect Schematischer Aufbau von mwcollect, nepenthes ähnlich Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM mwcollect core FGC( C$)'( 335 .#67).&!8.# *+%,!./5-/0N .+:!8'%$#7%!%& <$",%$7< -';'6 .+:!8'JKLKFKHKM C7D%$7< @AB(<&) ?7%"7)& E E *+%,!./5-/54 <$",%$7< -#+)% .9&%%')7,.;&) E HI6%$8' %$=-!%& .9&%%:7.8# *+%,!./3-/44 E FGC( C$)'( 4/15 *+%,!./0-/12 !"#$%%&#'(#$)& FGC( C$)'( 405 • Steuert die anderen Module • Lauschen an typischen TCP Ports • NetBIOS (135, 445, ...) • Internet Information Server • ... • Event-System für verschiedene Trigger >&)+,'&)=&%7<&,& ?7%"7)& %$=-8)# Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM *+%,!./0-/12 *+%,!./3-/44 *+%,!./5-/0N .9&%%:7.8# .#67).&!8.# <$",%$7< -#+)% .+:!8'%$#7%!%& <$",%$7< -';'6 .+:!8'JKLKFKHKM .9&%%')7,.;&) C7D%$7< @AB(<&) ?7%"7)& E E *+%,!./5-/54 • Emulation typischer Schwachstellen • MS03-026 (DCOM) • MS04-011 (LSASS) • MS05-039 (Plug and Play) • MS05-051 (MSDTC) • ... • Antworten auf einkommende Anfragen E 8' Vulnerability Module >&)+,'&)=&%7<&,& ?7%"7)& genau so, wie ein Exploit es erwarten würde Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Beispiel • Emulation von MS04-011 (LSASS) • Proof-of-concept Exploit von houseofdabus if (send(sockfd, req2, sizeof(req1)-1, 0) == -1) { printf("[-] Send failed\n"); exit(1); } len = recv(sockfd, recvbuf, 1600, 0); if (send(sockfd, req3, sizeof(req2)-1, 0) == -1) { printf("[-] Send failed\n"); exit(1); } len = recv(sockfd, recvbuf, 1600, 0); Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Beispiel • Antworten von vuln-ms04-011 case RPCS_GOT_LSASS_STAGE3: case RPCS_GOT_LSASS_STAGE4: case RPCS_GOT_LSASS_STAGE5: { unsigned char szBuffer[256]; for(unsigned int i = 0; i < sizeof(szBuffer); ++i) szBuffer[i] = rand() % 0xFF; m_pCollector->getNetworkInterface()-> sendData(iHandle, szBuffer, sizeof(szBuffer)); m_dsState = (rpc_state_t) ((unsigned int) m_dsState + 1); } Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Shellcode Module .9&%%:7.8# • Vulnerability Module übergeben Payload • Automatisierte Analyse mit Hilfe von Shellcode Modulen • Rekursives Finden von XOR-Decodern • Analyse des Codes mit Pattern .#67).&!8.# .9&%%')7,.;&) @AB(<&) ?7%"7)& .+:!8'%$#7%!%& <$",%$7< -';'6 .+:!8'JKLKFKHKM Matching auf CreateProcess(), generische >&)+,'&)=&%7<&,& URLS und ähnliches E E 7< <$",%$7< -#+)% ?7%"7)& • Rekonstruktion der URL, von der aus Malware sich nachladen möchte Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Download Module • Shellcode Module übergeben URL • Automatisiertes Herunterladen mit Hilfe von Download Modulen <$",%$7< -#+)% .+:!8'%$#7%!%& • Benutzung von lib-curl für <$",%$7< -';'6 .+:!8'JKLKFKHKM Standardprotokolle wie HTTP oder FTP E B(<&) "7)& • download-tftp für TFTP • nepenthes hat eigene Implementationen >&)+,'&)=&%7<&,& ?7%"7)& sowie mehrere Protokolle Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Submission Module • Download Module übergeben URL • Automatisiertes Speichern mit Hilfe von .+:!8'%$#7%!%& .+:!8'JKLKFKHKM Submission Modulen • submit-localfile speichert Binaries lokal • submit-G.O.T.E.K sendet Binaries zu zentralen Server der mwcollect Alliance &%7<&,& 7)& • nepenthes bietet Support für submitnorman und submit-xmlrpc Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Log Module FGC( C$)'( 405 FGC( C$)'( 335 FGC( C$)'( 4/15 %$=-!%& • Log-Informationen werden auf Festplatte !"#$%%&#'(#$)& E HI6%$8' %$=-8)# gespeichert (log-file) *+%,!./0-/12 *+%,!./3-/44 *+%,!./5-/0N *+%,!./5-/54 • Logging in IRC-Channel (log-irc) • nepenthes bietet auch log-mail, log-mysql und log-syslog E C7D%$7< .9&%%:7.8# .#67).&!8.# .9&%%')7,.;&) Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT @ ? MANNHEIM Flexibles Deployment • Mögliches Deployment von nepenthes Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Einsatzszenario • Absichern eines Netzwerkes Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Einsatzszenario • RWTH Aachen • Nepenthes-Sensoren detektieren infizierte Maschinen • Zusätzliche Datenquelle für Blast-O-Mat (siehe Beitrag von Jens Hektor) • Universität Karlsruhe • Nepenthes-Sensor nur innerhalb des UniNetzes erreichbar • Datenquelle für infizierte Hosts Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM SURFnet IDS Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Resultate • 9. August 2005: MS05-039 (Plug and Play) • 11. August 2005: Erster Proof-of-Concept Exploit • 13. August 2005: Auftreten von Zotob • Zeit zwischen Schwachstelle und Automatisierung wird immer kürzer • mwcollect und nepenthes konnten kurze Zeit später die Schwachstelle emulieren und so neue Varianten entdecken Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Resultate • Ähnliche Erfahrung mit Dasher • Nutzt MS05-051 (MSDTC) • mwcollect konnte erste Version von Dasher.B fangen • Sobald PoC verfügbar ist, können Vulnerability Module relativ einfach gebaut werden • Vielleicht Automatisierung möglich? Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Resultate • Statistik zu gesammelter Malware • 4 Monate ~ 15.000 unique Binaries (= ~1.4 GB) • Davon 7% defekt, ~14.400 intakte PE-Dateien zum Beispiele wegen gescheitertem • Defekte TFTP Transfer Anteil gepackt mit verschiedenen • Großer Packern • Resultate mit verschiedenen AV-Programmen Complete set (14,414 binaries) Latest 24 hours (460 binaries) AV engine 1 85.0% 82.6% Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems AV engine 2 85.3% 77.8% AV engine 3 90.2% 84.1% AV engine 4 78.1% 73.1% UNIVERSITÄT MANNHEIM Skalierbarkeit • Netzwerklast für /18 Netz Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Skalierbarkeit • Downloads / Submissions für /18 Netz Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM mwcollect Alliance • Idee hinter GOTEK • Zentraler Server zum Sammeln von Malware • Jeder der Samples zur Verfügung stellt bekommt Zugriff auf alle Samples • 30+ Organisationen • Zentraler Server gehostet von der RWTH Aachen - Danke an Jens, Thomas und alle anderen • Bei Interesse: E-Mail an application@mwcollect.org oder direkt an mich Thorsten Holz • Pi1 - Laboratory for Dependable Distributed Systems UNIVERSITÄT MANNHEIM Dipl. Inform. Thorsten Holz http://www-pi1.informatik.uni-mannheim.de/ holz@informatik.uni-mannheim.de Mehr Informationen: http://honeyblog.org MISC Magazine: http://miscmag.com UNIVERSITÄT MANNHEIM Pi1 - Laboratory for Dependable Distributed Systems