SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs...

81
1 SELFSTARTER Finding Network Misconfigurations by Automatic Template Inference Siva Kesava Reddy Kakarla 1 Ryan Beckett 2 Karthick Jayaraman 3 Todd Millstein 1,4 Yuval Tamir 1 George Varghese 1 1 University of California, Los Angeles, USA Microsoft Research Microsoft Azure 2 3 4 Intentionet Alan Tang 1

Transcript of SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs...

Page 1: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

1

SELFSTARTERFinding Network Misconfigurations by Automatic Template Inference

Siva Kesava Reddy Kakarla1

Ryan Beckett2 Karthick Jayaraman3 Todd Millstein1,4 Yuval Tamir1 George Varghese1

1University of California, Los Angeles, USA

Microsoft Research Microsoft Azure2 3

4Intentionet

Alan Tang1

Page 2: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

2

Network Misconfigurations Are Common

2

Page 3: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3

Network Misconfigurations Are Common

3

How can we detect misconfigurations?

Page 4: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

44

Network Verification

Page 5: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5

Verifiere.g. ERA,

Minesweeper

5

Network Verification

Page 6: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6

Verifiere.g. ERA,

Minesweeper

6

RouterConfigs

Network Verification

Page 7: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7

Spec

Verifiere.g. ERA,

Minesweeper

7

RouterConfigs

Network Verification

Page 8: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

8

Spec

Verifiere.g. ERA,

Minesweeper

8

RouterConfigs

Network Verification

Page 9: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

9

Spec

Verifiere.g. ERA,

Minesweeper

9

RouterConfigs

Network Verification

Page 10: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

10

Spec

Verifiere.g. ERA,

Minesweeper

10

… has an important practical limitation.

RouterConfigs

Network Verification

Page 11: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

11

Spec

Verifiere.g. ERA,

Minesweeper

11

SpecificationsSpecs are mostly written in an informal way or are incomplete

– Hard to write a precise formal model

In practice, specifications often do not exist

RouterConfigs

Limitation: Lack of Specifications

Page 12: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

12

PROBLEM:How to find misconfigurations

without an explicit specification?

Page 13: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

13

GENERAL APPROACH:Bugs as deviant behavior!

“If thousands of people all do the same action, we know the majority is probably right, and any contradictory action is probably wrong without knowing the correct behavior.”†

†Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code - SOSP 2001

PROBLEM:How to find misconfigurations

without an explicit specification?

Page 14: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

14

GENERAL APPROACH:Bugs as deviant behavior!

“If thousands of people all do the same action, we know the majority is probably right, and any contradictory action is probably wrong without knowing the correct behavior.”†

†Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code - SOSP 2001

OUR INSIGHT:Exploit network device roles

PROBLEM:How to find misconfigurations

without an explicit specification?

Page 15: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

1515

Network Device Roles

Routers in a network are generally assigned certain “roles” based on their use

Page 16: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

1616

Network Device Roles

Routers in a network are generally assigned certain “roles” based on their use

Page 17: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

1717

Network Device Roles

Routers in a network are generally assigned certain “roles” based on their use Routers in the same role of a network are typically configured “similarly”

Page 18: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

18

PROBLEM:How to model config “similarity” and define “deviance” ?

Page 19: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

19

PROBLEM:How to model config “similarity” and define “deviance” ?

NAÏVE APPROACH: Exact configuration equivalence

Too strong an assumption! Router configurations in a role have many intentional differences (e.g., local IPs)

Page 20: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

20

NAÏVE APPROACH: Exact configuration equivalence

Too strong an assumption! Router configurations in a role have many intentional differences (e.g., local IPs)

PROBLEM:How to model config “similarity” and define “deviance” ?

OUR APPROACH:Infer parameterized templates to distinguish intentional

differences from likely bugs

Page 21: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

21

First automatic template inference algorithm for any configurationsegment, e.g. ACLs, policy maps and so on

21

Contributions

Page 22: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

22

First automatic template inference algorithm for any configurationsegment, e.g. ACLs, policy maps and so on

Concrete instantiations of our generic algorithm for three widely usedsegments – ACLs, prefix lists and route policies

22

Contributions

Page 23: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

23

First automatic template inference algorithm for any configurationsegment, e.g. ACLs, policy maps and so on

Concrete instantiations of our generic algorithm for three widely usedsegments – ACLs, prefix lists and route policies

SelfStarter – Tool for finding potential bugs in router configurations withactionable feedback for operators using automatic template inference

23

Contributions

Page 24: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

24

First automatic template inference algorithm for any configurationsegment, e.g. ACLs, policy maps and so on

Concrete instantiations of our generic algorithm for three widely usedsegments – ACLs, prefix lists and route policies

SelfStarter – Tool for finding potential bugs in router configurations withactionable feedback for operators using automatic template inference

SelfStarter found 43 previously unknown bugs in total in Microsoftnetworks and a large campus network.

24

Contributions

Page 25: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

2525

RouterConfigs

End-to-End Design

Page 26: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

2626

RouterConfigs

End-to-End Design

SelfStarter

Page 27: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

2727

RouterConfigs

End-to-End Design

SelfStarter

Network Engineer

Roles Router

Page 28: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

2828

RouterConfigs

End-to-End Design

SelfStarter

Network Engineer

Roles Router

Role R2 Configs

Role R1 Configs

Page 29: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

2929

RouterConfigs

End-to-End Design

SelfStarter

Network Engineer

Roles Router

Role R2 Configs

Role R1 Configs

T1 T2 T3

ACL “X”

Templates

Page 30: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3030

RouterConfigs

End-to-End Design

SelfStarter

Network Engineer

Roles Router

Role R2 Configs

Role R1 Configs

T1 T2 T3

ACL “X” ACL “Y”

T1’Templates

Page 31: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3131

RouterConfigs

End-to-End Design

SelfStarter

Network Engineer

Roles Router

Role R2 Configs

Role R1 Configs

T1 T2 T3

ACL “X” ACL “Y”

T1’

Other ACLs, prefix lists

& route policies

Templates

Page 32: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3232

RouterConfigs

End-to-End Design

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

Templates

›Likely Bugs!

T1 T2 T3 T1’›

Page 33: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3333

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

An Example: Campus Network

Page 34: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3434

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

1000 Configs

An Example: Campus Network

Page 35: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3535

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

1000 Configs

An Example: Campus Network

br 106 Configs

Page 36: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3636

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

1000 Configs

An Example: Campus Network

br 106 Configs

aux_in

aux_out

Page 37: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3737

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

1000 Configs

An Example: Campus Network

br 106 Configs

aux_in

aux_out

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0

0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permitip 15.B.C.D0.0.E.F

any

8 deny ip any any

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Page 38: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3838

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

1000 Configs

An Example: Campus Network

br 106 Configs

aux_in

aux_out

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0

0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permitip 15.B.C.D0.0.E.F

any

8 deny ip any any

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group Sizes 88 16 2

Page 39: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

3939

RouterConfigs

Network Engineer

SelfStarter

Roles Router

Role R2 Configs

Role R1 Configs

ACL “X” ACL “Y”

Other ACLs, prefix lists

& route policies

TemplatesT1 T2 T3 T1’

1000 Configs

An Example: Campus Network

br 106 Configs

aux_in

aux_out

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0

0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permitip 15.B.C.D0.0.E.F

any

8 deny ip any any

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group Sizes 88 16 2 Likely Bugs!

Page 40: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4040

Input – 106 ACL configurations from a role in the campus network

SelfStarter Example Output

Page 41: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4141

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Metatemplate

Input – 106 ACL configurations from a role in the campus network

SelfStarter Example Output

Page 42: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4242

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Metatemplate

Input – 106 ACL configurations from a role in the campus network

SelfStarter Example Output

Page 43: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4343

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Group 1 Template

Page 44: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4444

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Group 1 Template

Page 45: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4545

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Group 2 Template

Page 46: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4646

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Group 3 Template

Page 47: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4747

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Group 3 Template

Page 48: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4848

Group Outliers

∣Groups 2 and 3∣≪ ∣Group 1∣→

Deviance IdentificationGroups 2 and 3 ACLs are potentially misconfigured

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Page 49: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

4949

Group Outliers

Deviance IdentificationGroups 2 and 3 ACLs are potentially misconfigured

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

∣Groups 2 and 3∣≪ ∣Group 1∣→ Metatemplate → Actionable feedback to the network engineers

Page 50: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5050

Group Outliers

Deviance IdentificationGroups 2 and 3 ACLs are potentially misconfigured

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any any

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

∣Groups 2 and 3∣≪ ∣Group 1∣→ Metatemplate → Actionable feedback to the network engineers

∣Group 1∣A=127≪ ∣Group 1∣A=255→ 10 ACLs are potentially permitting more traffic than intended

Parameter Outliers

A # of ACLs in Group 1

255 78

127 10

Page 51: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5151

Group Outliers

Parameter Outliers

∣Groups 2 and 3∣≪ ∣Group 1∣→ Metatemplate → Actionable feedback to the network engineers

∣Group 1∣A=127≪ ∣Group 1∣A=255→

Deviance IdentificationGroups 2 and 3 ACLs are potentially misconfigured

10 ACLs are potentially permitting more traffic than intended

1 deny ip any 14.10.0.0 0.0.31.255

2 deny ip any 17.7.240.0 0.0.15.255

3 deny ip any 14.10.49.0 0.0.0.255

4 deny ip any 14.10.50.0 0.0.0.255

5 deny ip any 15.8.228.0 0.0.15.255

6 deny ip any 15.20.0.0 0.0.A.255

7 permit ip 15.B.C.D 0.0.E.F any

8 deny ip any anyA # of ACLs in Group 1

255 78

127 10

Group 1(88 ACLs)

Group 2(16 ACLs)

Group 3(2 ACLs)

Page 52: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5252

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Page 53: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5353

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Challenge: Non-identical lines

Page 54: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5454

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Solution: Parameterization

Challenge: Non-identical lines

Page 55: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5555

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Solution: Parameterization

Challenge: Non-identical lines

Page 56: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5656

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Page 57: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5757

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Page 58: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5858

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Page 59: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

5959

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Page 60: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6060

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Challenge: Allow certain reorderingsbut not arbitrary reorderings

Page 61: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6161

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Challenge: Allow certain reorderingsbut not arbitrary reorderings

A block is a contiguous sequence of lines that can be arbitrarily reordered but the order of blocks is important.

Solution: Two-level abstraction using blocks

Page 62: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6262

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

Page 63: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6363

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

Template Inference: Key Ideas

(see our paper for details)

Block Alignment Sequence alignment to preventcross-block reordering

Page 64: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6464

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

(see our paper for details)

Template Inference: Key Ideas

Block Alignment

Line Reorderings

Sequence alignment to preventcross-block reordering

Minimum-weight bipartite matching to allow within-block line reorderings

Page 65: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

6565

Template of ACL1 and ACL2

ip access-list extended ACL2

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.13.0 0.0.0.255 any

3 deny icmp 17.12.13.0 0.0.0.255 any

4 permit ip 17.12.13.0 0.0.0.255 any

5 permit ip 16.23.0.0 0.0.63.255 any

ip access-list extended ACL1

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.11.0 0.0.0.255 any

3 deny icmp 17.12.11.0 0.0.0.255 any

4 permit ip 16.21.0.0 0.0.63.255 any

5 permit ip 17.12.11.0 0.0.0.255 any

ip access-list extended ACL*

1 deny udp host 0.0.0.0 any

2 permit tcp 17.12.A.0 0.0.0.255 any

3 deny icmp 17.12.B.0 0.0.0.255 any

4 permit ip 17.12.C.0 0.0.0.255 any

5 permit ip 16.D.0.0 0.0.63.255 any

Page 66: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

66

Triple: (segment type, role, segment name)

66

Results – Summary

Page 67: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

67

Network Segment TypeConsistent Triples(only one group)

Inconsistent Triples (at least 2 groups)

Identified InvestigatedTrue Positives

(% of investigated)

Campus ACLs 0 6 3 3 (100%)

MicrosoftWAN

Prefix lists 10042 166 138 7 (5%)

Route policies 10969 56 33 33 (100%)

MicrosoftData center

ACLs 9700 938 400* 400 (100%)*

Prefix lists 2954 0 - -

Route policies 11653 230 230* 230 (100%)*

Triple: (segment type, role, segment name)

67

Results – Summary

* These were known inconsistencies

Page 68: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

68

Network Segment TypeConsistent Triples(only one group)

Inconsistent Triples (at least 2 groups)

Identified InvestigatedTrue Positives

(% of investigated)

Campus ACLs 0 6 3 3 (100%)

MicrosoftWAN

Prefix lists 10042 166 138 7 (5%)

Route policies 10969 56 33 33 (100%)

MicrosoftData center

ACLs 9700 938 400* 400 (100%)*

Prefix lists 2954 0 - -

Route policies 11653 230 230* 230 (100%)*

68

Results – Summary

20 min

90 min

* These were known inconsistencies

Triple: (segment type, role, segment name)

Page 69: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

69

Network Segment TypeConsistent Triples(only one group)

Inconsistent Triples (at least 2 groups)

Identified InvestigatedTrue Positives

(% of investigated)

Campus ACLs 0 6 3 3 (100%)

MicrosoftWAN

Prefix lists 10042 166 138 7 (5%)

Route policies 10969 56 33 33 (100%)

MicrosoftData center

ACLs 9700 938 400* 400 (100%)*

Prefix lists 2954 0 - -

Route policies 11653 230 230* 230 (100%)*

69

Results – Summary

* These were known inconsistencies

Triple: (segment type, role, segment name)

Page 70: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

70

Network Segment TypeConsistent Triples(only one group)

Inconsistent Triples (at least 2 groups)

Identified InvestigatedTrue Positives

(% of investigated)

Campus ACLs 0 6 3 3 (100%)

MicrosoftWAN

Prefix lists 10042 166 138# 7 (5%)#

Route policies 10969 56 33 33 (100%)

MicrosoftData center

ACLs 9700 938 400* 400 (100%)*

Prefix lists 2954 0 - -

Route policies 11653 230 230* 230 (100%)*

70

Results – Summary

#These prefix lists dynamically expand to multiple lines * These were known inconsistencies

Triple: (segment type, role, segment name)

Page 71: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7171

Results – Sources of Misconfigurations

Campus Decentralized management - Central and

departmental Reference templates for operators to follow

Page 72: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7272

Results – Sources of Misconfigurations

Campus Decentralized management - Central and

departmental Reference templates for operators to follow

Inconsistent manual policy updates Reference templates might be stale

Page 73: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7373

Results – Sources of Misconfigurations

Campus Decentralized management - Central and

departmental Reference templates for operators to follow

Inconsistent manual policy updates Reference templates might be stale

Microsoft WAN Semi-automated via scripts Implicit templates within scripts

Page 74: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7474

Results – Sources of Misconfigurations

Campus Decentralized management - Central and

departmental Reference templates for operators to follow

Inconsistent manual policy updates Reference templates might be stale

Microsoft WAN Semi-automated via scripts Implicit templates within scripts

Bug in the scripts Erroneous manual updates

Page 75: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7575

Results – Sources of Misconfigurations

Campus Decentralized management - Central and

departmental Reference templates for operators to follow

Inconsistent manual policy updates Reference templates might be stale

Microsoft WAN Semi-automated via scripts Implicit templates within scripts

Bug in the scripts Erroneous manual updates

Microsoft Data center Automated update service Explicit templates for each role

Page 76: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

7676

Results – Sources of Misconfigurations

Campus Decentralized management - Central and

departmental Reference templates for operators to follow

Inconsistent manual policy updates Reference templates might be stale

Microsoft WAN Semi-automated via scripts Implicit templates within scripts

Bug in the scripts Erroneous manual updates

Microsoft Data center Automated update service Explicit templates for each role

Delayed updates during automation

Page 77: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

77

Bayesian Detection of Router Configuration Anomalies:

Structured Bayes [2005 Khalid et al]

o Misconfigurations in router data are identified as statistical anomalies within a Bayesian framework.

77

Prior Work

Page 78: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

78

Bayesian Detection of Router Configuration Anomalies:

Structured Bayes [2005 Khalid et al]

o Misconfigurations in router data are identified as statistical anomalies within a Bayesian framework.

Detecting Network-Wide and Router-Specific Misconfigurations Through Data Mining:

Minerals [2009 Le et al]

o Applied association rules mining to the configuration files

78

Prior Work

Page 79: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

79

Bayesian Detection of Router Configuration Anomalies:

Structured Bayes [2005 Khalid et al]

o Misconfigurations in router data are identified as statistical anomalies within a Bayesian framework.

Detecting Network-Wide and Router-Specific Misconfigurations Through Data Mining:

Minerals [2009 Le et al]

o Applied association rules mining to the configuration files

79

Prior Work

Key Limitations

Exact equivalence-based similarity

Do not apply to complex

configuration segments like ACLs

and Prefix lists

Allow arbitrary reordering of lines

Page 80: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

8080

Conclusion

First general template inference algorithm for configuration segments

SelfStarter – Our tool for finding potential network misconfigurationswithout a specification, using automatic template inference

Provides actionable feedback to the operators

Found 43 unknown bugs in Microsoft networks and campus network

Source Code : https://github.com/SivaKesava1/SelfStarter

Reach me at: [email protected]

Page 81: SELFSTARTER - USENIX · Network Engineer SelfStarter Router Roles Role R2 Configs Role R1 Configs ACL “X” ACL “Y” Other ACLs, prefix lists & route policies Templates T1 T2

81