CS-527 Software Security
Practical Defenses
- Asst. Prof. Mathias Payer
Department of Computer Science Purdue University TA: Kyriakos Ispoglou https://nebelwelt.net/teaching/17-527-SoftSec/
CS-527 Software Security Practical Defenses Asst. Prof. Mathias - - PowerPoint PPT Presentation
CS-527 Software Security Practical Defenses Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Kyriakos Ispoglou https://nebelwelt.net/teaching/17-527-SoftSec/ Spring 2017 Fixing and Patching Vulnerabilities
Department of Computer Science Purdue University TA: Kyriakos Ispoglou https://nebelwelt.net/teaching/17-527-SoftSec/
Fixing and Patching Vulnerabilities
1
2
3
4
Mathias Payer (Purdue University) CS-527 Software Security 2017 2 / 26
Fixing and Patching Vulnerabilities
Mathias Payer (Purdue University) CS-527 Software Security 2017 3 / 26
Fixing and Patching Vulnerabilities
Mathias Payer (Purdue University) CS-527 Software Security 2017 4 / 26
Fixing and Patching Vulnerabilities
Mathias Payer (Purdue University) CS-527 Software Security 2017 5 / 26
Fixing and Patching Vulnerabilities
Mathias Payer (Purdue University) CS-527 Software Security 2017 6 / 26
Fixing and Patching Vulnerabilities
Mathias Payer (Purdue University) CS-527 Software Security 2017 7 / 26
Control-Flow Integrity
1
2
3
4
Mathias Payer (Purdue University) CS-527 Software Security 2017 8 / 26
Control-Flow Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 9 / 26
Control-Flow Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 10 / 26
Control-Flow Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 11 / 26
Control-Flow Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 12 / 26
Code-Pointer Integrity
1
2
3
4
Mathias Payer (Purdue University) CS-527 Software Security 2017 13 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 14 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 15 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 16 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 17 / 26
Code-Pointer Integrity
1 char ∗ buf = malloc (10) ; 2 b u f l o = p ;
3 . . . 4 char ∗q = buf + input ; 5 q l o = b u f l o ;
6 i f
7
8 ∗q = input2 ; 9 . . . 10 (∗ f u n c p t r ) () ; Mathias Payer (Purdue University) CS-527 Software Security 2017 18 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 19 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 20 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 21 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 22 / 26
Code-Pointer Integrity
Mathias Payer (Purdue University) CS-527 Software Security 2017 23 / 26
Summary and conclusion
1
2
3
4
Mathias Payer (Purdue University) CS-527 Software Security 2017 24 / 26
Summary and conclusion
Mathias Payer (Purdue University) CS-527 Software Security 2017 25 / 26
Summary and conclusion
Mathias Payer (Purdue University) CS-527 Software Security 2017 26 / 26