Einige Gedanken über bot-Netze
Botnetze sind, wenn man so will, die Wurzel einigen übels im Netz der Netze. Sie sind die Hauptquelle von spam, DDos und dergleichen. Seid Jahren sind namhafte Größen der Antivirus- und Botnethunter-Szene damit beschäftigt, dem Übel beizukommen. Doch warum ist das so schwer?
Botnetze sind Verbände aus mehreren Tausend Zombies. Ein 5k Netz (also ein Netz aus 5000 Zombie-Rechnern) ist schon ganz ansehnlich, ein 10k - 15k Netz gilt schon als ernstes Problem. Die meisten Botnetze haben etwa diese Größe (5k - 15k). Alle Zombies sind dabei üblicherweise durch Tierchen infiziert, die einen IRC- neben einem SMTP-client und anderen “nützlichen” Tools intus haben. Ein zentraler Command and Control-Server (C&C) steuert all diese. Es handelt sich also um eine klassische Sternstruktur. Die C&C’s sind für gewöhnlich kompromitierte Server, bevorzugt in China. Kodiert sind zur Kontaktaufnahme entweder IP’s oder domainnames. Letztere haben den Vorteil, dass eine neue IP im DNS eingetragen werden kann, wenn ein C&C-Server abgeschossen wurde. Man spricht in diesem Zusammenhang auch von fastflux.
Nun gut. IRC-Traffic ist leicht erkennbar. Und auch wenn er durch andere Ports geleitet wird (80, 23, etc.), so ist dies für ein IDS leicht erkennbar, und es wird daraufhin vermutlich den Glöckner von Notre-Dame in die Spur schicken, damit’s der Admin auch noch auf Hawaii hört. Oder aber ein IPS schwingt die virtuelle Gartenschere und gibt dem Datenstrom Saures. Dummerweise wissen das zumindest die hellen Köpfe der dunklen Hüte.
Daher ist man in letzter Zeit dazu übergegangen, zum einen die Kommunikation zu den Bots auf HTTP umzustellen. Base64-encoded und verschlüsselt lassen sich Kommandos im RFC-konformen HTTP-Strom innerhalb von HTML-Kommentaren unterbringen und damit prima am ahnungslosen IDS/IPS vorbeischieben. Zum anderen stellt man in letzter Zeit auch auf P2P-Techniken bei der Verbreitung sowohl von Kommandos, als auch beim Verbreiten neuer C&C’s um.
Dezentralismus. Die Idee des Internets ist bei den Bot-Herdern angekommen. Wird ein C&C abgeschossen, verliert der Herderer nicht gleich alle Bots. Wenn er auch nur zu einem einzigen noch Kontakt hat, reicht das ja. P2P macht’s möglich.
Wie kann man nun dieser Lage Herr werden? Kommen wir noch mal auf den Ursprung zu sprechen. Wie entstehen bots? Richtig. Durch Infizierung von [zumeist Windows-]Rechnern. Und wie geht das? Richtig. Durch Exploits. Und wo kommen die her? Richtig. Das steht indirekt hier.
Der Grund allen Übels sind neben unvorsichtigen und grob unvernünftigen Usern (”Du woolen Viakra kauven? –> Bestellung.pdf.exe”) auch Schwachstellen in Software. Buffer Overflows sind da wohl das Hauptproblem.
Was also kann man tun, da ja nun mal Fehler in Software nicht vermeidbar sind?
Software stärker testen ist gut.
NX und dergleichen ist auch nicht schlecht.
Und so richtig?
Keine Ahnung. Wahrscheinlich wird’s “Viren” und dergleichen ab einer gewissen Komplexität von Systemen immer geben.
Who knows? God knows. Good [k]night. ;)
edit:
Ein wirklich lesenswerter Artikel zu diesem Thema: eweek - Is the Botnet Battle Already Lost?