SlideShare ist ein Scribd-Unternehmen logo
Web Würmer
Klein, glitschig und ekelhaft
Mario 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!
●
    mario.heiderich@gmail.com
●
    http://heideri.ch
●
    https://twitter.com/0x6D6172696F

Weitere ähnliche Inhalte

Was ist angesagt?

TypeScript Presentation
TypeScript PresentationTypeScript Presentation
TypeScript Presentation
Patrick John Pacaña
 
Grails Simple Login
Grails Simple LoginGrails Simple Login
Grails Simple Login
moniguna
 
Div Tag Tutorial
Div Tag TutorialDiv Tag Tutorial
Div Tag Tutorial
bav123
 

Was ist angesagt? (20)

Callback Function
Callback FunctionCallback Function
Callback Function
 
TypeScript Presentation
TypeScript PresentationTypeScript Presentation
TypeScript Presentation
 
Iterator Design Pattern
Iterator Design PatternIterator Design Pattern
Iterator Design Pattern
 
Composite pattern
Composite patternComposite pattern
Composite pattern
 
Grails Simple Login
Grails Simple LoginGrails Simple Login
Grails Simple Login
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
Div Tag Tutorial
Div Tag TutorialDiv Tag Tutorial
Div Tag Tutorial
 
Server side scripting
Server side scriptingServer side scripting
Server side scripting
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Introduction to ajax
Introduction  to  ajaxIntroduction  to  ajax
Introduction to ajax
 
Domain Modeling in a Functional World
Domain Modeling in a Functional WorldDomain Modeling in a Functional World
Domain Modeling in a Functional World
 
L9 wrapper classes
L9 wrapper classesL9 wrapper classes
L9 wrapper classes
 
Design Patterns - Abstract Factory Pattern
Design Patterns - Abstract Factory PatternDesign Patterns - Abstract Factory Pattern
Design Patterns - Abstract Factory Pattern
 
Asp.net state management
Asp.net state managementAsp.net state management
Asp.net state management
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Functions in javascript
Functions in javascriptFunctions in javascript
Functions in javascript
 
Asp.NET Validation controls
Asp.NET Validation controlsAsp.NET Validation controls
Asp.NET Validation controls
 
The virtual DOM and how react uses it internally
The virtual DOM and how react uses it internallyThe virtual DOM and how react uses it internally
The virtual DOM and how react uses it internally
 

Andere mochten auch

Generic Attack Detection - ph-Neutral 0x7d8
Generic Attack Detection - ph-Neutral 0x7d8Generic Attack Detection - ph-Neutral 0x7d8
Generic Attack Detection - ph-Neutral 0x7d8
Mario Heiderich
 
Locking the Throneroom 2.0
Locking the Throneroom 2.0Locking the Throneroom 2.0
Locking the Throneroom 2.0
Mario Heiderich
 
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating FrameworksJSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
Mario Heiderich
 
Scriptless Attacks - Stealing the Pie without touching the Sill
Scriptless Attacks - Stealing the Pie without touching the SillScriptless Attacks - Stealing the Pie without touching the Sill
Scriptless Attacks - Stealing the Pie without touching the Sill
Mario Heiderich
 
Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...
Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...
Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...
Mario Heiderich
 
The Image that called me - Active Content Injection with SVG Files
The Image that called me - Active Content Injection with SVG FilesThe Image that called me - Active Content Injection with SVG Files
The Image that called me - Active Content Injection with SVG Files
Mario Heiderich
 
Referat KMU Doppelbesteuerung.Pdf
Referat KMU Doppelbesteuerung.PdfReferat KMU Doppelbesteuerung.Pdf
Referat KMU Doppelbesteuerung.Pdf
startups
 
Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...
Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...
Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...
CIFF Fundación
 
httpasts://digitalmemoryonthenet Workshop Eisenmenger
httpasts://digitalmemoryonthenet Workshop Eisenmengerhttpasts://digitalmemoryonthenet Workshop Eisenmenger
httpasts://digitalmemoryonthenet Workshop Eisenmenger
Daniel Bernsen
 
Deserción (1)
Deserción (1)Deserción (1)
Deserción (1)
Licentiare
 
Google docs
Google docsGoogle docs
Google docs
cjdiego
 

Andere mochten auch (20)

Generic Attack Detection - ph-Neutral 0x7d8
Generic Attack Detection - ph-Neutral 0x7d8Generic Attack Detection - ph-Neutral 0x7d8
Generic Attack Detection - ph-Neutral 0x7d8
 
Locking the Throneroom 2.0
Locking the Throneroom 2.0Locking the Throneroom 2.0
Locking the Throneroom 2.0
 
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating FrameworksJSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
 
The innerHTML Apocalypse
The innerHTML ApocalypseThe innerHTML Apocalypse
The innerHTML Apocalypse
 
Scriptless Attacks - Stealing the Pie without touching the Sill
Scriptless Attacks - Stealing the Pie without touching the SillScriptless Attacks - Stealing the Pie without touching the Sill
Scriptless Attacks - Stealing the Pie without touching the Sill
 
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
 
Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...
Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...
Copy & Pest - A case-study on the clipboard, blind trust and invisible cross-...
 
The Image that called me - Active Content Injection with SVG Files
The Image that called me - Active Content Injection with SVG FilesThe Image that called me - Active Content Injection with SVG Files
The Image that called me - Active Content Injection with SVG Files
 
An Abusive Relationship with AngularJS
An Abusive Relationship with AngularJSAn Abusive Relationship with AngularJS
An Abusive Relationship with AngularJS
 
In the DOM, no one will hear you scream
In the DOM, no one will hear you screamIn the DOM, no one will hear you scream
In the DOM, no one will hear you scream
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Examen de computacion.
Examen de computacion.Examen de computacion.
Examen de computacion.
 
Referat KMU Doppelbesteuerung.Pdf
Referat KMU Doppelbesteuerung.PdfReferat KMU Doppelbesteuerung.Pdf
Referat KMU Doppelbesteuerung.Pdf
 
Elps4
Elps4Elps4
Elps4
 
Tecnologia en la industria petrolera
Tecnologia en la industria petroleraTecnologia en la industria petrolera
Tecnologia en la industria petrolera
 
Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...
Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...
Jornada sobre Calidad del Software. Ministerio de Hacienda y Administraciones...
 
httpasts://digitalmemoryonthenet Workshop Eisenmenger
httpasts://digitalmemoryonthenet Workshop Eisenmengerhttpasts://digitalmemoryonthenet Workshop Eisenmenger
httpasts://digitalmemoryonthenet Workshop Eisenmenger
 
Diabetes mellitus terminado 2
Diabetes mellitus terminado 2Diabetes mellitus terminado 2
Diabetes mellitus terminado 2
 
Deserción (1)
Deserción (1)Deserción (1)
Deserción (1)
 
Google docs
Google docsGoogle docs
Google docs
 

Ähnlich wie Web Wuermer

10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
Sebastian Springer
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Mayflower GmbH
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
Oliver Zeigermann
 

Ähnlich wie Web Wuermer (20)

Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
 
Qualitätsmanagement für Web- und PHP Applikationen
Qualitätsmanagement für Web- und PHP ApplikationenQualitätsmanagement für Web- und PHP Applikationen
Qualitätsmanagement für Web- und PHP Applikationen
 
Überblick Solr
Überblick SolrÜberblick Solr
Überblick Solr
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Browser vs. Tracking
Browser vs. TrackingBrowser vs. Tracking
Browser vs. Tracking
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Performance?!
Performance?!Performance?!
Performance?!
 
Deep web & Darknet Präsentation
Deep web & Darknet PräsentationDeep web & Darknet Präsentation
Deep web & Darknet Präsentation
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
XMPP - Real Time Communication
XMPP - Real Time CommunicationXMPP - Real Time Communication
XMPP - Real Time Communication
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework  for perfectionists with deadlinesDjango - The Web framework  for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Dirty Little Snippets - SEO Campixx 2014 - Slides zum Vortrag
Dirty Little Snippets - SEO Campixx 2014 - Slides zum VortragDirty Little Snippets - SEO Campixx 2014 - Slides zum Vortrag
Dirty Little Snippets - SEO Campixx 2014 - Slides zum Vortrag
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Steemit-Vortrag
Steemit-VortragSteemit-Vortrag
Steemit-Vortrag
 

Mehr von Mario Heiderich

Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Mario Heiderich
 
HTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the UglyHTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the Ugly
Mario Heiderich
 
I thought you were my friend - Malicious Markup
I thought you were my friend - Malicious MarkupI thought you were my friend - Malicious Markup
I thought you were my friend - Malicious Markup
Mario Heiderich
 
The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010
Mario Heiderich
 
The Ultimate IDS Smackdown
The Ultimate IDS SmackdownThe Ultimate IDS Smackdown
The Ultimate IDS Smackdown
Mario Heiderich
 

Mehr von Mario Heiderich (7)

Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
 
Dev and Blind - Attacking the weakest Link in IT Security
Dev and Blind - Attacking the weakest Link in IT SecurityDev and Blind - Attacking the weakest Link in IT Security
Dev and Blind - Attacking the weakest Link in IT Security
 
HTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the UglyHTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the Ugly
 
I thought you were my friend - Malicious Markup
I thought you were my friend - Malicious MarkupI thought you were my friend - Malicious Markup
I thought you were my friend - Malicious Markup
 
The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010
 
The Ultimate IDS Smackdown
The Ultimate IDS SmackdownThe Ultimate IDS Smackdown
The Ultimate IDS Smackdown
 
I thought you were my friend!
I thought you were my friend!I thought you were my friend!
I thought you were my friend!
 

Web Wuermer

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