Home

Instructor: Will Shand (wss2ec)

Times: Monday, Wednesday, Friday 1:00pm - 1:50pm

Location: Olsson Hall 120

Teaching assistants:

Office hours: unless otherwise noted, office hours will be held over Zoom; you can find their corresponding Zoom sessions in the “Online Meetings” tab on Collab.

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 dateTopic
Lab #1Fri Sep 2 @ 11:59PMLinux basics
Lab #2Sat Sep 10 @ 11:59PMBasic exploitation and reconnaissance
Lab #3Fri Sep 23 @ 11:59PMRemote code execution
PA #1Sun Oct 2 @ 11:59PMFuzzing: xfuzz
MidtermSat Oct 8 @ 11:59PM
Lab #4Mon Oct 17 @ 11:59PMPassword cracking
PA #2Sat Oct 22 @ 11:59PMCryptography engineering
Lab #5Sat Oct 29 @ 11:59PMFirewalls and proxies
Lab #6Sun Nov 13 @ 11:59PMSandboxing
Lab #7Fri Dec 2 @ 11:59PMAntivirus with YARA
FinalThu Dec 15 @ 12:00PM
Final examThu Dec 15 @ 12:00PMProblems

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:

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:

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.