SlideShare uma empresa Scribd logo
1 de 127
Baixar para ler offline
CAMOUFLAGE:
AUTOMATED ANONYMIZATION
OF FIELD DATA
James Clause
University of Delaware
Alessandro Orso
Georgia Institute
of Technology
THE BIG PICTURE
THE BIG PICTURE
THE BIG PICTURE
THE BIG PICTURE
THE BIG PICTURE
• Apple crash reporter
• Windows error reporting
• Ubuntu Apport
• Gnome BugBuddy
• Mozilla / Google Breakpad
• many others
• Chilimbi and colleagues ’09
• Elbaum and Diep ’05
• Hilbert and Redmiles ’00
• Liblit and colleagues ’05
• Pavlopoulou andYoung ’99
• many others
PRIVACY CONCERNS
PRIVACY CONCERNS
Handling concerns in practice
PRIVACY CONCERNS
Handling concerns in practice
PRIVACY CONCERNS
• Ignore them
Handling concerns in practice
PRIVACY CONCERNS
• Ignore them
• Privacy policies
Handling concerns in practice
PRIVACY CONCERNS
• Ignore them
• Privacy policies
• Collect limited amounts of
information
• less likely to be sensitive
• can rely on user checking
PRIVACY CONCERNS
Unfortunately:
Register values
Stack dumps
Branch profiles
Path profiles
Test cases
Usefulness
PRIVACY CONCERNS
Privacy concerns
Unfortunately:
Register values
Stack dumps
Branch profiles
Path profiles
Test cases
Usefulness
PRIVACY CONCERNS
Privacy concerns
Unfortunately:
Register values
Stack dumps
Branch profiles
Path profiles
Test cases
Usefulness
GOAL: Enable the collection of detailed information
while reducing or eliminating privacy concerns.
PRIVACY CONCERNS
Privacy concerns
Unfortunately:
Register values
Stack dumps
Branch profiles
Path profiles
Test cases
Usefulness
GOAL: Enable the collection of detailed information
while reducing or eliminating privacy concerns.
OUTLINE
• Intuition
• Castro and colleagues’ technique
• Our improvements
• Path condition relaxation
• Breakable input conditions
• Evaluation
• Related work
• Conclusions and future work
Sensitive
input (I)
that causes F
Input domain
INTUITION
Sensitive
input (I)
that causes F
Input domain
Inputs that
cause F
INTUITION
Sensitive
input (I)
that causes F
Input domain
Inputs that
cause F
INTUITION
Anonymized
input (I’)
that also
causes F
Inputs that satisfy
F’s path condition Sensitive
input (I)
that causes F
Input domain
Inputs that
cause F
INTUITION
Anonymized
input (I’)
that also
causes F
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
Path condition: set of constraints on a program’s
inputs that encode the conditions necessary for a
specific path to be executed.
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
(sensitive)
Path Condition:
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
(sensitive)
Path Condition:
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
∧ i2+i1*2 > 10
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
∧ i2+i1*2 > 10
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
CASTRO AND COLLEAGUES’ TECHNIQUE
(PATH CONDITION GENERATION)
5 3 0
x→i1
y→i2
z→i3
∧ i2+i1*2 > 10
∧ i3 == 0
(sensitive)
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
CASTRO AND COLLEAGUES’ TECHNIQUE
(CHOOSING ANONYMIZED INPUTS)
Constraint
Solver
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
CASTRO AND COLLEAGUES’ TECHNIQUE
(CHOOSING ANONYMIZED INPUTS)
Constraint
Solver
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
i1 == 5
i2 == 3
i3 == 0
CASTRO AND COLLEAGUES’ TECHNIQUE
(CHOOSING ANONYMIZED INPUTS)
OUR IMPROVEMENTS
Increase the number of
possible choices for I’
Chose I’ such that it is
as different as possible from I
OUR IMPROVEMENTS
Increase the number of
possible choices for I’
Chose I’ such that it is
as different as possible from I
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
x.equals(y);
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
x.equals(y);
abc abd
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
x.equals(y);
Traditional:
x0 == y0
∧ x1 == y1
∧ x2 != y2
abc abd
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
x.equals(y);
Traditional:
x0 == y0
∧ x1 == y1
∧ x2 != y2
Relaxed:
x0 != y0
∨ x1 != y1
∨ x2 != y2
abc abd
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
5
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
Traditional:
x == 5
5
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
Relaxed:
x == 5
∨ x == 3
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
Traditional:
x == 5
5
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
10
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
Traditional:
x == 10
10
PATH CONDITION RELAXATION
1.Array inequalities 3. Multi-clause conditionals
2. Switch statements 4.Array reads
switch(x) {
case 1:
...
break;
case 3:
case 5:
...
break;
default:
...
}
Traditional:
x == 10
Relaxed:
x != 1
∧ x != 3
∧ x != 5
10
OUR IMPROVEMENTS
Increase the number of
possible choices for I’
Chose I’ such that it is
as different as possible from I
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0 i1 == 5
i2 == 3
i3 == 0
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0 i1 == 5
i2 == 3
i3 == 0
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
5 3 0
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Constraint
Solver
BREAKABLE INPUT CONDITIONS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
i1 == 4
i2 == 10
i3 == 0
ASSUMPTIONS
ASSUMPTIONS
1. The failure f is observable and can be detected with an
assertion.
‣ common to all debugging techniques; holds in most, if not all, cases.
ASSUMPTIONS
1. The failure f is observable and can be detected with an
assertion.
‣ common to all debugging techniques; holds in most, if not all, cases.
2. Any input that satisfies the path condition results in f.
• Non-determinism
‣ common to all debugging techniques; requires a deterministic
replay mechanism
• Implicit checks (e.g., division by zero)
‣ likely that they do not involve relevant inputs
‣ make implicit checks explicit (e.g., 100/x → assert x != 0)
ASSUMPTIONS
ASSUMPTIONS
✘
ASSUMPTIONS
✘
1. The failure f is observable and can be detected with an
assertion.
‣ common to all debugging techniques; holds in most, if not all, cases.
1. The failure f is observable and can be detected with an
assertion.
‣ common to all debugging techniques; holds in most, if not all, cases.
2. Any input that satisfies the path condition results in f.
• Non-determinism
‣ common to all debugging techniques; requires a deterministic
replay mechanism
• Implicit checks (e.g., division by zero)
‣ likely that they do not involve relevant inputs
‣ make implicit checks explicit (e.g., 100/x → assert x != 0)
EVALUATION
EVALUATION
1 Feasibility
Can the approach
generate, in a reasonable
amount of time,
anonymized inputs that
reproduce a failure?
EVALUATION
1 Feasibility
Can the approach
generate, in a reasonable
amount of time,
anonymized inputs that
reproduce a failure?
Strength
How much information
about the original inputs
is revealed?
2
EVALUATION
Effectiveness
Are the anonymized
inputs safe to send to
developers?
31 Feasibility
Can the approach
generate, in a reasonable
amount of time,
anonymized inputs that
reproduce a failure?
Strength
How much information
about the original inputs
is revealed?
2
EVALUATION
Effectiveness
Are the anonymized
inputs safe to send to
developers?
31 Feasibility
Can the approach
generate, in a reasonable
amount of time,
anonymized inputs that
reproduce a failure?
Strength
How much information
about the original inputs
is revealed?
2 4 Improvement
Does the use of path
condition relaxation and
breakable input
conditions provide any
benefits over the basic
approach?
i1 == 4
i2 == 10
i3 == 0
Constraint
Solver
PROTOTYPE IMPLEMENTATION
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
i1 == 4
i2 == 10
i3 == 0
Constraint
Solver
PROTOTYPE IMPLEMENTATION
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Java
Pathfinder
Java
Pathfinder
i1 == 4
i2 == 10
i3 == 0
Constraint
Solver
PROTOTYPE IMPLEMENTATION
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Java
Pathfinder
Java
Pathfinder
Yices
i1 == 4
i2 == 10
i3 == 0
Constraint
Solver
PROTOTYPE IMPLEMENTATION
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Breakable
Input Condition:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Java
Pathfinder
Java
Pathfinder
Yices
Ruby
scripts
Executable
inputs
SUBJECTS
• Columba: 1 fault
• htmlparser: 1 fault
• Printtokens: 2 faults
• NanoXML: 16 faults
(20 faults, total)
SUBJECTS
• Columba: 1 fault
• htmlparser: 1 fault
• Printtokens: 2 faults
• NanoXML: 16 faults
Select sensitive failure-inducing inputs
• 170 total inputs
• manually generated or included with subject
• 100 bytes to 5MB in size
(20 faults, total)
SUBJECTS
• Columba: 1 fault
• htmlparser: 1 fault
• Printtokens: 2 faults
• NanoXML: 16 faults
Select sensitive failure-inducing inputs
• 170 total inputs
• manually generated or included with subject
• 100 bytes to 5MB in size
(Assume all of each input is potentially sensitive)
(20 faults, total)
RQ1:FEASIBILITY
0
150
300
450
600
0
5
10
15
20
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
Average
executiontime(s)
Average
solvertime(s)
RQ1:FEASIBILITY
0
150
300
450
600
0
5
10
15
20
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
Average
executiontime(s)
Average
solvertime(s)
Inputs can be anonymized in a reasonable
amount of time (easily done overnight)
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Little
information revealed
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Lots of
information revealed
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Measures how much of the
anonymized input is identical
to the original input
AAAAAA
secret
AAAAAA
...
AAAAAA
BBBBBB
secret
BBBBBB
...
BBBBBB
I’
Lots of
information revealed
I
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Measures how much of the
anonymized input is identical
to the original input
AAAAAA
secret
AAAAAA
...
AAAAAA
BBBBBB
secret
BBBBBB
...
BBBBBB
I’
Lots of
information revealed
I
RQ2: STRENGTH
0
25
50
75
100
0
25
50
75
100
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
Average
%BitsRevealed
Average
%Residue
RQ2: STRENGTH
0
25
50
75
100
0
25
50
75
100
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
Average
%BitsRevealed
Average
%Residue
Anonymized inputs reveal, on average, between
60% (worst case) and 2% (best case) of the
information in the original inputs
RQ3: EFFECTIVENESS
NANOXML
<!DOCTYPE Foo [
   <!ELEMENT Foo (ns:Bar)>
   <!ATTLIST Foo
       xmlns CDATA #FIXED 'http://nanoxml.n3.net/bar'
       a     CDATA #REQUIRED>
   <!ELEMENT ns:Bar (Blah)>
   <!ATTLIST ns:Bar
       xmlns:ns CDATA #FIXED 'http://nanoxml.n3.net/bar'>
   <!ELEMENT Blah EMPTY>
   <!ATTLIST Blah
       x    CDATA #REQUIRED
       ns:x CDATA #REQUIRED>
]>
<!-- comment -->
<Foo a='very' b='secret' c='stuff'>vaz
   <ns:Bar>
       <Blah x="1" ns:x="2"/>
   </ns:Bar>
</Foo>
RQ3: EFFECTIVENESS
NANOXML
<!DOCTYPE [
   <! >
   <!ATTLIST
        #FIXED ' '
        >
   <!E >
   <!ATTLIST
        #FIXED ' '>
   <!E >
   <!ATTLIST
        #
        : # >
]>
<!-- -->
< =' ' =' ' =' '>
   < : >
       < =" " : =" "/>
   </ :
Wayne,Bartley,Bartley,Wayne,wbartly@acp.com,,
Ronald,Kahle,Kahle,Ron,ron.kahle@kahle.com,,
Wilma,Lavelle,Lavelle,Wilma,,lavelle678@aol.com,
Jesse,Hammonds,Hammonds,Jesse,,hamj34@comcast.com,
Amy,Uhl,Uhl,Amy,uhla@corp1.com,uhla@gmail.com,
Hazel,Miracle,Miracle,Hazel,hazel.miracle@corp2.com,,
Roxanne,Nealy,Nealy,Roxie,,roxie.nearly@gmail.com,
Heather,Kane,Kane,Heather,kaneh@corp2.com,,
Rosa,Stovall,Stovall,Rosa,,sstoval@aol.com,
Peter,Hyden,Hyden,Pete,,peteh1989@velocity.net,
Jeffrey,Wesson,Wesson,Jeff,jwesson@corp4.com,,
Virginia,Mendoza,Mendoza,Ginny,gmendoza@corp4.com,,
Richard,Robledo,Robledo,Ralph,ralphrobledo@corp1.com,,
Edward,Blanding,Blanding,Ed,,eblanding@gmail.com,
Sean,Pulliam,Pulliam,Sean,spulliam@corp2.com,,
Steven,Kocher,Kocher,Steve,kocher@kocher.com,,
Tony,Whitlock,Whitlock,Tony,,tw14567@aol.com,
Frank,Earl,Earl,Frankie,,,
Shelly,Riojas,Riojas,Shelly,srojas@corp6.com,,
RQ3: EFFECTIVENESS
COLUMBA
, , , , ,,
, , , , ,,
, , , ,, ,
, , , ,, ,
, , , , , ,
, , , , ,,
, , , ,, ,
, , , , ,,
, , , ,, ,
, , , ,, ,
, , , , ,,
, , , , ,,
, , , , ,,
, , , ,, ,
, , , , ,,
, , , , ,,
, , , ,, ,
, , , ,,,
RQ3: EFFECTIVENESS
COLUMBA
, , , , ,,
, , , , ,,
, , , ,, ,
, , , ,, ,
, , , , , ,
, , , , ,,
, , , ,, ,
, , , , ,,
, , , ,, ,
, , , ,, ,
, , , , ,,
, , , , ,,
, , , , ,,
, , , ,, ,
, , , , ,,
, , , , ,,
, , , ,, ,
, , , ,,,
RQ3: EFFECTIVENESS
HTMLPARSER
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/
xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>james clause @ gatech | home</title>
<style type="text/css" media="screen" title="">
<!--/*--><![CDATA[<!--*/
body {
margin: 0px;
...
/*]]>*/-->
</style>
</head>
<body>
...
</body>
RQ3: EFFECTIVENESS
HTMLPARSER
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/
xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>james clause @ gatech | home</title>
<style type="text/css" media="screen" title="">
<!--/*--><![CDATA[<!--*/
body {
margin: 0px;
...
/*]]>*/-->
</style>
</head>
<body>
...
</body>
RQ3: EFFECTIVENESS
HTMLPARSER
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/
xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>james clause @ gatech | home</title>
<style type="text/css" media="screen" title="">
<!--/*--><![CDATA[<!--*/
body {
margin: 0px;
...
/*]]>*/-->
</style>
</head>
<body>
...
</body>
The portions of the inputs that remain after
anonymization tend to be structural in nature and
therefore are safe to send to developers
RQ4: IMPROVEMENT
RQ4: IMPROVEMENT
0
25
50
75
100
0
25
50
75
100
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
%Improvement
BitsRevealed
%Improvement
Residue
RQ4: IMPROVEMENT
0
25
50
75
100
0
25
50
75
100
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
%Improvement
BitsRevealed
%Improvement
Residue
Inputs anonymized using our improvements
reveal an average of 30% less bits of information
and 40% less residue.
(With only a marginal increase in time.)
RELATED WORK
RELATED WORK
• Castro and colleagues ’08
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
• Wang and colleagues ’08
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
• Wang and colleagues ’08
• Uses a combination of dynamic taint analysis, symbolic execution and Q/A with a
client machine to construct anonymized inputs
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
• Wang and colleagues ’08
• Uses a combination of dynamic taint analysis, symbolic execution and Q/A with a
client machine to construct anonymized inputs
• Data set anonymization techniques (e.g., k-anonymization)
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
• Wang and colleagues ’08
• Uses a combination of dynamic taint analysis, symbolic execution and Q/A with a
client machine to construct anonymized inputs
• Data set anonymization techniques (e.g., k-anonymization)
• Budi and colleagues ’11
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
• Wang and colleagues ’08
• Uses a combination of dynamic taint analysis, symbolic execution and Q/A with a
client machine to construct anonymized inputs
• Data set anonymization techniques (e.g., k-anonymization)
• Budi and colleagues ’11
• Grechanik and colleagues ’11
RELATED WORK
• Castro and colleagues ’08
• Broadwell and colleagues ’03
• Uses dynamic taint analysis to identify and remove sensitive information in crash
dumps.
• Wang and colleagues ’08
• Uses a combination of dynamic taint analysis, symbolic execution and Q/A with a
client machine to construct anonymized inputs
• Data set anonymization techniques (e.g., k-anonymization)
• Budi and colleagues ’11
• Grechanik and colleagues ’11
• Dynamic symbolic execution techniques
FUTURE WORK
FUTURE WORK
• Additional quality metrics that:
• consider additional aspects of privacy loss
• consider the relative sensitivity of different inputs
• are intuitive and easy to use
FUTURE WORK
• Additional quality metrics that:
• consider additional aspects of privacy loss
• consider the relative sensitivity of different inputs
• are intuitive and easy to use
• Conduction additional (human) studies
• additional (larger) subjects
FUTURE WORK
• Additional quality metrics that:
• consider additional aspects of privacy loss
• consider the relative sensitivity of different inputs
• are intuitive and easy to use
• Conduction additional (human) studies
• additional (larger) subjects
• Investigate the combination of anonymization and
minimization
SUMMARY
SUMMARY
1. An approach for automatically anonymizing failure-inducing
inputs
• extends Castro and colleagues’ technique through the
novel concepts of path condition relaxation and
breakable input conditions
SUMMARY
1. An approach for automatically anonymizing failure-inducing
inputs
• extends Castro and colleagues’ technique through the
novel concepts of path condition relaxation and
breakable input conditions
2. An empirical evaluation that demonstrates, for the subjects
considered, our approach is:
• feasible — generates anonymized inputs in < 10 minutes
• effective — anonymized inputs did not contain sensitive
information
• an improvement over the state-of-the-art
QUESTIONS?

Mais conteúdo relacionado

Mais procurados

A comparison between C# and Java
A comparison between C# and JavaA comparison between C# and Java
A comparison between C# and Java
Ali MasudianPour
 

Mais procurados (20)

A comparison between C# and Java
A comparison between C# and JavaA comparison between C# and Java
A comparison between C# and Java
 
Python
PythonPython
Python
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
 
Slaying the Dragon: Implementing a Programming Language in Ruby
Slaying the Dragon: Implementing a Programming Language in RubySlaying the Dragon: Implementing a Programming Language in Ruby
Slaying the Dragon: Implementing a Programming Language in Ruby
 
Final Project
Final ProjectFinal Project
Final Project
 
Swift 2
Swift 2Swift 2
Swift 2
 
Exact Real Arithmetic for Tcl
Exact Real Arithmetic for TclExact Real Arithmetic for Tcl
Exact Real Arithmetic for Tcl
 
Codice legacy, usciamo dal pantano! @iad11
Codice legacy, usciamo dal pantano! @iad11Codice legacy, usciamo dal pantano! @iad11
Codice legacy, usciamo dal pantano! @iad11
 
Aprenda Elixir em um final de semana
Aprenda Elixir em um final de semanaAprenda Elixir em um final de semana
Aprenda Elixir em um final de semana
 
The Ring programming language version 1.6 book - Part 22 of 189
The Ring programming language version 1.6 book - Part 22 of 189The Ring programming language version 1.6 book - Part 22 of 189
The Ring programming language version 1.6 book - Part 22 of 189
 
Pj01 5-exceution control flow
Pj01 5-exceution control flowPj01 5-exceution control flow
Pj01 5-exceution control flow
 
Refatoração + Design Patterns em Ruby
Refatoração + Design Patterns em RubyRefatoração + Design Patterns em Ruby
Refatoração + Design Patterns em Ruby
 
Notes for GNU Octave - Numerical Programming - for Students - 02 of 02 by aru...
Notes for GNU Octave - Numerical Programming - for Students - 02 of 02 by aru...Notes for GNU Octave - Numerical Programming - for Students - 02 of 02 by aru...
Notes for GNU Octave - Numerical Programming - for Students - 02 of 02 by aru...
 
Lucio Floretta - TensorFlow and Deep Learning without a PhD - Codemotion Mila...
Lucio Floretta - TensorFlow and Deep Learning without a PhD - Codemotion Mila...Lucio Floretta - TensorFlow and Deep Learning without a PhD - Codemotion Mila...
Lucio Floretta - TensorFlow and Deep Learning without a PhD - Codemotion Mila...
 
Elixir - GDG - Nantes
Elixir - GDG - NantesElixir - GDG - Nantes
Elixir - GDG - Nantes
 
PythonOOP
PythonOOPPythonOOP
PythonOOP
 
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5 b...
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5  b...Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5  b...
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5 b...
 
Knight's Tour
Knight's TourKnight's Tour
Knight's Tour
 
E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9
 
Kalkulus kelompok 4
Kalkulus kelompok 4Kalkulus kelompok 4
Kalkulus kelompok 4
 

Semelhante a Camouflage: Automated Anonymization of Field Data (ICSE 2011)

Code Fast, Die Young, Throw Structured Exceptions
Code Fast, Die Young, Throw Structured ExceptionsCode Fast, Die Young, Throw Structured Exceptions
Code Fast, Die Young, Throw Structured Exceptions
John Anderson
 
Scala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar ProkopecScala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar Prokopec
Loïc Descotte
 
Code as data as code.
Code as data as code.Code as data as code.
Code as data as code.
Mike Fogus
 
4366 chapter7
4366 chapter74366 chapter7
4366 chapter7
Sai Kumar
 

Semelhante a Camouflage: Automated Anonymization of Field Data (ICSE 2011) (20)

Functional Operations - Susan Potter
Functional Operations - Susan PotterFunctional Operations - Susan Potter
Functional Operations - Susan Potter
 
clegoues-pwlconf-sept16-asPDF.pdf
clegoues-pwlconf-sept16-asPDF.pdfclegoues-pwlconf-sept16-asPDF.pdf
clegoues-pwlconf-sept16-asPDF.pdf
 
Swift Rocks #2: Going functional
Swift Rocks #2: Going functionalSwift Rocks #2: Going functional
Swift Rocks #2: Going functional
 
Code Fast, Die Young, Throw Structured Exceptions
Code Fast, Die Young, Throw Structured ExceptionsCode Fast, Die Young, Throw Structured Exceptions
Code Fast, Die Young, Throw Structured Exceptions
 
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
 
Think sharp, write swift
Think sharp, write swiftThink sharp, write swift
Think sharp, write swift
 
No excuses, switch to kotlin
No excuses, switch to kotlinNo excuses, switch to kotlin
No excuses, switch to kotlin
 
Scala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar ProkopecScala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar Prokopec
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing Groovy
 
Code Fast, die() Early, Throw Structured Exceptions
Code Fast, die() Early, Throw Structured ExceptionsCode Fast, die() Early, Throw Structured Exceptions
Code Fast, die() Early, Throw Structured Exceptions
 
Beyond java8
Beyond java8Beyond java8
Beyond java8
 
Code as data as code.
Code as data as code.Code as data as code.
Code as data as code.
 
Clips basics how to make expert system in clips | facts adding | rules makin...
Clips basics  how to make expert system in clips | facts adding | rules makin...Clips basics  how to make expert system in clips | facts adding | rules makin...
Clips basics how to make expert system in clips | facts adding | rules makin...
 
How to not write a boring test in Golang
How to not write a boring test in GolangHow to not write a boring test in Golang
How to not write a boring test in Golang
 
Functional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedFunctional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
 
ASFWS 2012 - Obfuscator, ou comment durcir un code source ou un binaire contr...
ASFWS 2012 - Obfuscator, ou comment durcir un code source ou un binaire contr...ASFWS 2012 - Obfuscator, ou comment durcir un code source ou un binaire contr...
ASFWS 2012 - Obfuscator, ou comment durcir un code source ou un binaire contr...
 
Privet Kotlin (Windy City DevFest)
Privet Kotlin (Windy City DevFest)Privet Kotlin (Windy City DevFest)
Privet Kotlin (Windy City DevFest)
 
4366 chapter7
4366 chapter74366 chapter7
4366 chapter7
 
Ruslan Shevchenko - Property based testing
Ruslan Shevchenko - Property based testingRuslan Shevchenko - Property based testing
Ruslan Shevchenko - Property based testing
 
Hidden Gems of Ruby 1.9
Hidden Gems of Ruby 1.9Hidden Gems of Ruby 1.9
Hidden Gems of Ruby 1.9
 

Mais de James Clause

Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
James Clause
 
Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)
James Clause
 
Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)
James Clause
 
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
James Clause
 
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
James Clause
 
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
James Clause
 
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
James Clause
 
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
James Clause
 
Enabling and Supporting the Debugging of Software Failures (PhD Defense)
Enabling and Supporting the Debugging of Software Failures (PhD Defense)Enabling and Supporting the Debugging of Software Failures (PhD Defense)
Enabling and Supporting the Debugging of Software Failures (PhD Defense)
James Clause
 
Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)
James Clause
 
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
James Clause
 
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
James Clause
 
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
James Clause
 
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
James Clause
 

Mais de James Clause (14)

Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
 
Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)
 
Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)
 
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
 
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
 
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
 
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
 
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
 
Enabling and Supporting the Debugging of Software Failures (PhD Defense)
Enabling and Supporting the Debugging of Software Failures (PhD Defense)Enabling and Supporting the Debugging of Software Failures (PhD Defense)
Enabling and Supporting the Debugging of Software Failures (PhD Defense)
 
Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)
 
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
 
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
 
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
 
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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)
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Camouflage: Automated Anonymization of Field Data (ICSE 2011)