Exploiting Software
Vulnerabilities
This is the official website for maintaining the materials of the
course titled “Exploiting
Software Vulnerabilities” (course code 62240), an optional course in
the Master’s
Degree in Informatics Engineering of the School of Engineering and
Architecture, University of
Zaragoza (Spain).
Lecture planning (course
2024/2025)
- Sep 09:
- Course introduction and motivation (slides)
- Vulnerability management and assessment (slides). Recommended
lectures:
- A. Avizienis et al., “Basic concepts and taxonomy of dependable and
secure computing,” in IEEE Transactions on Dependable and Secure
Computing, vol. 1, no. 1, pp. 11-33, Jan.-March 2004, doi: 10.1109/TDSC.2004.2
- P. Marks, “Bounties Mount for Bugs,”, Communications of the ACM, Aug
2018 [Online]
- A.K. Sood, R. Bansal and R. J. Enbody, “Cybercrime: Dissecting the
State of Underground Enterprise,” in IEEE Internet Computing, vol. 17,
no. 1, pp. 60-68, Jan.-Feb. 2013, doi: 10.1109/MIC.2012.61
- J. Spring et al., “Towards
Improving CVSS,” white paper, SEI CMU, December 2018
- Sandia’s
IDART red team
- S. Stolfo, A. Keromytis, A. Cui and A. Matwyshyn, “Ethics in
Security Vulnerability Research,” in IEEE Security & Privacy,
vol. 8, no. 02, pp. 67-72, 2010, doi: 10.1109/MSP.2010.67
- Sep 16: Program Binary Analysis (slides). Recommended
lectures:
- A. Bessey et al., “A few billion lines of code later: using static
analysis to find bugs in the real world,” in Communications of the ACM,
vol. 53, iss. 2, pp. 66-75, Feb 2010, doi: 10.1145/1646353.1646374
- E. J. Schwartz et al., “All You Ever Wanted to Know about Dynamic
Taint Analysis and Forward Symbolic Execution (but Might Have Been
Afraid to Ask),” 2010 IEEE Symposium on Security and Privacy,
Berkeley/Oakland, CA, 2010, pp. 317-331, doi: 10.1109/SP.2010.26
- R. Baldoni et al., “A Survey of Symbolic Execution Techniques,” in
ACM Comput. Surv. 51, 3, Article 50 (July 2018), 39 pages, doi 10.1145/3182657
- V. J. M. Manès et al., “The Art, Science, and Engineering of
Fuzzing: A Survey,” in IEEE Transactions on Software Engineering, doi:
10.1109/TSE.2019.2946563
- D. Cono D’Elia et al., “SoK: Using Dynamic Binary Instrumentation
for Security (And How You May Get Caught Red Handed),” in Asia CCS ’19:
Proceedings of the 2019 ACM Asia Conference on Computer and
Communications Security, July 2019, pp. 15-27, 2019, doi: 10.1145/3321705.3329819
- Sep 23: Laboratory session 1: Process memory maps
(lab
workbook, auxiliary
files)
- Sep 30: Software Vulnerabilities: Integer Overflows and
Format String Bugs (slides). Recommended
lectures:
- W. Dietz et al., “Understanding Integer Overflow in C/C++,” in ACM
Transactions on Software Engineering and Methodology, 25(1), 2015,
pp. 1-29. doi:10.1145/2743019
- Team Teso, “Exploiting
Format String Vulnerabilities”
- F. Kilic, T. Kittel, C. Eckert, “Blind Format String Attacks,” in
International Conference on Security and Privacy in Communication
Networks (SecureComm 2014), Lecture Notes of the Institute for Computer
Sciences, Social Informatics and Telecommunications Engineering,
vol. 153. Springer, Cham. doi: 10.1007/978-3-319-23802-9_23
- riq & gera, “Advances in format string
exploitation” in Phrack 59, vol. 11, July 2002
- K.-S. Lhee and S.J. Chapin, “Buffer overflow and format string
overflow vulnerabilities,” Softw: Pract. Exper., 33: 423-460, 2003, John
Wiley & Sons, Inc., doi: 10.1002/spe.515
- Oct 07: Software Vulnerabilities: Control-Flow
Hijacking (slides).
Recommended lectures:
- E. H. Spafford, “The internet worm program: an analysis,” in SIGCOMM
Comput. Commun. Rev. 19, 1 (Jan. 1989), 17-57, doi: 10.1145/66093.66095
- E. Bendersky, “Stack
frame layout on x86-64,” September 2011
- Aleph One, “Smashing
The Stack For Fun And Profit,” in Phrack 49, vol. 7, November
1996
- L. Szekeres, M. Payer, T. Wei and D. Song, “SoK: Eternal War in
Memory,” 2013 IEEE Symposium on Security and Privacy, Berkeley, CA,
2013, pp. 48-62, doi: 10.1109/SP.2013.13
- V. van der Veen et al., “Memory Errors: The Past, the Present, and
the Future,” in Research in Attacks, Intrusions, and Defenses. RAID
2012. Lecture Notes in Computer Science, vol 7462. Springer, Berlin,
Heidelberg, doi: 10.1007/978-3-642-33338-5_5
- Oct 14 and Oct 21: Laboratory session 2: Integer Overflows
and Format String Bugs (lab
workbook, auxiliary
files)
- Oct 28: Software Defenses: Exploitation Mitigation
Techniques in the Windows OS (slides). Recommended
lectures:
- skape, “Preventing the
Exploitation of SEH Overwrites,” Sept. 2006
- A. Sotirov, M. Dowd, “Bypassing
Browser Memory Protections: Setting back browser security by 10
years,”, BlackHat USA 2008
- J.M. Hart, “Windows
System Programming,” Addison-Wesley, 4th ed., 2010, ISBN
978-0321657749
- B. Merino, “Software
Exploitation,” tech. report, Spanish Institute of Cybersecurity
(formerly, Instituto Nacional de Tecnologías de la Comunicación,
2012
- A. Ionescu, “Windows
8 Security and ARM,” BreakPoint 2012
- B. Krebs, “Windows
Security 101: EMET 4.0,”, 2013
- CCN-CERT, “Guía
de Seguridad de las TIC CCN-STIC 950: RECOMENDACIONES DE EMPLEO DE LA
HERRAMIENTA EMET”, Apr. 2017
- Nov 4: Laboratory session 3: Stack-based and Heap-based
Overflows (lab
workbook, auxiliary
files)
- Nov 11:
- Advanced Exploitation Techniques: Windows Shellcoding and
ROP (slides).
Recommended lectures:
- H. Shacham, “The Geometry of Innocent Flesh on the Bone:
Return-into-libc Without Function Calls (on the x86),” in Proceedings of
the 14th ACM Conference on Computer and Communications Security (CCS),
ACM, 2007, pp. 552-561, doi: 10.1145/1315245.1315313
- Phrack staff, “Prophile
on horizon” in Phrack 60, vol. 11, Dec. 2002 moo- D. Uroz, R. J.
Rodríguez, “Evaluation of the Executional Power in Windows using Return
Oriented Programming,” in Proceedings of the 15th IEEE Workshop on
Offensive Technologies (WOOT), IEEE, 2021, pp. 361-372, doi: 10.1109/SPW53761.2021.00056
- Advanced Exploitation Techniques: Exploit Payloads
(slides). Recommended
lectures:
- Nov 18: Laboratory session 3: Stack-based and Heap-based
Overflows (lab
workbook, auxiliary
files)
- Nov 25 and Dec 04: Laboratory session 4: Code-Reuse Attacks
in Windows (lab
workbook, auxiliary
files)
- Dec 09: no lecture day
- Jan 10: EXAMINATION. Presentations of the
assignments will take place at TBA, starting at
TBA. List of students and submitted assignments (in
alphabetical order):
License
All the material provided in this webpage is under CC BY-NC-SA
4.0 license.
Author
Ricardo J.
Rodríguez
Previous courses
LAST UPDATE
- August 29, 2024: Website initial creation