Assignments

Date Posted Date Due Assignment Turn-in Method
Thursday, 9/9 Tuesday, 9/14 Getting to Know You. Submit form
Thursday, 9/9 Wednesday, 9/15 Sign a printed copy of the "Code of Ethics". Box in CS common area
Thursday, 9/9 Wednesday, 9/15 Read "The Cuckoo's Egg" chapters 1-9 and answer the following questions. Box in CS common area
Thursday, 9/9 not graded
you will start this in-lab on 9/15
Do Lab 0: Setting up Your Raspberry Pi.
Windows users will need the following files:
FTDI USB-TTY driver
PuTTY terminal emulator
n/a
Thursday, 9/16 Wednesday, 9/22 Read "The Psychology of Security," Part 1 and Part 2 by Bruce Schneier and answer the following question.
GitHub
Thursday, 9/16 Sunday, 9/26 Do Lab 1: Login Security.
Required reading: Pseudoterminals.
Starter code: cs331-login-starter.zip (to tide you over until I create your repositories).
GitHub
Wednesday, 9/22 Wednesday, 9/29 Read "Making a Faster Cryptanalytic Time-Memory Trade-Off" by Philippe Oechslin and write a technical review that responds to the following prompt. Since this is likely your first time writing a technical review, be sure to read this note on how to write one.
GitHub
Wednesday, 9/22 Sunday, 10/3 Complete part 1 of your final project.
GitHub
Wednesday, 9/29 not graded
you will start this in-lab on 9/29
Do Lab 2: Hashtables in C.
Starter code: hashtable-starter.zip.
n/a
Wednesday, 9/29 Part 1: Sunday, 10/10
Part 2: Sunday, 10/17
Do Lab 3: Password Cracking.
Required reading: "Why Stolen Password Databases are a Problem" and "Trading Time for Space"
GitHub
Thursday, 9/30 Wednesday, 10/6 Read "On User Choice in Graphical Password Schemes" by Davis et al. and write a technical review that responds to the following prompt.
Github
Sunday, 10/10 Wednesday, 10/13 No reading this week. Focus on Lab 3, part 2.
n/a
Thursday, 10/21 Wednesday, 10/27 Read "Smashing the Stack for Fun and Profit" by Aleph One and write a technical review that responds to the following prompt.
Github
Wednesday, 10/27 not graded
you will start this in-lab on 10/27
Do Lab 4: The A32 Calling Convention.
Here are more blank call stacks in case you want to practice.
Starter code:
  Makefile
  lab4.c
n/a
Wednesday, 10/27 Sunday, 10/31 Fill out the final project partner sign-up sheet to let me know who you plan to work with for the final project.
Submit form
Wednesday, 10/27 Sunday, 11/14 Complete part 2 of your final project with your partner.
Github
Thursday, 10/28 Sunday, 11/7 Do Lab 5: Stack Smashing, Part 1.
Read "Assembly-Level Debugging with gdb".
Read "Creating a Shellcode File".
Watch "Finding a Return Address on the Stack Using gdb (ARM edition)". If you are curious, you can also watch the older x86 edition.
Github
Friday, 10/29 Wednesday, 11/3 Read An Empirical Study of the Reliability of UNIX Utilities by Miller et al. and write a technical review that responds to the following prompt.
Github
Thursday, 11/4 Wednesday, 11/10 Undefined Behavior: What Happened to My Code? by Wang et al. and write a technical review that responds to the following prompt.
Github
Sunday, 11/7 Sunday, 11/21 Do Lab 7: Stack Smashing, Part 2.
Wednesday, 11/10 not graded
you will start this in-lab on 11/10
Do Lab 6: Removing NULL bytes.
Starter code:
  code.c
  code.solution.c
n/a
Thursday, 11/11 Wednesday, 11/17 Cryptology and Physical Security: Rights Amplification in Master-Keyed Mechanical Locks by Matt Blaze and write a technical review that responds to the following prompt.
Github
Tuesday, 11/16 Friday, 12/10 Complete the third and final part of your project with your partner.
Github
Monday, 11/22 Wednesday, 12/1 Read Preventing Privilege Escalation by Provos et al. and write a technical review that responds to the following prompt.
Github
Monday, 11/22 Wednesday, 12/8 Read Reflections on Trusting Trust by Ken Thompson and write a technical review that responds to the following prompt.
Github
Monday, 11/29 Wednesday, 12/1 Fill out the final project presentation availability form.
Submit form
Wednesday, 12/1 not graded
you will start this in-lab on 12/1
Do Lab 8: Tracing programs.
Starter code:
  prog1.c
  prog2
  prog2-x64 (if you want to run this on a CS lab machine)
Wednesday, 12/8 Saturday, 12/18 (Optional, for extra credit) Read This World of Ours by James Mickens and write a technical review that responds to the following prompt.
Github
  • CSCI 331: Introduction to Computer Security, Fall 2021

CS 331 course website

Powered by Bootstrap 4 Github Pages