Viren, Würmer und Trojaner: Eine kleine Führung durch den Zoo der Computerschädlinge Prof. Dr. Felix Freiling Universität Mannheim Vortrag im Rahmen der Langen Nacht der Wissenschaft in Mannheim 10. November 2007
Das Internet http://www.cybergeography.org/atlas/geographic.html weltweites Datennetz jeder Computer direkt erreichbar von jedem anderen Computer aus riesige Informationsquellen jeder ist plötzlich nebenan, auch Leute, die man gar nicht kennt und auch nicht kennen möchte
Science Fiction David Gerrold: When Harlie Was One, 1972. Vision eines selbstreplizierenden Programmes, genannt VIRUS John Brunner: Shockwave Rider, 1975. Vision eines Programmes, genannt WORM, dass autonom von Rechner zu Rechner wandert
Realität Selbstreplizierende Programme sind heute Realität Die meisten fallen in die Kategorie der Schadprogramme (malicious software, kurz malware) Omnipräsent im Internet Schadprogramme sind interessante Forschungsobjekte Wir haben für Sie ein paar Exemplare in Käfige gesteckt zum Anschauen ...
Bekannte Beispiele
März 2000 Sie erhalten eine E-Mail! Was tun Sie?
Reinschauen
Anhang? Der Anhang enthält ein Programm! in der Programmiersprache Visual Basic Öffnen des Anhangs führt dazu, dass das Programm ausgeführt wird
Selbstreplikation Programm verschickt sich selbst an alle Einträge des Outlook Adressbuches verbreitete sich rasend schnell im Internet
I Love You Virus Lehre: Meide Programme in Anhängen... Aber das reicht nicht Lehre: Meide Programme in Anhängen...
Word-Datei im Anhang http://www.heise.de/ct/99/08/017/
Der Melissa Virus Aktivitäten von Melissa wurden erstmals am 26. März 1999 registriert In alt.sex Newsgroup, in einem Dokument mit vorgeblich Kennungen und Passwörtern für Pornoseiten Melissa verschickte eine Word-Datei Word erlaubt die Einbettung von Visual Basic Programmen Beim Öffnen der Datei in Word wird Programm ausgeführt
Funktionsweise Schaltet zunächst Makro-Schutzmöglichkeit in Word ab Sucht in Microsoft Outlook Adressbuch nach den ersten 50 Email-Adressen Versendet sich selbständig dorthin mit modifiziertem Inhalt Kopiert sich selbst in das Document_Close-Makro der Word-Dokumentvorlage Wann immer ein neues Word-Dokument geschlossen wird, wird es neu befallen
Folgen von Melissa In drei Tagen über 100.000 Computer infiziert Mail-Server waren überlastet CERT berichtet: teilweise 32.000 Melissa-Mails pro 45 Minuten Viele Provider nahmen ihre Mail-Server vom Netz
Schwachstelle Mensch? Ursächlich für LOVELETTER und Melissa: Naivität der Benutzer Laxen Sicherheitseinstellungen von Windows Es geht auch ohne den Menschen Bekannte Beispiele: Der Sasser-Wurm Der Wurm CodeRed
Schwachstellen in Netzdiensten Rechner haben eine IP-Adresse Programme (z.B. Webserver) haben eine Port-Nummer Programme warten auf Daten am Port, um sie weiterzuverarbeiten Fehler bei der Programmierung können dazu führen, dass die Programme etwas anderes machen als sie sollen IP-Adresse: Straße und Stadt Portnummer: Hausnummer
Integer Overflow in C const long MAX_LEN = 0x7fff; short len = strlen(input); if (len < MAX_LEN) { // do something assuming that // input is smaller than MAX_LEN } Angenommen input ist eine Eingabe uebers Netz Zuweisung len = strlen(input) enthält impliziten Cast len ist short, strlen ist size_t (normalerweise größter unsigned int, den die Maschine hergibt) Hier: Downcast Zugewiesener Wert wird degradiert zu short Passiert durch "Abschneiden" von Bytes Normalerweise Compiler-Warnung Informationsverlust möglich Vergleich len < MAX_LEN enthält ebenfalls einen Cast Beide Seiten werden zum jeweils "höchsten" Typ befördert (up-casting, promotion) short len wird zu long Upcast ist wohldefiniert sowohl für signed als auch unsigned Bei signed wird das Vorzeichen mitgezogen Geht ähnlich auch in Java
Demonstration Denial of Service in Firefox 1.x Eine nicht wohlgeformte Antwort auf eine ftp-Anfrage von Firefox bringt den Browser zum Absturz Demonstration im Aixploits-System von Juliane Mathes und Benedikt Kaleß (www.aixploits.de) Antwort an Firefox wird durch Perl-Skript simuliert
Eine kleine Gattungslehre
Viren Verstecken sich und vermehren sich im Dateisystem Um infiziert zu werden, muss ein Stück Software auf dem Rechner ausgeführt werden Verbreiten sich typischerweise durch den Austausch von Dateien
Würmer Können sich selbständig von Rechner zu Rechner verbreiten (unter Ausnutzung von Schwachstellen) Können auch rein im Hauptspeicher existieren
Trojanische Pferde (Trojaner) Software, die vorgibt, etwas anderes zu sein Sehr einfach zu schreiben Muss vom Opfer ausgeführt werden List des Griechen Odysseus, durch die die Eroberung Trojas erst möglich wurde
Aktuelle Exemplare Insbesondere Bots und Botnetze
Exkurs: Internet Relay Chat (IRC) Weltweit verteiltes Kommunikationssystem Diskussionskanäle zu verschiedenen Themen Nutzer identifizieren sich durch Spitznamen http://www.newircusers.com/ircchat.html IRC stands for Internet Relay Chat. IRC is a multi-user, multi-channel chat system that is run on a network. It gives people all over the world the ability to talk (type) to one another in real time. Each user has a nickname (handle) and converses with other users either in private or on a channel (chat room). IRC ist ein hervorragendes Medium, um Menschen mit ähnlichen Interessen zusammenzuführen Eine Person tippt, alle anderen können es lesen
IRC (Ro)Bot Autonomes Programm, das an einem speziellen IRC Channel auf Kommandos wartet und diese ausführt Bots sind eine aktuelle Entwicklung im Internet Einfache Strukturen können sehr schmerzliche Effekte haben Im folgenden: Wie funktionieren Bots? Welche Gefahren gehen von ihnen aus? Wie kann man den Gefahren begegnen?
Bots und Botnetze Botnetz = Netz von vielen “gleichgeschalteten” IRC Bots Angreifer scannen automatisiert das Internet nach verwundbaren Rechnern Nach erfolgreicher Kompromittierung wird ein modifizierter IRC client (IRC Bot) installiert IRC Bot verbindet sich mit voreingestelltem IRC Server auf einem vereinbarten Channel Botnet = Netz von vielen so zusammengeschalteten IRC Bots
Nutzen von Botnetzen Distributed Denial of Service Angriffe Spam-Versand Sniffing Keylogging Verbreiten von Malware Aber auch: Geldverdienen mit Clicks auf Werbung, Manipulation von Online Umfragen, und vieles mehr Distributed Denial of Service Angriffe Viele Rechner machen gleichzeitig SYN flood oder UDP flood Spamming Wenn viele Rechner viele Mails schicken, ist das besser als einer Sniffing Viele Rechner können mehr Netzverkehr abhören (z.B. nach Kennungen und Passwörtern) Keylogging Mitschneiden von eingetippten Kommandos (PINs, TANs, Kreditkartennummern) Verbreiten von Malware einen Virus zunächst schlagartig auf tausende Maschinen verteilen... aber auch: Geldverdienen mit Clicks auf Werbung, Manipulation von Online Umfragen, und vieles mehr
Botnetze beobachten: Honeypots Honeypots tun so, als wären sie verwundbar Können Würmer/Bots fangen Was braucht man, um ein Botnet auszutricksen? DSN/IP-Adresse des IRC-Servers plus Portnummer Name des Channels und ggf. Channel Passwort Wie kommt man an diese Informationen? Fangen eines Bots in einem Honeynet! Aufsetzen eines verwundbaren Windows-Systems auf den Bot warten ausgehenden Netzverkehr mitschneiden Windows-System wird alle 24 Stunden frisch gebrüht
Beobachten von Botnets “Zugangsdaten” zum Botnetz: DNS/IP-Adresse des IRC-Servers plus Portnummer Name des Channels und ggf. Channel Passwort Mit diesen Daten kann man einen eigenen Bot in das Botnetz einschleusen Im Botnetz Kommandos mitschneiden und offline analysieren
Beobachtungen Größe von Botnets: Innerhalb weniger Monate wurden gut 220.000 verschiedene IP-Adressen in den beobachteten Botnet-Channels gesichtet Größe der Botnets zwischen 100 und 50.000 Rechnern Manchmal chatten Botnet-Betreiber auf dem Channel Betreiber scheinen meist männlich und jung zu sein haben wenig und schlechte Programmiererfahrung ("how can I compile...") haben nur Unfug im Kopf, nicht wirklich gefährlich wenige Betreiber versuchen Geld zu verdienen Click-Maschinen für Werbeanzeigen Spam-Versender Verkauf von geschnappten Diablo 2 (online Fantasy-Spiel) Gegenständen bei ebay
Botnetze bekämpfen Durch Unterwandern der Botnetze kann man die zentrale Schaltstelle ausspähen Schaltstelle ausschalten Oft Hilfe der Behörden notwendig
Die besonders gefährlichen Arten ...
Robuste Botnetze Zentrale Schaltstelle ist zentraler Schwachpunkt eines IRC-Botnetzes Verwenden von modernen P2P-Techniken: Bots leiten Kommandos gegenseitig weiter Keine zentrale Instanz mehr im Netz Bisher noch sehr selten in freier Wildbahn aufgetaucht
Wurm Ausbreitung Würmer verbreiten sich gemäß einer Infektionskurve Beispiel: Witty Worm (März 2004) http://www.caida.org/analysis/security/witty/ Automatisierte Gegenwehr noch möglich
Flash Würmer Flash Würmer zielen auf schlagartiges maximales Wachstum Kundschaften vorher in aller Stille verwundbare Rechner aus Verbreiten sich gemäß vorberechnetem Plan mit maximaler Geschwindigkeit Im Labor gemessene mögliche Ausbreitungsgeschwindigkeiten: nahezu 1 Million Rechner in 510 Millisekunden Kaum noch automatisierte Gegenwehr möglich
Flux Neue Entwicklung im Internet Weiterentwickeltes Botnetz zum Zwecke des Webhosting Anbieten von kriminellen Webseiten Vertrieb von Pharmaprodukten, Pornographie Idee: Netz versteckt sich „in sich selbst“
Anfrage nach Webseite normaler Ablauf Ablauf mit Flux Webserver: www.example.de DNS-Server Fluxe Webserver versteckt sich hinter Armee von Fluxen Zentrale Schwachstelle: DNS Auflösung DNS-Server sperren, Flux gesperrt normaler Ablauf Ablauf mit Flux Opfer
DNS-Auflösung mit Flux Webserver: www.example.de DNS-Server Fluxe Opfer fragt DNS-Server: welche IP hat www.example.de? DNS liefert 5 IP Adressen aber auch 5 Nameserver adressen Nameserver adressen sind adressen von Fluxen Fluxe machen auch DNS Proxy zum Webserver Opfer
Schwierigkeiten Eigentlicher Webserver versteckt sich hinter den Bots Bots sind nur Vermittler (Proxies) Vermittler ändern sich ständig (durch Aktualisierung des DNS) Auch DNS-Auflösung kann durch das Netz selbst durchgeführt werden Zunehmend auch Examplare in freier Wildbahn anzutreffen Es ist noch unklar, wie man Flux bekämpft
Zusammenfassung Malware ist omnipräsent Science Fiction ist Realität Honeypot-Sensoren registrieren Anfragen von autonomer Malware innerhalb weniger Minuten Science Fiction ist Realität Malware wird uns im Netz für immer begleiten Forschungsbedarf Offensive Denkweise, um mit den Angreifern Schritt zu halten Entwickeln von wirksamen Abwehrtechniken
Praktische Informatik 1 Universität Mannheim 68131 Mannheim Kontakt: Prof. Dr. Felix Freiling Praktische Informatik 1 Universität Mannheim 68131 Mannheim pi1.informatik.uni-mannheim.de
Quellen Martin Baltscheit: Die Geschichte vom Löwen, der nicht schreiben konnte. Bajazzo, 2002. Faustin Charles und Michael Terry: Das sehr unfreundliche Krokodil. Bloomsbury, 2005. Thorsten Holz: A short visit to the bot zoo. IEEE Security & Privacy, Vol. 3 (3), 2005. Christian Klein: Computer Viruses. Vortrag im Rahmen der Summer School Applied IT Security, RWTH Aachen, 2004. Stephen Cass: Anatomy of Malice. IEEE Spectrum, 38(11), 2001. S. Staniford, D. Moore, V. Paxson and N. Weaver: The Top Speed of Flash Worms. ACM CCS WORM, 2004 . Benedikt Kaleß, Juliane Mathes: Aixploits - Ein System zur Demonstration von Sicherheitslücken. http://www.aixploits.de
Abstract Der Vortrag begleitet die Zuhörer bei einem Gang durch den Zoo aktueller Computerschädlinge. Nach einem kurzen Rückblick in die Artengeschichte der verschiedenen Gattungen, folgt ein Streifzug durch das Wildtiergehege der Viren und Würmer. Den Abschluss bildet ein kurzer Einblick in das Terrarium der besonders jungen und giftigen Exemplare.