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