|
|
|
Botnetze
Was sind Bots und Botnetze?
Der Begriff "Bot" ist von dem Wort "Robot" abgeleitet,
welches wiederum dem tschechischen Wort für die Arbeit "robota"
entstammt. Im technischen Umfeld wird darunter zumeist ein Programm
verstanden, welches ohne menschlichen Eingriff Aktionen ausführt. Einer
der bekanntesten klassischen "Bots" ist z.B. der IRC-Bot Eggdrop, der seit 1993 gerne zur
Automatisierung von Internet Relay Chat (IRC)-Funktionen
eingesetzt wird. Mittlerweile wird der Begriff "Bot" im Umfeld der
IT-Sicherheit nicht mehr primär für IRC-Bots (wie Eggdrop) sondern für
Fernsteuerprogramme, über die kompromittierte Systeme von einem
Angreifer zentral befehligt werden können, verwendet. Die nachfolgende
Beschreibung widmet sich ausschließlich "Bots", die als Verbreitungsweg
Viren (bzw. trojanische Pferde) aber insbesondere Würmer (automatisierte
Ausnutzung von Schwachstellen) verwenden, und nach erfolgreicher
Infizierung von einem Angreifer zentral ferngesteuert werden können. Als
Botnetz versteht man einen virtuellen Verbund infizierter
Client-Systeme, also eine Zusammenschaltung von Bots. Zur zentralen
Fernsteuerung wird bei den derzeitigen Bot-Varianten zumeist das IRC
eingesetzt.
Die Bots verbinden sich hierbei zu einem IRC-Server und treten einem
sogenannten Channel bei. Ein Channel ist ein gemeinsamer Kanal
(analog dem Funkverkehr) auf dem sich die Teilnehmer unterhalten können.
Der IRC-Server dient dabei als Relaisstation (daher Internet
Relay Chat - IRC).
Dieser Channel ist zumeist mit einem (dem Bot
bekannten) Passwort versehen, wodurch nicht authorisierten Personen ein
Einblick und die Kontrolle über die Bots verwehrt werden soll. Durch
einen IRC-Server-Admin bzw. Channel-Operator können die Bots
"fremd-administriert" werden. Hierzu zählen z.B. folgende Funktionen:
- Scanne nach weiteren Systemen die ebenfalls infiziert werden können (siehe Verbreitungswege)
- Führe einen DoS-Angriff aus
- Führe einen download (z.B. http-, ftp-Link) und anschließend das Programm aus (z.B. Initialverbreitung von neuer Malware)
Verbreitungswege
Die meisten Bots beinhalten Scanroutinen zur Verbreitung der Malware. So beinhalten sowohl rbot/rxbot als auch Agobot/Phatbot z.B. nachfolgende Verbreitungswege:
Ist Botbefall ein reines Microsoft Problem?
Nein, mittlerweile gibt es Phatbot/Agobot-Varianten die ebenfalls
Schwachstellen in Nicht-Microsoft-Betriebssystemen ausnutzen. Wenngleich
der Schwerpunkt nach wie vor klar bei Windows-basierten Systemen liegt,
steigt auch z.B. für Linux-Hosts die Wahrscheinlichkeit, Teil eines
Botnetzes zu werden. Insbesondere als IRC-Server, und somit als
Kernstück jeden Botnetzes fungieren zumeist kompromittierte
Linux-Server, auf denen ein IRC-Server aufgesetzt wird.
Gefahrenpotential
Botnetze bergen ein enormes Gefahrenpotential. Folgende Beispiele
illustrieren dieses Potential ein wenig:
- IRC-Botnetz mit 140415 Bots [1]
- DDoS mit 40Gbps [1]
- Anfang Mai 2004 konnten wir basierend auf den für Agobot/Phatbot typischen POST-Requests (die der Netzperformancemessung dienen) pro Tag ca. 300000 unterschiedliche IP-Adressen ermitteln. Innerhalb einer Woche konnten so mehr als eine Million unterschiedlicher IP-Adressen ermittelt werden, die offenbar mit dem Agobot/Phatbot infiziert sind. Auch unter Berücksichtigung von Mehrfachzählung infizierter Hosts (durch dynamische IP-Adressenvergabe) liegt die reele Zahl mit Agobot/Phatbot infizierter Systeme bei mehreren hunderttausend (pro Woche).
Neben DDoS-Angriffen ist z.B. auch die Initialverbreitung von neuer
Malware oder auch der Einsatz von Bots als Spam-Relay ein bereits
praktiziertes Einsatzszenario. Insbesondere bei DDoS-Angriffen - ausgehend
von mehreren hunderttausend Hosts - sind reaktive Maßnahmen kaum
erfolgsversprechend durchführbar.
Wirksame Gegenmaßnahmen können nur Prävention und frühzeitige
Zerschlagung von Botnetzen sein.
Wie beobachtet das RUS-CERT Bots/Botnetze?
Das RUS-CERT überwacht die flows auf dem Borderrouter zum Internet (siehe http://cert.uni-stuttgart.de/filter/flows.php).
Flows sind quasi virtuelle Verbindungen, die der Router
automatisch aus einzelnen Paketen konstruiert. Jede aktive
Kommunikationsbeziehung wird vom Router als flow verwaltet.
Es gibt mehrere Gründe
warum Bots in der Flow-Überwachung auffallen:
- Von Bots gehen Portscans zur Weiterverbreitung der Malware aus.
- Von Bots gehen Denial of Service (DoS) Angriffe aus.
- Bots weisen IRC-Verbindungen zu als Botnetz-Server fungierenden IRC-Servern auf.
Eine weitere Detektionsmethode besteht in der Erfassung der
Charakteristik der IRC-Kommunikation gängiger Bots. So werden
üblicherweise Steuerbefehle zur Initiierung von Distributed Denial
of Service (DDoS)-Angriffen, zum Download von Malware bzw. zur
Durchführung von Scans übertragen. Auf diese Befehle kann der
Netzverkehr mittels signaturbasierter Netzwerk Intrusion Detection
Systeme (NIDS) analysiert werden. Als Signaturen können z.B.
folgende (regex-)Strings dienen:
(http|ftp)\.(execute|download|update) (Agobot/Phatbot)
bot\.(command|execute|flushdns|secure|status) (Agobot/Phatbot)
redirect ([0-9]{1,4}) (SpYboT)
redirect\.(gre|http|https|socks|socks5|stop|tcp) (Agobot/Phatbot)
scan\.((start|stop)(all)?|stats|(dis|en)able|(clear|reset|list|del|add)netrange) (Agobot/Phatbot)
(syn|udp) ([0-9]{1,3}\.){3}[0-9]{1,3} (SDBot)
ddos\.(httpflood|phat(icmp|syn|wonk)|stop|(syn|udp)flood|targa3) (Agobot/Phatbot)
!scan ([0-9]{1,3}\.) (GTBot)
(advscan|asc|xscan|xploit|adv\.start|adv5c4n) (webdav|netbios|ntpass|dcom(2|135|445|1025)|mssql|lsass|optix|upnp|ndcass|imail) (rBot/rxBot)
(advscan|asc|xscan|xploit|adv\.start|adv5c4n) (pnp445|pnp139|dcass|beagle[12]|mydoom|netdevil|DameWare|kuang2|sub7|iis5ssl|wks|wkssvc) (rBot/rxBot)
(advscan|asc|xscan|xploit|adv\.start|adv5c4n) (asn1smb|ro0t2|mysql|wkssvcOth|wkssvcENG|lsass_445|arkeia|arcserve|wins|veritas|netbackup) (rBot/rxBot)
ddos\.(syn|ack|random) ([0-9]{1,3}\.){3}[0-9]{1,3} (rBot/rxBot)
(tcp|syn|udp|ack|ping|icmp)flood ([0-9]{1,3}\.){3}[0-9]{1,3} (rBot/rxBot)
(tcp|syn|udp|ack|ping|icmp) ([0-9]{1,3}\.){3}[0-9]{1,3} (rBot/rxBot)
(upda|getfile|dl|download|telecharger|indirme) http:\/\/
hell\.(login|disconnect|reconnect|download|raw|mailstart|mailstop|botcash|sysinfo|remove) (HellBot)
floodnet ([0-9]{1,3}\.){3}[0-9]{1,3}
(pctrl\.|ntscan|ntstop|gigaload|localscan|ipscan s\.s\.s|Botitos) (?)
Den Steuerbefehlen ist ein Prefix vorangestellt, zumeist ".", d.h. z.B. ".advscan lsass". Dieser Prefix kann jedoch frei definiert werden und wurde deshalb bei obigen Regex nicht berücksichtigt. Für IDS ala snort ist darauf zu achten, dass diese Befehle von $EXTERNAL_NET an $HOME_NET gesandt werden. Oftmals werden die Befehle als Channel-Topic festgelegt, weshalb sie nicht zwingend als IRC-"PRIVMSG" übertragen werden. Zusätzlich gibt es noch einige IRC-Antworten von infizierten Systemen, auf die der Netzverkehr ggf. auch überwacht werden kann:
\[(FTP|TFTP)\]\: File transfer (started|complete)
(random|sequential) Port Scan (started)?
Random Scanner|Exploiting IP|Exploiting\.\.
flooding\:|flood stopped|sending packets
[UDP|SYN|TCP]\: Sending ([0-9]{1,7}) packets
Hier finden sie daraus zusammengestellte snort-Regeln, welche auch in die Bleedingsnort-Regeln aufgenommen wurden.
Allgemeine Informationen zu Bots
Weitere Informationen zu Bots
Referenzen
|
|