Teaching again
I have started preparing my introductory computer security course for next semester. The course is geared towards junior and senior undergraduate computer science and information systems students. As much as possible, I like to bring in writing assignments (human language, not computer code), and hands-on assignments.
This year, I feel that it is time to shake stuff up a bit and change a bunch of topics around. So, I've decided to ask for some community feedback. There are 15 weeks in a semester. Each week, I have 2.5 hours of instructional time, and assignments can go in addition to that. My expectation is that all student spend 4-5 hrs per week on the material.
Here are some of the topics that I want to include. Note that this is just a simple bullet list. What do you think? Should I add/remove topics? How would you order them in time? What kind of assignments and what kind of reading materials would you recommend?
- Introduction to describe what we are protecting, who is attacking and how we are being attacked
- Defender methodology (defense in depth, cia, pirl, business continuity)
- Attacker methodology
- Risk and stuff
- Ethics and law
- Ethics
- Codes of Ethics
- Relevant Law (Federal and State)
- Relevant Law Enforcement Agencies
- Investigations
- Evidence
- Authentication
- Identification plus verification
- Multi factor authentication (aka: why passwords suck)
- Password attacks
- Social engineering
- Stupidity (default passwords, silly reset mechanisms, etc)
- Access control
- Some boring theory about models (DAC, MAC, RBAC)
- Examples of access control bypass
- Cryptography
- Confidentiality
- Authenticity
- Non-repudiation
- Hashing
- PKI vs web of trust
- Block ciphers vs. stream ciphers
- Symmetric vs. Asymmetric crypto
- SSL
- SSH (hands-on) including hardening
- WEP/WPA
- Open source intelligence gathering
- Domain and IP registration process
- Whois
- DNS
- Web sites
- Job advertisements
- Networking
- TCP/IP
- Layer 2 stuff
- Equipment (Firewall, Router, Switch, Hub)
- Nmap
- Tcpdump
- Vulnerability scanning
- Common causes of exploitation
- Bad software
- Bad configuration
- Bad people
- Web application attacks
- SQL injection
- XSS
- CSRF
- OWASP top-20
- Endpoint attacks
- OS exploitation
- Application exploitation
- Vulnerability management
- Metasploit Framework
- Antivirus
- Mobile stuff
- OWASP mobile project
- Enterprise security
- IDS / IPS
- Log management and SIEM
- DLP (on-premise and in-cloud)
- NAC
- Vulnerability management / patch management