Home
This site is a mirror of my old course website for CS 3710. You can find code for this site and the assignments on GitHub.
This site contains the class materials for the second section of UVA’s CS 3710: Introduction to Cybersecurity.
You can find the syllabus here.
About this class
Course description
This course introduces topics in offensive and defensive cybersecurity. The first half of the course will cover the attacker’s perspective, loosely following the framework of the Cyber Kill Chain. We will discuss the different stages of the offensive operational lifecycle, various vulnerabilities and methods for exploiting them, and malware development. In the second half of the course we will take lessons learned from the attacker’s point of view and turn them towards defensive security. Topics that we’ll cover include cryptography engineering, networking, system administration, and monitoring.
This course is intended to help software engineers learn a security mindset, and prepare security engineers by giving them the tools they need to tackle real-world cybersecurity problems.
Pre-requisites
CS 2150 (or CS 3130 and CS 3140) with a grade of C- or better. Programming assignments will be written in Python; a basic familiarity with Python will be helpful but is not required.
Slides
You can find a list of all of the lecture slides here.
Homework assignments
The following table contains the list of homework assignments for the semester. In addition to these assignments, you will be expected to give one Lightning Talk at some point during the semester; the signup sheet for talk dates will go out at the start of the semester.
PA = "Programming Assignment"
Due date | Topic | |
---|---|---|
Lab #1 | Fri Sep 2 @ 11:59PM | Linux basics |
Lab #2 | Sat Sep 10 @ 11:59PM | Basic exploitation and reconnaissance |
Lab #3 | Fri Sep 23 @ 11:59PM | Remote code execution |
PA #1 | Sun Oct 2 @ 11:59PM | Fuzzing: xfuzz |
Midterm | Sat Oct 8 @ 11:59PM | |
Lab #4 | Mon Oct 17 @ 11:59PM | Password cracking |
PA #2 | Sat Oct 22 @ 11:59PM | Cryptography engineering |
Lab #5 | Sat Oct 29 @ 11:59PM | Firewalls and proxies |
Lab #6 | Sun Nov 13 @ 11:59PM | Sandboxing |
Lab #7 | Fri Dec 2 @ 11:59PM | Antivirus with YARA |
Final | Thu Dec 15 @ 12:00PM |
Labs will typically be released one week before their due date. Programming assignments are expected to take a little more time, and are generally scheduled to be released ~2 weeks before their due date.
Grading
The course is graded out of 100 points, broken down as follows:
- Lab and programming assignments: 9 points per assignment (9 assignments)
- Your two assignments with the lowest grades will be dropped, so the maximum number of points you can get in this category is 63.
- Lightning talk: 9 points
- Midterm: 14 points
- Final exam: 14 points
Lightning talks
Lightning talks are evaluated on your ability to give a clear summary of the topic that you select in the allotted time. Part of the purpose of a lightning talk is to explain a topic to a large and diverse audience quickly and clearly; keep that in mind while you’re preparing yours!
The rough grading guidelines for lightning talks are as follows:
- 9 points: the talk was well-prepared and succinctly described the topic in the provided time, while also covering it in sufficient depth to teach the audience something new.
- 7 points: the talk was security-related and covered some interesting topics, but some parts could have been explained a little more clearly.
- 5 points: the talk was confusing or difficult to follow.
- < 5 points: the talk was not security related and/or was significantly shorter than 5 minutes or longer than 10 minutes.
You are also expected to include a works cited at the end of your presentation that includes the references you used to help build your talk.
Late policy
All assignments, excluding Lightning Talks, may be submitted late up to three days after the due date without penalty. For example, an assignment due on Friday, Sep. 2nd may be submitted until 11:59 PM on Monday, Sep. 5th. Assignments submitted after the late deadline will not be accepted.
Lightning Talks must be submitted no later than two days before the talk date that you sign up for. If you sign up to present on Friday, Sep. 9th, your talk must be submitted by 11:59 PM on Wednesday, Sep. 7th.