als PDF

Werbung
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite I
sponsored by:
Ein Verlagsbeihefter der Heise Zeitschriften Verlag GmbH & Co. KG
IT-Security
extra
IT-Security
Angriffsmöglichkeiten auf
Webapplikationen und Abwehrtechniken
Schwerpunkt:
Tools zur WebsiteAbsicherung
Angriffsmöglichkeiten auf Webapplikationen und
Abwehrtechniken
Tückische Eingaben
Tückische
Eingaben
Seite I
Die meisten heute verfügbaren Sicherheitsprodukte
sind nicht in der Lage, die Anwendungen auf einem
Webserver adäquat zu schützen. Hinzu kommt, dass
es kaum Webanwendungen gibt, die fehlerfrei sind.
Zum Schutz vor Übergriffen sollten Anwender die
gängigsten Angriffstechniken verstehen und einen
Applikations-Scanner sowie eine mit speziellen
Funktionen ausgestattete Firewall installieren.
Firewalls für Webanwendungen
Die Türsteher
Seite VI
Einbruchssimulation mit Proxy und Plug-ins
Gekonnte Handarbeit
Seite XI
Identitätsmanagement in Zeiten von
Webservices und Web 2.0
Meine Identität gehört mir
Seite XIV
Vorschau
Storage
Schwerpunkt: Disk-Systeme –
Technik und Produkte
Seite XVI
Veranstaltungen
22. – 24. Oktober, London
RSA Europe
www.rsaconference.com/2007/Europe
23. – 26. Oktober, München
Systems
www.systems.de
3. – 4. November, Köln
European Software Conference (ESWC)
www.euroconference.org
19. – 21. November, Düsseldorf
iX-Konferenz: Bessere Software!
www.ix-konferenz.de
nalysten und Szenebeobachter sind sich einig:
Die meisten Hacker-Angriffe im
Web erfolgen heutzutage auf
Applikationsebene. Dabei geht
es nicht um einfache Websites
mit statischem Inhalt, sondern
um dynamische Webapplikationen. Webauftritte mit einfachen
HTML-Seiten ohne Formulare
und Benutzerabfragen sind für
einen Angreifer nur wenig interessant. Erst wenn Benutzereingaben verarbeitet werden, wie
es bei Suchfunktionen, Onlinekatalogen, Bestellsystemen und
so weiter der Fall ist, wird es für
Hacker spannend. Besonders
attraktiv sind Portale, die für
Kunden oder Partnerfirmen
konzipiert sind und mit internen
IT-Systemen interagieren.
Werden solche Systeme
über einen Webbrowser bedient, kann man in den meisten
Fällen davon ausgehen, dass
sie Fehler enthalten, die einem
Angreifer Tür und Tor öffnen
können. Ob es sich im Einzelfall
um eine ASP- oder PHP-basierte Anwendung, eine Webappli-
A
kation auf der Grundlage von
Applikationsservern beziehungsweise Frameworks wie
IBM Websphere, BEA Weblogic
oder um eine SAP-Web-Application-Server-Anwendung handelt,
macht kaum einen Unterschied.
Denn fehlerfreie Software ist in
diesem Umfeld nicht zu erwarten, und die Fehler sind meist
gleichbedeutend mit Sicherheitslücken. Der zweite zu beachtende Ausgangspunkt ist,
dass bestehende Firewalls in
der Praxis nicht vor Angriffen
auf Webapplikationen schützen
können, selbst wenn deren
Hersteller mit Funktionen für
den Schutz auf „Anwendungsebene“ werben.
Eine der ältesten und auch
trivialsten Angriffsmethoden
beruht schlicht und einfach
auf dem Zugriff auf URLs, die
eigentlich nicht erreichbar
sein sollten und die innerhalb
der Anwendung auch nicht
verlinkt sind.
In der Praxis kommt es
immer wieder vor, dass eine
ASP-Datei in einer älteren Ver-
I
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite II
IT-Security
sion mit der Endung .old oder
.bak auf dem Server liegen
bleibt. Wird beispielsweise eine
ASP-Datei mit Namen feedback.
asp als www.ix.de/feedback.asp
aufgerufen, könnte ein Angreifer
durch Ausprobieren eine URL
wie www.ix.de/feedback.
asp.old finden. Da die Endung
nicht mehr .asp sondern .old
lautet, würde diese Datei nicht
auf dem Server interpretiert,
sondern als Klartext an den
Browser des Angreifers geschickt werden. Dieser kann
dann im Quelltext gespeicherte
Informationen oder Kennwörter
heraussuchen. Diese Angriffstechnik nennt man Forceful
Browsing.
Einfallstor URL
So harmlos sie zunächst aussehen mag, so tückisch wird sie
beim Angriff auf Applikationsserver, denn hier bietet das Server-Framework häufig Funktionen über bekannte URLs. Selbst
wenn diese URLs innerhalb der
Applikation nicht verwendet
werden, sind sie unter Umständen dennoch aktiv, und ein Angreifer kann durch direkte Eingabe der URL in der Adresszeile
seines Browsers die dort angebotenen Funktionen aufrufen
und nutzen. Ein SAP Web Application Server etwa bietet bereits
in einer Basisinstallation mehr
als 150 solcher URL-basierten
Dienste an.
Hier haben Administratoren
kaum einen Überblick über die
freigeschalteten oder tatsächlich benötigten Dienste und
deren Funktionen. Diese könnten beispielsweise über den externen Zugriff auf SAP Remote
Function Calls (RFCs) über das
Simple Object Access Protocol
(SOAP) für Unbefugte erreichbar
sein. Ein Angreifer, der die
Standard-URL einer dieser
Funktionen kennt, ist damit in
der Lage, Transaktionen auf
dem SAP-Server auszulösen
oder in einem zweiten Schritt
Fehler in den somit erreichbaren SAP-RFCs auszunutzen und
II
den SAP-Server selbst unter
seine Kontrolle zu bringen.
Etwas komplizierter ist der
häufig genannte SQL-InjectionAngriff. Er kann Webapplikationen betreffen, die Daten in einer
SQL-Datenbank speichern oder
auf Daten einer bestehenden
SQL-Datenbank zugreifen. Beispielsweise könnte eine Webapplikation Produktinformationen
aus einer Datenbank abrufen
und anzeigen, nachdem der Anwender die Artikelnummer des
gewünschten Produkts eingegeben hat. Der zum Abfragen der
Datenbank benötigte SQL-Befehl ließe sich dafür aus einem
festen Teil und der eingegebenen Artikelnummer zusammenbauen. Zum Beispiel könnte der
Programmierer den festen Text
select name, beschreibung,
preis from artikel where
artno = ' mit der vom Benutzer
eingegebenen Nummer und
einem abschließenden Hochkomma zusammenfügen.
SQL Injection nach
Schema F
Ein Angreifer macht sich dieses
harmlose Programmkonstrukt
zunutze und gibt anstelle einer
Artikelnummer beispielsweise
folgenden Text ein: ' union select name, password, null from
shopusers --. Das erste Hochkomma terminiert den zu
suchenden Text aus dem ursprünglichen SQL-Befehl und
erweitert diesen dann mit dem
Union-Schlüsselwort, das zwei
Select-Befehle miteinander verbindet. Der sich daraus ergebende Befehl, der an die Datenbank gesendet wird, lautet: select name, beschreibung, preis
from artikel where artno = ''
union select name, password,
null from shopusers -- . Die
beiden Bindestriche am Ende
der Eingabe sorgen dafür, dass
der folgende Text als Kommentar interpretiert wird und
damit keinen Syntaxfehler
auslösen kann. Der Angreifer
würde in diesem Beispiel
Namen und Kennwörter von
Angriffe auf
CGI, PHP,
Servlets
Internet
Angreifer
Angriffe auf
den Serverprozess
bösartige Inhalte in Daten
(URLs, Form contents, cookies)
HTTP / Port 80
klassische Angriffe
auf das Betriebssystem
Angriffe auf Webapplikationen können
klassische Firewalls nicht
abwehren, denn sie erfolgen über erlaubte
Wege, etwa Formulareingaben auf Webseiten
et cetera (Abb. 1).
anderen Benutzern aus der Datenbank angezeigt bekommen.
Dieses vereinfachte Beispiel
geht davon aus, dass der Angreifer bereits weiß, dass es
eine interessante Tabelle mit
Namen shopusers gibt. Auch
weiß er, welche Spalten die Tabelle enthält. In der Praxis
müsste er dies erst herausfinden. Das bereitet jedoch keine
größeren Schwierigkeiten, denn
die vorhandenen Tabellen und
ihre Spaltennamen stehen in
bekannten Systemtabellen beziehungsweise in Views, die
man ebenfalls abfragen kann.
Bei Microsoft SQL gibt es dafür
beispielsweise Views wie
sys.objects oder sys.tables.
Ein Angriff per SQL Injection
ist damit meist ein Vorgang in
mehreren Schritten. Im ersten
Schritt identifiziert der Angreifer
Eingabefelder oder andere
Parameter, die für eine Datenbankabfrage verwendet werden. Im zweiten Schritt ermittelt
er durch Ausprobieren die
Struktur des benutzten SQLBefehls und die Anzahl der abgefragten Spalten und danach
fragt er schrittweise Systemtabellen und Benutzertabellen ab.
Selbstverständlich beschränkt
sich SQL Injection nicht nur auf
das Auslesen von möglicherweise vertraulichen Daten. Genauso kann ein Angreifer im
letzten Schritt auch Daten in der
Datenbank manipulieren. Des
LAN
Webserver
Weiteren ist es gelegentlich
sogar möglich, aus dem SQLServer auszubrechen und die
Kontrolle über das Betriebssystem des Datenbankservers zu
erlangen. Stored Procedures
wie XP_CMDSHELL, die wie
Microsofts SQL Befehle an das
Betriebssystem übergeben, ermöglichen das.
Erschwerend kommt hinzu,
dass der erste Schritt zur Identifikation von möglichen Ansatzpunkten nicht nur einfach
ist, sondern sich auch sehr gut
automatisieren lässt. Webapplikations-Scanner nutzen das
aus, um Schwachstellen aufzuspüren. WebInspect von HP
(früher SPI-Dynamics) oder
AppScan von IBM (ehemals
Watchfire) durchlaufen wie eine
Suchmaschine eine Webapplikation und geben unter anderem in jedes mögliche Eingabefeld Anführungszeichen,
doppelte Bindestriche oder andere geeignete Sonderzeichen
ein, um damit eine Fehlermeldung der zu prüfenden Applikation zu provozieren. Falls sie
dabei an eine einfache SQL-Injection-Schwachstelle geraten,
zeigt die zu prüfende Applikation einen internen Fehler oder
sogar eine Datenbank-Fehlermeldung an.
Daraus lässt sich schließen,
dass die Eingabe des Sonderzeichens nicht einfach als
Suchbegriff verwendet wurde,
iX extra 11/2007
Web Application Firewall
der 2. Generation
kämpft blitzschnell: Schutz von
High-Performance-Anwendungen
dank Cluster-Administration und
Multi-Prozessoren-Fähigkeit
bündelt Kräfte: Verteilte Administration
verschiedener Web-Anwendungen
dank Mandantenfähigkeit
behält den Überblick: Einfache
Administration im laufenden Betrieb
dank grafischer Oberfläche und
Lernmodus
www.artofdefence.com
ix1107_x_000_ArtOfDefence.indd 1
ix1107_x_03_ArtOfDefence.pdf 1
04.10.2007 15:29:57 Uhr
28.09.2007 13:08:43 Uhr
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite IV
IT-Security
sondern die SQL-Syntax der
Backend-Abfrage verändert hat.
Enthält das bereits beschriebene Beispiel nur ein einfaches
Anführungszeichen, so ergibt
sich der folgende SQL-Befehl:
select name, beschreibung,
preis from artikel where artno
= ''' . Da drei aufeinanderfolgende einfache Anführungszeichen keine gültige SQL-Syntax
darstellen, erzeugt die betroffene Webapplikation einen Fehler.
Die automatisierte Suche
nach Schwachstellen in Webapplikationen durch Provozieren
von Fehlermeldungen erscheint
auf den ersten Blick relativ einfach. In der Praxis gibt es jedoch
viele Webshops oder Portale mit
einer komplizierten Session-Verwaltung, sodass schon das vollständig automatisierte Durchlaufen aller Seiten mit einem
Crawler alles andere als trivial
ist. Dies ist wohl einer der Gründe dafür, dass es bisher nur wenige kommerzielle Prüfwerkzeuge und im Open-Source-Umfeld
bisher keine vergleichbaren Produkte gibt.
Keine Änderung zur
Laufzeit
Es existieren mehrere Ansätze,
die eine SQL Injection verhindern sollen. Die beste Methode
besteht jedoch darin, im Allgemeinen sogenannte Prepared
Statements für SQL-Befehle zu
verwenden. Damit kann man
auf die Textverkettung zum Zusammenbauen von SQL-Befehlen verzichten und eine Änderung der Befehle zur Laufzeit ist
nicht mehr möglich.
Die sicherlich am häufigsten vorhandene und dennoch
am wenigsten verstandene
Schwachstelle nennt sich
Cross-Site Scripting oder abgekürzt XSS. Dabei wird nicht die
Applikation selbst sondern der
Browser eines anderen Anwenders über eine Schwachstelle
in der Applikation angegriffen.
Grundlage dafür ist Skript-Code,
zumeist Javascript, der einem
Anwender wie ein Teil der Web-
IV
site angezeigt und dabei vom
Browser des Anwenders interpretiert wird. Die Auswirkungen
reichen vom Vortäuschen von
Seiteninhalten über das Stehlen
von Zugangsdaten oder Session-IDs bis hin zur Kontrollübernahme des Browsers durch
einen Angreifer.
Die verwundbare Webapplikation, die den Angriff auf ahnungslose Anwender ermöglicht,
ist zunächst nur ein Vermittler.
Erst wenn ein Angreifer die
Session-ID eines anderen legitimen und authentifizierten Benutzers per XSS stiehlt, kann er
in einem zweiten Schritt auf
Bereiche der Applikation zugreifen, die eigentlich nur für
authentifizierte Benutzer erreichbar sind. Damit wird XSS
zu einer Schwachstelle, mit der
man auch starke Authentifizierung und Zugriffsbeschränkungen bei einer Webapplikation
umgehen kann.
In der trivialsten, aber eher
seltenen Form von XSS bietet
die Applikation dem Anwender
eine Eingabemöglichkeit wie bei
einem Gästebuch. Er kann Text
eingeben, der auf dem Server
gespeichert wird und den andere Benutzer später wieder angezeigt bekommen. Ist es bei
dieser Texteingabe möglich,
HTML-Tags und vor allem das
<script>-Tag einzugeben, kann
ein Benutzer Javascript-Code
zwischen <script> und
</script> in seinem Text einbetten. Jeder Benutzer, der den
Text später ansieht, erhielte
dann nicht die Tags und den
Code angezeigt, sondern sein
Browser würde den JavascriptCode ausführen. Man spricht
deshalb von persistentem XSS
oder auch stored XSS.
Sehr viel häufiger kommt
nicht persistentes XSS vor. Dabei speichert die Applikation
den Skript-Code nicht, sondern
diesen muss das Opfer unbemerkt selbst als Parameter an
einen Link übergeben. Der Angreifer benötigt dazu beispielsweise ein Eingabefeld oder
einen URL-Parameter, der in
einer Folgeseite ungefiltert wieder ausgegeben wird. Das
klassische Beispiel hierfür sind
Suchfunktionen innerhalb von
Webseiten, bei denen der Benutzer einen Suchbegriff wie
„XYZ“ eingeben kann und die
Website danach die Ergebnisse
mit dem Hinweis „Ihre Suche
nach XYZ ergab folgende Treffer“ beantwortet.
Das Opfer als Täter
Da man solche Suchmasken
nicht von Hand ausfüllen
muss, sondern auch der direkte Aufruf des Skripts mit dem
Suchbegriff als URL-Parameter
möglich ist, könnte ein Angreifer einen Link auf die Suchseite mit Javascript zwischen
<script> und </script> als
Parameter verwenden. Diesen
Link schickt er in einer gespooften Mail an ahnungslose
Benutzer der Website, die
dann beim Klick auf den Link
zwar auf der echten Website
landen, dabei aber den Javascript-Code zurückbekommen.
Selbst vorsichtige Benutzer,
die vor dem Klicken auf einen
Link nachsehen, auf welchen
Server der Link wirklich verweist, würden erkennen, dass
der Link auf den echten Server
zeigt. Der angehängte SkriptCode kann durch geschickte
Schreibweise unauffällig gemacht werden.
Zum Erkennen von XSS bieten sich die genannten Webapplikations-Scanner an. Bei
ihrem Einsatz versucht die Software jedoch nicht, Fehlermeldungen zu provozieren. Stattdessen setzt sie automatisch
Text zwischen Tags wie
<script> und </script> in alle
Eingabefelder und Parameter
und prüft danach, ob die Eingabe ungefiltert in einer Ausgabeseite wieder auftaucht. Entsprechend einfach ließe sich XSS
verhindern. Entweder bei der
Eingabeverarbeitung oder der
Aufbereitung von Ausgabeseiten
oder im Idealfall sogar an beiden Stellen müsste Textfilterung
verhindern, dass entsprechende Tags in Eingaben oder Parametern vorkommen. Da dies
in der Praxis jedoch nicht so
einfach umzusetzen ist oder
immer wieder Parameter vergessen werden, geht der
Trend heute zu zusätzlichem
Schutz durch Web Application
Firewalls.
In letzter Zeit bauen immer
mehr Serverbetreiber asynchrone Funktionen mit Ajax oder
mit Techniken, die unter dem
Schlagwort Web 2.0 laufen, in
ihre Webapplikationen ein. Naturgemäß stellt sich die Frage,
welche Auswirkungen diese
neuen Funktionen auf die Sicherheit haben. Dabei ist recht
schnell festzustellen, dass die
Angriffsmethoden eigentlich
gleich bleiben, dass jedoch die
Möglichkeiten, Fehler zu machen, zunehmen. Prinzipiell
lässt sich feststellen, dass
durch Ajax beziehungsweise
Web-2.0-Techniken zusätzliche Funktionen auf den Client
verlagert werden, wodurch
auch ein Angreifer mehr Einfluss auf den Ablauf nehmen
kann. Die Angriffsfläche wird
also größer.
So gibt es beispielsweise
Applikationen, die wie bisher
auf SQL-Datenbanken im Backend zugreifen, die jedoch jetzt
die SQL-Abfragen auf dem
Client zusammenbauen und
asynchron an den Server senden. Dabei sollte auf den ersten
Blick klar sein, dass das keine
gute Idee ist. Ein Angreifer
kann jetzt so tun, als sei er ein
Client und direkt SQL-Befehle
an den Server senden, ohne
sich um die Tricks und Kniffe
von SQL Injection kümmern zu
müssen. Einfacher kann man
es einem Angreifer fast nicht
machen. In diesem Fall handelt
es sich nicht mehr um SQL Injection, sondern bereits um
„SQL Invitation“.
(sf/ur)
Stefan Strobel
ist Buchautor und
Geschäftsführer des Heilbronner
Beratungsunternehmens
Cirosec.
iX extra 11/2007
SUPERBLADETM
GET THE EDGE
■
Performance mit bis zu 160 Cores in 7 HE
Einsatz von Intel® Xeon® oder AMD Opteron®
Der SuperBlade™ sind optimiert für folgende
Anwendungen: Enterprise, Finanzdienste,
■
Dual- oder QuadCore Prozessoren
Netzteile mit 90%+ Wirkungsgrad
Datenbanken, Datenbank Center, wissenschaftliche
Anwendungen, HPC, Personal Super Computer.
■
■
Weniger Verkabelung
Ethernet- und Infiniband-Switches
■
Sehr gutes Preis-/Leistungsverhältnis
© www.artraction.de, 06/07
■
ServerBlade mit 3.5"
oder 2.5" Festplatten
Infiniband Switch mit
10 externen Anschlüssen
Weitere Informationen über unsere Produkte unter:
www.cpigmbh.de und Hotline 0800-100 82 69
Alle Marken- und Produktbezeichnungen sind Warenzeichen oder eingetragene
Warenzeichen des entsprechenden Unternehmens. Druckfehler, Irrtümer und
Änderungen vorbehalten.
ix1107_x_05_CPI_WH.pdf 1
ix0707_x_000_CPI.indd 1
Gigabit Ethernet Switch mit
10 externen Anschlüssen
Management Modul
zur Überwachung
CPI Computer Partner Handels GmbH
Kapellenstr. 11
D-85622 Feldkirchen
Telefon: (+49)-0 89/96 24 41- 0
Telefax: (+49)-0 89/96 24 41- 33
04.10.2007 15:29:50 Uhr
08.06.2007 12:24:25 Uhr
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite VI
IT-Security
Die Türsteher
Firewalls für Webanwendungen
Das erste Gebot für die Sicherheit von Webanwendungen ist eine sorgfältige Programmierung, die
Schwachstellen vermeidet. Doch selbst dann bleiben
die Applikationen angreifbar und müssen zusätzlich mit
einer Web Application Firewall geschützt werden.
o technisch unterschiedlich
die Angriffe auf Webanwendungen wie Forceful Browsing, SQL Injection, Cross-Site
Scripting oder Parametermanipulation auch sein mögen – sie
werden alle über das HTTP(S)Protokoll zum Webserver beziehungsweise zur Webanwendung
transportiert. Herkömmliche Paketfilter, die heute zum Teil
noch als einzige Schutzmaßnahme vor dem Webserver stehen,
erkennen solche Angriffe auf
Anwendungsebene nicht, denn
sie sind nicht in der Lage, in
die über das HTTP-Protokoll
übertragenen Inhalte hineinzuschauen. Auch das regelmäßige
Patchen des Webservers schützt
leider nicht gegen diese Art von
Angriffen.
Die Ursachen für die
Schwachstellen, die diese Art
von Attacken auf der Anwendungsebene erst möglich machen, sind fast immer Programmier- oder Designfehler bei der
Entwicklung der Webanwendung. Nichts erscheint also
naheliegender als sicher zu
programmieren, um so die
Schwachstellen von vornherein
zu vermeiden. Dazu gehört zum
Beispiel, dass sämtliche Daten,
die an die Anwendung weitergegeben werden, auf „bösartige“
Inhalte überprüft werden. Auf
diese Weise lassen sich etwa
SQL- oder Command-InjectionAngriffe erkennen. Um Parametermanipulationen aufzuspüren,
muss man die Daten zusätzlich
auf Gültigkeit bezüglich ihres
aktuellen Kontextes prüfen.
S
VI
Leider erfordert die sichere
Programmierung ein umfassendes und stets aktuelles Knowhow des Entwicklers im Bereich
der Angriffstechniken auf der
Anwendungsebene. Die Entwicklung eines Filters zur Erkennung bösartiger Benutzereingaben ist komplex und
aufwendig, denn schließlich
muss man alle Angriffsarten in
allen Ausprägungen berücksichtigen – auch dann, wenn sie in
kodierter Form vorliegen. Gleichzeitig muss die Anwendung weiter funktionieren. Der Auftraggeber einer Webanwendung
hat sicherlich kein Verständnis
dafür, wenn ein Anwender in
ein Namensfeld zum Beispiel
O’Brian eingibt und die HTTPAnfrage aufgrund des Hochkommas wegen Verdachts auf SQL
Injection verworfen wird.
Kein Einfluss auf
Fremdcode
Darüber hinaus stellt die sichere
Programmierung keine vollständige Lösung des Problems dar.
Selbst eine optimal programmierte Webanwendung ist
immer noch angreifbar. Der
Grund dafür liegt darin, dass
bei einer Webanwendung stets
Fremdcode zur Ausführung
kommt, auf dessen Qualität der
Entwickler keinen Einfluss hat.
Beispiele für diese Art von
Fremdcode sind Programmbibliotheken Dritter, die man
in den eigenen Code einbindet,
oder die eingesetzten Web- und
Applikationsserverprodukte, bei
denen regelmäßig kritische
Schwachstellen bekannt werden. Außerdem sind die heutigen Webanwendungen häufig
selbst Drittprodukte, beispielsweise Portalanwendungen oder
Webzugriffslösungen für E-Mail.
Aus diesen Gründen empfiehlt es sich für Unternehmen
und Behörden, ihre Webanwendungen durch den Einsatz sogenannter Web Application Firewalls (kurz WAF) vor Angriffen
zu schützen. Eine WAF steht vor
der Webapplikation (siehe Abbildung 1) und prüft jede HTTPAnfrage des Anwenders (oder
Angreifers), bevor sie zur Anwendung gelangt. Erkennt sie
bei der Prüfung einen Angriff,
beispielsweise eine manipulierte
Session-ID oder einen Betriebssystembefehl in einem Formularfeld (Command Injection), leitet sie die Daten nicht weiter,
sondern erzeugt einen Protokolleintrag und liefert eine Fehlerseite an den Anwender aus.
Web Application Firewalls
sind meist als Reverse Proxy in
ein Netzwerk integriert. Das
heißt, sie nehmen stellvertretend für den Webserver jede
HTTP-Anfrage des Anwenders
entgegen, untersuchen sie inhaltlich und bauen dann eine
neue, zweite HTTP-Verbindung
zum von ihnen geschützten
Webserver auf. Der Anwender
merkt nicht, dass er nicht mit
dem Webserver direkt kommu-
niziert. Die meisten WAF-Produkte lassen sich alternativ
auch als Bridge ins Netzwerk
integrieren, ähnlich wie ein
netzwerkbasiertes IntrusionPrevention-System. Im Falle
dieser Integrationsvariante
spricht der Anwender weiterhin
direkt mit dem Webserver; die
WAF sitzt aber im Datenstrom
und holt sich die HTTP-Pakete
heraus, um die darin enthaltenen Daten inhaltlich zu prüfen.
Für geschäftskritische Anwendungen, die meistens auf
sensible Backend-Systeme wie
SAPs R/3 oder Datenbanken im
internen Netzwerk zugreifen
müssen, ist der Einsatz einer
WAF besonders wichtig. Allerdings kommunizieren in solchen
Fällen Anwender und Webserver
typischerweise verschlüsselt
über SSL. Damit ist jedoch die
inhaltliche Analyse des Datenstroms zunächst unmöglich.
WAF-Produkte bieten jedoch die
Möglichkeit, SSL zu terminieren
(Reverse Proxy) beziehungsweise passiv zu entschlüsseln
(Bridge). Aufgrund ihrer Architektur sind moderne Systeme so
leistungsfähig, dass durch die
Entschlüsselung keine spürbaren Performance-Einbußen
entstehen. Die Praxis zeigt
übrigens, dass fast immer die
Webanwendung mit ihren vielen
Transaktionen den Flaschenhals
bildet und nicht die Verarbeitung
durch die WAF.
Webanwendung 1
Webanwendung 2
WAF
Angreifer
Da auch bei sorgfältiger Programmierung
Angriffsmöglichkeiten auf Webanwendungen
bestehen, sollte man sie mit einer vorgeschalteten Web Application Firewall, die alle
HTTP-Anfragen prüft, schützen (Abb. 1).
Webanwendung 3
Webanwendung n
iX extra 11/2007
ix1107_x_07_datsec.indd.pdf 1
ix1107_x_000_datsec.indd 1
04.10.2007 15:29:46 Uhr
01.10.2007 16:34:14 Uhr
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite VIII
IT-Security
Der Schutzmechanismus
einer Web Application Firewall
beruht auf ihrem Verständnis
der von ihr geschützten Webanwendungen mit ihren einzelnen
Seiten, Eingabefeldern, Cookies
und Statuswerten. All dies befähigt sie, die aufgerufenen URLs
sowie die Parameter in GETund POST-Requests zu kontrollieren und dabei Angriffe zu erkennen und zu blockieren.
Woher weiß aber die Firewall,
welche URLs zur Webanwendung gehören, ob Benutzereingaben gutartig sind oder ob
beispielsweise eine Session-ID
manipuliert wurde?
Kontrolle der
aufgerufenen URLs
Eine WAF muss gewährleisten,
dass nur URLs aufgerufen werden können, die zur Anwendung
gehören. Der Zugriff auf alle anderen Ressourcen, die sich
unterhalb der Webserver-Wurzel
befinden, zum Beispiel DLLs,
alte Dateiversionen (.old, .bak,
et cetera) oder gar andere,
interne Webanwendungen muss
verhindert werden. Allein durch
diese Kontrolle der URL-Aufrufe
lässt sich bereits ein großer Teil
des Angriffspotenzials vom
Webserver fernhalten. Durch
den Whitelist-Ansatz sind nur
noch die URLs aufrufbar, die zur
Anwendung gehören, alle anderen Zugriffe sind damit automatisch verboten.
Es stellt sich die Frage, wie
eine WAF unterscheiden kann,
welche URLs zur Anwendung
gehören und welche nicht. Die
am Markt verfügbaren Produkte
nutzen im Wesentlichen zwei
Techniken für das Lernen der erlaubten URLs: dynamisches Lernen zur Laufzeit sowie statisches
vor Aktivierung der WAF-Policy.
Verwendet die WAF die
Technik des dynamischen Lernens, so „merkt“ sie sich die erlaubten URLs automatisch zur
Laufzeit, also während der Anwender surft, durch Analyse der
vom Webserver an den Anwender gesendeten Webseiten. Im
Idealfall muss der Administrator
nur einmal die gewünschten
Einstiegsseiten der Webanwendung als erlaubte URLs definieren. Anschließend sucht die
WAF zur Laufzeit aus jeder angeforderten Seite die im HTMLCode enthaltenen Links (<a href
…>) und Formular-Aktionen
(<form action …>) und fügt sie
automatisch einer Liste der für
diesen Anwender erlaubten
URLs hinzu (siehe Abbildung 2).
Beim dynamischen Lernen kann
der Anwender also stets nur die
bis zum jeweiligen Zeitpunkt gelernten URLs aufrufen. Es gilt
das Motto: Alles was verlinkt ist,
gehört zur Anwendung und darf
daher aufgerufen werden.
In der Regel verwaltet eine
dynamisch lernende WAF für
jeden Anwender eine individuelle
dynamische Policy, die die meis-
ten Produkte im Hauptspeicher
pflegen. Um die HTTP-Anfrage
eines Anwenders „seiner“ Policy
zuzuordnen, stellt die WAF ein
anwenderspezifisches Cookie
aus, das der Browser des Anwenders bei jeder HTTP-Anfrage
wieder mit zurückschickt und
das die WAF anschließend auswertet. Die Webanwendung bekommt von alledem nichts mit.
Nach Ablauf eines frei definierbaren Timeouts, nach dem die
WAF vom Anwender keine
HTTP-Anfrage mehr gesehen
hat, wird die dynamische Policy
für diesen Anwender gelöscht.
Beim nächsten Mal muss er
beim Aufruf der Anwendung
wieder über die definierten
Startseiten einsteigen.
Statisches versus
dynamisches Lernen
Beim statischen Lernen hingegen definiert der Administrator
alle erlaubten URLs im Vorfeld,
also vor Produktivschaltung der
WAF-Policy. Was zunächst als
aufwendig zu konfigurieren
klingt, erweist sich in der Praxis
jedoch als recht einfach und ist
häufig sogar die bevorzugte
Lernmethode: Die meisten WAFProdukte unterstützen die Verwendung von Wildcards oder
gar von regulären Ausdrücken
bei der Definition der URLs (beispielsweise /[a-z].html) und
beinhalten vor allem einen Lernmodus. Dieser zeichnet für eine
Session 1357 Links:
2b /products/index.html
/services/index.html
/cgi/feedback.pl
GET / 1a
GET / 1b
2c
Startseite: / start.html
2a
Startseite: / start.html
Cookie: Session 1357
Anwender
3a
GET /msadc/msadcs.dll
WAF
Webserver
Dynamisches Lernen zur Laufzeit: Die WAF analysiert nach dem Aufrufen einer erlaubten
Startseite (1a, 1b) alle vom Webserver zurückgelieferten Webseiten (2a) und fügt deren URLs
der dynamischen Policy hinzu (2c). Nicht gelernte URLs blockiert sie (3a) (Abb. 2).
VIII
bestimmte Zeit alle URLs auf,
die von einer vertrauenswürdigen IP-Adresse angefordert
werden. Unter Verwendung
eines Crawlers, der ausgehend
von der Startseite alle Links
automatisch verfolgt, lässt sich
sehr schnell eine komplette
Liste aller URLs aufzeichnen.
Das dynamische Lernen zur
Laufzeit erscheint im Vergleich
zum statischen Lernen im ersten Augenblick als die elegantere Lernmethode, müssen doch
nur einmalig die gültigen Startseiten definiert werden, und
alles Weitere lernt die WAF
automatisch. In der Praxis lässt
sich das dynamische Lernen
aus zwei Gründen jedoch leider
nicht immer anwenden.
Zum einen gibt es viele
Webanwendungen, typischerweise Nachrichtenseiten wie
www.heise.de, bei denen jede
Seite eine gültige Startseite sein
kann. Bei solchen inhalteorientierten Webanwendungen müsste der Administrator in der WAF
jede Seite – und davon existieren meist sehr viele – als gültige
Startseite hinterlegen, sodass
letzten Endes eine statische Policy entsteht. Für andere Arten
von Webanwendungen, beispielsweise bei workfloworientierten E-Business-Anwendungen, eignet sich der dynamische
Ansatz hingegen optimal: Hier
ist es meist ausdrücklich gewünscht, dass der Anwender
von einer definierten Startseite
aus anfängt und sich von dort
Seite für Seite durch die Anwendung durcharbeitet.
Eine weiteres K.o.-Kriterium
für die Nutzung des dynamischen Lernmodus kann die extensive Verwendung von Javascript im HTML-Code der
Anwendung sein. Javascript ist
für eine WAF so lange kein Problem, wie der Javascript-Code
beispielsweise Plausibilitätsprüfungen bei Eingaben in ein Formularfeld vornimmt, etwa prüft,
ob in ein Postleitzahlenfeld
genau fünf Ziffern eingegeben
wurden. Sobald Javascript aber
auch dazu eingesetzt wird, auf
iX extra 11/2007
Warum vertrauen mehr als
1 Million Kunden unseren
Microsoft® SQL Server™ Lösungen?
Die maßgeschneiderte Lösung
Dell™ und Microsoft® arbeiten eng zusammen, um Ihrem Unternehmen eine perfekt integrierte,
vorkonfigurierte End-to-End Lösung anbieten zu können - optimal und individuell zugeschnitten
auf Ihre speziellen Anforderungen!
Ihre Vorteile auf einen Blick
Microsoft® SQL Server™ 2005 Lösungen von Dell™ wurden von Experten getestet und geprüft. Das Ergebnis ist eine hochwertige,
skalierbare und verlässliche Businesslösung, die Ihnen helfen kann, Risiken zu minimieren und Kosten zu reduzieren - und dabei eine
herausragende Leistung liefert.
Dell™ Lösungen bieten Ihnen eine ausgewogene Kombination aus Server- und Speichersystemen, Microsoft® Applikationen und Dell™
Professional Services (DPS) - alles aus einer Hand.
Die auf Dell™ basierten Microsoft® SQL Server™ 2005 Lösungen sind laut TCP-C Benchmark* Spitzenreiter im Preis-Leistungs-Vergleich.
Beginnen Sie jetzt!
Wenden Sie sich an unsere Kundenbetreuer,
die Ihnen gerne Ihre individuelle IT-Lösung
zusammenstellen.
0800 / 2 17 33 55
Mo - Fr 8 - 19 Uhr, Sa 10 - 16 Uhr
Bundesweit zum Nulltarif
Sie benötigen weitere Informationen zu unseren Datenbank-Lösungen?
Besuchen Sie uns unter www.dell.de/sql
Diese Werbung richtet sich an kleine und mittelständische Unternehmen. Die gesetzlichen Verbraucherschutzregelungen bleiben unverändert wirksam. Es gelten die allgemeinen Geschäftsbedingungen
der Dell GmbH. Angebot kann von Abbildung abweichen. Änderungen, Druckfehler und Irrtümer vorbehalten. Dell, das Dell Logo, PowerEdge und PowerVault sind Marken der Dell Inc. Microsoft, Windows, SQL Server,
Windows Vista und das Windows Vista-Logo sind eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder in anderen Ländern. *Basierend auf Transaction Processing Performance Council
(TPC) - www.tpc.org - Top Ten TPC-C by Price/Performance, Version 5 Results, 30-Aug-2007. Dell GmbH, Unterschweinstiege 10, D-60549 Frankfurt am Main.
60802_IX Extra Beihefter_200x2801 1
ix1107_x_09_Dell.pdf 1
04.10.2007 15:29:53 Uhr
21/09/2007 12:18:36
ix.1107.x.1-16.neu2.EP
10.10.2007
11:59 Uhr
Seite X
IT-Security
dem Client zur Laufzeit die in
der Seite verlinkten URLs zusammenzusetzen, kommt es
unter Umständen zu Schwierigkeiten. Um solche URLs dynamisch zu lernen, müsste die
WAF nämlich in der Lage sein,
Javascript zu analysieren, damit
sie die URLs berechnen kann.
Das ist ohne Weiteres machbar,
falls die URL im Skript-Code als
Ganzes enthalten ist. Wird sie
hingegen zum Beispiel mit
String-Verkettungen „zusammengebastelt“, eventuell sogar
noch unter Verwendung von Variablen, ist die WAF nicht mehr
in der Lage, die daraus resultierende URL zu berechnen. In solchen Fällen, wie sie manchmal
bei Navigationsleisten anzutreffen sind, muss der Administrator
die URLs analog zur Einstiegsseite als statische Ausnahmeregel in der WAF konfigurieren.
In der Praxis wird aufgrund
der beschriebenen möglichen
Seiteneffekte des dynamischen
Lernens daher häufig eine statische WAF-Policy definiert und
das dynamische Lernen nur für
das Lernen von Formular-Aktionen aktiviert, aber nicht für
das Lernen der sonstigen verlinkten URLs.
Übermittelte
Parameter überprüfen
Das größte Angriffspotenzial auf
Webanwendungen besteht in Injection-Angriffen (SQL Injection,
Command Injection, Cross-Site
Scripting et cetera), bei denen
der Angreifer die jeweilige Angriffssyntax in die Felder von
Webformularen eingibt, sowie in
der Manipulation der Werte von
„Read-Only“-Parametern wie
Session-IDs, Hidden-Feldern
oder Auswahlmöglichkeiten bei
Radio Buttons in Webformularen.
Eine zentrale Aufgabe einer
WAF ist daher die Kontrolle aller
Parameter, die in den HTTP-Anfragen an die Webanwendung
übermittelt werden. Im Fall der
Read-Only-Parameter muss sie
gewährleisten, dass der Anwender die Werte nicht verändert
X
hat, beispielsweise dass die
Session-ID nicht von 123456 auf
123457 geändert wurde. Um Injection-Angriffen vorzubeugen,
muss die Firewall alle Benutzereingaben in Webformularen
sowie alle sonstigen Parameter
hinsichtlich ihres Wertebereichs
überprüfen. Zusätzlich muss sie
die Länge der Parameterwerte
kontrollieren, um der Ausnutzung etwaiger PufferüberlaufSchwachstellen vorzubeugen.
Fast alle WAF-Produkte bieten die Möglichkeit, Wert und
Länge jedes einzelnen Parameters der Webanwendung individuell zu konfigurieren. In der
Praxis ist diese Vorgehensweise
jedoch selbst bei einer kleinen
Anwendung, die unter Umständen auch noch häufig geändert
wird, nicht mit einem vertretbaren Konfigurationsaufwand zu
betreiben. Aus diesem Grund
aktivieren Anwender stattdessen
meist die auf Blacklists basierenden Filtermodule der Firewall, die bei guten Produkten für
alle Arten von Injection-Angriffen
mitgeliefert werden. Die
schwarzen Listen enthalten
keine primitiven Muster wie ein
<script>-Tag (Cross-Site Scripting) oder ein Hochkomma (SQL
Injection), sondern echte Angriffssyntax, zum Beispiel „SQLSonderzeichen gefolgt von
einem SQL-Befehl“. Auf diese
Weise sind bei einer WAF im
Gegensatz zu Technologien wie
Intrusion-Detection-/IntrusionPrevention-Systemen kaum
False Positives zu beobachten.
Die Blacklist-basierten Überprüfungen erfolgen standardmäßig für alle Parameter einer Anwendung. Das heißt, es besteht
keine Notwendigkeit, einzelne
Parameter zu konfigurieren. Bei
einem guten Produkt ist es freilich möglich, einzelne Felder
oder Formulare von der Überprüfung auszunehmen und
stattdessen etwa den Wertebereich des Parameters in Form
einer Whitelist zu konfigurieren.
Neben der Kontrolle der Benutzereingaben muss die Integrität der Read-Only-Parameter
gewährleistet sein. Hierfür ist es
erforderlich, dass die WAF die
Benutzer-Session zur Laufzeit
verfolgt und sich den Wert eines
Read-Only-Parameters merkt,
sobald dieser das erste Mal an
den Anwender übermittelt wird.
Dabei kommt wieder das oben
beschriebene Konzept des dynamischen Lernens zur Laufzeit
zur Anwendung: Aus den HTMLSeiten, die der Webserver an
den Anwender ausliefert, „extrahiert“ die WAF nicht nur die
verlinkten URLs (Suche nach
<a href …>), sondern auch die
darin enthaltenen Read-OnlyParameter, also beispielsweise
die Auswahlmöglichkeiten bei
einem Radio Button (Suche nach
<input type=radio …>). Bei den
nachfolgenden HTTP-Anfragen,
in denen die Parameter wieder
übermittelt werden, prüft die
WAF dann, ob die Werte noch
dieselben sind.
(ur)
Steffen Gundel
ist Mitgründer der cirosec GmbH
in Heilbronn und Experte im
Bereich Applikationssicherheit.
WEB APPLICATION FIREWALLS UND
SCHWACHSTELLENSCANNER
Die Übersicht erhebt keinen Anspruch auf Vollständigkeit.
Hersteller
Produkt
Web Application Firewalls
Website
art of defence
hyperguard
Breach
WebDefend/ModSecurity
Cisco
AVS 3100 Application Velocity System
Citrix
Citrix Application Firewall
DenyAll
rWeb
F5
TrafficShield, Magnifier
Imperva
SecureSphere
NetContinuum
NC-1100, NC-2000
Protegrity
Defiance TMS
United Security Providers Secure Entry Server
Visonys
Airlock
Webschwachstellen-Scanner
www.artofdefence.com
www.breach.com
www.cisco.com
www.citrix.com
www.denyall.com
www.f5.com
www.imperva.com
www.netcontinuum.com
www.protegrity.com
www.united-security-providers.ch
www.visonys.com
Acunetix
Cenzic
HP
IBM
Mayflower
N-Stalker
Syhunt
www.acunetix.de
www.cenzic.com
www.hp.com
www.watchfire.com
https://chorizo-scanner.com
www.nstalker.com
www.syhunt.com
Acunetix
Hailstorm
WebInspect
Appscan
Chorizo-Scanner
N-Stalker
Sandcat
iX extra 11/2007
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite XI
epq070778_9140_93x280.qxp
11.09.2007
11:26 Uhr
Seite 1
IT-Security
Gekonnte
Handarbeit
Einbruchssimulation mit Proxy
und Plug-ins
Kraft. Können.
Ausdauer.
Ihre 19“ IT hat hohe Ansprüche.
Die Powerware 9140 USV erfüllt sie.
Die größte Gefahr für die Sicherheit von
Webanwendungen liegt in den Lücken, die durch
Fehler in der Entwicklung zustande kommen. Um
diese aufzudecken, lassen sich Scanner einsetzen.
Effizienter noch sind die Penetrationstests, die mithilfe
von Proxies oder Browser-Plug-ins, aber vor allem in
Handarbeit über fingierte Angriffe die Schwachstellen
offenlegen.
Standardsoftware oder auch
sonst weit verbreitete Anwendungen werden in regelmäßigen Abständen auf Sicherheitsprobleme untersucht. Denn die
negative Publicity durch die
Veröffentlichung einer entdeckten Lücke ist alles andere als
ein erwünschter Werbeeffekt.
Hinzu kommt, dass sich die auf
diese Weise gefundenen Exploits auf dem Markt direkt
versilbern lassen. Webapplikationen aber sind in vielen Fällen Eigenentwicklungen und
finden in diesem Prozess
kaum Beachtung. Deswegen
gibt es kaum eine Webanwendung, in der der Interessierte
keine Fehler beziehungsweise
Schwachstellen findet. Umso
wichtiger ist es, diese Anwendungen mit Scannern zu
untersuchen. Diese reichen jedoch nicht aus, um alle Fehler
zu finden. Deshalb sollte man
ergänzend Penetrationstests
durchführen.
Schwachstellen-Penetrationstestern bieten sich einige
Werkzeuge zur Automatisierung ihrer Aktionen an. Diese
Tools sind hervorragend für
die Vereinfachung des ersten
Schritts dieser Aufgabe geeignet, doch die wirkliche
iX extra 11/2007
Überprüfung muss immer in
Handarbeit erfolgen.
Ziel einer solchen Überprüfung ist es, die Sicherheit in
der Kommunikation zwischen
der Oberfläche der Anwendung und dem Server im Backend zu gewährleisten. Jede
Anwendung bietet dem Benutzer eine Oberfläche, die sich
als HTML-Format darstellt,
aber im Hintergrund mit unterschiedlichen Techniken mit
dem Server kommuniziert. In
der einfacheren Welt vor vielen Jahren wurde diese Kommunikation über das Common
Gateway Interface (CGI) abgewickelt. Es galten unkomplizierte Regeln, jeden Mausklick
setzte der Browser in einen
Request um und übertrug die
Daten per POST oder GET.
Dank neuer Techniken wie
Javascript, Ajax, Webservices
und Flash wird dem Browser
die früher nur im Server enthaltene API präsentiert. Diese
Tatsache macht das Testen
nicht einfacher, aber wenigstens interessanter.
Bei einem Penetrationstest
hat der Tester die Aufgabe,
unabhängig von der vorhandenen Technik die übertragenen Daten so zu verändern,
Kraft
7,5 – 10 kVA saubere, kontinuierliche Leistung in nur 6 HE
Können
Einfachste Installation, Wartung
und Management
Ausdauer
Sicherer Betrieb schützt Ihre
wertvollen IT-Investitionen über
viele Jahre hinweg
In Racks mit mittlerer bis hoher
Leistungsdichte liefert die Doppelwandler-USV Powerware 9140
höchste Sicherheit – keinen Stress.
Mehr unter:
www.powerware.de
Tel. +49 (0) 7841 604-0
…mit Sicherheit
U S V- U N D D C - S Y S T E M E
ix.1107.x.1-16
27.09.2007
IT-Sicherheit
Ihr Spezialist für
die Sicherheit von
Web-Applikationen
• Sicherheitsüberprüfungen / Audits
• Beratung zu Architekturen,
Konzepten und Entwicklungsrichtlinien
• Schutz von WebApplikationen mit
Web-ApplikationsFirewalls (WAFs)
12:13 Uhr
Seite XII
IT-Security
dass potenzielle Fehler aufgespürt und ausgenutzt werden
können. Jedes Formular, jedes
Datenfeld, auch die verdeckten und im Hintergrund von
beispielsweise Javascript
inklusive Ajax übermittelten,
nehmen ihren Weg durch das
World Wide Web. Dies vereinfacht die Aufgabe des Testers,
denn alle Daten werden im
Klartext übertragen, und die
Technik zum Abfangen dieser
Daten setzt ohnehin schon
jedes Unternehmen ein – denn
nichts anderes macht ein
Proxy. So ist es naheliegend,
auch die Penetrationstests
durch einen Proxy zu unterstützen.
Das OWASP (Open Web
Application Security Project)
bietet den WebScarab an, der
durch seine vielen Funktionen
Tests gut unterstützt. Die
wichtigste Funktion ist die
komplette Aufzeichnung der
Requests. So kann der Tester
die Webanwendung einfach
beobachten und eine Liste
aller genutzten Parameter und
der in diesen üblicherweise
übertragenen Daten erstellen.
Im nächsten Schritt verändert
er diese Daten so, dass der
Server Dinge tut, die so vom
Programmierer nicht beabsichtigt waren.
Proxy als Werkzeug
Eine vom Hacker gewünschte
Reaktion sind Fehlermeldungen, die interne Daten offenlegen. Eine andere ist die
Ausführung von Shell- oder
• Trainings
Hacking Extrem
Web-Applikationen
Lernen Sie die Vorgehensweise
der Angreifer sowie bekannte
und weniger bekannte Angriffstechniken auf Web-Applikationen
in einem sehr praxisorientierten
Stil kennen! Nur so können Sie
Ihre IT-Infrastruktur vor Angriffen
schützen.
06.11. - 08.11.2007 Hamburg
04.12. - 06.12.2007 München
Wiederholbarkeit
erwünscht
Ein Zugriff auf www.heise.de, aufgezeichnet vom WebScarab.
Gut zu sehen die Anfragen an Werbeanbieter und WebseitenTracker (Abb. 1)
Angriffe und Gegenmaßnahmen
für Web-Applikationen und
E-Business-Systeme
In diesem Training werden
Angriffsarten auf WebApplikationen & E-BusinessSysteme anhand zahlreicher,
praxisnaher Beispiele demonstriert. Am zweiten Tag stellen
wir ausführlich innovative
Lösungsansätze vor.
20.11. - 21.11.2007 Köln
cirosec GmbH
Edisonstraße 21
74076 Heilbronn
Telefon (0 71 31) 5 94 55-0
www.cirosec.de
SQL-Code. Details zu den
möglichen Fehlern in Webapplikationen beschreibt der
Artikel auf Seite I.
Der Tester kann die Requests im Proxy auf zwei Arten
verändern. Bei der ersten Methode stoppt der Proxy die Requests vor der Weiterleitung an
den Server. Auf der Oberfläche
sieht der Tester nun den Request inklusive aller Parameter
und deren Daten. Dort kann er
jeden angezeigten Wert editieren und danach den gesamten
Request absenden. Der Server
erhält den Request, als ob er
vom Browser direkt gesendet
worden wäre und kann keinen
Unterschied feststellen. Der
Vorteil hierbei besteht darin,
dass ein Penetrationstester in
den Ablauf einer Session gezielt eingreifen kann, wenn er
beispielsweise ein bestimmtes
Element eines Vorgangs als
Schwachstelle identifiziert hat,
der Server jedoch die Requests
nur in einer bestimmten Reihenfolge akzeptiert.
Manuelle Request-Bearbeitung im WebScarab mit einem
zugefügten Header (Abb. 2)
Bei der zweiten Methode nutzt
der Schwachstellentester die
gespeicherten Daten der bereits
gesendeten Requests. Der
Proxy wiederum stellt die Daten
in seiner Oberfläche zur Bearbeitung zur Verfügung. Auch in
diesem Fall schickt der Tester
den Request mit einem Klick
ab. Der Unterschied und gleichzeitig Vorteil dieser Methode in
bestimmten Situationen ist die
Möglichkeit, den Vorgang beliebig oft zu wiederholen. Mit der
ersten Methode lässt sich pro
Klick im Browser nur ein Request bearbeiten, während mit
dieser Methode diese Einschränkung fällt, denn der
Proxy arbeitet autark und ist
nicht davon abhängig, einen
neuen Request vom Browser zu
erhalten.
Somit kann der Tester
schnell viele Variationen der
geänderten Daten ausprobieiX extra 11/2007
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite XIII
_1I2hKalenderNetze.qxp
28.09.2007
13:48 Uhr
Seite 1
IT-Security
eMedia
Fun-Shop
Anzeige der Query-Strings von www.heise.de in Sleuth
(Abb. 3)
ren. Der Proxy zeigt ihm dafür
eine Antwort vom Server im
Text- oder HTML-Format an.
In dieser Hinsicht lässt sich
das Vorgehen am ehesten mit
der Arbeit von Webanwendungs-Scannern vergleichen:
Auch diese erzeugen Requests mit jeweils leicht veränderten Daten und schicken
diese an den Server, um danach die Ergebnisse auszuwerten. WebScarab wie auch
die anderen PenetrationstestProxies bieten dementsprechend einen ähnlichen Funktionsumfang wie die Scanner
und unterstützen den Tester
mit Features wie Fuzzing
(das Erzeugen von zufälligen
Daten, die über Eingabeschnittstellen eines Programms verarbeitet werden),
Session-ID-Analyse und je
nach Produkt auch selbst geschriebenen Plug-ins.
enthaltenen. Der Zugriff auf die
Header, die an den Server gesendet werden, gestaltet sich
dabei schwieriger.
Zum Hacken ist der WebDeveloper auch nur bedingt geeignet, kann aber in manchen
Tests nützliche Dienste leisten.
Anders sieht es bei Sleuth aus.
Die Software stellt eine Mischform zwischen Proxy und Plugin dar, kann also HTML im
Browser bearbeiten und gleichzeitig auch als Proxy mit Automatisierung, Fuzzing und Request-Interception agieren. Der
Nachteil der Mischform ist die
unübersichtliche Darstellung der
Requests und die Abhängigkeit
vom Internet Explorer. Der Vorteil jedoch liegt in der übersichtlichen Darstellung der Daten der
im Browser angezeigten HTMLSeite und in der eingebauten
Authentifizierung.
Fazit
Hilfreiche Browser
Plug-ins
Eine dritte Art der RequestBearbeitung arbeitet mit
Browser-Plug-ins, die es für
den Internet Explorer in Form
von Sleuth von www.sand
sprite.com oder mit dem
WebDeveloper von Chris Pederick für den Firefox gibt.
Über die Plug-ins erhält der
Tester einen Zugriff auf die
HTML-Ergebnisse, während
sie der Browser darstellt. Auch
in diesem Fall kann er alle
Werte verändern, allerdings nur
die in der HTML-Darstellung
Durch schlanke und funktionale Werkzeuge kann ein Test
einer Webanwendung erfolgreicher und schneller durchgeführt werden. Allerdings ist der
Erfolg stark von der Erfahrung
des Testers abhängig, da jede
Webapplikation unterschiedliche Lücken hat, die sich teilweise an überraschenden
Stellen in der Request-Verarbeitung verstecken.
(sf/js)
Christoph Puppe
ist Security Consultant bei der
HiSolutions AG in Berlin und
seit mehreren Jahren als
Berater tätig.
Der c’t Kalender 2008
Die besten Illustrationen aus der c’t
DIN A3, quer, 26 Kalenderblätter, 4-farbig
Best.-Nr.: 77759
Preis: 14,80 €
Ein tragbares „Netzhemd“
T-Shirt „heise Netze“, schwarz, 100% gekämmte Baumwolle,
ca. 190 g/m, Nackenband, Doppelnaht an den Ärmeln und am Abschluss.
Größe M
Größe L
Größe XL
Größe XXL
Best.Nr.: 77731
Best.Nr.: 77732
Best.Nr.: 77733
Best.Nr.: 77734
Preis: jeweils 9,80 €
Bestellung
eMedia GmbH
Bissendorfer Straße 8
D-30625 Hannover
Telefon: +49 [0]511 53 72 95
Fax: +49 [0]511 5352-147
[email protected]
Preisänderung/Irrtum/Ausverkauf vorbehalten. Alle Preise inkl. MwSt.
iX extra 11/2007
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite XIV
IT-Security
Meine Identität
gehört mir
Identity-Management in Zeiten von
Webservices und Web 2.0
Infolge der Öffnung der bislang abgeschotteten
Unternehmensnetzwerke und der Verbreitung von
Webservices rückt das Thema Identitäts- und
Zugriffskontrolle noch mehr in den Mittelpunkt. Hier
zeichnet sich ein grundlegender Wandel ab: Identity
2.0 soll dem Benutzer die Kontrolle über seine Daten
zurückgeben. Die Grundlage bilden zwei ähnliche
Systeme, OpenID und CardSpace.
etztlich geht es bei IT-Sicherheit immer darum zu
gewährleisten, dass nur bestimmte Personen – in ihrer
digitalen oder beim physischen Zugang realen Identität
– bestimmte Dinge mit Systemen und den darauf laufenden Anwendungen machen
dürfen. Die letzten Jahre
haben gezeigt, dass Lösungen, die keine Rücksicht auf
die Frage der digitalen Identität nehmen, im Grunde nur
Notlösungen sind.
Nirgendwo wird das deutlicher als bei Webservices.
Kaum ein Thema hat die IT so
verändert wie die Öffnung einst
in sich geschlossener IT-Welten. Heute geht es nicht mehr
darum, das Unternehmen nach
außen über einen Perimeterschutz – also an der Netzwerkgrenze – abzuschotten. In der
heutigen Welt soll vielmehr der
Zugang auf IT-Ressourcen von
außen erleichtert werden –
allerdings nur für ganz bestimmte Personen. Und die sollen auch nur ganz bestimmte
Dinge tun dürfen. Dabei will
man im Grunde zwei Dinge vereinen, die im Gegensatz zueinander stehen: Öffnung und
Kontrolle. Wer die digitalen
L
Identitäten seiner Kunden, Lieferanten oder auch Mitarbeiter
nicht im Griff hat, geht ein
hohes Risiko ein.
Der Kunde hat ebenfalls
zweigeteilte Interessen: Er
möchte einerseits schnell und
einfach auf Onlineinhalte zugreifen können, andererseits
aber seine Privatsphäre gewahrt wissen. Je mehr persönliche Daten er im Zuge einer
Shoppingtour im Internet preisgeben muss, desto mehr ver-
liert er mit der Zeit die Kontrolle
über das, was die Anbieter von
ihm wissen. Im Kampf um die
informationelle Selbstbestimmung, immerhin ein zumindest
in Europa hochrangiges Rechtsgut, ist der Nutzer heute weitgehend der Unterlegene.
Ein Grund dafür ist, dass
erstaunlich viele Lösungen die
Sicherheit heute noch ausschließlich auf der Systemebene angehen, also die Identität
des Benutzers beispielsweise
mit dessen IP-Adresse gleichsetzen. Das beginnt bei der
Paketfilterung und geht bis hin
zu Network-Access-ControlLösungen oder Client-Management-Produkten, die zwar Systeme, aber keine individuellen
Benutzer kennen.
Ohne Identität
geht nichts
Bei der Kontrolle des Netzwerkzugangs kommt die Identität
des Benutzers stärker ins Spiel.
Unterschiedliche Mitarbeiter
müssen meist auch auf unterschiedliche Anwendungen zugreifen können, um ihre Aufgaben zu erfüllen, und manchmal
gelten dabei überdies unterschiedliche Regeln. Das gilt erst
recht, wenn Externe auf das
Unternehmensnetzwerk zugrei-
Relying Parties
A
B
C
Policy
1) Get security token
requirements
Identity Providers
4) Present
security token
X
Y
Z
Security
Token
Application
InfoCard
Information Card 1
3) Get
security
token
Security
Token
Information Card 2
Information Card 3
2) Select desired identity
by choosing an information card
Kehrtwende: Anders als bei früheren Versuchen setzt
Microsoft bei seinem mit Vista vorgestellten CardSpaceModell, das auf verschiedenen „Visitenkarten” beruht, auf die
Kontrolle und Hoheit des Nutzers über seine eigenen Daten –
ohne Einwilligung geht nichts.
iX extra 11/2007
ix1107_x_000_qskills.indd
x1107_x_000_qskills.indd 1
28.09.2007 17:43:08 Uhr
ix.1107.x.1-16
27.09.2007
12:13 Uhr
Seite XV
IT-Security
fen sollen. Und will ein Kunde
etwas bestellen, bezahlen und
an seine Adresse geliefert bekommen, geht es nicht ohne
Kenntnis seiner Identität.
Sicherheit, das wird dadurch
klar, ist nur über erfolgreiches
Identitätsmanagement zu
haben. Mehr noch: Durchgängige Sicherheitskonzepte vom
Perimeter bis zu den Anwendungen verlangen geradezu
eine durchgängige Sicht auf die
Identität. Sicherheitslösungen
müssen also zunehmend auf
vorhandene Verzeichnisse zugreifen können – oder auf virtuelle Verzeichnisdienste, die
dann auf Verzeichnisse mit
Kunden, Partnern oder Mitarbeitern verweisen und so eine virtuelle Gesamtsicht schaffen.
Das Hauptproblem der
„neuen Offenheit“ vernetzter
Systeme liegt nach Ansicht von
Experten weniger in der technischen Umsetzung als vielmehr
in der alten Sichtweise auf die
IT-Security. Diese geht davon
aus, dass der Anbieter einer
Ware, Dienstleistung oder Information, mithin der Systemadministrator, derjenige ist, der die
Identitäten zu verwalten hat.
Wer seine persönlichen Daten
nicht an der Tür abgibt, kommt
gar nicht erst ins System.
Dies gefällt einer kleinen,
aber wachsenden Schar von
Identitäts-Aktivisten gar nicht.
Sie fordern nicht mehr und
nicht weniger als eine Umkehrung der Machtverhältnisse: Der
Benutzer soll wieder die Kontrolle über seine Daten bekommen. Ihr Schlagwort heißt:
„User-centric Identity“.
Selbstbestimmung
auch im Netz
Einer von ihnen ist Dick Hardt,
Chef der kleinen Softwarefirma
Sxip, der für Internet und Webservices ein „dezentrales, kompatibles, skalierbares und sicheres System“ fordert, das dem
Menschen erlaubt, sich im Internet genauso einfach auszuweisen wie in der richtigen Welt.
Doch Hardt und seine Mitstreiter
gehen einen Schritt weiter. Sie
wollen, dass der Benutzer selbst
bestimmen kann, welche Informationen er im Zuge der Anmeldung und Interaktion mit Webservices preisgibt.
Dieses „Identity 2.0“ genannte Prinzip wäre Hardts Meinung nach „ein auf Internetmaß
zugeschnittenes Identity- und
Access-Management-System,
das einfach, sicher und offen ist
und bei dem der Benutzer im
Mittelpunkt steht“. Bei Identity
1.0 weiß das System nur, dass
eine Person ein Eintrag in einem
Verzeichnis ist, aber es hat
keine Ahnung, wer sie ist. In der
abgeriegelten Welt geschlossener Firmennetze hat das noch
genügt, zumal der Arbeitgeber
der „Besitzer“ der meisten Identitätsdaten der Mitarbeiter war.
Im offenen Kontext von externen Webservices funktionieren solche Systeme Hardts Meinung nach nicht. Die Folge sei
Ärger und Mehraufwand für den
Benutzer, der immer wieder
Namen, Kennwörter und viele
Informationen über sich selbst
eingeben muss. Dies aber steht
dem Geschäftserfolg von Onlineanbietern im Weg. Gleichzeitig
schafft die fehlende Selbstbestimmung des Nutzers ein Identitätsproblem für die Betreiber
von Web-2.0-Anwendungen wie
MySpace, Flickr oder die Videoarchive von YouTube, deren Reiz
für die meisten Benutzer ja gerade darin besteht, sich nach
außen auf möglichst kreative
Weise darstellen zu können.
Hardts Firma hat mit Sxipper,
einem kostenlosen Plug-in für
den Firefox-Browser, gezeigt,
wo die Reise hingehen soll. Der
Benutzer lädt die Erweiterung
auf seinen Rechner herunter
und trägt darin seine persönlichen Daten ein, etwa Privat- und
Geschäftsadresse, Kreditkartennummern oder Führerscheindaten. Jedes Mal, wenn er danach auf eine Website zugreift,
die Informationen über ihn fordert, startet Sxipper, stellt die
gewünschten Informationen dar
und fragt, ob der Benutzer mit
der Übermittlung einverstanden
ist. Pflichtfelder werden gekennzeichnet, freiwillige Angaben
ebenfalls. Mit einem Mausklick
auf ein Hakenkästchen entscheidet der Benutzer, welche
Daten er weitergeben will und
welche nicht.
Vielversprechender
Zusammenschluss
Sxipper ist nur eine Lösung
unter einem guten Dutzend, die
große und kleine Anbieter unter
dem Banner von OpenID entwickeln und anbieten. OpenID ist
ein dezentrales System zur
Identifizierung, dessen zugrunde
liegendes Protokoll von Brad
Fitzpatrick, dem Vater von LiveJournal (eine quelloffene Serversoftware), und David Recordon
von VeriSign entwickelt wurde.
Mit im Boot sind große Anbieter
wie IBM und Novell sowie die
Eclipse Foundation, die sich
Hat Ihr Netzwerk wirklich
keine Schwachstellen?
Nur die AVG Internet Security Network Edition bietet:
2 Jahre Lizenzlaufzeit
Anti-Virus
Anti-Spyware
Anti-Spam
Firewall
Kostenlose neue Programmversionen
Zentrale Verwaltung für Server, Clients und Desktops
24/7 technische Unterstützung
Alles über AVG: www.jakobsoftware.de
Halle B 3.14
ix1107_x_000_AVG.indd 1
NE U !
Deutsche Vertretung und deutschsprachiger Support für AVG:
Jürgen Jakob Software-Entwicklung · www.jakobsoftware.de
20.09.2007 18:43:26 Uhr
AVG75 ISNE01
AVG Internet Security für Windows®, für Netzwerke, für Linux und für E-Mail-Server.
ix.1107.x.1-16.neu1
02.10.2007
10:46 Uhr
Seite XVI
IT-Security
unter anderem mit dem quelloffenen Bandit-Projekt an der
Entwicklung von Standards für
das Identitätsmanagement über
unterschiedliche Systeme hinweg beteiligt hat und somit
einen einheitlichen Ansatz für
die Sicherheit und Verwaltung
von Identitäten schaffen will.
OpenID dient zunächst nur
zur gegenseitigen Identifikation
von Benutzern. Die sollen sich
mithilfe ihres digitalen Ausweises bei verschiedenen Websites
anmelden können, ohne jedes
Mal dieselben persönlichen Informationen eintippen zu müssen. Die anschließende Authentifizierung erfolgt durch einen
sogenannten Identity Service
Provider (auch iBroker genannt).
Denjenigen, über dessen Website sich der Benutzer eingeloggt hat, bezeichnet man als
„Relying Party“ (RP), denn er
vertraut aufgrund seiner – in
der Regel vorher vertraglich
fixierten – Beziehung zum Identity Service Provider dieser Authentifizierung. Der Identity Service Provider kann bei Bedarf
zusätzliche Informationen vom
Benutzer anfordern.
Im Internet weist sich der
OpenID-Benutzer mithilfe eines
sogenannten URI (Uniform Resource Identifier) aus, den er
von seinem iBroker erhält und
der genauso arbeitet wie die
URL eines Webdokuments. Zur
Authentifizierung verwendet
OpenID Standards wie Yadis, ein
Protokoll und Datenformat, mit
dem Informationen über unterstützte Dienste einer HTTP-URL
im Konzept der URI-basierten
Identität beschrieben und abgerufen werden können. Im Grunde genommen verwendet der
Benutzer seinen URI als Benutzernamen, während sein „Passwort“ sicher beim OpenID-Provider verwahrt wird.
Prinzipiell ähneln OpenID-Lösungen dem neuen CardSpaceModell von Microsoft, das der
Konzern mit dem Start von Vista
einführte. Hier trägt der Benutzer seine Identitätsdaten in sogenannten InfoCards ein, die
XVI
auf der Festplatte liegen und
Informationen wie Name,
Geburtsdatum, Wohnort, Geschlecht, Telefonnummern, Kreditkartendaten und Ähnliches
enthalten. Er kann mehrere Karten mit unterschiedlich ausführlichen Informationen über sich
erstellen, je nach Anforderung.
Verlangt nun eine Website bestimmte Daten, zückt CardSpace
die passende Karte und fragt
den Benutzer, ob er einverstanden ist, diese weiterzugeben.
Oft genügt Vertrauen
Diese Form der sogenannten
Self-assertion (Selbstbehauptung) kommt ohne Verifizierung
durch eine übergeordnete Instanz aus. Im Prinzip muss der
Anbieter einfach glauben, was
ihm der Benutzer sagt. Das ist
in vielen Fällen im praktischen
Leben ausreichend, etwa um
sich Zutritt zu einem kostenlosen Onlinemagazin zu verschaffen oder sich in ein Chat-Forum
einzuloggen. Wollen beide Seiten dagegen miteinander Geschäfte machen, genügt eine
solche freiwillige Selbstauskunft
nicht. In diesem Fall muss sich
der CardSpace-Benutzer vorher,
ähnlich wie beim iBroker von
OpenID, bei einer vertrauenswürdigen Stelle (Trusted Third
Party) anmelden und dort seine
Daten hinterlegen. Das kann
eine offiziell zugelassene Zertifizierungsstelle sein, zum Beispiel
ein Trust Center, aber auch eine
Bank, eine Kreditkartenfirma
oder ein Arbeitgeber. Will ein
Internetanbieter Informationen,
wird die Anfrage automatisch
an die Vertrauensstelle weitergeleitet, die die gewünschte Information bereitstellt. Gleichzeitig ergeht an den Benutzer
eine Anfrage nach dessen Einverständnis, die Daten weitergeben zu dürfen.
Häufig genügen auch sogenannte Metadaten. Beim Kauf
per Kreditkarte reicht meistens
eine Bestätigung: „Zahlung erfolgt“. Mehr muss der Anbieter
gar nicht wissen. Ähnlich bei Informationen, die lediglich als Altersnachweis dienen. Statt des
tatsächlichen Geburtsdatums
genügt es, wenn von vertrauenswürdiger Seite bestätigt
wird: „Der Kunde ist über 18“.
Auf diese Weise soll sich die
Menge der preiszugebenden
persönlichen Daten im InternetAlltag deutlich reduzieren lassen
– zur Freude von Verbrauchern,
aber auch zur Entlastung von
Anbietern.
Für Microsoft stellt OpenCard
damit eine radikale Abkehr von
früheren Systemen wie MS Passport dar, bei denen die Kontrolle über die Daten weitgehend in
Redmond lag. Dennoch kam die
Ankündigung im Februar 2007
für die Fachwelt einigermaßen
überraschend, dass Microsoft
und die OpenID-Gemeinde in
Zukunft eng zusammenarbeiten
und für vollständige Interoperabilität sorgen wollen. Die Nachricht von der ungewöhnlichen
Allianz zeitigte gleich Folgen. So
kündigte beispielsweise der Onlinedienst AOL an, künftig mit
OpenID arbeiten zu wollen. Und
Ping Identity, ein führender
Hersteller von IAM-Systemen,
will ein CardSpace-Modul als
OpenSource-Element für den
Apache 2 Server auf den
Markt bringen.
(sf/ur)
Tim Cole
ist Consultant bei Kuppinger
Cole & Partner sowie
Mitveranstalter der European
Identity Conference.
In iX extra 12/2007
Storage – Disk-Systeme: Technik und Produkte
Disk-Subsysteme finden sich
in den unterschiedlichsten Anwendungen als Primär- oder
Sekundärspeicher, als virtuelle
Tape Library, als Backup- oder
Archivsystem. Genau so unterschiedlich sind die Umgebungen und Konfigurationen: als
Speichererweiterung direkt
an Server angeschlossen, für
den Zugriff durch mehrere
Server in ein Speichernetz
eingebunden – als Standalone-System, im Gruppenverbund, kaskadiert, gespiegelt,
hierarchisch angeordnet oder
über einen Virtualisierer zusammengeschaltet.
Entsprechend groß ist die
Spannbreite verfügbarer DiskSysteme. Sie reicht vom einfachen JBOD bis zum Super-
system mit 247 Petabyte Gesamtkapazität. Was Disk-Systeme heute alles können, wie
man das geeignete System für
seine Umgebung findet und
wie man sich auf künftige Anforderungen vorbereitet, erläutert iX extra in Heft 12/07.
Erscheinungstermin:
15. November 2007
DIE WEITEREN IX EXTRAS:
Ausgabe
Thema
Erscheinungstermin
01/08
02/08
Networking
Mobility
03/08
IT-Security
Aktuelle Trends bei Wireless LANs
Mobiler Arbeitsplatz: Konsolidierte Verwaltung;
Notebooks als Desktopersatz
Malware-Trends – Trojaner, Botnetze & Co.
13.12.07
17.01.08
21.02.08
iX extra 11/2007
Herunterladen