Information for Spring 16 CS136 --- Computer Security

This page contains pointers to Postscript versions of slides used in CS136, Computer Security. It also contains pointers to non-required reading and other material related to the class.

This page is organized by the weeks of the quarter in which lectures were given. The weeks are in inverse order, on the assumption you will most often be looking for the most recent week.

This class will be taught by Peter Reiher. The textbook is Computer Security: Art and Science, by Matt Bishop. Assigned readings are from this book, unless otherwise indicated. Dr. Bishop has also published a second textbook that contains selected sections of this book, with a similar title. I can't guarantee that all material assigned will actually be in this other book, and it will definitely be at different pages if it's there at all.

I will be lecturing on these subjects during the class. Note that due dates listed on the syllabus are tentative. Due dates presented on this web page and announced in class will be the correct dates.

TA and Labs

The TA for the course will be Joshua Joy -- (jjoy@cs.ucla.edu). The labs for this course will consist of 5 hands-on, practical and exploratory projects covering security-related topics, plus a short introduction to the lab software. Office hour and discussion section information will be determined following the first recitation section and posted here.

Instructions for accessing the homework will be given out via email early in the first week of classes and will be discussed during the first recitation sections.

Final Exam

The final exam for CS 136 will be given on Friday, June 10, in our regular classroom, from 11:30 AM - 2:30 PM. It will be closed book, closed notes. The exam will be similar to the midterm, consisting of multiple choice and short answer questions, but it will be somewhat longer. The exam covers all material from the class, including all material on slides, lectured on, or in assigned reading materials, except for web links to readings that were explicitly accompanied by a note saying they would not be covered. Since the final lecture (lecture 18) was cancelled, no material that appears only in that lecture or its associated reading will be on the test.

Here is a sample final exam. Here are the answers to the sample final.

Week 10 (May 29 - June 4)

Thursday, June 2

Assigned readings:

The SANS 20 Critical Security Controls. This is the front web page. The links for the 20 controls no longer lead to much useful information, and there's very little on this page. There is a link to a lengthy (90 page) document discussing the controls in much detail, but you need not read that document for this class. Should you find yourself in a position where you need to secure an enterprise system, however, I'd recommend reading it thoroughly.

Slides:

Lecture 18. Securing Your System.

Tuesday, May 31

Assigned readings:

An Introduction to Information System Risk Management, Steve Elky, 2006.

Threat Modeling: A Process to Ensure Application Security, Steven Burns, 2005.

Slides:

Lecture 17. Evaluating System Security.

Week 9 (May 22 - May 28)

Tuesday, May 24

Slides:

Lecture 16. Privacy.

Assigned readings:

All readings for this lecture are web pages. You should read the entire web page, but need not follow links on the pages to other pages (unless you're interested in doing so, of course - but you won't be tested on the other pages' contents).

An editorial on whether privacy is dead.

A Wikipedia article on various criticisms of Google. You are only required to read the section on privacy issues. Bear in mind that, while this article is specific to Google, much of what is discussed applies equally to other web companies, especially those that have frequent, long-term interactions with users.

Thursday, May 26

Slides:

Lecture 15. Web Security.

Assigned readings:

All readings for this lecture are web pages. You should read the entire web page, but need not follow links on the pages to other pages (unless you're interested in doing so, of course - but you won't be tested on the other pages' contents).

A fairly long article covering a wide range of web security problems and ways to avoid them.

An article on web encryption options.

An article describing SQL injection attacks.

An article describing cross-site scripting attacks.

Week 8 (May 15 - May 21)

Tuesday, May 17

Slides:

Lecture 14. Secure Programming, Continued.

Assigned readings:

A detailed description of the bug involving casting a key from a byte stream to a string.

An interesting story about how several programming errors (including the ever-popular not-checking-return-code error, this time on a web request) led to loss of $8000 worth of Bitcoins.

Thursday, May 19

Slides:

Lecture 13. Secure Programming.

Assigned readings:

CERT's Top 10 Secure Coding Practices.

Apple's recommendations on avoiding buffer overflows.

Week 7 (May 8 - May 14)

Tuesday, May 10

Slides:

Lecture 11. Intrusion Detection.

Assigned readings:

Textbook: Chapter 25 (pages 723-767)

Web link (not required reading; not on the final exam):

SANS' frequently asked question page on intrusion detection contains links to a lot of useful information, without trying to sell you on a particular product.

Thursday, May 12

Slides:

Lecture 12. Malicious Software.

Assigned readings:

Textbook: Chapter 22 (pages 613-641)

Web links:

Here is an article on Stuxnet that combines a good description of what the worm actually does with discussion of its origins and purpose, specifically avoiding jumping to conclusions. The article is from 2010, so some information in it is outdated, but it gives a pretty good, moderately technical description of the worm in a reasonably brief form. You only need to read the article, not the comments by others that follow it. You are responsible for this article as part of the class' required reading.

If you want to get a deeper explanation of Stuxnet, here is a long, detailed report by Symantec. THIS SYMANTEC REPORT IS OPTIONAL, AND NO MATERIAL FROM IT WILL APPEAR ON THE FINAL EXAM. The link is only provided so those with a deeper interest in this malware can obtain the best available technical information on it.

Week 6 (May 1 - May 7)

Tuesday, May 3

Midterm exam

Thursday, May 5

Since I have fallen a full lecture behind, no new lecture or readings are assigned for Thursday. I will give lecture 10, originally assigned last week, on Thursday.

Week 5 (April 24 - April 30)

Tuesday, April 26

Slides:

Lecture 9. Network Security.

Assigned readings:

Textbook: Chapter 26 (pages 773-799)

SYN Cookies, D. J. Bernstein. A good explanation of the details of how SYN cookies handle SYN flooding attacks.

Slides:

Lecture 10. Network Security, Continued.

Assigned readings:

Textbook: Chapter 10, sections 10.1-10.2 (pages 245-251)

Textbook: Chapter 11, sections 11.3-11.6 (pages 283-306)

Week 4 (April 17 - April 23)

Tuesday, April 19

Slides:

Lecture 7. Authentication.

Assigned readings:

Textbook: Chapter 12 (pages 309-335)

Web links:

A discussion of technical details related to FBI request for Apple to unlock an iPhone. Subsequent to this article being written, the FBI obtained assistance from an unnamed third party in unlocking this iPhone, using an unspecified method.

A short essay on the limits of using biometrics by Bruce Schneier. This essay is embedded in a longer newsletter. You need only read the section titled "Biometrics in Airports".

Thursday, April 24

Slides:

Lecture 8. Operating System Security.

Assigned readings:

Textbook: Chapter 17, Sections 17.1 - 17.2.2 (pages 439-446), introduction to Section 17.3 (pages 446-448), Section 17.3.3 (pages 467-470).

A white paper on TPM.

A white paper on full disk encryption.

Week 3 (April 10 - April 16)

Tuesday, April 12

Slides:

Lecture 5. Cryptographic keys.

PDF version of Lecture 5.

Assigned readings:

Textbook: Chapter 10, sections 10.1, 10.3, 10.4, and 10.5 (pages 245-246, 252-266)

Web link:

Firefox blog post on certificate pinning.

Thursday, April 14

Slides:

Lecture 6. Security protocols.

PDF version of Lecture 6.

Assigned readings:

Textbook: Chapter 10, section 10.2 (pages 246-252).

Week 2 (April 3 - April 9)

Thursday, April 7

Slides:

Lecture 4. More on Cryptography.

PDF version of Lecture 4.

Assigned readings:

Textbook: Chapter 9, sections 9.2.3-9.7 (pages 228-241)

Tuesday, April 5

Slides:

Lecture 3. Introduction to Cryptography.

PDF version of Lecture 3.

Assigned readings:

Textbook: Introduction to Section IV and Chapter 9, sections 9.1-9.2.2.2 (pages 215-227).

Textbook: Chapter 2 (pages 31-44) and Chapter 15 (pages 381-396).

Week 1 (March 27 - April 2)

Thursday, March 31

Taped lecture

I will be out of town on Thursday, March 31, so instead of an in-class lecture, we will have a taped lecture. The taped lecture is in three parts, to allow you to view it in shorter pieces. The slides linked to below cover all three lectures. The lecture was originally taped for CS 236, an online class, but the content is essentially the same as I would have lectured on if I had been here.

Lecture 2, part 1

Lecture 2, part 2

Lecture 2, part 3

Slides:

Lecture 2. Security Design Principles, Policies, and Tools.

PDF version of Lecture 2.

Assigned readings:

Textbook: Chapter 4, Sections 4.1-4.6 (pages 95-114)

Chapter 5, Sections 5.1-5.2.2 (pages 123-132)

Chapter 6, Sections 6.1-6.2 (pages 151-155)

Chapter 7, Section 7.1 (pages 169-177)

Tuesday, March 29

Slides:

Lecture 1. Introduction.

PDF version of Lecture 1.

Assigned readings:

Textbook: Chapter 1 (pages 1-25)

Web links:

Improving the Security of Networked Systems, Julia Allen, Christopher Alberts, Sandi Behrens, Barbara Laswell, and William Wilson.

Why Computers Are Insecure, Bruce Schneier. (The link leads to an entire web page on various security subjects. Read it all, if you want, but the assignment is only this essay, which is around a page and a half.)

Social Engineering Fundamentals, Part I: Hacker Tactics Sarah Granger.