SlideShare uma empresa Scribd logo
1 de 156
Baixar para ler offline
Another Brick off The Wall:
Deconstructing Web Application
Firewalls Using Automata Learning
George Argyros, Ioannis Stais
Joint Work with:
Suman Jana, Angelos D. Keromytis, Aggelos Kiayias
Overview
ā€¢ A journey in the world of:
- Code Injection attacks.
- Web Application Firewalls.
- Parsers.
- Learning algorithms.
ā€¢ And newly discovered vulnerabilities :)
Code Injection Attacks
ā€¢ SQLi, XSS, XML, etcā€¦
ā€¢ Not going anywhere anytime soon.
ā€¢ 14% increase in total web attacks in
Q2 2016 [1]
ā€¢ 150% - 200% increase in SQLi and
XSS attacks in 2015 [2]
[1] akamaiā€™s [state of the internet] / security Q2 2016 executive review
[2] Imperva: 2015 Web Application Attack Report (WAAR)
Code Injection is a Parsing
Problem
Web Application
Language
Runtime
Input data Injection attack
Code Injection is a Parsing
Problem
Web Application
Language
Runtime
Input data
Input data is parsed
incorrectly
Injection attack
Code Injection is a Parsing
Problem
Web application parsers are doing a really bad
job in parsing user inputs.
Web Application
Language
Runtime
Input data
Input data is parsed
incorrectly
Injection attack
Web Application Firewalls
(or solving parsing problems with parsing)
Web Application Firewalls
ā€¢ Monitor trafļ¬c at the Application
Layer: Both HTTP Requests and
Responses.
ā€¢ Detect and Prevent Attacks.
ā€¢ Cost-effective compliance with PCI
DSS requirement 6.6 [1]
[1] PCI DSS v3.2
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
User
Input
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
User
Input
<ScRipt>alert(1);</ScRipT>
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
User
Input
<ScRipt>alert(1);</ScRipT>
<script>alert(1);</script>
Lower Case
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
User
Input
<ScRipt>alert(1);</ScRipT>
<script>alert(1);</script>
Lower Case
<script>alert(1);</script>
Matched Rule:
<script>.*</script>
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
User
Input
<ScRipt>alert(1);</ScRipT>
<script>alert(1);</script>
Lower Case
<script>alert(1);</script>
Matched Rule:
<script>.*</script>
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
Event
Correlation
Tokenising
User
Input
<ScRipt>alert(1);</ScRipT>
<script>alert(1);</script>
Lower Case
<script>alert(1);</script>
Matched Rule:
<script>.*</script>
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
Event
Correlation
Tokenising
User
Input
<ScRipt>alert(1);</ScRipT>
<script>alert(1);</script>
Lower Case
<script>alert(1);</script>
Matched Rule:
<script>.*</script>
1.<script>
2. alert(1);
3.</script>
WAFs Internals
Rulesets
Matching
Normalization
Attack
Mitigation
Event
Correlation
Tokenising
User
Input
<ScRipt>alert(1);</ScRipT>
<script>alert(1);</script>
Lower Case
<script>alert(1);</script>
Matched Rule:
<script>.*</script>
1.<script>
2. alert(1);
3.</script>
1. 4 Rules Matched
2. Session/User history
WAF Rulesets
ā€¢ Signatures: Strings or Regular Expressions
E.g., [PHPIDS Rule 54] Detects Postgres pg_sleep injection, waitfor delay attacks and
database shutdown attempts:
(?:selects*pg_sleep)|(?:waitfors*delays?"+s?d)|(?:;s*shutdowns*(?:;|--|#|/*|{))
WAF Rulesets
ā€¢ Signatures: Strings or Regular Expressions
ā€¢ Rules: Logical expressions and Condition/Control Variables
E.g., ModSecurity CRS Rule 981254:
SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/
_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "(?i:(?:selects*?
pg_sleep)|(?:waitfors*?delays?["'`Ā“ā€™ā€˜]+s?d)|(?:;s*?shutdowns*?(?:;|--|#|/*|{)))" ā€œphase:
2,capture,t:none,t:urlDecodeUni,block, setvar:tx.sql_injection_score=
+1,setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:'tx.%{tx.msg}-
OWASP_CRS/WEB_ATTACK/SQLI-%{matched_var_name}=%{tx.0}'"
WAF Rulesets
ā€¢ Signatures: Strings or Regular Expressions
ā€¢ Rules: Logical expressions and Condition/Control Variables
ā€¢ Virtual Patches: Application Speciļ¬c Patches
E.g., ModSecurity: Turns off autocomplete for the forms on login and signup pages
SecRule REQUEST_URI "^(/login|/signup)" "id:1000,phase:4,chain,nolog,pass"
SecRule REQUEST_METHOD "@streq GET" "chain"
SecRule STREAM_OUTPUT_BODY "@rsub s/<form /<form autocomplete="off" /"
WAF Rulesets
ā€¢ Signatures: Strings or Regular Expressions
ā€¢ Rules: Logical expressions and Condition/Control Variables
ā€¢ Virtual Patches: Application Speciļ¬c Patches
ā€¢ PHPIDS has more than 420K states
ā€¢ Shared between different WAFs and Log Auditing Software: PHPIDS,
Expose, ModSecurity
Why Bypasses Exist
Why Bypasses Exist
- Simple hacks:
ā€¢ Lack of support for different protocols, encodings, contents, etc
ā€¢ Restrictions on length, character sets, byte ranges, types of
parameters, etc
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
PHPIDS 0.7.0
Rulesets
Matching
Normalization
ā€™ ā€ ` ā€
User
Input
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
PHPIDS 0.7.0
Rulesets
Matching
Normalization
ā€™ ā€ ` ā€
User
Input
x' onclick='a()'>
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
PHPIDS 0.7.0
Rulesets
Matching
Normalization
ā€™ ā€ ` ā€
User
Input
x' onclick='a()'>
"s*(src|style|onw+)s*=s*")
MATCHED!
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
Rulesets
Matching
Normalization
ā€™ ā€ ` ā€
User
Input
x' onclick='a()'>
"s*(src|style|onw+)s*=s*")
MATCHED!
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
Rulesets
Matching
Normalization
ā€™ ā€ ` ā€
User
Input
x' onclick='a()'>
"s*(src|style|onw+)s*=s*")
MATCHED!
Expose 2.4.0
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
Rulesets
Matching
ā€™ ā€ ` ā€
User
Input
x' onclick='a()'>
"s*(src|style|onw+)s*=s*")
MATCHED!
Expose 2.4.0
Why Bypasses Exist
- Rulesets sharing mistakes:
ā€¢ Normalisation and Rulesets Failure
Rulesets
Matching
ā€™ ā€ ` ā€
User
Input
x' onclick='a()'>
"s*(src|style|onw+)s*=s*")
MATCHED!
Expose 2.4.0
BYPASS!
Why Bypasses Exist
- Critical WAF components are not being updated:
ā€¢ E.g, ModSecurity libinjection library
Why Bypasses Exist
- Critical WAF components are not being updated:
ā€¢ E.g, ModSecurity libinjection library
Why Bypasses Exist
- The Real Fundamental Reasons:
ā€¢ Insufļ¬cient Signatures & Weak Rules
ā€¢ Detecting vulnerabilities without context is HARD
Our Goal
1. Formalize knowledge in code injection attacks variations
using context free grammars and automata.
2. Use Learning algorithms to expand this knowledge by
inferring system speciļ¬cations.
Using parsers to
break parsers
Regular Expressions and
Finite Automata
Every regular expression can be converted to a
Deterministic Finite Automaton.
(.*)man
Context Free Grammars
ā€¢ Superset of Regular Expressions.
ā€¢ Mostly used to write programming
languages parsers.
ā€¢ Equivalent to a DFA with a stack.
ā€¢ Can be used to count.
- Example: matching parentheses.
E ā†’ N
E ā†’ E Op E
E ā†’ ( E )
N ā†’ N N
Op ā†’ +
Op ā†’ -
Op ā†’ *
Op ā†’ /
N ā†’ [0-9]
} Non
Terminals
}Terminals
Attack of the Grammars
ā€¢ Context Free Grammars can be used to encode attack vectors.
ā€¢ Assume we would like to inject code into the query:
- ā€œSELECT * FROM users WHERE id=$id;ā€
ā€¢ The valid sufļ¬xes (injections) for this query can be encoded as a
CFG!
Cross checking regular expressions with grammars is easy!
Why should I care?
Context Free
Grammar G
Regular Expression Fvs
SQL Injections WAF Filter
Find an SQL Injection attack in the Grammar G
which is not rejected by the ļ¬lter F
Howeverā€¦
ā€¢ In reality, we do not know the language parsed by most
implementations.
- MySQL is parsing a different SQL ļ¬‚avor than MS-SQL.
- Browsers are deļ¬nitely not parsing the HTML standard.
- WAFs are doing much more than a simple RE matching.
Learning to Parse
ā€¢ Our Approach: Use Learning algorithms in order to infer the
speciļ¬cations of parsers and WAFs.
- Cross check the inferred models for vulnerabilities.
ā€¢ By using learning we can actively ļ¬gure out important details of the
systems.
Learning Automata
Learning Automata
ā€¢ Active Learning algorithm.
- Instead of learning from corpus of data, query the program
with input of his choice.
ā€¢ Eventually a model is generated.
ā€¢ Discovered inconsistencies of the model is used to reļ¬ne it.
Learning Model
Learning
Algorithm
Parser P
Learning Model
Learning
Algorithm
Parser P
Membership Query
Learning Model
Learning
Algorithm
string s
Is s accepted by P?
Parser P
Membership Query
Learning Model
Learning
Algorithm
Model H
string s
Is s accepted by P?
Parser P
Membership Query
Learning Model
Learning
Algorithm
Model H
string s
Is s accepted by P?
Parser P
Learning Model
Learning
Algorithm
Model H
string s
Is s accepted by P?
Parser P
Equivalence Query
Learning Model
Learning
Algorithm
Model H
string s
Is s accepted by P?
Parser P
Equivalence
Oracle
Is H a correct model of P?
Yes, or provide counterexample.
Equivalence Query
Learning Model
Learning
Algorithm
Model H
string s
Is s accepted by P?
Parser P
Equivalence
Oracle
Is H a correct model of P?
Yes, or provide counterexample.
Learning DFAs
ā€¢ Angluinā€™s algorithm is an active learning algorithm for learning
DFAs.
ā€¢ Learns the target DFA using a table data structure called the
observation table.
ā€¢ Letā€™s use it to learn the regular expression (.*)<a(.*)
- Aggressive ļ¬ltering of anchor tags.
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Empty string
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Strings for ā€œtestingā€
states.
(Distinguishing strings)
Empty string
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Strings for ā€œtestingā€
states.
(Distinguishing strings)
Strings accessing
different states in the
target automaton.
(Access Strings)
Empty string
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Strings for ā€œtestingā€
states.
(Distinguishing strings)
Strings accessing
different states in the
target automaton.
(Access Strings)
Strings which
transition from
the above states.
Empty string
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Strings for ā€œtestingā€
states.
(Distinguishing strings)
Strings accessing
different states in the
target automaton.
(Access Strings)
Strings which
transition from
the above states.
An entry is ļ¬lled by
concatenating the row
and column string and
ļ¬lling with the output of
the automaton.
Empty string
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Model:
Target: < a
<,a
<
a
> Īµ < <a
q_0
q_0
trans.
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Model:
Target: < a
<,a
<
a
> Īµ < <a
OT Īµ
Īµ 0
Īµ< 0
Īµa 0
q_0
q_0
trans.
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Model:
Target: < a
<,a
<
a
> Īµ < <a
OT Īµ
Īµ 0
Īµ< 0
Īµa 0
q_0
q_0
trans.
Learning DFAs
OT Īµ
Īµ
Īµ<
Īµa
Model:
Target: < a
<,a
<
a
> Īµ < <a
a,<
> Īµ
OT Īµ
Īµ 0
Īµ< 0
Īµa 0
q_0
q_0
trans.
Equivalence Query
< a
<,a
<
a
> Īµ < <a
a,<
> Īµ =?
Counterexample
analysis
aCE: <aaa<<a Add a new column with
character ā€œaā€ in the OT.
Learning DFAs
OT Īµ a
Īµ 0
Īµ< 0
Īµa 0
Model:
Target: < a
<,a
<
a
> Īµ < <a
q_0
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0
Īµ< 0
Īµa 0
Model:
Target: < a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
q_0
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0
Īµ< 0
Īµa 0
Model:
Target: < a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
Must be a
new state
q_0
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
Īµ< 0 1
<a
<<
Model:
Target: < a
<,a
<
a
> Īµ < <a
q_0
q_1
q_0
Trans.
q_1
Trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
Īµ< 0 1
<a
<<
Model:
Target: < a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
q_0
q_1
q_0
Trans.
q_1
Trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
Īµ< 0 1
<a
<<
Model:
Target: < a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
Must be a
new state
q_0
q_1
q_0
Trans.
q_1
Trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa
<a<
Model:
Target:
< a
<,a
<
a
> Īµ < <a
q_0
q_1
q_2
q_2
trans.
q_1
trans.
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa
<a<
Model:
Target:
< a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa 1 1
<a< 1 1
q_0
q_1
q_2
q_2
trans.
q_1
trans.
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa
<a<
Model:
Target:
< a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa 1 1
<a< 1 1
states
q_0
q_1
q_2
q_2
trans.
q_1
trans.
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa
<a<
Model:
Target:
< a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa 1 1
<a< 1 1
states
transitions
q_0
q_1
q_2
q_2
trans.
q_1
trans.
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa
<a<
Model:
Target:
< a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa 1 1
<a< 1 1
states
transitions
q_0
q_1
q_2
q_2
trans.
q_1
trans.
q_0
trans.
Learning DFAs
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa
<a<
Model:
Target:
< a
<,a
<
a
> Īµ < <a
< a
<,a
<
a
> Īµ < <a
OT Īµ a
Īµ 0 0
Īµ< 0 1
<a 1 1
Īµa 0 0
Īµ< 0 1
<a 1 1
<< 0 1
<aa 1 1
<a< 1 1
states
transitions
q_0
q_1
q_2
q_2
trans.
q_1
trans.
q_0
trans.
Learning DFAs
ā€¢ This algorithm is inefļ¬cient for large alphabets/automata.
ā€¢ For just one PHPIDS Rule (id. 72):
ā€¢ ((={s}*(top|this|window|content|self|frames|_content))|(/{s}*[gimx]*{s}*[)}])|([^ ]{s}*={s}*script)|(.{s}
*constructor)|(default{s}+xml{s}+namespace{s}*=)|(/{s}*+[^+]+{s}*+{s}*/))
- 72 states when represented as a DFA.
- The OT will have ~650k entries.
ā€¢ We need a faster algorithm in order to check real systems!
Symbolic Finite Automata
āœ“ Efļ¬cient modeling of large
alphabets.
āœ“ We designed a novel,
efļ¬cient learning algorithm.
āœ“ Details in the whitepaper!
Bootstrapping Automata Learning
ā€¢ Similar concept with seed inputs in fuzzers.
- Provide sample inputs and learning algorithm will
discover additional states in the parser.
ā€¢ Utilize previously inferred models, speciļ¬cations, etc.
ā€¢ Seed inputs are guiding the learning algorithm.
ā€¢ Details in the white paper!
Grammar Oriented Filter Auditing
(GOFA)
Grammar Oriented Filter Auditing
ā€¢ Assume that we are given a grammar with attacks.
ā€¢ How do we utilize it with the learning algorithm?
Main idea:
Use the grammar to drive the learning procedure.
Grammar Oriented Filter Auditing
ā€¦
select_exp: SELECT name
any_all_some: ANY | ALL
column_ref: name
parameter: name
Context Free
Grammar G
Learning
Algorithm
Grammar Oriented Filter Auditing
ā€¦
select_exp: SELECT name
any_all_some: ANY | ALL
column_ref: name
parameter: name
Context Free
Grammar G
Step 1:
Learn a model of the WAF.
Learning
Algorithm
Grammar Oriented Filter Auditing
ā€¦
select_exp: SELECT name
any_all_some: ANY | ALL
column_ref: name
parameter: name
Context Free
Grammar G
Step 1:
Learn a model of the WAF.
Learning
Algorithm
Grammar Oriented Filter Auditing
ā€¦
select_exp: SELECT name
any_all_some: ANY | ALL
column_ref: name
parameter: name
Context Free
Grammar G
Step 1:
Learn a model of the WAF.
Learning
Algorithm
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
Step 2:
Find a vulnerability in the model using the grammar.
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
Step 3:
Verify WAF vulnerability.
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
Step 3:
Verify WAF vulnerability.
Candidate Bypass
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
Candidate Bypass
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
Candidate Bypass
Step 4:
or reļ¬ne model and repeat.
WAF
Model
Grammar Oriented Filter Auditing
Context Free
Grammar G
Learning
Algorithmvs
Candidate Bypass
Step 4:
or reļ¬ne model and repeat.
counterexample (false positive)
WAF
Model
Vulnerabilities
GOFA SQL Injections
ā€¢ Grammar for extending search conditions:
select * from users where user = admin and email = $_GET[c]
GOFA SQL Injections
S: A mainā€Ø
main: search_condition ā€Ø
search_condition: OR predicate | AND predicate ā€Ø
predicate: comparison_predicate | between_predicate | like_predicate | test_for_null | in_predicate
| all_or_any_predicate | existence_testā€Ø
comparison_predicate: scalar_exp comparison scalar_exp | scalar_exp COMPARISON subqueryā€Ø
between_predicate: scalar_exp BETWEEN scalar_exp AND scalar_expā€Ø
like_predicate: scalar_exp LIKE atom ā€Ø
test_for_null: column_ref IS NULLā€Ø
in_predicate: scalar_exp IN ( subquery ) | scalar_exp IN ( atom ) ā€Ø
all_or_any_predicate: scalar_exp comparison any_all_some subqueryā€Ø
existence_test: EXISTS subqueryā€Ø
scalar_exp: scalar_exp op scalar_exp | atom | column_ref | ( scalar_exp ) ā€Ø
atom: parameter | intnum ā€Ø
subquery: select_expā€Ø
select_exp: SELECT nameā€Ø
any_all_some: ANY | ALL | SOMEā€Ø
column_ref: nameā€Ø
parameter: nameā€Ø
intnum: 1ā€Ø
op: + | - | * | / ā€Ø
comparison: = | < | > ā€Ø
name: A
ā€¢ Grammar for extending search conditions:
select * from users where user = admin and email = $_GET[c]
GOFA SQL Injections
ā€¢ Authentication bypass using the vector: or exists (select 1)
Example:
select * from users where username = $_GET['u'] and password = $_GET['p];
select * from users where username = admin and password = a or exists (select 1)
Affected: ModSecurity Latest CRS, PHPIDS, WebCastellum, Expose
GOFA SQL Injections
ā€¢ Authentication bypass using the vector: 1 or a = 1
1 or a like 1
Example:
select * from users where username = $_GET['u'] and password = $_GET['p];
select * from users where username = admin and password = 1 or isAdmin like 1
Affected: ModSecurity Latest CRS, PHPIDS (only for statement with ā€˜likeā€™),
WebCastellum, Expose
GOFA SQL Injections
ā€¢ Columns/variables ļ¬ngerprinting using the vectors: and exists (select a)
a or a > any select a
Example:
select * from users where username = admin and id = $_GET['u'];
select * from users where username = admin and id = 1 and exists (select email)
Affected: ModSecurity Latest CRS, PHPIDS, WebCastellum, Expose
GOFA SQL Injections
ā€¢ Grammar for extending select queries:
select * from users where user = $_GET[c]
GOFA SQL Injections
S: A mainā€Ø
main: query_expā€Ø
query_exp: groupby_exp | order_exp | limit_exp | procedure_exp | into_exp | for_exp |
lock_exp | ; select_exp | union_exp | join_expā€Ø
groupby_exp: GROUP BY column_ref ascdesc_expā€Ø
order_exp: ORDER BY column_ref ascdesc_expā€Ø
limit_exp: LIMIT intnumā€Ø
into_exp: INTO output_exp intnumā€Ø
procedure_exp: PROCEDURE name ( literal )ā€Ø
literal: string | intnumā€Ø
select_exp: SELECT nameā€Ø
union_exp: UNION select_expā€Ø
ascdesc_exp: ASC | DESCā€Ø
column_ref: nameā€Ø
join_exp: JOIN name ON nameā€Ø
for_exp: FOR UPDATEā€Ø
lock_exp: LOCK IN SHARE MODEā€Ø
output_exp: OUTFILE | DUMPFILEā€Ø
string: nameā€Ø
intnum: 1ā€Ø
name: A
ā€¢ Grammar for extending select queries:
select * from users where user = $_GET[c]
GOFA SQL Injections
ā€¢ Data retrieval bypass using the vector: 1 right join a on a = a
Example:
select * from articles left join authors on author.id=$_GET['id']
select * from articles left join authors on author.id= 1 right join users on author.id =
users.id
Affected: ModSecurity Latest CRS, WebCastellum
GOFA SQL Injections
ā€¢ Columns/variables ļ¬ngerprinting using the vectors: a group by a asc
Example:
select * from users where username = $_GET['u'];
select * from users where username = admin group by email asc
Affected: ModSecurity Latest CRS, PHPIDS, WebCastellum, Expose
GOFA SQL Injections
ā€¢ Columns/variables ļ¬ngerprinting using the vectors: procedure a (a)
Example:
select * from users where username = $_GET['u'];
select * from users where username = admin procedure analyze()
Affected: libInjection
SFADiff: Learning Attack Vectors
SFADiff
ā€¢ Available grammars are not always good for ļ¬nding vulnerabilities.
ā€¢ Most XSS bypasses result from attack vectors deviating from the HTML
standard.
- <IMG SRC=ā€œjav&#x09;ascript:alert(ā€˜XSS');">
- Tons of other examples.
ā€¢ Use the same learning approach to infer the HTML parser speciļ¬cation!
SFADiff
WAF
Browser
SFADiff
WAF
Browser
Automata
Learner
Automata
Learner
SFADiff
WAF
Browser
Automata
Learner
Automata
Learner
SFADiff
WAF
Browser
WAF
model
HTML
Model
Automata
Learner
Automata
Learner
SFADiff
WAF
Browser
vs
WAF
model
HTML
Model
Automata
Learner
Automata
Learner
SFADiff
WAF
Browser
vs
WAF
model
HTML
Model
Automata
Learner
Automata
Learner
candidate bypasses
candidate bypasses
SFADiff
WAF
Browser
vs
WAF
model
HTML
Model
counterexamples
Automata
Learner
Automata
Learner
candidate bypasses
candidate bypasses
SFADiff
WAF
Browser
vs
WAF
model
HTML
Model
counterexamples
Bypasses
Automata
Learner
Automata
Learner
candidate bypasses
candidate bypasses
SFADiff XSS Bypass
ā€¢ XSS Attack vectors in PHPIDS 0.7/ Expose 2.4.0
<p onmouseover=-a() ></p>
<p onmouseover=(a()) ></p>
<p onmouseover=;a() ></p>
<p onmouseover=!a() ></p>
ā€¢ Other types of events can also be use used for the attack (e.g. "onClick").
ā€¢ Rules 71, 27, 2 and 65 are related to this insufļ¬cient pattern match.
Bonus:
Fingerprinting WAFs
Generating Program Fingerprints
P_T
P_1 P_2 P_Nā€¦
Generating Program Fingerprints
P_T
P_1 P_2 P_Nā€¦
Which program is running in
the Black-box?
Generating Program Fingerprints
P_T
P_1 P_2 P_Nā€¦
Generating Program Fingerprints
P_T
SFADiff
P_1 P_2 P_Nā€¦
Generating Program Fingerprints
P_T
SFADiff
P_1 P_2 P_Nā€¦
Generating Program Fingerprints
P_T
SFADiff
P_1 P_2 P_Nā€¦
Input causing difference in P_1, P_2
Generating Program Fingerprints
P_T
SFADiff
P_1 P_2 P_Nā€¦
P_i
Input causing difference in P_1, P_2
Generating Program Fingerprints
P_T
SFADiff
P_1 P_2 P_Nā€¦
P_i
Generating Program Fingerprints
P_T
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
Generating Program Fingerprints
P_T
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
Generating Program Fingerprints
P_T
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
Input causing difference
Generating Program Fingerprints
P_T
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
Input causing difference
Generating Program Fingerprints
P_T
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
Generating Program Fingerprints
P_T
SFADiff
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
Generating Program Fingerprints
P_T
SFADiff
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
Generating Program Fingerprints
P_T
SFADiff
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
Input causing difference
Generating Program Fingerprints
P_T
SFADiff
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
P_T
Input causing difference
Generating Program Fingerprints
P_T
SFADiff
SFADiff
SFADiff
P_1 P_2 P_Nā€¦
P_i
P_j
P_T
ā€œetc/<ā€
ā€œ:%0oā€
ā€œ:/Bā€
ā€œ%23%0Aā€
ā€œ;ā€
Webcastelum 1.8.4
ā€œetc/,#ā€
PHPIDS 0.6.5
ā€œ:et#ā€
PHPIDS 0.5.0
PHPIDS 0.6.4
ModSecurity 2.9.1
PHPIDS 0.6.3
Expose 2.4.0
PHPIDS 0.4.0
āœ˜
āœ”
āœ”
āœ˜
āœ˜
āœ”
āœ”
āœ˜
āœ”
āœ”
āœ˜
āœ˜
āœ˜
āœ”
LightBulb
Modular Design
ā€¢ Core Modules:
ā€¢ Use automata models and operations
ā€¢ Extend the SFA learning algorithm
ā€¢ Built-in Query Handlers:
ā€¢ Perform membership queries
ā€¢ Modules (and Built-in Modules):
ā€¢ Use the Built-in Query Handlers
ā€¢ Extend the Core Modules: GOFA, SFADiff
ā€¢ Library:
ā€¢ Set of grammars, ļ¬lters, ļ¬ngerprints trees and conļ¬gurations
Core Modules
ā€¢ Extend SFA Learning algorithm:
ā€¢ Accept the Alphabet, a Seed and/or a Tests ļ¬le and a Query handler.
ā€¢ Initialise learning and manage results and models
ā€¢ The Alphabet: Set of characters to be used
ā€¢ The Seed File: Knowledge of what the examined inputs should look like
ā€¢ The Tests File: Knowledge of specialised attacks
ā€¢ The Query Handler/Function: Knowledge of how to perform queries for selected
inputs
Core Modules
ā€¢ GOFA:
ā€¢ Grammar Oriented Filter Auditing.
ā€¢ SFADiff:
ā€¢ A black-box differential testing framework based on Symbolic
Finite Automata (SFA) learning.
Simple Structure: Class with ļ¬ve (5) basic functions:
setup(), learn(), query(), getresults(), stats()
Built-in Query Handlers
ā€¢ HTTP Request Handler:
ā€¢ Perform queries on WAF ļ¬lters and Sanitizers
ā€¢ SQL Query Handler:
ā€¢ Perform queries on MySQL Parser
ā€¢ Browser Parser Handler:
ā€¢ Perform queries on Browser JavaScript Parsers
ā€¢ Browser Filter Handler:
ā€¢ Perform queries on Browser Anti-XSS Filters
HTTP Request Handler
ā€¢ Targets WAF Filter
ā€¢ Requires URL, HTTP Request Type, Parameter and Block
or Bypass Signature
Core Module
GOFA
Initialize
WAF
HTTP
Request Handler
MODULE
HTTP
GET /?parameter=Payload
Block/Bypass Signature
Query
True/False
HTTP
Protocol
MySQL Query Handler
Core Module
GOFA
Initialize
MySQL
Database
SQL Handler
MODULE
Preļ¬x Query + Payload
Result or Empty
Query
True/False
MySQL DB
Driver
ā€¢ Targets MySQL Database Parser
ā€¢ Requires Database Credentials
ā€¢ Requires Preļ¬x Query: e.g, ā€œSELECT a FROM a WHERE a=**ā€
Browser Parser Handler
Core Module
GOFA
Initialize
Browser
Handler
MODULE
Query
True/False
HTTP Protocol and WebSockets
ā€¢ Targets the Browser HTML and JavaScript Parsing Engine
ā€¢ Requires web sockets port, web browser port, host and trigger delay
ā€¢ Inputs must trigger function a() (e.g., <script>a();</script>)
WEB
BROWSER
Web Server
Web Socket
Server
HTTP
G
ET
Payload PayloadTrue/False
True/False
HTML Page
Browser Filter Handler
Core Module
GOFA
Initialize
Browser
Filter
Handler
MODULE
Query
True/False
HTTP Protocol, WebSockets &
Cross Origin Message Events
ā€¢ Targets the Browser Anti-XSS Filter, HTML and JavaScript Parsing Engine
Web Server
Web Socket
Server
Payload
True/False
HTTP GET /?
parameter=Payload
Payload
True/False
IFRAME
HTTP
GET
WEB
BROWSER
Query
HTML Page
True/False
LoadQuery
HTML Page
Using GOFA module and HTTP Handler
Using GOFA module and HTTP Handler
use HTTPHandler as my_query_handlerā€Ø
deļ¬ne URL http://83.212.105.5/PHPIDS07/ā€Ø
deļ¬ne BLOCK impactā€Ø
back
Using GOFA module and HTTP Handler
use HTTPHandler as my_query_handlerā€Ø
deļ¬ne URL http://83.212.105.5/PHPIDS07/ā€Ø
deļ¬ne BLOCK impactā€Ø
back
Query Handler was created.
We now can perform
membership requests.
Using GOFA module and HTTP Handler
use HTTPHandler as my_query_handlerā€Ø
deļ¬ne URL http://83.212.105.5/PHPIDS07/ā€Ø
deļ¬ne BLOCK impactā€Ø
back
use GOFA as my_gofaā€Ø
deļ¬ne TESTS_FILE {library}/regex/PHPIDS070/12.yā€Ø
deļ¬ne HANDLER my_query_handlerā€Ø
back
Query Handler was created.
We now can perform
membership requests.
Using GOFA module and HTTP Handler
use HTTPHandler as my_query_handlerā€Ø
deļ¬ne URL http://83.212.105.5/PHPIDS07/ā€Ø
deļ¬ne BLOCK impactā€Ø
back
use GOFA as my_gofaā€Ø
deļ¬ne TESTS_FILE {library}/regex/PHPIDS070/12.yā€Ø
deļ¬ne HANDLER my_query_handlerā€Ø
back
Query Handler was created.
We now can perform
membership requests.
Algorithm was selected and
populated.
Know we can learn
application states.
Using GOFA module and HTTP Handler
use HTTPHandler as my_query_handlerā€Ø
deļ¬ne URL http://83.212.105.5/PHPIDS07/ā€Ø
deļ¬ne BLOCK impactā€Ø
back
use GOFA as my_gofaā€Ø
deļ¬ne TESTS_FILE {library}/regex/PHPIDS070/12.yā€Ø
deļ¬ne HANDLER my_query_handlerā€Ø
back
start my_gofa
Query Handler was created.
We now can perform
membership requests.
Algorithm was selected and
populated.
Know we can learn
application states.
Built-in Modules
ā€¢ WAF Fingerprints Tree Generator:
ā€¢ Automatically generates a ļ¬ngerprints tree for a set of WAFs
ā€¢ WAF Distinguisher:
ā€¢ Identiļ¬es a WAF using a set of ļ¬ngerprints trees
ā€¢ Model Operations:
ā€¢ Perform automata operations on stored models, input ļ¬lters and
grammars
ā€¢ Browser and WAF Differential Testing:
ā€¢ Queries both Browser and WAF using a predeļ¬ned set of strings
Built-in Rulesets Library
ā€¢ Regular Expressions
ā€¢ Set of WAF ļ¬lters, and attack models in the form of regular
expressions
ā€¢ Grammars:
ā€¢ Set of grammars that can be used for GOFA algorithm.
ā€¢ Fingerprints Trees:
ā€¢ Set of ļ¬ngerprints trees for a predeļ¬ned number of WAFs.
ā€¢ Conļ¬gurations:
ā€¢ Sample conļ¬gurations for WAF distinguish tree generation
Grub LightBulb:
https://github.com/lightbulb-framework/
Future Work
ā€¢ Currently building many optimizations.
- Learning will be much faster in the next months.
- Cross checking models is also getting better.
ā€¢ Incorporate fuzzers to improve models.
ā€¢ New ideas?
Conclusions
ā€¢ Current state of WAFs is still (very) ugly.
- Many low hanging fruits.
ā€¢ Our vision is to enforce a standard for such products.
- WAFs must effectively defend against inferred language speciļ¬cations.
- Learning can run continuously with the assistance of fuzzers.
ā€¢ We have a similar line of work on sanitizers.
Another Brick off The Wall:
Deconstructing Web Application
Firewalls Using Automata Learning
George Argyros, Ioannis Stais
Joint Work with:
Suman Jana, Angelos D. Keromytis, Aggelos Kiayias

Mais conteĆŗdo relacionado

Mais procurados

WAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ BehaviourWAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ BehaviourSoroush Dalili
Ā 
XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?Yurii Bilyk
Ā 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodologybugcrowd
Ā 
Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionMikhail Egorov
Ā 
Live Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win big
Live Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win bigLive Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win big
Live Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win bigFrans RosĆ©n
Ā 
ē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Area
ē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Areaē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Area
ē¶²é å®‰å…Ø Web security å…„é–€ @ Study-AreaOrange Tsai
Ā 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflowEvgeni Tsonev
Ā 
Waf bypassing Techniques
Waf bypassing TechniquesWaf bypassing Techniques
Waf bypassing TechniquesAvinash Thapa
Ā 
Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host headerSergey Belov
Ā 
Effective Threat Hunting with Tactical Threat Intelligence
Effective Threat Hunting with Tactical Threat IntelligenceEffective Threat Hunting with Tactical Threat Intelligence
Effective Threat Hunting with Tactical Threat IntelligenceDhruv Majumdar
Ā 
Usb rubber ducky
Usb rubber duckyUsb rubber ducky
Usb rubber duckyMadhura M
Ā 
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameThe Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameAbhinav Mishra
Ā 
SSRF workshop
SSRF workshop SSRF workshop
SSRF workshop Ivan Novikov
Ā 
Bypass file upload restrictions
Bypass file upload restrictionsBypass file upload restrictions
Bypass file upload restrictionsMukesh k.r
Ā 
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 cleanWAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 cleanLior Rotkovitch
Ā 

Mais procurados (20)

Ceh v5 module 03 scanning
Ceh v5 module 03 scanningCeh v5 module 03 scanning
Ceh v5 module 03 scanning
Ā 
WAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ BehaviourWAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Serversā€™ Behaviour
Ā 
XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?
Ā 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
Ā 
Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protection
Ā 
Live Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win big
Live Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win bigLive Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win big
Live Hacking like a MVH ā€“ A walkthrough on methodology and strategies to win big
Ā 
ē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Area
ē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Areaē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Area
ē¶²é å®‰å…Ø Web security å…„é–€ @ Study-Area
Ā 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
Ā 
Cross site scripting
Cross site scriptingCross site scripting
Cross site scripting
Ā 
Waf bypassing Techniques
Waf bypassing TechniquesWaf bypassing Techniques
Waf bypassing Techniques
Ā 
Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host header
Ā 
Effective Threat Hunting with Tactical Threat Intelligence
Effective Threat Hunting with Tactical Threat IntelligenceEffective Threat Hunting with Tactical Threat Intelligence
Effective Threat Hunting with Tactical Threat Intelligence
Ā 
Usb rubber ducky
Usb rubber duckyUsb rubber ducky
Usb rubber ducky
Ā 
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameThe Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
Ā 
SSRF workshop
SSRF workshop SSRF workshop
SSRF workshop
Ā 
Dom based xss
Dom based xssDom based xss
Dom based xss
Ā 
SSRF exploit the trust relationship
SSRF exploit the trust relationshipSSRF exploit the trust relationship
SSRF exploit the trust relationship
Ā 
Bypass file upload restrictions
Bypass file upload restrictionsBypass file upload restrictions
Bypass file upload restrictions
Ā 
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 cleanWAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
Ā 
File upload vulnerabilities & mitigation
File upload vulnerabilities & mitigationFile upload vulnerabilities & mitigation
File upload vulnerabilities & mitigation
Ā 

Destaque

State machines for gesture recognition
State machines for gesture recognitionState machines for gesture recognition
State machines for gesture recognitionDan Bourke
Ā 
Component Based Testing Using Finite Automata
Component Based Testing Using Finite AutomataComponent Based Testing Using Finite Automata
Component Based Testing Using Finite AutomataSanjoy Kumar Das
Ā 
Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Remedy IT
Ā 
Deterministic Finite Automata
Deterministic Finite AutomataDeterministic Finite Automata
Deterministic Finite AutomataMohammad jawad khan
Ā 
Introduction to fa and dfa
Introduction to fa  and dfaIntroduction to fa  and dfa
Introduction to fa and dfadeepinderbedi
Ā 
automated teller machines
automated teller  machinesautomated teller  machines
automated teller machinestejinderubs
Ā 

Destaque (6)

State machines for gesture recognition
State machines for gesture recognitionState machines for gesture recognition
State machines for gesture recognition
Ā 
Component Based Testing Using Finite Automata
Component Based Testing Using Finite AutomataComponent Based Testing Using Finite Automata
Component Based Testing Using Finite Automata
Ā 
Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...
Ā 
Deterministic Finite Automata
Deterministic Finite AutomataDeterministic Finite Automata
Deterministic Finite Automata
Ā 
Introduction to fa and dfa
Introduction to fa  and dfaIntroduction to fa  and dfa
Introduction to fa and dfa
Ā 
automated teller machines
automated teller  machinesautomated teller  machines
automated teller machines
Ā 

Semelhante a ANOTHER BRICK OFF THE WALL: DECONSTRUCTING WEB APPLICATION FIREWALLS USING AUTOMATA LEARNING

20160225 OWASP Atlanta Prevoty RASP
20160225 OWASP Atlanta Prevoty RASP20160225 OWASP Atlanta Prevoty RASP
20160225 OWASP Atlanta Prevoty RASPchadtindel
Ā 
CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019Olivera Milenkovic
Ā 
20160211 OWASP Charlotte RASP
20160211 OWASP Charlotte RASP20160211 OWASP Charlotte RASP
20160211 OWASP Charlotte RASPchadtindel
Ā 
ch01-basic-java-programs.ppt
ch01-basic-java-programs.pptch01-basic-java-programs.ppt
ch01-basic-java-programs.pptMahyuddin8
Ā 
Machine programming
Machine programmingMachine programming
Machine programmingDESMOND YUEN
Ā 
RIoT (Raiding Internet of Things) by Jacob Holcomb
RIoT  (Raiding Internet of Things)  by Jacob HolcombRIoT  (Raiding Internet of Things)  by Jacob Holcomb
RIoT (Raiding Internet of Things) by Jacob HolcombPriyanka Aash
Ā 
Effective approaches to web application security
Effective approaches to web application security Effective approaches to web application security
Effective approaches to web application security Zane Lackey
Ā 
Search for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code AnalysisSearch for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code AnalysisAndrey Karpov
Ā 
PVS-Studio and static code analysis technique
PVS-Studio and static code analysis techniquePVS-Studio and static code analysis technique
PVS-Studio and static code analysis techniqueAndrey Karpov
Ā 
Price of an Error
Price of an ErrorPrice of an Error
Price of an ErrorAndrey Karpov
Ā 
Nguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s view
Nguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s viewNguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s view
Nguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s viewSecurity Bootcamp
Ā 
Python - code quality and production monitoring
Python - code quality and production monitoringPython - code quality and production monitoring
Python - code quality and production monitoringDavid Melamed
Ā 
Applications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingApplications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingLionel Briand
Ā 
Artem Storozhuk "Building SQL firewall: insights from developers"
Artem Storozhuk "Building SQL firewall: insights from developers"Artem Storozhuk "Building SQL firewall: insights from developers"
Artem Storozhuk "Building SQL firewall: insights from developers"Fwdays
Ā 
The Golden Rules - Detecting more with RSA Security Analytics
The Golden Rules  - Detecting more with RSA Security AnalyticsThe Golden Rules  - Detecting more with RSA Security Analytics
The Golden Rules - Detecting more with RSA Security AnalyticsDemetrio Milea
Ā 
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareUsing Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareLastline, Inc.
Ā 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis Engineering Software Lab
Ā 
150412 38 beamer methods of binary analysis
150412 38 beamer methods of  binary analysis150412 38 beamer methods of  binary analysis
150412 38 beamer methods of binary analysisRaghu Palakodety
Ā 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation ArchitectureErdem YILDIRIM
Ā 

Semelhante a ANOTHER BRICK OFF THE WALL: DECONSTRUCTING WEB APPLICATION FIREWALLS USING AUTOMATA LEARNING (20)

20160225 OWASP Atlanta Prevoty RASP
20160225 OWASP Atlanta Prevoty RASP20160225 OWASP Atlanta Prevoty RASP
20160225 OWASP Atlanta Prevoty RASP
Ā 
CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019
Ā 
20160211 OWASP Charlotte RASP
20160211 OWASP Charlotte RASP20160211 OWASP Charlotte RASP
20160211 OWASP Charlotte RASP
Ā 
ch01-basic-java-programs.ppt
ch01-basic-java-programs.pptch01-basic-java-programs.ppt
ch01-basic-java-programs.ppt
Ā 
Machine programming
Machine programmingMachine programming
Machine programming
Ā 
RIoT (Raiding Internet of Things) by Jacob Holcomb
RIoT  (Raiding Internet of Things)  by Jacob HolcombRIoT  (Raiding Internet of Things)  by Jacob Holcomb
RIoT (Raiding Internet of Things) by Jacob Holcomb
Ā 
Effective approaches to web application security
Effective approaches to web application security Effective approaches to web application security
Effective approaches to web application security
Ā 
Salesforce static code analysis
Salesforce static code analysisSalesforce static code analysis
Salesforce static code analysis
Ā 
Search for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code AnalysisSearch for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code Analysis
Ā 
PVS-Studio and static code analysis technique
PVS-Studio and static code analysis techniquePVS-Studio and static code analysis technique
PVS-Studio and static code analysis technique
Ā 
Price of an Error
Price of an ErrorPrice of an Error
Price of an Error
Ā 
Nguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s view
Nguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s viewNguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s view
Nguyen Huu Trung - Building a web vulnerability scanner - From a hackerā€™s view
Ā 
Python - code quality and production monitoring
Python - code quality and production monitoringPython - code quality and production monitoring
Python - code quality and production monitoring
Ā 
Applications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingApplications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security Testing
Ā 
Artem Storozhuk "Building SQL firewall: insights from developers"
Artem Storozhuk "Building SQL firewall: insights from developers"Artem Storozhuk "Building SQL firewall: insights from developers"
Artem Storozhuk "Building SQL firewall: insights from developers"
Ā 
The Golden Rules - Detecting more with RSA Security Analytics
The Golden Rules  - Detecting more with RSA Security AnalyticsThe Golden Rules  - Detecting more with RSA Security Analytics
The Golden Rules - Detecting more with RSA Security Analytics
Ā 
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareUsing Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Ā 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Ā 
150412 38 beamer methods of binary analysis
150412 38 beamer methods of  binary analysis150412 38 beamer methods of  binary analysis
150412 38 beamer methods of binary analysis
Ā 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture
Ā 

ƚltimo

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
Ā 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
Ā 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
Ā 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
Ā 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
Ā 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
Ā 
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”soniya singh
Ā 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
Ā 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
Ā 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
Ā 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
Ā 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
Ā 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
Ā 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
Ā 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
Ā 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
Ā 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
Ā 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
Ā 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
Ā 

ƚltimo (20)

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
Ā 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Ā 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
Ā 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
Ā 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
Ā 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
Ā 
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Ā 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Ā 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Ā 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Ā 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
Ā 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
Ā 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Ā 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
Ā 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
Ā 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
Ā 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Ā 
Call Girls In Mukherjee Nagar šŸ“± 9999965857 šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...
Call Girls In Mukherjee Nagar šŸ“±  9999965857  šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...Call Girls In Mukherjee Nagar šŸ“±  9999965857  šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...
Call Girls In Mukherjee Nagar šŸ“± 9999965857 šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...
Ā 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Ā 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
Ā 

ANOTHER BRICK OFF THE WALL: DECONSTRUCTING WEB APPLICATION FIREWALLS USING AUTOMATA LEARNING