114
Christian Bockermann - chris @ jwall.org Fakultät Informatik Lehrstuhl für Künstliche Intelligenz Jenseits von Angriffsmustern Positive Sicherheitsmodelle für Web- Anwendungen

Positive Sicherheitsmodelle für Web- Anwendungen · • Entwickler einiger freier Tools zum ModSecurity Modul ... • Snort mit Deep/Payload-Inspection

  • Upload
    voliem

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Jenseits von Angriffsmustern

Positive Sicherheitsmodelle für Web-Anwendungen

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Vorstellung

• WiMi am Lehrstuhl für künstliche Intelligenz, Technische Universität Dortmund

• Forschung im Bereich Data-Mining/maschinelles Lernen zum Thema Web-Sicherheit

• Entwickler einiger freier Tools zum ModSecurity Modul

• AuditViewer, AuditConsole (WAF-Logfile Analyse)

• JWall-Toolbox

• Web Policy Compiler

• Web Application Profiler

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web Security Toolswww.jwall.org

Blog zu ModSecurity/Toolshttps://secure.jwall.org/blog/

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Überblick

• Motivation Web-Sicherheit

• Bekannte Ansätze zur Web-Sicherheit

• Intrusion Detection & Web Application Firewalls

• Positive Sicherheitsmodelle für Web-Anwendungen

• XML basierte Beschreibung

• Lernen positiver Modelle aus Audit-Daten

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Motivation

• Steigender Bedarf am Einsatz von Web-Techniken

• Einfach benutzbar - leicht zu entwickeln

• Allgegenwärtig - von überall aus erreichbar

• Ein paar Nachteile

• Einfach zu benutzen - einfach zu hacken

• Steigende Komplexität (J2EE, Struts, Spring, EJB, Hibernate, WebServices, Metro, XmlRpc)

• Fehlendes Sicherheitsbewußtsein (Entwicklung)

• Mutmaßlich über 2500 erfolgreiche Web-Angriffe pro Stunde

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

Eigentlich nicht lustig...

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

Eigentlich nicht lustig...

$name = $_POST[‘name‘]; // $name = “Robert‘); DROP TABLE Students; --“

$insert = “INSERT INTO STUDENTS VALUES (‘$name‘);“;

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

Eigentlich nicht lustig...

$name = $_POST[‘name‘]; // $name = “Robert‘); DROP TABLE Students; --“

$insert = “INSERT INTO STUDENTS VALUES (‘$name‘);“;

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

Eigentlich nicht lustig...

$name = $_POST[‘name‘]; // $name = “Robert‘); DROP TABLE Students; --“

$insert = “INSERT INTO STUDENTS VALUES (‘$name‘);“;

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

Eigentlich nicht lustig...

$name = $_POST[‘name‘]; // $name = “Robert‘); DROP TABLE Students; --“

$insert = “INSERT INTO STUDENTS VALUES (‘$name‘);“;

INSERT INTO STUDENTS VALUES (‘Robert‘); DROP TABLE Students; -- ‘);

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Motivation - Web-Angriffe

• Häufiger Grund ist fehlende Validierung

POST /save.php HTTP/1.0Host: jwall.org

name=Robert

POST /save.php HTTP/1.0Host: jwall.org

name=Robert%60%29%3B+DROP+TABLE+STUDENTS%3B+--

Erwartet: Angriff:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Motivation - Web-Angriffe

• Häufiger Grund ist fehlende Validierung

• Fehlender Überblick?

• Information leakage, (z.B. vergessene Dateien)

• Anwendungen, die längst abgelöst wurden(„Evtl. braucht die nochmal jemand?“)

POST /save.php HTTP/1.0Host: jwall.org

name=Robert

POST /save.php HTTP/1.0Host: jwall.org

name=Robert%60%29%3B+DROP+TABLE+STUDENTS%3B+--

Erwartet: Angriff:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

SQL-Injection - ein alter Hut?

• Das Open Web Application Security Project (OWASP) und die Top-10 Verwundbarkeiten:

1. Injection (SQL-Injection, Command Injection, ...)

2. Cross Site Scripting (XSS)

3. Broken Authentication/Session Management

4. Insecure Direct Object Reference

5. Cross Site Request Forgery (CSRF)

6. Security Misconfiguration

7. ...

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

SQL-Injection - ein alter Hut?

SQL injection Hits Sensitive US Army servers

WHID 2009-40

Web Hacking Incident DatabaseOfer Shezaf et.al., whid.xiom.com

245,000 records stolen from Orange France using SQL injection

WHID 2009-39

Kaspersky site breached using SQL injection, sensitive data exposed

WHID 2009-19

WHID 2009-20: BitDefender joins Kasperski on the Breached side

WHID 2009-20

• Das Open Web Application Security Project (OWASP) und die Top-10 Verwundbarkeiten:

1. Injection (SQL-Injection, Command Injection, ...)

2. Cross Site Scripting (XSS)

3. Broken Authentication/Session Management

4. Insecure Direct Object Reference

5. Cross Site Request Forgery (CSRF)

6. Security Misconfiguration

7. ...

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web-Sicherheit

• Wie kann ich die Sicherheit meiner Web-Anwendungen erhöhen?

• Interne Ansätze:

• Code Reviews, Developer Security Trainings

• Penetration testing, Risk Management

• Externe Ansätze:

• (Web-) Intrusion Detection Systems

• Web Application Firewalls

OWASP Guides

Code Review GuideEoin Keary et.al.

Testing GuideMatteo Meucci et.al.

Backend Security ProjectCarlo Pelliccioni et.al.

Risk Management Strategies

STRIDE / DREADJ.D. Meier et. al. Microsoft 2005

Detection

Prevention

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Intrusion Detection

• Intrusion Detection versucht Angriffe auf Netzwerk auf unterschiedliche Arten zu erkennen

• Missbrauchserkennung (Misuse Detection)

• Beschreibung von Angriffen über Angriffssprache oder Muster

• Anomalie-Erkennung (Anomaly Detection)

• Lernen von „normalen Profilen“ anhand von (statistischen) Modellen

• Abweichungen von Modellen werden als Angriffe gewertet

STATL - An Attack Language for State-based Intrusion DetectionSteven T. Eckmann, Giovanni Vigna, Richard A. KemmererIn Proceedings of the ACM Workshop on Intrusion Detection, Greece, Nov. 2006

A Sense of Self for Unix ProcessesStephanie Forrest, Thomas A. Langstaff, Steven A. HofmeyrIn Proceedings of the IEEE Symposium on Security and Privacy, 1996

Data Mining Approaches for Intrusion DetectionW. Lee and S. J. Stolfo. In Proceedings of the 7th USENIX Security Symposium, January 1998

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - Missbrauchserkennung

• Missbrauchserkennung im Bereich Web-Sicherheit

• Snort mit Deep/Payload-Inspection

• WebSTAT: Weiterentwicklung von STATL zur Beschreibung von Web-Angriffen

• PHP-IDS (PHP), PerlIDS (Perl)

• AntiSamy (Java)

• ModSecurity: gotroot.com, Core-Rules (Breach)

Snort-Rules 2.4: 1117 Muster für Web-Angriffehttp://www.snort.org

PHP-IDShttp://php-ids.org

The OWASP AntiSamy Project http://www.owasp.org

ModSecurity, Core-Ruleshttp://www.modsecurity.org

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Apache-Modul zur IDS in HTTP Requests

• ModSecurity benutzt Regeln um in HTTP Anfragen nach bekannten Angriffen zu suchen:

Apache ModSecurity module

IDS - ModSecurity

SecRule ARGS „@rx drop\btable“ „deny“

POST /save.php HTTP/1.1Accept: */*Accept-Language: en-usAccept-Encoding: gzip, deflateConnection: keep-aliveHost: jwall.orgUser-Agent: Mozilla Firefox 3Content-Type: form/url-encodedContent-Length: 63

name=Robert%60%29%3B+DROP+TABLE+STUDENTS%3B+--

REQUEST_HEADERSREQUEST_HEADERSREQUEST_HEADERS

REQUEST_METHOD

REQUEST_BODY

REQUEST_HEADERSREQUEST_HEADERSARGS

REQUEST_HEADERSREQUEST_HEADERSREQUEST_COOKIES

REQUEST_HEADERSREQUEST_HEADERSRESPONSE_HEADERS

REQUEST_USER

REMOTE_ADDR

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Apache-Modul zur IDS in HTTP Requests

• ModSecurity benutzt Regeln um in HTTP Anfragen nach bekannten Angriffen zu suchen:

Apache ModSecurity module

@rx drop\btable

IDS - ModSecurity

SecRule ARGS „@rx drop\btable“ „deny“

POST /save.php HTTP/1.1Accept: */*Accept-Language: en-usAccept-Encoding: gzip, deflateConnection: keep-aliveHost: jwall.orgUser-Agent: Mozilla Firefox 3Content-Type: form/url-encodedContent-Length: 63

name=Robert%60%29%3B+DROP+TABLE+STUDENTS%3B+--

REQUEST_HEADERSREQUEST_HEADERSREQUEST_HEADERS

REQUEST_METHOD

REQUEST_BODY

REQUEST_HEADERSREQUEST_HEADERSARGS

REQUEST_HEADERSREQUEST_HEADERSREQUEST_COOKIES

REQUEST_HEADERSREQUEST_HEADERSRESPONSE_HEADERS

REQUEST_USER

REMOTE_ADDR

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - ModSecurity

• Wir suchen aber nicht nur nach „DROP TABLE“

• Zahlreiche Varianten für SQL-Injections

Angriffsmuster

Pattern 1

Pattern 2

Pattern 3

Pattern 4

Pattern N

...

(Pattern 1|Pattern 2|...|Pattern N)

Pattern (1|2|3|...|N)

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - ModSecurity

• Aggregationen mehrer Angriffsmuster führt zu effizienten „Monstern“:

SecRule REQUEST_FILENAME|ARGS|ARGS_NAMES

"(?:\b(?:(?:s(?:elect\b(?:.{1,100}?\b(?:(?:length|count|top)\b.{1,100}?\bfrom|from\b.{1,100}?\bwhere)|.*?\b(?:d(?:ump\b.*\bfrom|ata_type)|(?:to_(?:numbe|cha)|inst)r))|p_(?:(?:addextendedpro|sqlexe)c|(?:oacreat|prepar)e|execute(?:sql)?|makewebtask)ql_(?:longvar char|variant))|xp_(?:reg(?:re(?:movemultistring|ad)|delete(?:value|key)enum(?:value|key)s|addmultistring|write)|e(?:xecresultset|numdsn)|(?:terminat|dirtre)e|availablemedia|loginconfig|cmdshell|filelist|makecab|ntsec)|u(?:nion\b.{1,100}?\bselect|tl_(?:file|http))|group\b.*\bby\b.{1,100}?\bhaving|d(?:elete\b\W*?\bfrom|bms_java)|load\b\W*?\bdata\b.*\binfile|(?:n?varcha|tbcreato)r)\b|i(?:n(?:to\b\W*?\b(?:dump|out)file|sert\b\W*?\binto|ner\b\W*?\bjoin)\b|(?:f(?:\b\W*?\(\W*?\bbenchmark|null\b)|snull\b)\W*?\()|a(?:nd\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|utonomous_transaction\b)|o(?:r\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|pen(?:rowset|query)\b)|having\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|print\b\W*?\@\@|cast\b\W*?\()|(?:;\W*?\b(?:shutdown|drop)|\@\@version)\b|'(?:s(?:qloledb|a)|msdasql|dbo)')"

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Aktualisierung von Angriffsmustern:

• Was ist mit Angriffen, für die ich noch keine Muster kenne?

• Was ist mit Angriffe, die ich noch überhaupt nicht kenne?

• Anpassung an MEINE Web-Anwendung:

• Wie vermeide ich false-positives?

• Wie kann ich Angriffsmuster an meine eigene Anwendung anpassen?

IDS - Missbrauchserkennung

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - Anomalie-Erkennung

• Anomalie-Erkennung versucht mit maschinellem Lernen Anomalien/Angriffe zu erkennen:

Web-Server

Audit Daten

Merkmals-extraktion

Lernen ModelLernen,Generalisierung

(Netzwerk-) DatenZum Lernen optimal: Beispiele die bereits manuell als gut/böse klassifiziert sind

(überwachtes Lernen)

In den seltensten Fällen vorhanden, daher meist Generalisierungen.

(unüberwachtes Lernen)

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - Anomalie-Erkennung

• Angriffe werden dann als Abweichungen der Beobachtungen vom Modell erkannt

Web-Server

Merkmals-extraktion

Abgleich mit Modell

(Netzwerk-) Daten

Model

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Merkmalsextraktion

• Maschinelles Lernen nutzt in den meisten Fällen hochdimensionale, reell-wertige Vektoren

• HTTP-Anfrage bestehen aus Text/Binär-Daten

• Wie kommt man zu sinnvollen Repräsentationen?

• Wort-Vektor Darstellungen (wird häufig zur Text-Klassifikation benutzt)

• n-Gramme? Term-Vektoren?

• Parser-Analyse und Syntax-Bäume?

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Merkmalsextraktion

• Maschinelles Lernen nutzt in den meisten Fällen hochdimensionale, reell-wertige Vektoren

• HTTP-Anfrage bestehen aus Text/Binär-Daten

• Wie kommt man zu sinnvollen Repräsentationen?

• Wort-Vektor Darstellungen (wird häufig zur Text-Klassifikation benutzt)

• n-Gramme? Term-Vektoren?

• Parser-Analyse und Syntax-Bäume?

POST /save.php HTTP/1.1Host: www.jwall.org

name=Robert`; DROP TABLE STUDTENTS`--

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Merkmalsextraktion

• Maschinelles Lernen nutzt in den meisten Fällen hochdimensionale, reell-wertige Vektoren

• HTTP-Anfrage bestehen aus Text/Binär-Daten

• Wie kommt man zu sinnvollen Repräsentationen?

• Wort-Vektor Darstellungen (wird häufig zur Text-Klassifikation benutzt)

• n-Gramme? Term-Vektoren?

• Parser-Analyse und Syntax-Bäume?

...POSOSTST T //s /sasav...DROROPOP P TTATAB

11111111111111

=

POST /save.php HTTP/1.1Host: www.jwall.org

name=Robert`; DROP TABLE STUDTENTS`--

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Merkmalsextraktion

• Maschinelles Lernen nutzt in den meisten Fällen hochdimensionale, reell-wertige Vektoren

• HTTP-Anfrage bestehen aus Text/Binär-Daten

• Wie kommt man zu sinnvollen Repräsentationen?

• Wort-Vektor Darstellungen (wird häufig zur Text-Klassifikation benutzt)

• n-Gramme? Term-Vektoren?

• Parser-Analyse und Syntax-Bäume?

...POST

/save.phpHTTP/1.1Host:

jwall.orgname

Robert`.....

00001111111000

=

POST /save.php HTTP/1.1Host: www.jwall.org

name=Robert`; DROP TABLE STUDTENTS`--

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - Anomalie-Erkennung

• Anomaly Detection of Web-Based Attacks

• Analyse von Web-Server Access-Log Dateien

• Merkmalsextraktion für Parameter, z.B.

• Durchschnittslänge der Parameter-Werte,

• strukturelle Eigenschaften der Parameter, Zeichenverteilung

• Falls Summe der Abweichungen für einen Request von „gelernten“ Werten abweicht => Angriff

Anomaly detection of web-based attacks C. Kruegel and G. Vigna.In Proceedings of 10th ACM Conference on Computer and Communications Security (CCS'03)

A Multi-model Approach to the Detection of Web-based Attacks C. Kruegel, G. Vigna, and W. RobertsonComputer Networks, vol. 48, pp. 717–738, August 2005.

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - Anomalie-Erkennung

• NGram-Ansätze

• Extraktion von n-Grammen aus HTTP Messages

• Modelle trainieren, die das normale Vorkommen der n-Gramme beschreiben (Häufigkeiten)

• Verschiedene weitere Ansätze

• Markov-Modelle, Automatenbasierte Modelle, heuristische Generalisierung

Incorporation of Application Layer Protocol Syntax into Anomaly DetectionPatrick Düssel, Christian Gehl, Pavel Laskov, Konrad Rieck, December 2008

Anomaly Detection for HTTP Intrusion Detection: Algorithm Comparisons and the Effect of Generalization on AccuracyKenneth LeRoy Ingham III, Dissertation, University of New Mexico 2007

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

IDS - Anomalie-Erkennung

• NGram-Ansätze

• Extraktion von n-Grammen aus HTTP Messages

• Modelle trainieren, die das normale Vorkommen der n-Gramme beschreiben (Häufigkeiten)

• Verschiedene weitere Ansätze

• Markov-Modelle, Automatenbasierte Modelle, heuristische Generalisierung

Incorporation of Application Layer Protocol Syntax into Anomaly DetectionPatrick Düssel, Christian Gehl, Pavel Laskov, Konrad Rieck, December 2008

Anomaly Detection for HTTP Intrusion Detection: Algorithm Comparisons and the Effect of Generalization on AccuracyKenneth LeRoy Ingham III, Dissertation, University of New Mexico 2007

Tendenz zu syntaktischer Analyse

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Anomalie-Erkennung in SQL-Datenbanken

• Idee: Syntax-Information mit in die Merkmalsextraktion integrieren

• Syntax-Baum eines SQL-Parsers für INSERT Befehl

Beispiel: SQL-Syntax Baum

INSERT INTO STUDENTS (NAME,CLASS,GRADE) VALUES (`Robert`,`CS1`,`4`);

INSERT

`Robert``STUDENTS`

TABLE_REF

COLUMN COLUMN COLUMN

COLUMN_LIST

CONST CONST

`CS`

CONST

VALUE_LIST

`4``NAME` `CLASS` `GRADE`

Learning SQL for Database Intrusion Detection using Context-sensitive ModellingMartin Apel, Christian Bockermann, Michael Meier, Juli 2009

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Ergebnis des SQL-Parsers nach dem Parsen des gleichen INSERT-Befehls mit SQL-Injection:

Beispiel: SQL-Syntax Baum

INSERT INTO STUDENTS (NAME,CLASS,GRADE) VALUES (`Robert`, ``, ``); DROP TABLE STUDENTS; -- `CS1`,`4`);

INSERT

`Robert``STUDENTS`

TABLE_REF

COLUMN COLUMN COLUMN

COLUMN_LIST

CONST CONST

``

CONST

VALUE_LIST

```NAME` `CLASS` `GRADE`

DROP

`STUDENTS`

TABLE_REF Learning SQL for Database Intrusion Detection using Context-sensitive ModellingMartin Apel, Christian Bockermann, Michael Meier, Juli 2009

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

SELECT name,SUM(cr) FROM STUDENTS WHERE name = 'Robert' AND lvID = '42509'

Beispiel: SQL-Syntax Baum

SELECT

`STUDENTS`

TABLE_REF COLUMN COLUMN

COLUMN_LIST

`NAME` `SUM(CR)`

TABLE_LIST

`name`

COL_REF CONST

`Robert`

OP `=`

`lvID`

COL_REF CONST

`42509`

OP `=`

OP `AND`

WHERE_CLAUSE

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

SELECT name,SUM(cr) FROM STUDENTS WHERE name = 'Robert' AND lvID = '42509‘ OR 1 > 0 --'

Beispiel: SQL-Syntax Baum

SELECT

`STUDENTS`

TABLE_REF COLUMN COLUMN

COLUMN_LIST

`NAME` `SUM(CR)`

TABLE_LIST

`name`

COL_REF CONST

`Robert`

OP `=`

`lvID`

COL_REF CONST

`42509`

OP `=`

OP `AND`

WHERE_CLAUSE

OP `OR`

`1`

COL_REF CONST

`0`

OP `>`

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Erzeugung eines Histogramm-Vektors aus dem SQL-Syntax-Baum

• Die i-te Komponente enthält die Häufigkeit der i-ten Ableitungsregel der SQL-Grammatik

SELECT name,SUM(PUNKTE) FROM STUDENTS WHERE name = 'Marcin' AND lvID = '42509'

Start --> SelectNode SelectNode --> ResultCols FromList WhereClause ResultCols --> ResultColumn ResultColumn ResultColumn --> ColumnReference ColumnReference --> 'NAME' ResultColumn --> ColumnReference AggregateNode --> SUM ColumnReference --> 'PUNKTE' ...

.00111112110..

Beispiel: SQL-Syntax Baum

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Mit dem Historgram-Vektor haben wir eine Abbildung von SQL-Statements in hochdimensionalen, metrischen Raum

• Das bietet dann die Möglichkeit, verschiedene Lernverfahren einzusetzen:

• Clustering und Outlier-Detection (z.B. kMeans)

• Klassifikation (z.B. Support Vector Machines)

Beispiel: SQL-Syntax Baum

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Beispiel: SQL-Syntax Baum

• Klassifikation von SQL-Statements auf Grundlage verschiedener Darstellungen (n-Gramme, Term-vektoren and SQL-Historgram-Vektoren)

• Zwei Klassen-Problem (legal/attack) mit SVM Lernverfahren

accuracy precision recall accurcy precision recall

3-gram 99,21% 100,00% 60,00% 99,31% 83,33% 70,00%

4-gram 98,57% 88,89% 80,00% 99,41% 84,62% 75,00%

Term-vectors 96,90% 90,91% 66,70% 99,40% 84,62% 73,33%

SQL-vectors 99,10% 100,00% 86,67% 99,70% 92,86% 86,67%

SVM results on different models (10-fold Xval, optimized C,kernel-type)

10:45 min

4:58 min

1:34 min

19:09 min

1000 legal queries, 15 attacks200 legal queries, 15 attacks

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Ähnlichkeitsmaß für Bäume

• Kann man nicht die Bäume direkt benutzen?

• In dem Bereich NLP (Analyse natürlicher Sprache) werden für Syntax-Bäume Kern-Funktionen genutzt um Ähnlichkeiten zu messen

• Tree-Kernel (e.g. parse trees in NLP)

• Graph-Kernel Funktionen

• Häufig zusammengesetzte convolution kernels, die aus mehreren Teil-Funktionen bestehen

• Kern k1 für Literale x aus dem Alphabet X

• Kern k2 für Worte w = x1...xl über X, basierend auf k1

Kernels and Distances for Structured Data Thomas Gärtner, John W. Lloyd, Peter A. Flach, Machine Learning, 2004

Convolution Kernels on Discrete Structures D. Haussler, Technical Report, University of Santa Cruz, 1999

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Jede dieser Kern-Funktionen k impliziert zusätzlich eine Distanz:

• Wir haben mit Hilfe dieser Distanz die Menge der SQL-Statements mit Cluster-Verfahren (kMeans) gruppiert

• Idee/Hoffnung dabei: Angriffe kommen als unähnliche „Ausreißer“ zu keiner Gruppe hinzu

• Zur Visualisierung haben wir eine ISOM (Inverted Self-Organizing Map) benutzt, um die Ähnlichkeit der SQL-Statements darzustellen

Clustering von SQL-Bäumen

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Beispiel: Clustering von SQL-Bäumen

• Erkennt es jemand?

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Beispiel: Clustering von SQL-Bäumen

• Erkennt es jemand?Typo-3 SQL Statements

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Clustering von SQL-Bäumen

• Die manuelle Untersuchung der resultierenden Cluster ergab:

• Die Ähnlichkeit der Statements erfüllte die Erwartungen an die „intuitive Ähnlichkeit“

• Die Cluster stellen die verschiedenartigen Statements dar, z.B. „user-logins“, „page-fetching“, „session-invalidation“

• Innerhalb dieser Cluster waren die Angriffe - obwohl nur leicht verändert - häufig isolierte Ausreißer:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Intrusion Detection

• Anomalie-Erkennung bietet viele gute Ansätze zur Erkennung von Angriffen

• Generalisierung meist auf komplettem HTTP-Traffic

• Probleme

• häufig „kryptische“ Modelle

• Direkter Bezug zur Web-Anwendung?

• Einwirken/Korrektur durch Benutzer oft unmöglich/schwierig

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Positive Sicherheitsmodelle für Web-AnwendungenFakultät InformatikLehrstuhl für Künstliche Intelligenz

Intrusion Detection

„Yes, the whole intrusion detection (and prevention ...) game is ‚just‘ a big attempt to ‚patch‘ bugged systems...“

Damiano Bolzoni, focus-ids mailing list 10/2008

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle - eine Alternative?

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle

• Sicherheitskritische Anwendungen werden auf Basis von Spezifikationen verifiziert

• Safety-Eigenschaft: „Something bad should never happen“

• Positives Sicherheitsmodell

• Spezifikation beschreibt Anwendung vollständig:

The Temporal Logic Of ActionsLeslie LamportACM Transactions on Programming Languages and Systems, 1994

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle

• Sicherheitskritische Anwendungen werden auf Basis von Spezifikationen verifiziert

• Safety-Eigenschaft: „Something bad should never happen“

• Positives Sicherheitsmodell

• Spezifikation beschreibt Anwendung vollständig:

The Temporal Logic Of ActionsLeslie LamportACM Transactions on Programming Languages and Systems, 1994

Alles, was nicht spezifiziert ist, ist verboten!

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle

• Wir erinnern uns:

• Wir wissen:

• Die URL „/save.php“ erwartet den Parameter „name“ mit einem „normalen Namen“ als Wert

POST /save.php HTTP/1.0Host: jwall.org

name=Robert

POST /save.php HTTP/1.0Host: jwall.org

name=Robert%60%29%3B+DROP+TABLE+STUDENTS%3B+--

Erwartet: Angriff:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle

• Wir erinnern uns:

• Wir wissen:

• Die URL „/save.php“ erwartet den Parameter „name“ mit einem „normalen Namen“ als Wert

POST /save.php HTTP/1.0Host: jwall.org

name=Robert

POST /save.php HTTP/1.0Host: jwall.org

name=Robert%60%29%3B+DROP+TABLE+STUDENTS%3B+--

Erwartet: Angriff:

Können wir nicht unsere Erwartung genau beschreiben?

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Spezifikationen - Ansätze

• Abstracting Application-Level Web-Security

• Definition einer XML-Sprache zur Beschreibung von Web-Anwendungen (SPDL)

• Integration einer Skriptsprache zur Definition eigener Validierungsschritte

• Implementation eines Reverse-Proxys das Anfragen auf Basis der SPDL validiert

• Portable Protection Recipes for Web Application Defence

• XML-Sprache zur abstrakten Definition von Regeln für Web-Application Firewalls

Abstracting Application-level Web-SecurityDavid Scott, Richard SharpProceedings of the 11th international conference on World Wide Web, May 2002

Portable Protection Recipes for Web Application DefenceIvan Ristichttp://www.modsecurity.org/projects/ppr/

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web Policy Language

• HTTP Adressraum bietet hierarchische Darstellung der Resource einer Anwendung als Baum

• XML Beschreibung der Anwendung in Bezug auf

• Resourcen

• Gültige Request-Methoden

• Gültige Parameter

• Typisierung der Parameter, Validierung der Parameter-Werte

• Temporale Abhängigkeiten (sitzungsbasiert) zwischen Resourcen

GET /Edit.jsp

page

POST /Edit.jsppage,text

POST /Login.jspCode: 302

GET /Wiki.jsp

page

account.php

GET

...

POST

images intern

/

index.php

produkt.gif logo.gif

A Meta-Language for Web Application ProfilesChristian Bockermann, Internal Report, 2008

Towards Specification-based Web Intrusion DetectionChristian Bockermann, 2010, (work in progress)

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

<Policy>

<Resource name="save.php"> <Method value="POST"> <Parameter name="name" regexp="\w{3,10}" required="true" scope="body"/> </Method> </Resource>

</Policy>

Web Policy Language

• Spezifikation für unser „save.php“ Beispiel: POST /save.php HTTP/1.0Host: jwall.org

name=Robert

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

<Policy>

<Resource name="save.php"> <Method value="POST"> <Parameter name="name" regexp="\w{3,10}" required="true" scope="body"/> </Method> </Resource>

</Policy>

Web Policy Language

• Spezifikation für unser „save.php“ Beispiel: POST /save.php HTTP/1.0Host: jwall.org

name=Robert

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Web-Anwendungen basieren auf sitzungsorientierter Interaktion mit dem Nutzer:

• Unterschiedliche Resourcen, auf die in fester Reihenfolge zugegriffen wird

• „Beschreibung der Business-Logik“

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

login.php

GET|POST

save.php

GET

account.php

GET|POST

billing.php

GET|HEAD

POST

Status 302: login.php Status 302:

loginOK.php

Resourcen der Klasse „intern“

stats.php

GET

Status 302:

loginOK.phpindex.php

GET|HEAD GET

Temporale Zusammenhänge

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web Policy Language

• Darstellung des anwendungsspezifischen Profils ermöglicht

• verständliche Analyse von Alerts im Kontext der Web-Anwendung

• Anpassung des Regelwerkes durch Administrator

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web Policy Language

• Darstellung des anwendungsspezifischen Profils ermöglicht

• verständliche Analyse von Alerts im Kontext der Web-Anwendung

• Anpassung des Regelwerkes durch Administrator

• Strikt positive Modelle problematisch:

• Wie spezifizieren wir Freitext-Felder?

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web Policy Language

• Mixed Model: Integration erfolgreicher Sicherheitsmechanismen:

• PHP-IDS, z.B. anhand von Filter-Tags

• XSSDS - für eine Anwendung gezielt optmierte XSS-Erkennung?

• Ziel:

• Abstrakte Definition von Angriffsmustern

• Referenz der Muster in der Web Policy

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Web Policy Language

• Mixed Model: Integration erfolgreicher Sicherheitsmechanismen:

• PHP-IDS, z.B. anhand von Filter-Tags

• XSSDS - für eine Anwendung gezielt optmierte XSS-Erkennung?

• Ziel:

• Abstrakte Definition von Angriffsmustern

• Referenz der Muster in der Web Policy

Definition abstrakter ParameterTypen:

<ParameterType name=“Message“ regexp=“.*“> <Filter tags=“xss,sqli“ /> <SpamFilter /></ParameterType>

Gezielte Filterung innerhalb der Anwendung:

<Resource “kontakt.php“>

<Parameter name=“msg“ type=“${Message}“ /></Resource>

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle

• Weiteres Problem:

• Moderne Anwendungen bestehen aus einer Vielzahl von Resourcen

• Dynamische URLs, stetige Veränderungen

• Manuelle Spezifikation komplexer Anwendungen nahezu unmöglich

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Positive Sicherheitsmodelle

• Weiteres Problem:

• Moderne Anwendungen bestehen aus einer Vielzahl von Resourcen

• Dynamische URLs, stetige Veränderungen

• Manuelle Spezifikation komplexer Anwendungen nahezu unmöglich

Lernen der Spezifikation aus HTTP-Daten?

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Extraktion von Audit-Daten aus HTTP-Streams

• Lernen eines abstrakten Anwendungsprofils

• Überführung des Profils in ein Regelwerk für eine Web-Application Firewall

JWall - eine intelligente Web-Application FirewallChristian Bockermann, Einreichung zum Deutschen IT-Sicherheits-preis (Horst-Görtz Stiftung), 2008

Anomalie-Erkennung in Web-AnwendungenChristian BockermannDiplomarbeit am LS8, TU Dortmund, 2007

Web-Anwendung

ModProfiler - Enough with Default-Allow for Web-ApplicationsOfer Shezaf, Ivan Ristic (Breach Security), 2008

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Extraktion von Audit-Daten aus HTTP-Streams

• Lernen eines abstrakten Anwendungsprofils

• Überführung des Profils in ein Regelwerk für eine Web-Application Firewall

JWall - eine intelligente Web-Application FirewallChristian Bockermann, Einreichung zum Deutschen IT-Sicherheits-preis (Horst-Görtz Stiftung), 2008

Anomalie-Erkennung in Web-AnwendungenChristian BockermannDiplomarbeit am LS8, TU Dortmund, 2007

Web-Anwendung

Audit Log Data

ModProfiler - Enough with Default-Allow for Web-ApplicationsOfer Shezaf, Ivan Ristic (Breach Security), 2008

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Extraktion von Audit-Daten aus HTTP-Streams

• Lernen eines abstrakten Anwendungsprofils

• Überführung des Profils in ein Regelwerk für eine Web-Application Firewall

JWall - eine intelligente Web-Application FirewallChristian Bockermann, Einreichung zum Deutschen IT-Sicherheits-preis (Horst-Görtz Stiftung), 2008

Anomalie-Erkennung in Web-AnwendungenChristian BockermannDiplomarbeit am LS8, TU Dortmund, 2007

Web-Anwendung

Lernen

ModProfiler - Enough with Default-Allow for Web-ApplicationsOfer Shezaf, Ivan Ristic (Breach Security), 2008

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Extraktion von Audit-Daten aus HTTP-Streams

• Lernen eines abstrakten Anwendungsprofils

• Überführung des Profils in ein Regelwerk für eine Web-Application Firewall

JWall - eine intelligente Web-Application FirewallChristian Bockermann, Einreichung zum Deutschen IT-Sicherheits-preis (Horst-Görtz Stiftung), 2008

Anomalie-Erkennung in Web-AnwendungenChristian BockermannDiplomarbeit am LS8, TU Dortmund, 2007

Web-Anwendung

Lernen

ModProfiler - Enough with Default-Allow for Web-ApplicationsOfer Shezaf, Ivan Ristic (Breach Security), 2008

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Extraktion von Audit-Daten aus HTTP-Streams

• Lernen eines abstrakten Anwendungsprofils

• Überführung des Profils in ein Regelwerk für eine Web-Application Firewall

JWall - eine intelligente Web-Application FirewallChristian Bockermann, Einreichung zum Deutschen IT-Sicherheits-preis (Horst-Görtz Stiftung), 2008

Anomalie-Erkennung in Web-AnwendungenChristian BockermannDiplomarbeit am LS8, TU Dortmund, 2007

Web-Anwendung

Web

-App

licat

ion

Fire

wal

l

ModProfiler - Enough with Default-Allow for Web-ApplicationsOfer Shezaf, Ivan Ristic (Breach Security), 2008

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Kombination von Maschinellem Lernen mit positivem Sicherheitsmodell:

• Automatische Erstellung möglichst vollständiger Anwendungsmodelle

• XML-basierte Modelle die eine benutzer-freundliche Darstellung bietet

• Abstrakte Beschreibungssprache, die auf feingranulare Regelsprachen für WAFs abgebildet werden kann

• Darstellung der „Business-Logik“ durch sitzungsorientiertes Automaten-Modell

XML-Profil

Lernen

Web-Anwendung

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Manuelle Erstellung von Profilen möglich, vorrangig automatische Generierung erwünscht

• Ziele beim Lernen:

• Strukturelles Modell sollte möglichst inkrementell zu Lernen sein (stream mining)

• Flexible Erweiterung des Ansatzes sollte möglich sein (multi-model approach)

• Erkennung/Adaption an Änderungen der Anwendung (concept drift)

• Komplexität von Sequence Mining deutlich höher, inkrementelles Lernen kaum möglich

PG542 - Stream Mining zur Intrusion Detection in verteilten SystemenProjektgruppe am Lehrstuhl 8, Informatik, TU Dortmund

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Schematische Darstellung des Frameworks zum Lernen der Anwendungsstruktur:

Lernen von Spezifikationen

Learning EngineModell

Audit-Daten

Session Session Context

Session-Tracker

Resource-Learner

Parameter-Learner

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Lernen der Struktur basiert auf Häufigkeiten von Methoden-Aufrufen, Parametern und Parameter-Werten:

• Je Resource wird ein Modell erzeugt

• Jedes Modell besteht aus einer Liste unterschiedlicher Teilmodelle

• Parameter-Modelle (optional oder nicht)

• Parameter-Werte-Modelle (Typisierung)

• Flexible Implementierung erlaubt einfache Erweiterung um zusätzliche Modelle

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter optional oder nicht?

• Wie häufig wurde ein Parameter für eine Resource übermittelt?

• Entscheidung anhand von Schwellwerten (z.B. bei Vorhandensein in mehr als 98% aller Fälle)

• Parameter-Typisierung

• Verteilungsfunktion der Parameter-Werte

• Vordefinierte Typen (basierend auf regulären Ausdrücken)

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter-Typisierung

• Klassifikation der Parameter anhand von Häufigkeiten der Parameter-Werte in

• diskrete ParameterParameter-Werte aus festen Mengen (z.B. bei Auswahl-Feldern für Sprache, Land, ...)

• freie ParameterParameter, die durch einfache, reguläre Ausdrücke beschrieben werden können

• Klassifikation anhand eines einfachen Schwellwertvergleichs

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter-Typisierung freier Parameter

• Typisierung mit regulären Ausdrücken

• Abbildung der Parameter-Werte auf geordnete Liste vordefinierter Ausdrücke

• Ausdrücke r,s induzieren reguläre Sprachen Lr und Ls

• D.h. spezifischere Ausdrücke stehen vor generelleren Ausdrücken, z.B.

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

r < s ⇔ w ∈ Ls∀w ∈ Lr ∧ ∃w� ∈ Ls : w� �∈ Lr

1

\d{5,10}\d*

[\da-f]*[\w\.-]@[0-9a-zA-Z-.]{1,64}

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter-Typisierung freier Parameter (2)

• Zuordnung von Parameter-Typ zu einem Parameter anhand von einfachem Scoring

• Für jeden Wert erhält der erste passende Ausdruck der Liste die Häufigkeit als Gewicht

• Spezifischster Ausdruck, dessen Gewicht (Summe) am höchsten ist, wird gewählt

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Regulärer Ausdruck Score

\d* 0

[A-z\s-]* 0

[A-z0-9\s\.-_]* 0

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter-Typisierung freier Parameter (2)

• Zuordnung von Parameter-Typ zu einem Parameter anhand von einfachem Scoring

• Für jeden Wert erhält der erste passende Ausdruck der Liste die Häufigkeit als Gewicht

• Spezifischster Ausdruck, dessen Gewicht (Summe) am höchsten ist, wird gewählt

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Regulärer Ausdruck Score

\d* 0

[A-z\s-]* 0

[A-z0-9\s\.-_]* 0

„Jan“2

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter-Typisierung freier Parameter (2)

• Zuordnung von Parameter-Typ zu einem Parameter anhand von einfachem Scoring

• Für jeden Wert erhält der erste passende Ausdruck der Liste die Häufigkeit als Gewicht

• Spezifischster Ausdruck, dessen Gewicht (Summe) am höchsten ist, wird gewählt

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Regulärer Ausdruck Score

\d* 0

[A-z\s-]* 0

[A-z0-9\s\.-_]* 0

„Andrea“15

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Spezifikationen

• Parameter-Typisierung freier Parameter (2)

• Zuordnung von Parameter-Typ zu einem Parameter anhand von einfachem Scoring

• Für jeden Wert erhält der erste passende Ausdruck der Liste die Häufigkeit als Gewicht

• Spezifischster Ausdruck, dessen Gewicht (Summe) am höchsten ist, wird gewählt

account.php (371)

Methode GET (371)

intern

/

Parameter: { name (75), id (371) }

„name“:{ Jan (2), Peter (23), Andrea (13), ... }

„id“:{ 1 (43), 4 (18), 7 (21), ... }

Regulärer Ausdruck Score

\d* 0

[A-z\s-]* 0

[A-z0-9\s\.-_]* 0

„Peter“38

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Temporale Zusammenhänge

• Moderne Web-Anwendungen basieren auf sitzungsorientierter Interaktion mit dem Nutzer:

• Unterschiedliche Resourcen, auf die in fester Reihenfolge zugegriffen wird

• Mit Hilfe von Sequence Mining Ansätzen wird nach Mustern gesucht, die derartige Abfolgen darstellen:

GET /Edit.jsp

page

POST /Edit.jsppage,text

POST /Login.jspCode: 302

GET /Wiki.jsp

page

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Generalized Sequential Patterns:

• Geben ist Menge von Sequenzen X = { D1, D2, ... }

• Eine Sequenz D ist eine geordnete Menge von items sets di D = < d1 d2 ... dn>

• Jedes item set di ist eine Menge von items di = { x1, x2, x3 ... }

• Die items kommen aus einer beliebigen Grundmenge (problem-spezifisch) Mining Sequential Patterns:

Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Generalized Sequential Patterns:

• Geben ist Menge von Sequenzen X = { D1, D2, ... }

• Eine Sequenz D ist eine geordnete Menge von items sets di D = < d1 d2 ... dn>

• Jedes item set di ist eine Menge von items di = { x1, x2, x3 ... }

• Die items kommen aus einer beliebigen Grundmenge (problem-spezifisch)

• Beispiel: Kundendatenbank enthält Einkäufe, jeder Einkauf ist eine Menge von Artikeln (items)

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Generalized Sequential Patterns:

• Geben ist Menge von Sequenzen X = { D1, D2, ... }

• Eine Sequenz D ist eine geordnete Menge von items sets di D = < d1 d2 ... dn>

• Jedes item set di ist eine Menge von items di = { x1, x2, x3 ... }

• Die items kommen aus einer beliebigen Grundmenge (problem-spezifisch)

• Beispiel: Kundendatenbank enthält Einkäufe, jeder Einkauf ist eine Menge von Artikeln (items)

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Generalized Sequential Patterns:

• Geben ist Menge von Sequenzen X = { D1, D2, ... }

• Eine Sequenz D ist eine geordnete Menge von items sets di D = < d1 d2 ... dn>

• Jedes item set di ist eine Menge von items di = { x1, x2, x3 ... }

• Die items kommen aus einer beliebigen Grundmenge (problem-spezifisch)

• Beispiel: Kundendatenbank enthält Einkäufe, jeder Einkauf ist eine Menge von Artikeln (items)

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

< (1,4,5) (5,10) (4,10,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Generalized Sequential Patterns:

• Geben ist Menge von Sequenzen X = { D1, D2, ... }

• Eine Sequenz D ist eine geordnete Menge von items sets di D = < d1 d2 ... dn>

• Jedes item set di ist eine Menge von items di = { x1, x2, x3 ... }

• Die items kommen aus einer beliebigen Grundmenge (problem-spezifisch)

• Beispiel: Kundendatenbank enthält Einkäufe, jeder Einkauf ist eine Menge von Artikeln (items)

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

< (1,4,5) (5,10) (4,10,18) >

D heisst k-elementige Sequenz, wenn D insgesamt k items enthält

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Generalized Sequential Patterns:

• Geben ist Menge von Sequenzen X = { D1, D2, ... }

• Eine Sequenz D ist eine geordnete Menge von items sets di D = < d1 d2 ... dn>

• Jedes item set di ist eine Menge von items di = { x1, x2, x3 ... }

• Die items kommen aus einer beliebigen Grundmenge (problem-spezifisch)

• Beispiel: Kundendatenbank enthält Einkäufe, jeder Einkauf ist eine Menge von Artikeln (items)

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

< (1,4,5) (5,10) (4,10,18) >

D heisst k-elementige Sequenz, wenn D insgesamt k items enthält

8-elementige Sequenz

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sei S = < s1 s2 ... sn > eine Sequenz, Si jeweils die itemsets von S

• Die Sequenz S enthält eine Sequenz T = < t1 ... tk >, falls

1. jedes ti in einem sj enthalten ist

2. dabei die Reihenfolge eingehalten wird

• Gesucht werden generalisierende Sequenzen (Muster), die möglichst viele Sequenzen in X beschreiben

• Support eines Musters ist die Anzahl der Sequenzen aus X, die das Muster enthalten

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7

2 50 2,5,10,21

2 70 4,6,18

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sei S = < s1 s2 ... sn > eine Sequenz, Si jeweils die itemsets von S

• Die Sequenz S enthält eine Sequenz T = < t1 ... tk >, falls

1. jedes ti in einem sj enthalten ist

2. dabei die Reihenfolge eingehalten wird

• Gesucht werden generalisierende Sequenzen (Muster), die möglichst viele Sequenzen in X beschreiben

• Support eines Musters ist die Anzahl der Sequenzen aus X, die das Muster enthalten

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7

2 50 2,5,10,21

2 70 4,6,18

< (1,4,5) (5,10) (4,10,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sei S = < s1 s2 ... sn > eine Sequenz, Si jeweils die itemsets von S

• Die Sequenz S enthält eine Sequenz T = < t1 ... tk >, falls

1. jedes ti in einem sj enthalten ist

2. dabei die Reihenfolge eingehalten wird

• Gesucht werden generalisierende Sequenzen (Muster), die möglichst viele Sequenzen in X beschreiben

• Support eines Musters ist die Anzahl der Sequenzen aus X, die das Muster enthalten

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7

2 50 2,5,10,21

2 70 4,6,18

< (1,4,5) (5,10) (4,10,18) >< (1,3,7) (2,5,10,21) (4,6,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sei S = < s1 s2 ... sn > eine Sequenz, Si jeweils die itemsets von S

• Die Sequenz S enthält eine Sequenz T = < t1 ... tk >, falls

1. jedes ti in einem sj enthalten ist

2. dabei die Reihenfolge eingehalten wird

• Gesucht werden generalisierende Sequenzen (Muster), die möglichst viele Sequenzen in X beschreiben

• Support eines Musters ist die Anzahl der Sequenzen aus X, die das Muster enthalten

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7

2 50 2,5,10,21

2 70 4,6,18

< (1,4,5) (5,10) (4,10,18) >

Die Sequenz < (1) (5,10) (4,18) >beschreibt beide Kunden

< (1,3,7) (2,5,10,21) (4,6,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sei S = < s1 s2 ... sn > eine Sequenz, Si jeweils die itemsets von S

• Die Sequenz S enthält eine Sequenz T = < t1 ... tk >, falls

1. jedes ti in einem sj enthalten ist

2. dabei die Reihenfolge eingehalten wird

• Gesucht werden generalisierende Sequenzen (Muster), die möglichst viele Sequenzen in X beschreiben

• Support eines Musters ist die Anzahl der Sequenzen aus X, die das Muster enthalten

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7

2 50 2,5,10,21

2 70 4,6,18

Die Sequenz < (1) (5,10) (4,18) >beschreibt beide Kunden

< (1,4,5) (5,10) (4,10,18) >< (1,3,7) (2,5,10,21) (4,6,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sei S = < s1 s2 ... sn > eine Sequenz, Si jeweils die itemsets von S

• Die Sequenz S enthält eine Sequenz T = < t1 ... tk >, falls

1. jedes ti in einem sj enthalten ist

2. dabei die Reihenfolge eingehalten wird

• Gesucht werden generalisierende Sequenzen (Muster), die möglichst viele Sequenzen in X beschreiben

• Support eines Musters ist die Anzahl der Sequenzen aus X, die das Muster enthalten

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7

2 50 2,5,10,21

2 70 4,6,18

Die Sequenz < (1) (5,10) (4,18) >beschreibt beide Kunden

< (1,4,5) (5,10) (4,10,18) >< (1,3,7) (2,5,10,21) (4,6,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Algorithmus basiert auf Kandidatengenerierung:

Ck = { häufige k-elementige Sequenzen }

while( Ck != {} ) {

Ck+1 = GeneriereKandidaten( Ck )

CountSupport( Ck+1 )

Ck+1 = { c aus Ck+1 | support( c ) > x }

k = k + 1}

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Algorithmus basiert auf Kandidatengenerierung:

Ck = { häufige k-elementige Sequenzen }

while( Ck != {} ) {

Ck+1 = GeneriereKandidaten( Ck )

CountSupport( Ck+1 )

Ck+1 = { c aus Ck+1 | support( c ) > x }

k = k + 1}

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

< (1,4,5) (5,10) (4,10,18) >

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Algorithmus basiert auf Kandidatengenerierung:

Ck = { häufige k-elementige Sequenzen }

while( Ck != {} ) {

Ck+1 = GeneriereKandidaten( Ck )

CountSupport( Ck+1 )

Ck+1 = { c aus Ck+1 | support( c ) > x }

k = k + 1}

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

Die Sequenz < (1) (5,10) (4,18) >beschreibt beide Kunden

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Algorithmus basiert auf Kandidatengenerierung:

Ck = { häufige k-elementige Sequenzen }

while( Ck != {} ) {

Ck+1 = GeneriereKandidaten( Ck )

CountSupport( Ck+1 )

Ck+1 = { c aus Ck+1 | support( c ) > x }

k = k + 1}

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

Die Sequenz < (1) (5,10) (4,18) >beschreibt beide Kunden

• Anti-Monotonie der Häufigkeit:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Algorithmus basiert auf Kandidatengenerierung:

Ck = { häufige k-elementige Sequenzen }

while( Ck != {} ) {

Ck+1 = GeneriereKandidaten( Ck )

CountSupport( Ck+1 )

Ck+1 = { c aus Ck+1 | support( c ) > x }

k = k + 1}

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Kd-Nr Zeit Einkauf (Artikel)

1 10 1,4,5

1 15 5,10

1 45 4,10,18

2 20 1,3,7,8

2 50 2,5,10,21,43

2 70 4,5,6,18

Die Sequenz < (1) (5,10) (4,18) >beschreibt beide Kunden

• Anti-Monotonie der Häufigkeit:

• S nicht häufig => Keine Obersequenz von S häufig

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sequenzen in Web-Anwendungen

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Session Request (items)

1 GET, /Wiki.jsp, page

1 GET, /Edit.jsp, page

1 POST, /Edit.jsp, page, text

2 GET, /Edit.jsp, page

2 POST, /Edit.jsp, page, text

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sequenzen in Web-Anwendungen

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Session Request (items)

1 GET, /Wiki.jsp, page

1 GET, /Edit.jsp, page

1 POST, /Edit.jsp, page, text

2 GET, /Edit.jsp, page

2 POST, /Edit.jsp, page, text

Muster Count

( GET ) 2

( POST ) 2

( Edit.jsp ) 2

( Wiki.jsp ) 1

( page ) 2

( text ) 2

1 elementige Kandidaten

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sequenzen in Web-Anwendungen

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Session Request (items)

1 GET, /Wiki.jsp, page

1 GET, /Edit.jsp, page

1 POST, /Edit.jsp, page, text

2 GET, /Edit.jsp, page

2 POST, /Edit.jsp, page, text

Muster Count

( GET ) 2

( POST ) 2

( Edit.jsp ) 2

( Wiki.jsp ) 1

( page ) 2

( text ) 2

1 elementige Kandidaten

Muster Count

( GET, POST ) 0

( GET ) ( POST ) 2

( GET, Edit.jsp ) 2

( GET ) ( Edit.jsp ) 2

( GET Wiki.jsp ) 1

( GET ) ( Wiki.jsp ) 2

( GET, page ) 2

( GET ) ( page ) 2

( GET, text ) 0

...

2 elementige Kandidaten (Auszug)

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Sequenzen in Web-Anwendungen

Mining Sequential Patterns:Generalizations and Performance Improvements R. Skrikant and R. Agrawal.In Proc. 5th Int. Conf. Extending Database Technology, EDBT, Band 1057, Seiten 3-17. Springer-Verlag, 1996

Session Request (items)

1 GET, /Wiki.jsp, page

1 GET, /Edit.jsp, page

1 POST, /Edit.jsp, page, text

2 GET, /Edit.jsp, page

2 POST, /Edit.jsp, page, textMuster Count

( GET, Edit.jsp, page ) 2

( POST, Edit.jsp, page ) 2

( GET ) ( POST, Edit.jsp ) 2

( GET, Edit.jsp ) ( Edit.jsp ) 2

...

Muster Count

( GET, Edit.jsp, page ) ( POST, Edit.jsp, page ) 2

...

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

• Je nach Wahl der items liefern sequentielle Muster temporale Abhängigkeiten im Hinblick auf

• Resourcen, über die URL, in der Form < ( Wiki.jsp ) ( Edit.jsp ) >

• Methoden < ( GET ) ( Edit.jsp ) >

• Parametern < ( Edit.jsp, page ) ( Edit.jsp, page, text ) >

• Diese Muster können in der Web Profile Language ausgedrückt werden

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Lernen von Sequenzen

<Profile> <Context path=“/“>

<Resource name="Edit.jsp"> <Method value="GET"> <Parameter name="page" regexp="${pageType}" required="false" scope="HEADER"> <CreateToken name=“T543“ timeout=“1200“ /> </Parameter> </Method>

<Method value=“POST“> <Parameter name="page" regexp="${pageType}" required="true" scope="HEADER"> <CheckToken name=“T543“/> </Parameter> </Method> </Resource> </Context></Profile>

< ( GET /Edit.jsp page ) ( POST /Edit.jsp page) >

Darstellung der Muster durch sitzungsbasierten Token-Mechanismus:

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Test auf Audit-Daten einer Web-Shop Plattform

• Analyse der Profile durch Web-Entwickler:

• Die Profile liefern eine stark komprimierte Darstellung der Benutzerinteraktion

• Entwickler konnten durch Revision der Modelle Fehler in Web-Anwendung finden

• Die Profile unterstützen eine manuelle Revision und leichte Anpassung an die Anwendung:

• Gezieltes Just-in Time Patching in der Web-Application Firewall

Evaluierung von Web-Profilen

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

• Test auf Audit-Daten einer Web-Shop Plattform

• Analyse der Profile durch Web-Entwickler:

• Die Profile liefern eine stark komprimierte Darstellung der Benutzerinteraktion

• Entwickler konnten durch Revision der Modelle Fehler in Web-Anwendung finden

• Die Profile unterstützen eine manuelle Revision und leichte Anpassung an die Anwendung:

• Gezieltes Just-in Time Patching in der Web-Application Firewall

Passt das Nutzerverhalten zur beabsichtigten Nutzung?

Lernen

Evaluierung von Web-Profilen

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Zusammenfassung

• Viele Forschungsansätze verwenden Maschinelles Lernen, wichtige Aspekte dabei

• Merkmalsextraktion, Datenrepräsentation

• Stream-Mining, Zeitliche Änderungen

• Vollständig automatisiertes Lernen schwierig: Verständlichkeit von gelernten Modellen wichtig

Positive Sicherheitsmodelle für Web-Anwendungen

Mai 2010, RUB Bochum Christian Bockermann - chris @ jwall.org

Fakultät InformatikLehrstuhl für Künstliche Intelligenz

Zusammenfassung

• IDS und WAF Systeme können helfen, Web-Angriffe zu erkennen und zu verhindern

• Spezifikationsbasierte Ansätze wenig verbreitet

• Spezifikationen bieten insbesondere anwendungs-bezogene Interpretation

• Positive Sicherheitsmodelle bieten einzigen Schutz gegen Zero-Day Angriffe

• Allerdings: No Silver Bullet