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¶m2=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¶m2=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