The class will cover advanced network and host security
concepts and mechanisms.The class will cover the subjects
in theory and provide the students with an extensive hands-on
experience:
assessing vulnerabilities, writing real working exploits for
existing systems in a closed and controlled environment, and
developing countermeasures to these perceived and real threats,
also
in the form of projects. The class will involve a fair
amount of programming. Those who take the class are expected to
be able to program in C/C++, have some a solid knowledge of
assembly
language, and be familiar with network basics and programming,
as well as modern operating systems (Windows, MacOS, Unix).
Instructor:
Prerequisites:
Textbook and Resources:
Required:
Security in Computing, 4th Edition
Charles P. Pfleeger, Shari Lawrence Pfleeger
Copyright 2007, Edition: 4th
ISBN-10: 0-13-239077-9
ISBN-13: 978-0-13-239077-4
The Shellcoder's Handbook: Discovering
and Exploiting Security Holes
Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte
Wiley; 2nd edition (August 20, 2007)
ISBN-10: 047008023X
ISBN-13: 978-0470080238
Recommended books:
Hacking: The Art of Exploitation, 2nd
Edition
Jon Erickson
No Starch Press; 2nd edition (January 11, 2008)
ISBN-10: 1593271441
ISBN-13: 978-1593271442
Internet
Denial
of
Service:
Attack
and Defense Mechanisms
Jelena Mirkovic, Sven Dietrich, David Dittrich, and Peter Reiher
Prentice Hall, 2004
Secure Coding in
C and C++
Robert C. Seacord
Addison-Wesley Professional.
Copyright 2006
Edition: 1st
ISBN-10: 0-321-33572-4
ISBN-13: 978-0-321-33572-2
Grading:
Policies:
|
Dates |
Topic(s) |
Reading(s) |
HW |
|
|
Jan 23, 2012 |
Introduction and review. Computer security basics. Attack and defense basics. Protocols. Setting ethical boundaries. |
Pfleeger Chapters 1-2 Mirkovic et al. Chapters 1-4 |
|
|
|
Jan 30, 2012 |
Secure coding techniques I. Worrying about buffer overflow, stacks, and arbitrary memory writes.
|
Seacord Chapters 1-4 Erickson Chapter 0x200-0x300 |
Midterm and final project ideas due |
|
|
Feb 6, 2012 |
Secure coding techniques II. Format abuses, race conditions, TOCTOU. |
Seacord Chapters 5-7 Erickson Chapter 0x300 |
Midterm project proposals due |
|
|
Feb 13, 2012 |
Vulnerability discovery. Fuzzing techniques for finding security flaws in protocols and program input. White-box vs. evolutionary fuzzing. |
Paper 1 Anley Part 3 |
|
|
|
Feb 21, 2012 (Tue) |
Penetration testing. Limits of network discovery. |
Erickson Chapter 0x400 |
|
|
|
Feb 27, 2012 |
Writing exploits and shellcodes. Encapsulating the payloads. |
Erickson Chapter 0x500 |
|
|
|
Mar 5, 2012 |
Midterm project presentations |
|
Midterm project due. Final project proposal due. |
|
|
Mar 19, 2012 |
More exploits. Countermeasures. Reversing exploits and protectors/packers. Rootkits for OS and execution environments. |
Erickson Chapter 0x600 |
Guest lecture by Will Dormann on
fuzzing BFF tool |
|
|
Mar 26, 2012 |
Attacking the infrastructure: routing, DNS, etc.
|
Anley Part 4 |
FC'12 papers, as assigned |
|
|
Apr 2, 2012 |
Countering the infrastructure threat. |
Mirkovic et al. Chapters 6-7 |
FC'12 papers, as assigned Project updates |
|
|
Apr 9, 2012 |
Ethical hacking: what are the limits, revisited. Malware herding: think globally. |
|
Advanced persistent threats |
|
|
Apr 16, 2012 |
Cryptographic attacks on hosts and infrastructure. |
Erickson Chapter 0x700 |
Download and run Remnux and Backtrack Linux R2.
|
Draft presentations/papers due |
|
Apr 23, 2012 |
Attacking small devices (e.g. phones, handhelds)
|
|
Penetration testing assignment due |
|
|
Apr 30, 2012 |
Special topics (Papers from a recent conference) |
Recent papers from a relevant conference (e.g. LEET) |
|
|
|
May 7, 2012 |
Final Project presentations |
|
Final Project due |