Anomalie-Erkennung in Web

Transcrição

Anomalie-Erkennung in Web
Anomalie-Erkennung in
Web-Anwendungen
Christian Bockermann
Anomalie-Erkennung in Web-Anwendungen
November 2006
1
Überblick
• Motivation
• Anwendungsgebiet: Web-Anwendungen
• Sicherheits-Aspekte in Web-Anwendungen
• Ansätze zum Schutz von Web-Anwendungen
• Ziele der Diplomarbeit
Anomalie-Erkennung in Web-Anwendungen
November 2006
2
Motivation
• Tätigkeit im Bereich Netzwerk-Sicherheit,
Web-Anwendungen
• Studien: 75% aller Angriffe im Internet gelten
Web-Anwendungen
• Zuwachs der Anwendungen die als Web-Anwendung
realisiert werden, gleichzeitig Anstieg der Angriffe
• Zusammenarbeit mit der Firma Defentum
– Umfangreiche Log-Daten, die automatisierte
Analyse erfordern
Anomalie-Erkennung in Web-Anwendungen
November 2006
3
Web-Anwendungen
Struktur des WWW hat sich in letzten Jahren stark
gewandelt
• Web-Seiten anfangs statisch, Web-Server liefert für
jede URL eine Seite an den Browser aus
• Vielzahl unterschiedlicher Anwendungsbereiche fördert
Entwicklung dynamischer Seiten
– Homebanking, Online-Shops
– Wikis, Web-Logs, Foto-Galerien
Anomalie-Erkennung in Web-Anwendungen
November 2006
4
Web-Anwendungen
Prinzipieller Aufbau
• Browser stellen ”einheitliche” Schnittstelle zur
Nutzung von Web-Anwendungen bereit
• Kommunikation mit Anwendung geschieht über
einfaches Frage/Antwort-Protokoll (HTTP)
• Web-Anwendung ist ein Programm, welches im
Web-Server läuft und über eine URL aufgerufen
werden kann
Anomalie-Erkennung in Web-Anwendungen
November 2006
5
Web-Anwendungen
Beispiel für Anfrage an Web-Server
GET /Wiki.jsp?page=LetzteAenderungen HTTP/1.1
Host: wiki.dortmund-dragons.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Authorization: Basic ZmFiaWFuOmZlcm5hbmRleg==
Anomalie-Erkennung in Web-Anwendungen
November 2006
6
Web-Anwendungen
Antwort des Servers (gekürzt)
HTTP/1.1 200 OK
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 01:00:00 CET
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
Set-Cookie: JSESSIONID=CE4E5D558D4C770070E5E032978DFE1C; Path=/
Content-Type: text/html;charset=UTF-8
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
f8;
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
...
Anomalie-Erkennung in Web-Anwendungen
November 2006
7
Web-Anwendungen
• Web-Anwendungen verarbeiten häufig
Benutzer-Eingaben, die über Formulare vom User
eingegeben werden
• Zur Übermittlung der Daten an die Web-Anwendung
gibt es zwei Möglichkeiten
– Codierung der Daten in der URL des Requests
(GET)
– Codierung im Body des Requests (POST)
Anomalie-Erkennung in Web-Anwendungen
November 2006
8
Web-Anwendungen
• Codierung in URL eines GET-Requests
GET /cgi-bin/test.cgi?param1=wert1&param2=wert2 HTTP/1.1
Host: www.fiktion.de
User-Agent: Mozilla (Firefox)
• Codierung im Request-Body POST-Methode
POST /cgi-bin/test.cgi HTTP/1.1
Host: www.fiktion.de
User-Agent: Mozilla (Firefox)
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
param1=wert1&param2=wert2
Anomalie-Erkennung in Web-Anwendungen
November 2006
9
Web-Sicherheit
Web-Anwendungen bieten Vielzahl von
Angriffsmöglichkeiten
• Form-Tampering
• Email-Injection
• SQL-Injection
• Cross-Site Scripting
• Man-in-the-MiddleAttacken
• Session Hijacking
• Denial-of-Service
• Coss-Site Request Forgery
• Phishing
• Directory-Traversal
• Cookie-Posioning
Anomalie-Erkennung in Web-Anwendungen
• Cookie-Stealing
November 2006
10
Web-Sicherheit
Form-Tampering: Formular-Daten (Parameter) werden
manipuliert an den Server gesendet
Beispiel: Web-Shop
• Shop enthielt Artikel-Liste, je Artikel eine Nr,
Mengen-Angabe und als verstecktes Feld der Preis
• ”Add-To-Cart” führte zu POST-Request, der die
Artikel-Nr, Menge und den Preis an den Server
übermittelte
• Manipulierter Request mit PREIS=0.01 führte zu
günstigem Einkauf
Anomalie-Erkennung in Web-Anwendungen
November 2006
11
Web-Sicherheit
SQL-Injection: Parameter enthalten SQL-Anweisungen,
die ggf. direkt in der Anwendung ausgeführt werden
• Skript showUser.cgi zeigt die Benutzer-Daten des
Users, der über den Parameter login ausgewählt
wurde
• Enthält der Parameter login aber z.B.
’; SELECT Login,Password AS Name FROM users WHERE login=’john
• Wird der Parameter in der Anwendung nicht validiert
führt dies u.U. zu folgendem SQL-Statement
SELECT Login,Name FROM users WHERE login = ’
’; SELECT Login,Password AS Name FROM users WHERE login=’john’;
Anomalie-Erkennung in Web-Anwendungen
November 2006
12
Web-Sicherheit
Session-Hijacking: Mit böswilligem Java-Script Code
lassen sich Cookies auslesen, die ggf. Session-Informationen
enthalten
• Angreifer legt z.B. eBay-Auktion mit Script Code an
• eBay-Nutzer ruft Auktion auf und startet damit den
Java-Script Code
• Code liest Session-Cookies aus und schickt ihn an
Angreifer
• Angreifer kann diese Nutzen, um Sitzung zu
übernehmen
Anomalie-Erkennung in Web-Anwendungen
November 2006
13
Web-Sicherheit
Open Web Application Security Project - OWASP
• Top-Ten der Gründe für Sicherheitslöcher in
Web-Anwendungen
• Studien über Zunahme von Angriffen auf
Web-Anwendungen
• WebGoat: Beispiel-Web-Anwendung, die
Sicherheitslöcher enthält, ”Tutorial” zum Hacken
Anomalie-Erkennung in Web-Anwendungen
November 2006
14
Web-Sicherheit
Die meisten Angriffe beruhen auf der Ausnutzung von
Schwächen der Anwendungen
Zum Schutz von Web-Anwendungen gibt es mehrere
Ansätze
• Vulnerability-Scanner, Manuelle und automatische
Code-Audits
• Web-Application Firewalls
• Intrusion Detection Systeme
Anomalie-Erkennung in Web-Anwendungen
November 2006
15
Web-Application Firewalls
• Netzwerk-Basierte Firewalls nicht ”intelligent genug”
• WAF verstehen das HTTP-Protokoll, bieten
Reverse-Proxy-Funktionalität
• Basierend auf Regelwerk werden Requests an den
Web-Server weitergeleitet oder nicht
Browser
Anomalie-Erkennung in Web-Anwendungen
WAF
Web−Server
November 2006
16
Web-Application Firewalls
Open-Source WAF: mod security
• Modul für den Apache-Webserver
• Regelwerk basierend auf URL-Pfad und reguläre
Ausdrücke
• Vordefinierte Regelwerke, die bekannte Angriffe
abwehren im Internet frei verfügbar
• Seit kurzem Ansätze zu Session-orientiertem Filtern
Anomalie-Erkennung in Web-Anwendungen
November 2006
17
Web-Application Firewalls
Regel-Beispiele gegen rootkits/Würmer
SecRule
SecRule
SecRule
SecRule
...
REQUEST_URI
REQUEST_URI
REQUEST_URI
REQUEST_URI
Anomalie-Erkennung in Web-Anwendungen
/\.it/viewde "deny,log"
/cmd\?&(command|cmd)= "deny,log"
/cmd\.php\.ns\?&(command|cmd)=
/cmd\.(php|dat)\?&(command|cmd)=
November 2006
18
Web-Application Firewalls
Problem:
• Regelwerk muss von Hand geschrieben werden (setzt
Verständnis der Anwendung voraus, u.U. komplex)
• Im Internet verfügbare Regeln wehren nur bekannte
Angriffe ab (sogenanntes negatives Sicherheitsmodell)
• Um Angriffe auf Anwendungslogik abzufangen, müssen
die Regeln für jede Anwendung angepasst werden
• mod security bietet dafür sehr fein-granulare
Mechanismen
Anomalie-Erkennung in Web-Anwendungen
November 2006
19
Web-Application Firewalls
Idee 1: Erlernen eines positiven Regelwerkes mit
KI-Methoden
Regel-Beispiele
<Location /cgi-bin/mail.cgi>
SecRule ARGS
!(subject|sender|text) "deny,log"
SecRule ARGS:subject ![A-Za-z0-9]*
"deny,log"
SecRule User-Agent
^$ "deny,log"
</Location>
Anomalie-Erkennung in Web-Anwendungen
November 2006
20
Web-Application Firewalls
Problem: Wie findet man heraus, was erlaubt ist und was
nicht?
Dazu einige Ansätze/Ideen aus
• Intrusion Detection
• Web-Anomalie-Erkennung
Anomalie-Erkennung in Web-Anwendungen
November 2006
21
Intrusion Detection
Intrusion-Detection beschäftigt sich mit dem Monitoring
von Anwendungen um Einbrüche und Angriffe zu erkennen
• Führen von Audit-Logs der Ereignisse
(Wer? Was? Wann?)
• Analyse der Log-Daten
• Zwei unterschiedliche Ansätze:
– Suche nach Angriff-Muster (Datenbank)
– Erkennen von Verhaltens-Anomalien (Erstellen von
Profilen in Trainingsphase, Suche nach
Abweichungen)
Anomalie-Erkennung in Web-Anwendungen
November 2006
22
Intrusion Detection
Audit-Log, Beispiel:
header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384
exec arg,finger,doug
path,/usr/bin/finger
attribute,555,root,wheel,90,24918,104944
subject,robert,root,wheel,root,wheel,38439,38032,42086,128
return,success,0
trailer,133
Anomalie-Erkennung in Web-Anwendungen
November 2006
23
Intrusion Detection
STAT - State Transition Analysis Tool
• STAT modelliert Angriffe als
Zustandsübergangs-Systeme (STS)
• Es wird eine Datenbank gepflegt, die ein STS für jeden
bekannten Angriffe enthält
• STAT besitzt eine Engine, die aktuell beobachtete
Ereignisse (Audit-Log) mit der Angriffs-Datenbank
vergleicht
• Erweitert für Web-Anwendungen: WebSTAT
Anomalie-Erkennung in Web-Anwendungen
November 2006
24
Intrusion Detection
WebSTAT: Modell eines Angriffs
Anomalie-Erkennung in Web-Anwendungen
November 2006
25
Intrusion Detection
Sense Of Self For Unix Processes
• Stephanie Forrest, Thomas Langstaff 1996
• Aufzeichnen der System-Calls von Unix-Processen
(sendmail)
• Extrahieren der häufigen Sequenzen (Training)
Anomalie-Erkennung in Web-Anwendungen
November 2006
26
Intrusion Detection
• Sliding-Window der Länge 4 über die Sequenz
open,read,mmap,mmap,open,getrlimit,mmap,close
• open,read,mmap,open,open,getrlimit,mmap,close
erzeugt 4 Fehler
Anomalie-Erkennung in Web-Anwendungen
November 2006
27
Intrusion Detection
• Vergleich der beobachteten Sys-Call-Sequenzen mit der
Datenbank, Hamming-Abstand als Mass für Anomalie
• Experimentiert mit unterschiedlichen Sequenzlängen
• Gao, Reiter und Song 2006: Behavioral Distance for
Intrusion Detection
– Ähnlichkeiten über probabilistische Grammatiken,
Alignment von Sequenzen
– Untersuchung anhand von System-Calls des
Apache-Webservers
Anomalie-Erkennung in Web-Anwendungen
November 2006
28
Web - Anomaly-Detection
Kruegel/Vigna 2003: Anomly Detection of Web-based
Attacks
• Analyse der Request-Parameter
• Jeder URL-Pfad wird als eigenständige Anwendung
betrachtet
• Beschränkung auf Parameter und Werte
Anomalie-Erkennung in Web-Anwendungen
November 2006
29
Web - Anomaly-Detection
Basis der Analyse sind Webserver-Log-Files
89.52.105.208 - - [17/Jul/2006:19:25:28 +0200] "GET / HTTP/1.1" 200 10659 "http://www.google.de/search?hs=5jB&hl
a%3Ade%3Aofficial&q=dortmund+Dragons&btnG=Suche&meta=lr%3Dlang_de" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de;
/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:29 +0200] "GET /style.css HTTP/1.1" 200 7399 "http://www.dortmund-dragons.d
ws NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:30 +0200] "GET /images/or.jpg HTTP/1.1" 200 672 "http://www.dortmund-dragon
ndows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:30 +0200] "GET /images/dragon_s.gif HTTP/1.1" 200 1361 "http://www.dortmund
; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:30 +0200] "GET /images/no.gif HTTP/1.1" 200 43 "http://www.dortmund-dragons
dows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:30 +0200] "GET /images/ol_small.jpg HTTP/1.1" 200 379 "http://www.dortmundU; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:30 +0200] "GET /images/or_small.jpg HTTP/1.1" 200 391 "http://www.dortmundU; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
89.52.105.208 - - [17/Jul/2006:19:25:31 +0200] "GET /images/no.jpg HTTP/1.1" 200 310 "http://www.dortmund-dragon
ndows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
Anomalie-Erkennung in Web-Anwendungen
November 2006
30
Web - Anomaly-Detection
• Definition von Modellen p1 , . . . , p6 , um die Requests R
zu charakterisieren
• Modell wird trainiert und liefert für einen Request eine
Wahrscheinlichkeit für die ”Normalität”
pk : R → [0, 1]
• Ein Request r ∈ R erhält einen Anomalie-Wert α(r)
α(r) =
n
X
wk (1 − pk (r))
k=0
Anomalie-Erkennung in Web-Anwendungen
November 2006
31
Web - Anomaly-Detection
Die verwendeten Modelle bezogen sich auf 6 Merkmale der
Parameter-Werte von GET-Requests
• Länge der Parameter-Werte
• Zeichen-Verteilung
• Parameter-Struktur
• Token-Finder
• Parameter-Existenz
• Parameter-Reihenfolge
Anomalie-Erkennung in Web-Anwendungen
November 2006
32
Web - Anomaly-Detection
Parameter-Wert-Länge
In der Trainigsphase werden Mittel µ und Varianz ρ2 der
Längen der Parameter-Werte aller Trainingsdaten
bestimmt
Sei l die Summe der Längen der Parameter eines Requests
r, dann liefert dieses Modell
ρ2
p(l) =
(l − µ)2
Anomalie-Erkennung in Web-Anwendungen
November 2006
33
Web - Anomaly-Detection
Zeichenverteilung
Das Modell lernt die ASCII-Zeichen-Verteilung der
Parameter-Werte (basierend auf der Häufigkeit des
Vorkommens) für jeden Parameter
Für einen Wert passwd wird die relative Häufigkeit der
Zeichen ermittelt, und absteigend sortiert
(0.33, 0.17, 0.17, 0.17, 0.17, 0.0, 0.0, 0.0., . . . , 0.0)
Es wird eine mittlere Verteilung über alle Trainingsdaten
ermittelt
Anomalie-Erkennung in Web-Anwendungen
November 2006
34
Web - Anomaly-Detection
Zeichenverteilung
Für einen Request wird über abgewandelten Pearson
χ2 -Test eine Wahrscheinlichkeit für eine Anomalie
berechnet
Anomalie-Erkennung in Web-Anwendungen
November 2006
35
Web - Anomaly-Detection
Struktur
Um Struktur der Eingabe-Daten (Strings) zu erfassen,
wird eine probabilistische Grammatik verwendet
• Probabilistische Grammatik für Trainingsdaten liefert
NFA
• Wahrscheinlichkeiten für Eingabe w = w1 w2 . . . wn
durch Summe über alle Pfade p = (s1 , . . . , sn ), die w
erzeugen
XY
p(w) =
psi (wi ) · p(ti )
pPfad s∈p
Anomalie-Erkennung in Web-Anwendungen
November 2006
36
Web - Anomaly-Detection
Token-Finder
Der Token-Finder versucht festzustellen, ob einige
Parameter nur Werte aus einer festen Menge enthalten
• Anstieg der Anzahl verschiedener Werte eines
Parameters in Relation zur Häufigkeit des Auftauchens
des Parameters
• Bei max. proportionalem Wachstum der Anzahl
unterschiedlicher Werte wird von diskretem
Parameter-Typ ausgegangen
Anomalie-Erkennung in Web-Anwendungen
November 2006
37
Web - Anomaly-Detection
Token-Finder
Wurde während der Trainingsphase festgestellt, dass eine
URL Abzähl-Parameter hat, so liefert das Modell für einen
Request r

 1 : falls Werte aus entsprechenden Menge
p(r) =
 0 : sonst
Ansonsten liefert p stets 0 zurück
Anomalie-Erkennung in Web-Anwendungen
November 2006
38
Web - Anomaly-Detection
Parameter-Reihenfolge
Modell zur Analyse der Reihenfolge der Request-Parameter
• Aufbau eines Order-Constraint-Graphen aus
Trainingsdaten
• Bereinigen über Starke Zusammenhangskomponenten
• Extrahieren von Ordnungspaaren (pi , pj )
Anomalie-Erkennung in Web-Anwendungen
November 2006
39
Web - Anomaly-Detection
Parameter-Reihenfolge
Das Modell überprüft die gelernten Ordnungsrelationen
eines Requests und liefert
• 0, falls eine Relation verletzt wird
• 1, sonst
Anomalie-Erkennung in Web-Anwendungen
November 2006
40
Web - Anomaly-Detection
Parameter-Existenz
Für die Requests aus den Trainingsdaten werden die
Mengen der Parameter {q1 , . . . , qk } festgehalten
Die verschiedenen Parameter-Mengen dienen als Grundlage
zur Bewertung der Requests nach der Trainingsphase
Existiert für einen Request r die Menge seiner Parameter
im Modell, so liefert das Modell 1 zurück, sonst 0
Anomalie-Erkennung in Web-Anwendungen
November 2006
41
Web - Anomaly-Detection
Unzulänglichkeiten
• Die Modelle behandeln einzelne Requests, Angriffe, die
sich über mehrere Requests vollziehen werden u.U.
nicht erkannt
• Analyse beschränkt sich auf normale
Access-Log-Dateien (keine Header-Analyse)
• Angriffe auf die Applikations-Logik, die gewöhnliche
Parameter-Werte nutzen bleiben unentdeckt
Anomalie-Erkennung in Web-Anwendungen
November 2006
42
Web - Anomaly-Detection
Beispiele
• DHL-Packstation
• Session-Hijacking
• Preis-Manipulation im eShop
Anomalie-Erkennung in Web-Anwendungen
November 2006
43
Ziele der Diplom-Arbeit
Idee 2: Erweiterung des Ansatzes von Kruegel/Vigna um
Idee von Self (Forrest/Langstaff)
• Analyse des ModSecurity-Audit-Logs
• Häufige Sequenzen (Nuhad)
• Alignment-Problem/Ähnlichkeit von Sequenzen
• Korrelation zwischen Requests
• Assoziations-Regeln zwischen Parameter-Werten
Anomalie-Erkennung in Web-Anwendungen
November 2006
44
Ziele der Diplom-Arbeit
ModSecurity Audit-Log
Request: 217.252.161.175 - - [10/Jul/2006:11:30:22 +0200] "GET /Wiki.jsp?page=StartSeite+ HTTP/1.1" 200 10977
Handler: jakarta-servlet2
---------------------------------------GET /Wiki.jsp?page=StartSeite+ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword,
Accept-Language: de
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: wiki.dortmund-dragons.de
Connection: Keep-Alive
Authorization: Basic Y2xhdWRpYTpjbGVtZW5z
HTTP/1.1 200 OK
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 01:00:00 CET
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
Set-Cookie: JSESSIONID=F97F390887C17ED80A27C0AE98AF2908; Path=/
Content-Type: text/html;charset=UTF-8
Connection: close
Anomalie-Erkennung in Web-Anwendungen
November 2006
45
Ziele der Diplom-Arbeit
Session-basierte Profil-Analyse der Nutzung einer
Web-Anwendung
• Parser für Audit-Log
• Bestimmen der gültigen URLs der Anwendung
(heuristisch)
• Session-Zuordnung über ID,Cookies und heuristische
Ansätze (Yale-Clustering-Plugin)
• Sequenzen aus den Sessions extrahieren
Sequenz-Datenbank
Anomalie-Erkennung in Web-Anwendungen
November 2006
46
Ziele der Diplom-Arbeit
Definition eines zusätzlichen Modells
• Anomaly-Bewertung anhand des Abstands zur
Sequenz-Datenbank
• Dazu verschiedene Abstands-Definitionen
– Hamming-Abstand
– Abstand über Sequenz-Alignment
Anomalie-Erkennung in Web-Anwendungen
November 2006
47
Ziele der Diplom-Arbeit
Mögliche Wege zur Daten-Sammlung
• Monitor-Lösung
• Eigen-Profil-Erzeugung von Web-Anwendungen
Anomalie-Erkennung in Web-Anwendungen
November 2006
48
Ziele der Diplom-Arbeit
Test-Daten zur Evaluierung
• Profil-Bildung für WebGoat
• Eigene Audit-Daten (Wiki,etc.)
• Audit-Daten von KEnet (Web-Hoster)
• voraussichtlich Audit-Daten von phonehouse.de,
IHG-Logistics
Anomalie-Erkennung in Web-Anwendungen
November 2006
49