UNDERSTANDING SECURITY MISTAKES DEVELOPERS MAKE
Daniel Votipka, Kelsey Fulton, James Parker, Matthew Hou, Michelle Mazurek, and Mike Hicks
Qualitative Analysis From Build It, Break It, Fix It
University of Maryland, College Park
1
UNDERSTANDING SECURITY MISTAKES DEVELOPERS MAKE Qualitative - - PowerPoint PPT Presentation
UNDERSTANDING SECURITY MISTAKES DEVELOPERS MAKE Qualitative Analysis From Build It, Break It, Fix It Daniel Votipka , Kelsey Fulton, James Parker, Matthew Hou, Michelle Mazurek, and Mike Hicks University of Maryland, College Park 1 SOLVED
Daniel Votipka, Kelsey Fulton, James Parker, Matthew Hou, Michelle Mazurek, and Mike Hicks
University of Maryland, College Park
1
2
2
2
2
2
3
“rolling its own crypto rather than relying on tried and tested solutions…. The devices were sending hardcoded encryption keys
initialization vector… Moreover, the devices didn’t include any message signing”
3
“rolling its own crypto rather than relying on tried and tested solutions…. The devices were sending hardcoded encryption keys
initialization vector… Moreover, the devices didn’t include any message signing”
3
“rolling its own crypto rather than relying on tried and tested solutions…. The devices were sending hardcoded encryption keys
initialization vector… Moreover, the devices didn’t include any message signing”
3
“rolling its own crypto rather than relying on tried and tested solutions…. The devices were sending hardcoded encryption keys
initialization vector… Moreover, the devices didn’t include any message signing”
3
“rolling its own crypto rather than relying on tried and tested solutions…. The devices were sending hardcoded encryption keys
initialization vector… Moreover, the devices didn’t include any message signing”
3
“SBI's Mumbai-based data center had a server without password protection”
4
5
6
7
8
9
9
9
9
9
9
How can we improve the effectiveness of these solutions?
9
10
11
12
12
12
12
12
12
CVEs, GitHub, etc
13
CVEs, GitHub, etc Pros:
13
CVEs, GitHub, etc Pros: Large datasets publicly available
13
CVEs, GitHub, etc Pros: Large datasets publicly available Data is already categorized
13
CVEs, GitHub, etc Pros: Large datasets publicly available Data is already categorized Cons:
13
CVEs, GitHub, etc Pros: Large datasets publicly available Data is already categorized Cons: Hard to understand why
13
CVEs, GitHub, etc Pros: Large datasets publicly available Data is already categorized Cons: Hard to understand why Hard to compare possibly unrelated data
13
14
14
14
14
14
14
Secure programming contest
Ruef et al. , CCS 2016
15
Secure programming contest Build-It Phase
Ruef et al. , CCS 2016
15
Secure programming contest Build-It Phase 2 weeks
Ruef et al. , CCS 2016
15
Secure programming contest Build-It Phase 2 weeks Develop to spec with open choices
Ruef et al. , CCS 2016
15
Secure programming contest Build-It Phase 2 weeks Develop to spec with open choices Incentivized:
Ruef et al. , CCS 2016
15
Secure programming contest Build-It Phase 2 weeks Develop to spec with open choices Incentivized: Make it performant
Ruef et al. , CCS 2016
15
Secure programming contest Build-It Phase 2 weeks Develop to spec with open choices Incentivized: Make it performant Make it secure
Ruef et al. , CCS 2016
15
Break-It Phase
Ruef et al. , CCS 2016
16
Break-It Phase Get other teams’ source code
Ruef et al. , CCS 2016
16
Break-It Phase Get other teams’ source code Attack breadth of submissions
Ruef et al. , CCS 2016
16
Break-It Phase Get other teams’ source code Attack breadth of submissions Find unique vulnerabilities
Ruef et al. , CCS 2016
16
Break-It Phase Get other teams’ source code Attack breadth of submissions Find unique vulnerabilities Prioritize security bugs over correctness
Ruef et al. , CCS 2016
16
Break-It Phase Get other teams’ source code Attack breadth of submissions Find unique vulnerabilities Prioritize security bugs over correctness Fix-It Phase
Ruef et al. , CCS 2016
16
Break-It Phase Get other teams’ source code Attack breadth of submissions Find unique vulnerabilities Prioritize security bugs over correctness Fix-It Phase Make fixes and get points back
Ruef et al. , CCS 2016
16
log:
Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log
log:
Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log
log:
Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log ./logappend –T 0801 –K XDFLKJSLJDLJFLKJLSDF –E Alice -A –R Office log
log:
Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log ./logappend –T 0801 –K XDFLKJSLJDLJFLKJLSDF –E Alice -A –R Office log
log:
Event Log Time User Action Where 8:00 AM Bob Enter Gallery 8:01 AM Alice Enter Office Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log ./logappend –T 0801 –K XDFLKJSLJDLJFLKJLSDF –E Alice -A –R Office log
log:
./logread –K XDFLKJSLJDLJFLKJLSDF –R –E Alice log
Event Log Time User Action Where 8:00 AM Bob Enter Gallery 8:01 AM Alice Enter Office Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log ./logappend –T 0801 –K XDFLKJSLJDLJFLKJLSDF –E Alice -A –R Office log
log:
./logread –K XDFLKJSLJDLJFLKJLSDF –R –E Alice log Office
Event Log Time User Action Where 8:00 AM Bob Enter Gallery 8:01 AM Alice Enter Office Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log ./logappend –T 0801 –K XDFLKJSLJDLJFLKJLSDF –E Alice -A –R Office log
log:
./logread –K XDFLKJSLJDLJFLKJLSDF –R –E Alice log Office
Event Log Time User Action Where 8:00 AM Bob Enter Gallery 8:01 AM Alice Enter Office Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
./logappend –T 0800 –K XDFLKJSLJDLJFLKJLSDF –E Bob -A –R Gallery log ./logappend –T 0801 –K XDFLKJSLJDLJFLKJLSDF –E Alice -A –R Office log
log:
./logread –K XDFLKJSLJDLJFLKJLSDF –R –E Alice log Office
Event Log Time User Action Where 8:00 AM Bob Enter Gallery 8:01 AM Alice Enter Office
Event Log Time User Action Where 8:00 AM Bob Enter Gallery Event Log Time User Action Where 17
18
./bank –s auth
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth ./atm –s auth –c card –a bob –n 1000
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
card: DFLLKSDF
./atm –s auth –c card –a bob –n 1000
bob balance:
1000
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
card: DFLLKSDF
./atm –s auth –c card –a bob –n 1000 ./atm –s auth –c card –a bob –d 50
bob balance:
1000 1050
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
card: DFLLKSDF
./atm –s auth –c card –a bob –n 1000 ./atm –s auth –c card –a bob –d 50 ./atm –s auth –c card –a bob –w 600
bob balance:
1000 1050 450
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
card: DFLLKSDF
./atm –s auth –c card –a bob –n 1000 ./atm –s auth –c card –a bob –d 50 ./atm –s auth –c card –a bob –w 600
bob balance:
1000 1050 450
18
auth: XDFLKJSLJDLJFLKJLSDF
./bank –s auth
card: DFLLKSDF
./atm –s auth –c card –a bob –n 1000 ./atm –s auth –c card –a bob –d 50 ./atm –s auth –c card –a bob –w 600
bob balance:
1000 1050 450
18
19
as principal admin password "admin" do create principal alice "alices_password" set msg = "Hi Alice. Good luck in Build it, Break it, Fix it!" set delegation msg admin read -> alice return "success" ***
19
as principal admin password "admin" do create principal alice "alices_password" set msg = "Hi Alice. Good luck in Build it, Break it, Fix it!" set delegation msg admin read -> alice return "success" *** as principal alice password ”alices_password" do return msg ***
19
as principal admin password "admin" do create principal alice "alices_password" set msg = "Hi Alice. Good luck in Build it, Break it, Fix it!" set delegation msg admin read -> alice return "success" *** as principal alice password ”alices_password" do return msg *** as principal bob password ”bobs_password" do return msg ***
19
20
20
20
20
21
22
22
22
22
22
22
23
Mistake
No implementation Misunderstanding
Intuitive Bad Choice Conceptual Error Unintuitive
24
No implementation
25
No implementation
Intuitive
26
No implementation
Intuitive
26
No implementation
Intuitive
26
No implementation
Intuitive Unintuitive
27
No implementation
Intuitive Unintuitive
27
No implementation
Intuitive Unintuitive
27
Misunderstanding
28
Misunderstanding
Bad Choice
29
Misunderstanding
Bad Choice
29
Misunderstanding
Bad Choice
29
Misunderstanding
Bad Choice
29
Misunderstanding
Bad Choice Conceptual Error
30
Misunderstanding
Bad Choice Conceptual Error
30
31
31
31
Misunderstanding
Bad Choice Conceptual Error
32
Misunderstanding
Bad Choice Conceptual Error
32
Misunderstanding
Bad Choice Conceptual Error
32
33
33
Mistake
34
Mistake
34
Mistake
34
Mistake
34
Mistake
34
20 % of projects 80 40 60 Secure log Secure communication Multiuser database Totals
Mistake Misund. No Impl.
35
20 % of projects 80 40 60 Secure log Secure communication Multiuser database Totals
Mistake Misund. No Impl.
35
20 % of projects 80 40 60 Secure log Secure communication Multiuser database Totals
Mistake Misund. No Impl.
35
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
Intuitive Unituitive Bad choice Concept error
14 28 41 55
No Impl. Misund.
% of projects
36
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
Questions dvotipka@cs.umd.edu sec-professionals.cs.umd.edu