This course covers principles of threat-modeling, trust, and security
policies. Topics include cryptography, reverse engineering, software
security, malware analysis, authentication, access controls, operating
systems hardening, virtualization, database security, and network
security. This class is programming intensive and project based, with
case-analyses.
1.2.1 Prerequisite
Grade of “C” or better in CompSci 3610 - networking
A good attitude, work ethic, and an interest in security!
1.3 Textbooks and resources
Required books (all free/open)
The Linux command line (bash book)
http://linuxcommand.org/tlcl.php
Cracking codes with python
http://inventwithpython.com/cracking/
Crypto 101 (partly finished book)
https://www.crypto101.io/
x86-64 Assembly Language Programming with Ubuntu
http://www.egr.unlv.edu/%7Eed/assembly64.pdf
Rust documentation
https://www.rust-lang.org/learn
Optional books (not free)
An actually good security textbook: Analyzing Computer Security: A
Threat / Vulnerability / Countermeasure Approach by Charles P. Pfleeger,
Shari Lawrence Pfleeger
A fun read (not a textbook really): Silence on the Wire, A Field
Guide to Passive Reconnaissance and Indirect Attacks, by Michal Zalewski
https://nostarch.com/silence.htm
1.4 Which virtual machine / OS for
this class?
We’re going to use malware, write hacks, and break the operating
system.
Virtual machines are NOT optional in this course.
You should use Fedora Security Labs for most assignments.
https://labs.fedoraproject.org/en/security/