Software Security - 2024

Instructor:
Cătălin Bîrjoveanu
(catalin.birjoveanu@uaic.ro)
Objectives:
Topics:
  • Software Security Introduction
  • Set-UID Privileged Programs and Attacks
  • Environment Variables and Attacks
  • Shellshock Attack
  • Security in the Software Development Life Cycle
  • Buffer Overflow Attacks
  • Shellcode Injection Attacks
  • Return-to-libc and ROP Attacks
  • Format String Attacks
  • Race Condition Attacks
  • SQL Injection Attacks
  • Cross-Site Request Forgery Attacks
  • Cross-Site Scripting Attacks
  • Software Security Principles

Attacks Lab:

Lab exercises that help to understand the software security principles discussed in course and apply those principles to solve real problems using Linux operating system. The focus of the exercises is to analyze software systems for finding the security vulnerabilities, to exploit the vulnerabilities, and apply the prevention techniques that can help defend against such attacks. The studied vulnerabilities are: Attack Vectors of Set-UID Programs, Attack Vectors through Environment Variables, Shellshock, Shellcode Injections, Return-to-libc, Format Strings, Race Conditions, SQL Injections, Cross-Site Request Forgery, Cross-Site Scripting.


Lecture Notes References
Software Security Introduction
Set-UID Privileged Programs and Attacks Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapter 1.
Environment Variables and Attacks Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapter 2.
Shellshock Attack Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapter 3.
Buffer Overflow Attacks Michael Howard, David LeBlanc, John Viega, 24 Deadly Sins of Software Security, 2009.
BlueBorne Attacks, 2017.
Ticketbleed Attack, 2017.
Shellcode Injection Attacks Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapter 4.
Aleph One, Smashing The Stack For Fun And Profit, 1996.
Return-to-libc and ROP Attacks Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapter 5.
Protection Mechanisms Against Buffer Overflow Attacks Ulfar Erlingsson, Yves Younan, Frank Piessens, Low-Level Software Security by Example, Springer, 2010.
Format String Attacks Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapters 6.
Software Security Vulnerabilities
Race Condition Attacks Wenliang Du, Computer Security: A Hands-on Approach, 2019, Chapters 7.
SQL Injection Attacks Justin Clarke, SQL Injection Attacks and Defense, 2nd Edition, Elsevier, 2012.
Cross-Site Request Forgery (CSRF) Attacks OWASP, CSRF, CSRF Prevention, 2024.
Cross-Site Scripting (XSS) Attacks Dafydd Stuttard, Marcus Pinto, The Web Application Hacker's Handbook - Finding and Exploiting Security Flaws, 2nd Edition, John Wiley & Sons, 2011, Chapter 12.
Mike West, Joe Medley, Content Security Policy, 2020.

Attacks Lab References
Labs Setup
Set-UID Privileged Programs Set-UID Privileged Programs and Attacks, Lecture Notes.
Attacks on Set-UID Privileged Programs
Attacks through Environment Variables Environment Variables and Attacks, Lecture Notes.
Shellshock Attack Shellshock Attack, Lecture Notes.
Exercises
Shellcode Injection Attacks Shellcode Injection Attacks, Lecture Notes.
Protection Mechanisms Against Buffer Overflow Attacks Protection Mechanisms Against Buffer Overflow Attacks, Lecture Notes.
Defeat dash Protection
Return-to-libc Attacks Return-to-libc and ROP Attacks, Lecture Notes.
Race Condition Attacks Race Condition Attacks, Lecture Notes.
Cross-Site Request Forgery (CSRF) Attacks Cross-Site Request Forgery (CSRF) Attacks, Lecture Notes.
SQL Injection Attacks SQL Injection Attacks, Lecture Notes.
Cross-Site Scripting (XSS) Attacks Cross-Site Scripting (XSS) Attacks, Lecture Notes.