|
|
The course covers principles of computer systems security.
We will discuss various attack techniques and how to defend against them.
Topics include Network attacks and defenses, Operating system holes,
application security (web, e-mail, databases), viruses, social engineering
attacks, privacy, and digital rights management. Course projects will
focus on building reliable code. The course is intended for senior
undergraduates and first year graduate students. Pre-requisites:
CS140 (operating systems).
Topics
Introduction
Part I: Application security
- Some examples of things that go wrong.
setuid programs,
misconfiguration, macro languages, hidden functionality, buggy software.
Reading: Improving
the security of your site by breaking into it, Dan Farmer, Wietse
Venema.
- Buffer overflow attacks and other
common bugs. [ppt]
Finding overflows. Exploiting overflows. Defenses.
Reading:
Smashing The
Stack For Fun And Profit, Aleph One. Buffer
Overflows: Attacks and Defenses for the Vulnerability of the Decade,
Crispin Cowan, et al. Exploiting
Format String Vulnerabilities, team teso.
- Examples and tools for designing secure
application code. [ppt]
Reading: Using
Programmer-Written Compiler Extensions to Catch Security Holes, Ken
Ashcraft, Dawson Engler
- Dealing with bad (legacy) application code.
Sandboxing. . [ppt]
Reading: A note on the
confinement problem, Butler Lampson. A secure
environment for untrusted helper applications: confining the wily
hacker, Ian Goldberg, David Wagner, et al. Efficient Software-Based
Fault Isolation, Robert Wahbe, et al.
- Web browser and mobile code security
. [ppt]
Reading: McGraw and Felten, Securing Java,
Chapter 2.
- Web site security: attacks and defenses
Reading:
Dos and Don'ts of Client Authentication on the Web,
Kevin Fu, Emil Sit, Kendra Smith, and Nick Feamster.
Cross site scripting explained, Amit Klein.
SQL Injection attacks, Chris Anley.
- Use of cryptography in computer security
. [ppt]
Reading:
Ross Anderson,
Why cryptosystems fail.
Optional: WEP protocol security.
Part II: OS Security
- Secure operating systems.
Access control and file system security
. [ppt]
Reading:
J.H. Saltzer and M.D. Schroeder,
The Protection of Information in Computer Systems.
The first three pages and section 5.2 of
Setuid Demystified, by Chen, Wagner, and Dean.
See Access control pages
and
Common Criteria description
for further information on Windows.
- Remote file system security. NFS, SMB, SFS.
- User authentication.
passwords, biometrics, smartcards.
Kerberos
Reading:
Kerberos Authentication.
- Intrusion detection and virus protection
. [ppt]
Reading:
Nachenberg,
Computer Virus-Antivirus Coevolution.
Comm. ACM, 40(1), pp. 46-51, January 1997.
Paxson,
Bro: A System for Detecting Network Intruders in Real-Time.
Proc. 7th USENIX Security Symposium, San Antonio, TX, January 1998.
- Trusted Computing. TCPA and NGSCB. Digital Rights Management.
Part III: Network security
- Insecurity in existing network protocols
. [ppt]
Reading:
Steven M. Bellovin,
Security Problems in the TCP/IP Protocol Suite,
in Computer Communications Review 2:19, pp. 32-48, April 1989,
Using the Domain Name System for System Break-Ins,
in Proc Fifth Usenix UNIX Security Symposium, Salt Lake City,
UT, June, 1995.
- Security protocols: IPsec, DNSsec, SBGP.
Reading:
Security Architecture for the Internet Protocol, S. Kent, et al.
Secure border Gateway Protocol (SBGP), S. Kent, et al.
- Firewalls.
Reading:
Insertion, Evasion, and Denial of Service: Eluding Network
Intrusion Detection, T. Ptacek and T. Newsham.
- Denial of service attacks.
. [ppt]
Reading:
The TFN distributed denial of service attack tool, D. Dittrich
Practical network support
for IP Traceback, S. Savage, et al.
Part IV: Final topics
- Root kits and forensics tools.
- Electronic transfer of money.
Payment mechanisms on the
Internet. The ACH network. The visa payment system.
ATM Security. Verified by Visa.
- Final topics
Open source/closed source debate. Full disclosure
movement (whitehat vs. blackhat). Ethical hacking.
|