Upload
mario-heiderich
View
695
Download
0
Embed Size (px)
DESCRIPTION
Talk slides for the RU Bochum 01.2010 - German language
Citation preview
Web WürmerKlein, glitschig und ekelhaftMario Heiderich
Vorstellung● Mario Heiderich
● PHPIDS● Trainings● Audits und Pentests● Secure Development
Überblick● Ein wenig Geschichte● Fallbeispiele● Limitationen● Und Wege diese zu umgehen● Blick in die Zukunft● Diskussion
Erste Gehversuche● 1999 - 2002● Attacken gegen Hotmail● Outlook Webaccess● Ein völlig neues Thema● Internet Explorer 5.5
Samy● 2005● Just to be popular● Hat funktioniert● MySpace down● FBI, Arrest und Auflagen● 2010 - und Samy ist zurück...
Yamanner● 2006● Mailworm● Adressdaten harvesten● SPAM
Der Pornowurm● 2007● 1 Mio User● Lediglich ein PoC● XSS Attacken und persönliche Reputation● Emailadresse und sexuelle Präferenzen● Reported aber nie gefixt
Nduja Connection● 2007● Mailworm● Mehrere italienische Freemailer● Cross Domain● Nur ein PoC
Der nette Wurm● 2007● Wordpress● Heilsamer Payload● Propagation via Scanning und Blogroll● Große Coverage in den Medien
Jikto● 2007● Cross Domain● PoC Wurm für einen Shmoocon Talk● “Geleakter Sourcecode”
● SOP Normalisation via Google Translate● Big buzz
Diminutive Worm Contest● 2008● “Den Kürzesten haben”● Webworm aus ca. 150 Bytes als Resultat● Erstmalig HTML als Wurmgerüst● Contest mit Botschaft
Justin.TV und andere● 2008● Adressdaten sammeln● Logindaten als Plaintext● SPAM
Rediff.com● 2009● Mailworm● 60 Millionen betroffene User● Nutzt kleine Lücke im HTML Filter
Reddit, Twitter,...● 2009● Spam, SEO, Account Hijacking etc● Facebook Apps running wild● Orkut● Und viele andere...
Mehr mehr MEHR!● Quellen diverser Würmer sind online● Teils mit Erläuerungen● sla.ckers.org● AJAX Worm Database● namb.la/popular
Bilanz und Warten auf 2010● Schlechter Code● Lediglich String Obfuscation● Potenzial noch nicht ausgereizt● Meist fokussiert auf die betroffene App● Mangelhafte Infrastruktur
Heutige Probleme● Wenige verstehen XSS● Gleiches für CSRF● Und erst recht die Kombination● Dabei ist's nicht so schwer● Und HTTP ist immer noch an allem Schuld● Oder?
Goldene Regel● Remote XSS und Applikation mit Login == Wurm● Auch reflektiver XSS dank short URLs–
● HttpOnly ist kein Hindernis● Warum?
Anatomie eines Wurms● Initiale XSS Lücke● Data Storage● Payload Propagation● Wurmkopf● MVC oder was?
Eigenschaften eines Wurms● Was sind die wichtigsten Eigenschaften?● Wie werden diese implementiert?
Klar...● Propagation● Payload● Stealthiness● Robustness● Obfuscation● Defence
Klassiches Design● Altbekannte Prinzipien● Klare Gewaltenteilung● Strukturelle Schwäche
Fallbespiel● Yamanner● View - die Lücke im Yahoo! Mail Frontend● Controller - Der Payload● Model - Ein PM System einer anderen Website● Sauber strukturiert - aber...● Einfach zu eliminieren
Warhhol Würmer● Kurzlebigkeit● Instabilität● Offensichtlichkeit● No money shots
Wer kanns besser?● Botnetze● Mass SQL Injections● "Binary Worms"
Vorteil Infrastruktur?● P2P Architekturen● Dezentrale C&C Server● Obfuscation● Verschlüsselung richtig echte–
● Rechenleistung und Plattenplatz
Zurück zum Webworm● Was fehlt zum echten Wurm?
Eigentlich nichts● Das Internet als Infrastruktur● Verfügbar, dezentralisiert und schnell● Services im richtigen Kontext sehen● Alle Komponenten eines Binary Worms haben “ ”
Web-Repräsentanten
Controller● Business Logik● Yahoo! Pipes● AppJet● Codepad● PHP, C++, JavaScript,...
Dinge im Hintergrund● AJAX Requests● DOM Worker● Schnittstellen zu OS und Applikationen● ActiveX, PDFs, Videos,...
Model● Pastebins● Image Hoster● Twitter, Delicious und andere● Einfach dank Tagging● Web-RAID und mehr...
Client Side Storage● So viele APIs● Bekannte wie W3C Storage APIs● Und weniger bekannte Vertreter wie #userdata● Oder HTML+TIME
Payload obfuscation● String Obfuscation und mehr● Wir hatten das bereits...● location.hash
● window.name
● Aynwhere in DOM country● Bilder, Farben, Subdomains, Dateinamen, ...
Robustness● Escaping und Encoding● Base64 nicht alle User Agents–
● escape()
● encodeURIComponent()
● Markup nutzen
Propagation● Scanning und Fuzzing● Spidering● Google und Yahoo! Search API● Code Search Engines
JavaScript und HTTP● AJAX wenn möglich● XDR● Cross-Domain● Lesend zum Harvesten● Nicht-lesend zum Verbreiten● new Image().src='http://...'
Crossing the Line● Requests an beliebige Domains● Requests an beliebige Protokolle● Requests an beliebige Ports● Shodan
Wenig Limits● SOP als einziges Hindernis● Komplexer als man denkt● Single Point of Failure● 2009 wie oft genau gefallen?
Und noch weiter...● Intranet Würmer
● OTRS, phpMyAdmin, Plesk● Würmer in Entwicklungsumgebungen
● Eclipse, Trac, ...● Politische Foren und Abstimmungssysteme● Mobile Botnetze via XSS
Zusammenfassung● Web-Würmer können mehr● Trusted User Interaction simulieren● Dezentrale Controller● Dezentrale und inhomogene Models● Cross-Domain und Cross-Protocol
Warhol war einmal● Persistente Webworms sind möglich● Nur gibt es noch keinen● Zeit einen zu bauen!● Oder?
Rechtliches● Keine einfache Lage● Mehr eine völlige Blackbox siehe – §202c● Gerade noch ein PoC...● ...oder schon eine Straftat?● Kompliziert in EU und USA
Was kann man tun?● Dilemma Diversität● Zuviele Kombinationen aus Services● Messerblock und Säurefässchen● CSE oder Exploit Search Engine?
Diskusssion
Vielen Dank!
Vielen Dank!● [email protected]● http://heideri.ch● https://twitter.com/0x6D6172696F