Suche
Blog abonnieren
Lizenz
Creative Commons License - Some Rights Reserved
Der Inhalt dieses Werkes ist lizensiert unter der Creative Commons Lizenz
Mit Hilfe großer Datenmengen im (POST-)Request lassen sich Webapplikationen leicht in die Knie zwingen. Das demonstrierten Julian Wälde und Alexander Klink in ihrem Vortrag Effective Denial of Service attacks against web application platforms auf dem 28C3 (Slides, Bericht auf Cryptanalysis).

Ob eine Programmiersprache davon betroffen ist, hängt davon ab, wie sie Hash-Tabellen implementiert. oCERT nennt Java, JRuby, PHP, Python, Rubinius und Ruby. Die Implementation der Hash-Tabelle kann dazu führen, dass es zu Kollisionen in der Zuweisung vom Schlüssel zu Hash-Werten kommt, so dass einem Schlüssel mehrere Einträge in Form einer verketteten Liste zugeordnet werden können.

In Java ist ist ein entsprechender Algorithmus in den Klassen HashMap und Hashtable implementiert. Die Parameter eines Requests und ihre Werte erhält man über den Aufruf der Methode getParameterMap() des ServletRequest-Objekts. Ein Schlüssel ist vom Typ String, die Werte bilden ein Array vom Typ String. Die Methode gibt ein Objekt vom Typ Map zurück, der ein Interface ist, so dass die Methode tatsächlich den konkreten Typ HashMap zurückgibt.

Klink und Wälde schreiben in ihrem Paper, dass Oracle deswegen nicht übermäßig großen Handlunsgbedarf sieht:
Oracle has decided there is nothing that needs to be fixed within Java itself, but will release an updated version of Glassfish in a future CPU.

Zumindest im Zusammenspiel mit Tomcat 6.0.35 und 7.023 gibt es einen Workaround: Die Zahl der Parameter kann im Servlet-Container eingeschränkt werden.
Kommentare
Noch keine Kommentare
Kommentar schreiben
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!