This course teaches the security mindset and introduces the principles and practices of computer security as applied to software, host systems, and networks. It covers the foundations of building, using, and managing secure systems. Topics include standard cryptographic functions and protocols, threats and defenses for real-world systems, incident response, and computer forensics. See the schedule for details.
|Professors||Matthew Hicks and Z. Morley Mao|
|Prerequisites||EECS 281 required; EECS 370 recommended|
Section 002: Mon./Wed. 9–10:30, 1670 Beyster
Section 001: Mon./Wed. 10:30–noon, 1670 Beyster
Section 003: Mon./Wed. 3:30–5, 1571 GGBL
|Lab Sections /
|See calendar below. Lab sections will introduce tools and concepts that are important for completing the projects; all sections are in 1620 Beyster. Visit the TAs’ office hours for assignment help or grading concerns. Visit the professors’ office hours (go to the office listed on the calendar for the professor lecturing that week) for questions about lecture material.|
|TAs||Jeremy Erickson (GSI), Sai Gouravajhala (GSI), Aravind Vadrevu (GSI), Gabriel Aguilera (IA), Mo Hussein (IA), Deepak Kumar (IA), Kegan Thorrez (IA), Ben Toll (IA), and Andrew Zick (IA)|
We'll use Piazza for announcements, discussion, and questions about course material.
For administrative issues, email email@example.com to contact the course staff.
This is a paperless course. Assignments will be distributed here and collected and graded via Gradescope. The lecture slides are available via CTools.
No textbook is required, but if you would like additional references, we recommend:
Security Engineering by Ross Anderson
Cryptography Engineering by Ferguson, Schneier, and Kohno
Security Research at Michigan|
Security Reading Group (SECRIT)
Michigan CSE CTF Club
EECS 588 (graduate-level security class)
|Homework Exercises||25%||Five homework exercises, completed on your own|
|Programming Projects||40%||Five programming projects, completed in teams of two|
|Participation||5%||Attendance and forum activity, questions and intellectual contributions|
|Final Exam||30%||One exam covering all material from the course (April 27, 7–9 PM, rooms TBD)|
To defend a system you need to be able to think like an attacker, and that includes understanding techniques that can be used to compromise security. However, using those techniques in the real world may violate the law or the university’s rules, and it may be unethical. Under some circumstances, even probing for weaknesses may result in severe penalties, up to and including expulsion, civil fines, and jail time. Our policy in EECS 388 is that you must respect the privacy and property rights of others at all times, or else you will fail the course.
Acting lawfully and ethically is your responsibility. Carefully read the Computer Fraud and Abuse Act (CFAA), a federal statute that broadly criminalizes computer intrusion. This is one of several laws that govern “hacking.” Understand what the law prohibits — you don’t want to end up like this guy. If in doubt, we can refer you to an attorney.
Please review ITS‘s policies on responsible use of technology resources and CAEN’s policy documents for guidelines concerning proper use of information technology at U-M, as well as the Engineering Honor Code. As members of the university, you are required to abide by these policies.