Donnerstag, 8. Januar 2009

News

präsentiert von: entwickler.com
Dienstag, 3. Juni 2008

SQL-Injection-Angriffe, wohin man blickt

In letzter Zeit treten besonders häufig SQL-Injection-Angriffe auf, hier ein Überblick und mögliche Gegenmaßnahmen. Über die SQL-Injection-Angriffe, die ASP/ASP.NET-Anwendungen mit JavaScript-Code zum Nachladen von Exploits für verschiedenen Schwachstellen verseucht haben, hatte ich ja bereits am 28. April im Standpunkt Sicherheit berichtet. So wurden z.B. auch die EPG-Daten der ARD manipuliert (siehe auch Standpunkt Sicherheit vom 13. Mai).

Ein Überblick

Die Entwicklung lässt sich z.B. gut im F-Secure Weblog verfolgen:

Oder auch bei Dancho Danchev:

Laut einer Meldung von Heise Security sind inzwischen auch deutsche Websites vermehrt Opfer dieser Angriffe.

Der Angriff

Ein ähnlicher Angriff lief bereits im Januar, die damals verwendeten Methoden wurden vom Internet Storm Center analysiert. Die aktuellen Angriffe folgen dem gleichen Muster: Über SQL-Injection werden alle geeigneten Datenbankfelder mit JavaScript-Code zum Nachladen von Schadcode gefüllt, in der Hoffnung, dass mindestens eines der Felder ohne weitere Prüfung an die Besucher der Webseite ausgegeben wird.

Dabei werden Systemtabellen und z.B. rein numerische Felder ignoriert und nur einem normalen Benutzer gehörende Tabellen und darin Felder mit Textwerten etc. manipuliert. Werden die Werte daraus dann später ohne weitere Bearbeitung oder Filterung an den Benutzer der Webanwendung ausgegeben, wird darüber Schadcode zum Ausnutzen verschiedener Schwachstellen nachgeladen. Aktuell handelt es sich dabei z.B. auch um die aktuellen Exploits für Adobes Flash-Player, siehe den Standpunkt Sicherheit vom 2. Juni.

Gegenmaßnahmen

Außer dem Rat aus dem Standpunkt Sicherheit vom 28. April, die Logfiles nach dem SQL-Injection-Code zu durchsuchen und ggf. eingeschleusten Schadcode aus der Datenbank zu entfernen sowie die SQL-Injection-Schwachstelle in der Webanwendung zu beheben, gibt es drei weitere Schutz- bzw. Gegenmaßnahmen: Zum einen ist der SQL-Injection-Angriff nur erfolgreich, wenn das Benutzerkonto, mit dem die Webanwendung auf die Datenbank zugreift, die Datenbank auch verändern darf. Sind keine Änderungen an der Datenbank notwendig, sollten dem entsprechenden Benutzer alle Rechte außer den notwendigen Leserechten entzogen werden. Zum anderen kann eine Web Application Firewall die SQL-Injection-Angriffe erkennen und abwehren, bevor sie die Webanwendung erreichen.

Außer diesen relativ einfach zu implementierenden Schutzmaßnahmen gibt es noch eine aufwendigere Gegenmaßnahme: Für alle auszugebenden Daten können die gleichen Prüfungen wie für vom Benutzer gelieferte Daten angewendet werden. Unerwünschter JavaScript-Code würde dabei erkannt und ausgefiltert bzw. unbrauchbar gemacht. Am einfachsten ist das für Daten umzusetzen, die keinem HTML- und/oder JavaScript-Code enthalten dürfen. Dann reicht schon das simple Umwandeln von < und > in die entsprechenden HTML-Entities &lt; und &gt;, um unerwünschten Skriptcode unbrauchbar zu machen. Das hat zwar den unschönen Nebeneffekt, das der so entschärfte Schadcode als Quelltext im Browser des Benutzers ausgegeben wird, aber zumindest kann er keinen Schaden mehr anrichten.

Carsten Eilers

Konferenzen

BASTA! Spring 2009

BASTA! Spring 2009

23.-27. Februar 2009
Maritim Rhein-Main Hotel Wissenschaftsstadt Darmstadt

Entwicklertage 2009

Entwicklertage 2009

23.-27. Februar 2009
Darmstadt

BASTA! Italia 2009

BASTA! Italia 2009

16.-18. März 2009
Holiday Inn EUR Parco dei Medici, Roma

PHPCon Italia 2009

PHPCon Italia 2009

18.-20. März 2009
Holiday Inn EUR Parco dei Medici, Roma

JAX 09

JAX 09

20.-24. April 2009
Rheingoldhalle Mainz

Eclipse Forum Europe 09

Eclipse Forum Europe 09

20.-24. April 2009
Rheingoldhalle Mainz

webinale 09

webinale 09

25.-27. Mai 2009
Berlin

RailsWayCon

RailsWayCon

25.-27. Mai 2009
Berliner Congress Center, Alexanderplatz, Berlin

Werbung
Top-Jobs

Software & Support Verlag GmbH

Lektor (m/w), Vollzeit

Endress+Hauser GmbH+Co. KG

Entwickler Datenbanksysteme (m/w)

Software & Support Verlag GmbH

Redakteur (m/w), Vollzeit

Software & Support Verlag GmbH

Volontär (w/m) Redaktion, Vollzeit

Signsoft GmbH

Java-Entwickler (m/w)
JAX 09

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

Ruby on Rails

RailsWay Magazin

Ruby on Rails

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher


hosted by HostEurope