Hier finden Sie die Präsentationen und weiterführende
Informationen zu Vorträgen, die ich auf Konferenzen gehalten habe.
Ajax in Action 2008
Vom 28. bis 31. Oktober fand in Mainz die AJAX IN ACTION statt.
Dieses Jahr gab es erstmals einen AJAX Security Day, auf dem ich zwei Vorträge
gehalten habe: "Sicherheit und der AJAX-Client" und "Mashups, aber sicher".
Sicherheit und der AJAX-Client
Beschreibung:
Mit der Auslagerung von Teilen der Anwendungslogik in den Client
wachsen die Gefahren für die Anwendung. Und die gehen weit über die
bekannten XSS-Angriffe hinaus. So erleichtert die mächtigere Client-Logik
unter Umständen SQL-Injection-Angriffe, und auch CSS erlauben manche
unerwünschte Manipulationen. Wo droht Gefahr und wie kann man ihr begegnen?
Diese Session liefert die Antworten.
Dateien zum Vortrag
Weiterführende Links
- Vorstellung
- Vorbemerkungen
- Klassiker: XSS und CSRF
- SQL-Injection
- Presentation Layer
- Clickjacking
- "Dies und Das"
Mashups, aber sicher
Beschreibung:
Werden in einem Mashup Inhalte aus verschiedenen Quellen ohne
Sicherheitsmaßnahmen munter gemischt, kann jeder Bestandteil auf jeden
anderen zugreifen. Angriffen wie Manipulationen fremder Inhalte oder das
Ausspähen von Zugangsdaten wird so Tor und Tür geöffnet. Wo Gefahrenpunkte
bestehen und wie man sichere Mashups entwickelt, erfahren Sie in dieser
Session.
Dateien zum Vortrag
Weiterführende Links
- Vorstellung
- Vorbemerkungen
- Aufbau eines Mashups
- Sicherheit des Proxies
- Ajax-Portale oder "Aggregate-Sites"
- JSON und JavaScript-Hacking
- Vertraulichkeit und Integrität
- Weitere Gefahren
Was wäre, wenn...
Was ich im Vortrag nicht mehr erwähnt habe, waren ein paar mögliche
Angriffe über Mashups bzw. ungeschützte Aggregate-Sites.
Ein bösartiger Bestandteil, egal ob das nun ein echter "Trojanischer
Webservice" oder ein "Trojanisches Widget" ist oder ob das in einen der
für das Mashup verwendeten Webservices eingeschleuster Schadcode ist,
hat Zugriff auf die gesamte Mashup-Seite. Das bedeutet: Er kann alle
übertragenen Daten überwachen, alle Cookies lesen, eigenen
JavaScript-Schadcode nachladen, vorhandenen JavaScript-Code mit eigenem
Code überschreiben, Clickjacking-Angriffe durchführen, kurz: Tun
und lassen, was er will.
Dazu mal ein paar Beispiele:
- Als erstes soll auch hier der schon im Vortrag als Beispiel
verwendete Plattensucher als Beispiel dienen, und zwar die Version, bei
der die Auswertung der Daten im Client abläuft. Eingeschleuster
Schadcode könnte die Auswertungsfunktionen so manipulieren, das
immer ein bestimmter Anbieter auf Plattenauktionen bevorzugt wird.
- Das nächste Beispiel soll ein Online-Spiel sein, das
verschiedene Dienste anderer Anbieter verwendet, um z.B. eine
Chat-Funktion zu realisieren, aktuelle Nachrichten ins Spiel
einzubringen oder ähnliches. Im Rahmen des Spiels kann mit
virtuellen Gütern gehandelt und mit virtuellem Geld bezahlt
werden. Ein Angreifer könnte die entsprechenden
JavaScript-Funktionen mit eigenen JavaScript-Code überschreiben,
der bei jeder Transaktion einen Bruchteil des übertragenen
virtuellen Gelds auf sein eigenes Konto abzweigt. Alternativ
könnte der Angreifer über Clickjacking erreichen, das der
Benutzer alle seine virtuellen Güter auf ihn überträgt.
- Ein weiteres fiktives Mashup soll als Tourismus-Portal für
eine Ferienregion dienen. Hotels, Pensionen, Gaststätten sowie
touristische Sehenswürdigkeiten stellen sich dort vor, die
Besucher können über einen eingebundenen Routenplaner ihre
Reise planen, online ihre Unterkunft buchen, in einem Forum ihre
Erfahrungen austauschen, die verschiedenen Angebote bewerten usw. usf..
Ein Angreifer könnte dann Schadcode einschleusen, der bei der
Routenplanung nach Möglichkeit eine bestimmte Strecke bevorzugt -
die, die an seiner eigenen Gaststätte vorbeiführt. Oder Code,
der beim Buchen der Unterkunft für einige Anbieter eine
gefälschte "Alles belegt"-Meldung ausgibt, der die eingegebenen
Kontoverbindungen an den Angreifer sendet, oder ihm auch einfach nur
die Heimatadresse samt Reisezeitraum der Urlauber übermittelt.
Nach der Reise finden die Urlauber dann zu Hause eine ausgeräumte
Wohnung vor.
- Kommen wir nun zum Lock&Feel-Hack: In obigen Tourismus-Portal
können die verschiedenen Anbieter für ihre Präsentation
eigene Style-Informationen verwenden, um sich optisch wie auf der
eigenen Website darzustellen. Ein Angreifer könnte das ausnutzen,
um einige Anbieter komplett auszublenden (indem er ihre Styles mit
einem display=none überschreibt) oder die angezeigten
Informationen über freie Kapazitäten mit einer "Alles
belegt"-Anzeige zu überschreiben.
- Zu guter Letzt soll noch ein "Alles ist möglich"-Ajax-Portal
als (schlechtes) Beispiel dienen: Die Benutzer können darin
beliebige Webservices nach eigenem Belieben zusammen stellen und auch
eigene Widgets für andere Benutzer bereitstellen. Eines dieser
Widgets ist ein kleiner Kalender, der augenscheinlich nichts weiter
macht, als das aktuelle Datum samt aktueller Uhrzeit anzuzeigen und bei
Bedarf in andere Zeitzonen umzurechnen. Im Hintergrund wartet dieser
trojanische Kalender aber nur darauf, das ein bestimmtes anderes Widget
auf der gleichen Seite läuft. Dabei soll es sich um einen
Online-Börsenticker handeln, der von irgend einem Anbieter mit
Kauftips für interessante Aktien beliefert wird. Sobald der
trojanische Kalender dieses Widget erkennt, überschreibt er dessen
Funktionen für den Empfang der Daten und schleust darüber
eigene Daten ein. Die sollen den Benutzer zum Kauf bestimmter Aktien
bewegen und damit den Kurs dieser Aktien manipulieren.