/
Automating Configuration Troubleshooting Automating Configuration Troubleshooting

Automating Configuration Troubleshooting - PowerPoint Presentation

fullyshro
fullyshro . @fullyshro
Follow
342 views
Uploaded On 2020-08-29

Automating Configuration Troubleshooting - PPT Presentation

with Dynamic Information Flow Analysis Mona Attariyan Jason Flinn University of Michigan Mona Attariyan University of Michigan 2 Configuration Troubleshooting Is Difficult Software systems ID: 810383

attariyan mona michigan university mona attariyan university michigan confaid flow analysis file root path error bugs heuristic information config

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "Automating Configuration Troubleshooting" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Automating Configuration Troubleshooting with Dynamic Information Flow Analysis

Mona Attariyan

Jason

Flinn

University of Michigan

Slide2

Mona Attariyan - University of Michigan

2

Configuration Troubleshooting Is Difficult

Software systems

difficult to configure

Users make mistakes

Misconfigurations happen

Slide3

Mona Attariyan - University of Michigan

3

Configuration Troubleshooting Is Difficult

Slide4

Mona Attariyan - University of Michigan

4

What To Do With Misconfiguration?

……

……

&$%#!

…..

…..

config file

Ask colleagues

Search manual, FAQ,

online forums

Look at the code

if available

A tool that automatically finds the root cause of the misconfiguration in applications?

Slide5

Mona Attariyan - University of Michigan

5

ConfAid

Application code has enough information

to lead us to the root cause

Insight

Dynamic information flow analysis on application binaries

How?

Slide6

Mona Attariyan - University of Michigan

6

How to Use ConfAid?

error

……

……

……

config

file

likely root causes

1)…

2)…

3)…

……

Application

ConfAid

Slide7

MotivationHow ConfAid runs

Information flow analysis algorithms

Embracing imprecise analysis

Evaluation

Conclusion

Mona Attariyan - University of Michigan

7Outline

Slide8

Mona Attariyan - University of Michigan

8

How Developers Find Root Cause

ExecCGI

Config

file

file = open(

config

file)

token =

read_token(file)

if (token equals “

ExecCGI

”)

execute_cgi

= 1

if (

execute_cgi

== 1)

ERROR()

Application

Slide9

Mona Attariyan - University of Michigan

9

How ConfAid Finds Root Cause

Config

file

file = open(

config

file)

token = read_token(file)

if (token equals “ExecCGI”)

execute_cgi

= 1

if (

execute_cgi

== 1)

ERROR()

ConfAid uses taint tracking

ExecCGI

Slide10

10

How to Avoid Error?

if (b)

if (c)

This path leads to

some other error

likely root cause

if (a)

This path ends before

the error happens

This path successfully avoids the error

Slide11

MotivationHow ConfAid runs

Information flow analysis algorithms

Embracing imprecise analysis

Evaluation

Conclusion

Mona Attariyan - University of Michigan

11

Outline

Slide12

Mona Attariyan - University of Michigan

12

Data Flow Analysis

x = y + z ,

T

y

= { , }

T

z

= { , }

T

x

= { , , }

T

y

T

z

value of x

might

change,

if tokens or change

T

x

= { , }

Taint propagates via

data flow

and

control flow

Slide13

Mona Attariyan - University of Michigan

13

Control Flow Analysis

/* c = 0 */

/* x is read from file*/

if (c == 0) { x = a

}T

a = { }

T

x

= {

T

c

= { }

T

x

= { }

What could cause

x to be different

?

}

,

Data flow

Control flow

,

(

Ʌ

)

Slide14

Mona Attariyan - University of Michigan

14

Alternate Path Exploration

y depends on c

if(c)

y = a

if(!c)

ckpt

/* c = 1*/

/* y is read from file*/

if (c) {

/*taken path*/

} else {

y = a

}

Slide15

Mona Attariyan - University of Michigan

15

Effect of Alternate Path Exploration

/* c = 1*/

/* y is from file*/

if (c) {

} else {

y = a}What could causey to be different?

T

a = { }

T

y

= {

T

c

= { }

T

y

= { }

}

,

Alternate path exploration

,

(

Ʌ

)

Alternate path + Data flow

Slide16

MotivationHow ConfAid runs

Information flow analysis algorithms

Embracing imprecise analysis

Evaluation

Conclusion

Mona Attariyan - University of Michigan

16

Outline

Slide17

Mona Attariyan - University of Michigan

17

Embracing Imprecise Analysis

Complete and sound analysis leads to:

poor performance

high false positive rate

To improve performanceTo reduce false positives

Bounded horizon heuristic

Single mistake heuristicWeighting heuristic

Slide18

Bounded horizon prevents path explosionAlternate path runs a fixed # of instructions

18

Bounded Horizon Heuristic

if (b)

if (c)

max reached,

abort exploration

likely root causes

Slide19

Configuration file contains a single mistakeReduces amount of taint and # of explored paths

Mona Attariyan - University of Michigan

19

Single Mistake Heuristic

/* x=1, c=0*/

if (c == 0) {

x = a

}

Ta = { }

T

x

= { , , ( Ʌ )}

T

c

= { }

T

x

= { }

Slide20

Mona Attariyan - University of Michigan

20

Weighting Heuristic

Insufficient to treat all taint propagations equally

Data flow introduces stronger dependency than ctrl flow

Branches closer to error stronger than farther branches

Assign weights to taints to represent strength levelData flow taint gets a higher weight than ctrl flow taintBranches closer to error get higher weight than farther

Slide21

Mona Attariyan - University of Michigan

21

Example of Weighting Heuristic

if (x) {

if (y) { …

if (z) { ERROR() } }}

likely root causes

Slide22

22

Heuristics: Pros and Cons

Bounded horizon

Single mistake

Weighting

Simplify

control flow analysis

Improve

performance

Reduce

FP

Increase FP

Increase FN

FP = False Positive, FN = False Negative

Slide23

Mona Attariyan - University of Michigan

23

ConfAid and Multi-process Apps

ConfAid propagates taints between processes

Intercepts IPC system calls

Sends taint along with the dataConfAid currently supports communication via:

Unix sockets, pipes, TCP and UDP socketsRegular files

Slide24

MotivationHow ConfAid runs

Information flow analysis algorithms

Embracing imprecise analys

is

Evaluation

Conclusion

Mona Attariyan - University of Michigan24

Outline

Slide25

ConfAid debugs misconfiguration in:OpenSSH 5.1 (2 processes)

Apache HTTP server 2.2.14 (1 process)

Postfix mail transfer agent 2.7 (up to 6 processes)

Manually inject errors to configuration files

Evaluation metrics:

The ranking of the correct root causeThe time to execute the application with ConfAid

Mona Attariyan - University of Michigan25

Evaluation

Slide26

Real-world misconfigurations:total of 18 bugs from manuals, forums and FAQs

Randomly generated bugs:

60 bugs using

ConfErr

[Keller et al. DSN 08]

Mona Attariyan - University of Michigan26

Data Sets

Slide27

Mona Attariyan - University of Michigan

27

How Effective is ConfAid ?

Total

tokens

First

First

tied w/1

Second

Second

tied w/1

Worse than

second

OpenSSH

47-49

2

2

2

1

0

Apache

88-93

3

1

0

2

0

Postfix

27-29

5

5

0

0

0

Correct root caused ranked

first or second

for

all 18 real-world bugs

72%

28%

0%

Slide28

Mona Attariyan - University of Michigan

28

How Effective is ConfAid ?

Total

tokens

First

First

tied w/1

Second

Second

tied w/1

Worse than

second

OpenSSH

47

17

1

1

0

1

Apache

88

17

1

0

1

1

Postfix

27

15

0

2

0

3

Correct root caused ranked

first or second

for

55 out of 60 randomly-generated bugs

85%

7%

8%

Slide29

Mona Attariyan - University of Michigan

29

How Fast is ConfAid?

Average Execution

Time

OpenSSH

52

secondsApache 2 minutes

48 seconds

Postfix

57 seconds

OpenSSH

7 seconds

Apache

24 seconds

Postfix

38 seconds

Average execution time for real-world bugs: 1m 32s

Average time for randomly-generated bugs: 23s

Slide30

ConfAid automatically finds root cause of problemsConfAid uses dynamic information flow analysis

ConfAid ranks the correct root cause as first or second in:

18 out of 18 real-world bugs

55 out of 60 random bugs

ConfAid takes only a few minutes to run

Mona Attariyan - University of Michigan

30

Conclusion

Slide31

Mona Attariyan - University of Michigan

31

Questions?

Slide32

ConAid may or may not report allFor independent mistakes, ConfAid first finds the one that led to the first failure

For dependent mistakes, ConfAid may report all based on their effect on program

Mona Attariyan - University of Michigan

32

What if there are multiple mistakes?

Slide33

Mona Attariyan - University of Michigan

33

Effect of Bounded Horizon Heuristic

Slide34

Mona Attariyan - University of Michigan

34

Effect of Weighting Heuristic

Max # tokens: 49

Max # tokens: 93

Max # tokens: 5