SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Sylvain Hallé
Sylvain Hallé, Éric Lunaud Ngoupé, Roger
Villemaire, Omar Cherkaoui
Fonds de recherche
sur la nature
et les technologies
CRSNG
NSERC
Distributed Firewall Anomaly Detection
Through LTL Model Checking
Université du Québec à Chicoutimi
CANADA
Université du Québec à Montréal
CANADA
Sylvain HalléSylvain Hallé
Firewalls
Incoming traffic
Filtered traffic
Source IP Port Dest. IP Port Decision
192.*
16.10.*
10.1.1.2
. . .
80
*
23
. . .
10.10.*
*
*
. . .
80
*
23
. . .
Accept
Reject
Accept
. . .
Sylvain HalléSylvain Hallé
What's wrong with this filter?
FSM
LTL
. . .
Algos
Tools
Rule # Interval Decision
1
2
3
4
5
Accept
Deny
Accept
Accept
Deny
50
2 3
3 9
33
92
Sylvain HalléSylvain Hallé
What's wrong with this filter?
FSM
LTL
. . .
Algos
Tools
Rule # Interval Decision
1
2
3
4
5
Accept
Deny
Accept
Accept
Deny
50
2 3
3 9
33
92
Rule 2's packets are already handled by Rule 1:
it is shadowed
Rules 2 and 3 apply a different decision to some
packets: they are correlated
All of Rule 5's packets are applied the same decision
as Rule 2: it is redundant
Sylvain Hallé
????
start
0
exact?
1
exact?
4
superset?
3
Ry ℜIM Rx
8
redundant
12
shadowed
11
general
13
correlated
14
none
15
proto
y=
proto
x
protoy
⊂ protox
proto
y ⊃ proto
x superset?
6
srcy
=srcx
srcy ⊇ srcx
dsty
⊆ dstx
actiony =actionx
actiony
≠ actionx
dsty
⊆ dstx
dsty
⊇ dstx
srcy ⊂ srcx
src
y ⊃
src
x
subset?
2
subset?
5
srcy
⊆ srcx
correlated?
7
srcy
⊃
srcx
srcy
⊂
srcx
dsty
⊆ dstx
dsty
⊃ dstx
dsty ⊃
dstx
dsty ⊃
dstx
dsty⊂dstx
src
y≠src
x
srcy≠srcx
srcy
≠srcx
dsty≠dstx
dsty≠dstx
dsty≠
dstx
dsty
≠ dstx
protoy
≠
protox
Rx
ℜIM
Ry
9
actiony
=actionx
actiony ≠ actionx
Rx ℜC Ry
10
actiony ≠ actionx
actiony
=actionx
Previous results
E. Al-Shaer & H. H. Hamed. Discovery of Policy
Anomalies in Distributed Firewalls. INFOCOM 2004.
For every pair of rules R , R ...x y
Sylvain Hallé
Previous results
B. Khorchani, S. Hallé, R. Villemaire. Firewall anomaly detection
with a model checker for visibility logic. IM 2012.
B
A
D
t
B
AB
A
A overlaps B
A ⋂ B
A occludes B
A ⊆ B
A obstructs B
A ⊇ B
◇*
φ
○*
φ
◻*
φ
some rule r', following r and such
that r' * r, satisfies φ
all rules r', following r and such
that r' * r, satisfy φ
the first rule r', following r and such
that r' * r, satisfies φ
a ⋀ d◇⋂( ) ⋁ d ⋀ a◇⋂( ) ◇⊇
TRUE
-1
a ⋀ a◇⊇( ) ⋁ d ⋀ d◇⊇( )-1 -1
Correlation Shadowing Redundancy
Sylvain Hallé
Routers
Incoming traffic
Outgoing traffic
Source Destination Next hop
192.*
16.10.*
10.1.1.2
. . .
10.*
16.10.*
50.1.*
. . .
R1
R2
R3
. . .
Sylvain Hallé
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Rule 3.4 shadows Rule 1.2: packet accepted if enters
from Node 1, rejected if from Node 3
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Rules 1.1 and 3.1 are spurious: a packet to 5 entering
from Node 3 is routed to Node 1 where it is dropped
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 1.5
redundant with
respect to Rule 3.3?
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 1.5
redundant with
respect to Rule 3.3?
Yes if Node 1 receives traffic only from Node 3...
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 1.5
redundant with
respect to Rule 3.3?
Yes if Node 1 receives traffic only from Node 3...
No otherwise!
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 2.3
shadowed
by Rule 3.1?
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 2.3
shadowed
by Rule 3.1?
No since no traffic ever flows from Node 3 to
Node 2 (all traffic is dropped at Node 1)
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 2.5
redundant
wrt Rule 1.4?
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Is Rule 2.5
redundant
wrt Rule 1.4?
No since packets destined to 4-5 are never routed
to Node 1
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
All together now
Sylvain Hallé
Issues
The presence of an anomaly between rules R and
R' depends on whether there is a possible path
from R to R'
...and also on the field ranges of each routing rule
along that path!
Sylvain Hallé
How to detect an anomaly
Keep track of an interval I of values and a decision
D, called a frozen interval and a frozen decision
In the beginning, set I to the full range of possible
values, and D to "undefined"
?
Frozen interval Frozen decision
①
Sylvain Hallé
How to detect an anomaly
Pick some ingress node as a starting point②
1 [5,8] : ⊥
2 [0,1] : ⊤
3 [6,8]: ⊥
4 [2,5]: ⊤
5 [9,9]: ⊤
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
[0,3] Device 1
[4,8] #
[9,9] Device 1
I Next hop
[0,8] Device 1
[9,9] #
I Next hop
Node 1
Node 2
Node 3
1 [5,8] : ⊤
2 [2,4] : ⊤
3 [9,9] : ⊤
4 [0,1]: ⊥
Sylvain Hallé
In every node visited, go through the firewall rules
one by one in order
1 [5,6] : ⊤
2 [0,4] : ⊤
3 [7,8] : ⊥
4 [9,9] : ⊤
5 [3,5] : ⊤
③
How to detect an anomaly
...
Sylvain Hallé
Once done scanning through the rules, pick one
routing entry...
Intersect the freeze interval with the entry chosen
...and move on to the destination node
④
[0,3] #
[4,8] Device 2
[9,9] Device 3
I Next hop
0 10 4 8
⋂ =
4 8
How to detect an anomaly
Sylvain Hallé
At some point in the walk (only once!), pick the
current firewall rule
Intersect the freeze interval with the rule chosen
Record the rule's decision in the freeze decision
⑤
7 8
⋂ =
3 [7,8] : ⊥
4 8 7 8
? ⊥
How to detect an anomaly
Sylvain Hallé
How to detect an anomaly
From this point on, compare the frozen interval/
decision with the interval/decision of every firewall
rule "visited"
⑥
5 [5,9] : ⊤
7 8
⊥
5 9
⊤
Frozen
Spuriousness anomaly
vs.
Sylvain Hallé
Solution #1
Repeat this process...
for every start point
and every path
by alternatively freezing every firewall rule
Σk!
k=1
n
non-cyclic paths between n nodes
Sylvain Hallé
Solution #2
For a given network, generate a Kripke structure
whose traces are all the walks behaving as in steps
① to ⑥
Send the problem to a model checker
Express anomalies as temporal
logic properties on these traces
(reachability problem)
Sylvain Hallé
Variables in the Kripke structure
Each state of the Kripke structure is a unique
assignment of values to 7 state variables
ιL ιR
⊥
ιD
3 [7,8] : ⊥
ρL ρR
ρDχ
Bounds of frozen
interval
Frozen
decision
Unique rule
number
Bounds of current
firewall rule interval
Current rule
decision
Sylvain Hallé
Transitions in the Kripke structure
Each transition between two states corresponds to
one of the following actions
ιR
ιD
3 [7,8] : ⊥
4 [9,9] : ⊤
ρL
ρR
ρD
χ
Moving to the next rule in the current firewall
ιL = a
= b
= d
= 3
= 7
= 8
= ⊥
ιR
ιD
ρL
ρR
ρD
χ
ιL = a
= b
= d
= 3
= 9
= 9
= ⊤
Sylvain Hallé
Transitions in the Kripke structure
Each transition between two states corresponds to
one of the following actions
ιR
ιD
3 [7,8] : ⊥
ρL
ρR
ρD
χ
Freezing the current firewall rule
ιL = a
= b
= ?
= 3
= 7
= 8
= ⊥
ιR
ιD
ρL
ρR
ρD
χ
ιL = max(a, 7)
= min(b, 8)
= ⊥
= 3
= 7
= 8
= ⊥
Sylvain Hallé
Transitions in the Kripke structure
Each transition between two states corresponds to
one of the following actions
ιR
ιD
[4,8]: Device 2
ρL
ρR
ρD
χ
Select an applicable routing table entry and move
to destination (first firewall rule)
ιL = a
= b
= d
= 3
= 7
= 8
= ⊥
ιR
ιD
ρL
ρR
ρD
χ
ιL = max(a, 4)
= min(b, 8)
= d
= 1
= 5
= 6
= ⊤
1 [5,6] : ⊤
Sylvain Hallé
LTL properties
Anomalies become properties on traces expressed in
Linear Temporal Logic (LTL)
Ex.: shadowing
ιR ιDρL ρR ρDιL =⊥≤ ∧ ≥ =⊤ ∧∧G ( )
Sylvain Hallé
Anomaly detector
Firewall rules
Routing table
Encoder
Decoder
Kripke structure
NuSMV
Counter-example
trace
Anomaly explanation
Node 1
Firewall rules
Routing table
Node n
. . .
Anomalies expressed
as LTL formulæ
Analysis tool
Sylvain Hallé
Sample input file
Node name: 0
0: 0, 0 : 0, 6, 7 : 0, deny
1: 0, 0 : 0, 0, 0 : 0, accept
2: 0, 0 : 0, 12, 13 : 0, accept
...
Routing table:
12, 14, 12
8, 9, 1
5, 7, 3
...
Sylvain Hallé
- Starting at Node 1
- Considering firewall rule 2 on Node 1: [1-5] accept
- Going to Node 2 through routing rule 2:
Node 1 -> [2-6] -> Node 2
- The considered interval becomes restricted to [2-5]
- Going to Node 3 through routing rule 1:
Node 2 -> [2-6] -> Node 3
- Shadowing anomaly with firewall rule 2 on
Node 3: [2-5] accept vs. [3-4] reject
Analysis tool
http://github.com/sylvainhalle/FirewallCheck
java -jar NetworkChecker.jar -s -i "./*.txt"
Sylvain Hallé
0.1
10
1,000
Time(s)
Total number of rules in network
50 100 150 250200
2-2-2 3-3-3
Empirical results
Sylvain Hallé
0.001
1
1,000
Time(s)
Number of nodes in network
1 5 10 20
50 rules 100 rules
Empirical results
Sylvain Hallé
The end
Thank you!
Questions?

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (9)

Runtime Monitoring of Stream Logic Formulae (Talk @ FPS 2015)
Runtime Monitoring of Stream Logic Formulae (Talk @ FPS 2015)Runtime Monitoring of Stream Logic Formulae (Talk @ FPS 2015)
Runtime Monitoring of Stream Logic Formulae (Talk @ FPS 2015)
 
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
A Runtime Monitoring Framework for Event Streams with Non-Primitive ArgumentsA Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
 
Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...
 
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
 
MapReduce for Parallel Trace Validation of LTL Properties
MapReduce for Parallel Trace Validation of LTL PropertiesMapReduce for Parallel Trace Validation of LTL Properties
MapReduce for Parallel Trace Validation of LTL Properties
 
When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)
 
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
 
À la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelleÀ la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelle
 
Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)
 

Ähnlich wie Distributed Firewall Anomaly Detection Through LTL Model Checking

Mining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningMining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine Learning
Lionel Briand
 
voip2day 2012 - Elastix en hoteles, es posible by franck danard
voip2day 2012 - Elastix en hoteles, es posible by  franck danardvoip2day 2012 - Elastix en hoteles, es posible by  franck danard
voip2day 2012 - Elastix en hoteles, es posible by franck danard
VOIP2DAY
 

Ähnlich wie Distributed Firewall Anomaly Detection Through LTL Model Checking (20)

Inside Winnyp
Inside WinnypInside Winnyp
Inside Winnyp
 
第二回CTF勉強会資料
第二回CTF勉強会資料第二回CTF勉強会資料
第二回CTF勉強会資料
 
Threat Con 2021: What's Hitting my Honeypots
Threat Con 2021: What's Hitting my HoneypotsThreat Con 2021: What's Hitting my Honeypots
Threat Con 2021: What's Hitting my Honeypots
 
Certification
CertificationCertification
Certification
 
Lab 1 reference manual
Lab 1 reference manualLab 1 reference manual
Lab 1 reference manual
 
Verilog HDL
Verilog HDLVerilog HDL
Verilog HDL
 
Mining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningMining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine Learning
 
A guided fuzzing approach for security testing of network protocol software
A guided fuzzing approach for security testing of network protocol softwareA guided fuzzing approach for security testing of network protocol software
A guided fuzzing approach for security testing of network protocol software
 
Awesome_fuzzing_for _pentester_red-pill_2017
Awesome_fuzzing_for _pentester_red-pill_2017Awesome_fuzzing_for _pentester_red-pill_2017
Awesome_fuzzing_for _pentester_red-pill_2017
 
Reducing Failure Analysis Time: An Industrial Evaluation
Reducing Failure Analysis Time: An Industrial EvaluationReducing Failure Analysis Time: An Industrial Evaluation
Reducing Failure Analysis Time: An Industrial Evaluation
 
presentation
presentationpresentation
presentation
 
voip2day 2012 - Elastix en hoteles, es posible by franck danard
voip2day 2012 - Elastix en hoteles, es posible by  franck danardvoip2day 2012 - Elastix en hoteles, es posible by  franck danard
voip2day 2012 - Elastix en hoteles, es posible by franck danard
 
reductio [ad absurdum]
reductio [ad absurdum]reductio [ad absurdum]
reductio [ad absurdum]
 
Le langage rust
Le langage rustLe langage rust
Le langage rust
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on android
 
LoRaWAN Real Life Issues
LoRaWAN  Real Life IssuesLoRaWAN  Real Life Issues
LoRaWAN Real Life Issues
 
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
 
AEO Training - 2023.pdf
AEO Training - 2023.pdfAEO Training - 2023.pdf
AEO Training - 2023.pdf
 
Essentials of jitter part 1 The Time Interval Error: TIE
Essentials of jitter part 1 The Time Interval Error: TIEEssentials of jitter part 1 The Time Interval Error: TIE
Essentials of jitter part 1 The Time Interval Error: TIE
 

Mehr von Sylvain Hallé

A Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionA Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion Detection
Sylvain Hallé
 

Mehr von Sylvain Hallé (20)

Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...
 
A Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionA Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion Detection
 
Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3
 
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected LogisticsSmart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
 
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class PartitioningTest Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
 
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
 
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
 
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
 
A Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function CircuitsA Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function Circuits
 
Detecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative SpecificationsDetecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative Specifications
 
Streamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research PapersStreamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research Papers
 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeep
 
Real-Time Data Mining for Event Streams
Real-Time Data Mining for Event StreamsReal-Time Data Mining for Event Streams
Real-Time Data Mining for Event Streams
 
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
 
Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3
 
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
 
Event Stream Processing with Multiple Threads
Event Stream Processing with Multiple ThreadsEvent Stream Processing with Multiple Threads
Event Stream Processing with Multiple Threads
 
A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)
 
La quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelleLa quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelle
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Distributed Firewall Anomaly Detection Through LTL Model Checking

  • 1. Sylvain Hallé Sylvain Hallé, Éric Lunaud Ngoupé, Roger Villemaire, Omar Cherkaoui Fonds de recherche sur la nature et les technologies CRSNG NSERC Distributed Firewall Anomaly Detection Through LTL Model Checking Université du Québec à Chicoutimi CANADA Université du Québec à Montréal CANADA
  • 2. Sylvain HalléSylvain Hallé Firewalls Incoming traffic Filtered traffic Source IP Port Dest. IP Port Decision 192.* 16.10.* 10.1.1.2 . . . 80 * 23 . . . 10.10.* * * . . . 80 * 23 . . . Accept Reject Accept . . .
  • 3. Sylvain HalléSylvain Hallé What's wrong with this filter? FSM LTL . . . Algos Tools Rule # Interval Decision 1 2 3 4 5 Accept Deny Accept Accept Deny 50 2 3 3 9 33 92
  • 4. Sylvain HalléSylvain Hallé What's wrong with this filter? FSM LTL . . . Algos Tools Rule # Interval Decision 1 2 3 4 5 Accept Deny Accept Accept Deny 50 2 3 3 9 33 92 Rule 2's packets are already handled by Rule 1: it is shadowed Rules 2 and 3 apply a different decision to some packets: they are correlated All of Rule 5's packets are applied the same decision as Rule 2: it is redundant
  • 5. Sylvain Hallé ???? start 0 exact? 1 exact? 4 superset? 3 Ry ℜIM Rx 8 redundant 12 shadowed 11 general 13 correlated 14 none 15 proto y= proto x protoy ⊂ protox proto y ⊃ proto x superset? 6 srcy =srcx srcy ⊇ srcx dsty ⊆ dstx actiony =actionx actiony ≠ actionx dsty ⊆ dstx dsty ⊇ dstx srcy ⊂ srcx src y ⊃ src x subset? 2 subset? 5 srcy ⊆ srcx correlated? 7 srcy ⊃ srcx srcy ⊂ srcx dsty ⊆ dstx dsty ⊃ dstx dsty ⊃ dstx dsty ⊃ dstx dsty⊂dstx src y≠src x srcy≠srcx srcy ≠srcx dsty≠dstx dsty≠dstx dsty≠ dstx dsty ≠ dstx protoy ≠ protox Rx ℜIM Ry 9 actiony =actionx actiony ≠ actionx Rx ℜC Ry 10 actiony ≠ actionx actiony =actionx Previous results E. Al-Shaer & H. H. Hamed. Discovery of Policy Anomalies in Distributed Firewalls. INFOCOM 2004. For every pair of rules R , R ...x y
  • 6. Sylvain Hallé Previous results B. Khorchani, S. Hallé, R. Villemaire. Firewall anomaly detection with a model checker for visibility logic. IM 2012. B A D t B AB A A overlaps B A ⋂ B A occludes B A ⊆ B A obstructs B A ⊇ B ◇* φ ○* φ ◻* φ some rule r', following r and such that r' * r, satisfies φ all rules r', following r and such that r' * r, satisfy φ the first rule r', following r and such that r' * r, satisfies φ a ⋀ d◇⋂( ) ⋁ d ⋀ a◇⋂( ) ◇⊇ TRUE -1 a ⋀ a◇⊇( ) ⋁ d ⋀ d◇⊇( )-1 -1 Correlation Shadowing Redundancy
  • 7. Sylvain Hallé Routers Incoming traffic Outgoing traffic Source Destination Next hop 192.* 16.10.* 10.1.1.2 . . . 10.* 16.10.* 50.1.* . . . R1 R2 R3 . . .
  • 8. Sylvain Hallé 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 9. Sylvain Hallé Rule 3.4 shadows Rule 1.2: packet accepted if enters from Node 1, rejected if from Node 3 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 10. Sylvain Hallé Rules 1.1 and 3.1 are spurious: a packet to 5 entering from Node 3 is routed to Node 1 where it is dropped 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 11. Sylvain Hallé Is Rule 1.5 redundant with respect to Rule 3.3? 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 12. Sylvain Hallé Is Rule 1.5 redundant with respect to Rule 3.3? Yes if Node 1 receives traffic only from Node 3... 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 13. Sylvain Hallé Is Rule 1.5 redundant with respect to Rule 3.3? Yes if Node 1 receives traffic only from Node 3... No otherwise! 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 14. Sylvain Hallé Is Rule 2.3 shadowed by Rule 3.1? 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 15. Sylvain Hallé Is Rule 2.3 shadowed by Rule 3.1? No since no traffic ever flows from Node 3 to Node 2 (all traffic is dropped at Node 1) 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 16. Sylvain Hallé Is Rule 2.5 redundant wrt Rule 1.4? 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 17. Sylvain Hallé Is Rule 2.5 redundant wrt Rule 1.4? No since packets destined to 4-5 are never routed to Node 1 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥ All together now
  • 18. Sylvain Hallé Issues The presence of an anomaly between rules R and R' depends on whether there is a possible path from R to R' ...and also on the field ranges of each routing rule along that path!
  • 19. Sylvain Hallé How to detect an anomaly Keep track of an interval I of values and a decision D, called a frozen interval and a frozen decision In the beginning, set I to the full range of possible values, and D to "undefined" ? Frozen interval Frozen decision ①
  • 20. Sylvain Hallé How to detect an anomaly Pick some ingress node as a starting point② 1 [5,8] : ⊥ 2 [0,1] : ⊤ 3 [6,8]: ⊥ 4 [2,5]: ⊤ 5 [9,9]: ⊤ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ [0,3] Device 1 [4,8] # [9,9] Device 1 I Next hop [0,8] Device 1 [9,9] # I Next hop Node 1 Node 2 Node 3 1 [5,8] : ⊤ 2 [2,4] : ⊤ 3 [9,9] : ⊤ 4 [0,1]: ⊥
  • 21. Sylvain Hallé In every node visited, go through the firewall rules one by one in order 1 [5,6] : ⊤ 2 [0,4] : ⊤ 3 [7,8] : ⊥ 4 [9,9] : ⊤ 5 [3,5] : ⊤ ③ How to detect an anomaly ...
  • 22. Sylvain Hallé Once done scanning through the rules, pick one routing entry... Intersect the freeze interval with the entry chosen ...and move on to the destination node ④ [0,3] # [4,8] Device 2 [9,9] Device 3 I Next hop 0 10 4 8 ⋂ = 4 8 How to detect an anomaly
  • 23. Sylvain Hallé At some point in the walk (only once!), pick the current firewall rule Intersect the freeze interval with the rule chosen Record the rule's decision in the freeze decision ⑤ 7 8 ⋂ = 3 [7,8] : ⊥ 4 8 7 8 ? ⊥ How to detect an anomaly
  • 24. Sylvain Hallé How to detect an anomaly From this point on, compare the frozen interval/ decision with the interval/decision of every firewall rule "visited" ⑥ 5 [5,9] : ⊤ 7 8 ⊥ 5 9 ⊤ Frozen Spuriousness anomaly vs.
  • 25. Sylvain Hallé Solution #1 Repeat this process... for every start point and every path by alternatively freezing every firewall rule Σk! k=1 n non-cyclic paths between n nodes
  • 26. Sylvain Hallé Solution #2 For a given network, generate a Kripke structure whose traces are all the walks behaving as in steps ① to ⑥ Send the problem to a model checker Express anomalies as temporal logic properties on these traces (reachability problem)
  • 27. Sylvain Hallé Variables in the Kripke structure Each state of the Kripke structure is a unique assignment of values to 7 state variables ιL ιR ⊥ ιD 3 [7,8] : ⊥ ρL ρR ρDχ Bounds of frozen interval Frozen decision Unique rule number Bounds of current firewall rule interval Current rule decision
  • 28. Sylvain Hallé Transitions in the Kripke structure Each transition between two states corresponds to one of the following actions ιR ιD 3 [7,8] : ⊥ 4 [9,9] : ⊤ ρL ρR ρD χ Moving to the next rule in the current firewall ιL = a = b = d = 3 = 7 = 8 = ⊥ ιR ιD ρL ρR ρD χ ιL = a = b = d = 3 = 9 = 9 = ⊤
  • 29. Sylvain Hallé Transitions in the Kripke structure Each transition between two states corresponds to one of the following actions ιR ιD 3 [7,8] : ⊥ ρL ρR ρD χ Freezing the current firewall rule ιL = a = b = ? = 3 = 7 = 8 = ⊥ ιR ιD ρL ρR ρD χ ιL = max(a, 7) = min(b, 8) = ⊥ = 3 = 7 = 8 = ⊥
  • 30. Sylvain Hallé Transitions in the Kripke structure Each transition between two states corresponds to one of the following actions ιR ιD [4,8]: Device 2 ρL ρR ρD χ Select an applicable routing table entry and move to destination (first firewall rule) ιL = a = b = d = 3 = 7 = 8 = ⊥ ιR ιD ρL ρR ρD χ ιL = max(a, 4) = min(b, 8) = d = 1 = 5 = 6 = ⊤ 1 [5,6] : ⊤
  • 31. Sylvain Hallé LTL properties Anomalies become properties on traces expressed in Linear Temporal Logic (LTL) Ex.: shadowing ιR ιDρL ρR ρDιL =⊥≤ ∧ ≥ =⊤ ∧∧G ( )
  • 32. Sylvain Hallé Anomaly detector Firewall rules Routing table Encoder Decoder Kripke structure NuSMV Counter-example trace Anomaly explanation Node 1 Firewall rules Routing table Node n . . . Anomalies expressed as LTL formulæ Analysis tool
  • 33. Sylvain Hallé Sample input file Node name: 0 0: 0, 0 : 0, 6, 7 : 0, deny 1: 0, 0 : 0, 0, 0 : 0, accept 2: 0, 0 : 0, 12, 13 : 0, accept ... Routing table: 12, 14, 12 8, 9, 1 5, 7, 3 ...
  • 34. Sylvain Hallé - Starting at Node 1 - Considering firewall rule 2 on Node 1: [1-5] accept - Going to Node 2 through routing rule 2: Node 1 -> [2-6] -> Node 2 - The considered interval becomes restricted to [2-5] - Going to Node 3 through routing rule 1: Node 2 -> [2-6] -> Node 3 - Shadowing anomaly with firewall rule 2 on Node 3: [2-5] accept vs. [3-4] reject Analysis tool http://github.com/sylvainhalle/FirewallCheck java -jar NetworkChecker.jar -s -i "./*.txt"
  • 35. Sylvain Hallé 0.1 10 1,000 Time(s) Total number of rules in network 50 100 150 250200 2-2-2 3-3-3 Empirical results
  • 36. Sylvain Hallé 0.001 1 1,000 Time(s) Number of nodes in network 1 5 10 20 50 rules 100 rules Empirical results
  • 37. Sylvain Hallé The end Thank you! Questions?