CS 315 Computer Security

Fall 2020 -- Fengwei Zhang

  • Instructor: Fengwei Zhang
  • Class Time: Monday 04:20PM - 6:10PM
  • Class Location: Room 403, Lichee Hill 6
  • Lab Time: Monday, 07:00PM - 08:50PM
  • Lab Location: Room 205, Teaching Building 2

Course Description

This course aims help students to learn the principles of computer security and understand how various security attacks and countermeasures work. It provides hands-on experience in playing with security software and network systems in a live laboratory environment, with the purpose of understating real-world threats. The course will take both offensive and defense methods to help student explore security tools and attacks in practice. It will focus on attacks (e.g., buffer overflow, dirty COW, format-string, XSS, and return oriented programming), hacking fundamentals (e.g., scanning and reconnaissance), defenses (e.g., intrusion detection systems and firewalls). Students are expected to finish intensive lab assignments that use real-world malware, exploits, and defenses

Course Objectives

This course offers an in depth experience of real-world threats and defenses. Upon successful completion of this class, the student will gain experience in:


Familiar with Unix/Linux systems; or permission of the instructor.

Recommended Book

Wenliang Du, Computer Security: A Hands-on Approach, ISBN-13: 978-1548367947, ISBN-10: 154836794X

Grading Policy

The grades for the course will be based upon the tables given below

Academic Dishonesty

Please read and fill the Undergraduate Students Assignment Delcaration Form in Chinese and English.

Student Disabilities Services

If you have a documented disability that requires accommodations, you will need to register with the University for coordination of your academic accommodations, or let me know.

Class Schedule

Date Topic Reading & Notes (tentative) Slides & Labs
Week 1, 09/07 Course overview and Packet Sniffing
  • Computer network basics.
  • Kali Linux - Penetration Testing Linux Distribution. [Link]
  • Wireshark: Network protocol analyzer. [Link]
  • TCPDump and LibPCAP. [Link]
  • Packet Sniffing Basics. In Linux Journal. [Link]
[Term Project Slides]
[Lab1 VM Image]
Week 2, 09/14 Secure Coding and Buffer Overflows Lab 1 Due
  • Smashing the Stack for Fun and Profit. Aleph One. In Phrack Volume 7, Issue 49. [Link]
  • Local Stack Overflow (Basic Module). [Link]
  • Debugging Under Unix: gdb Tutorial. [Link]
  • Understanding DEP/NX [Link]
  • DynaGuard: Armoring Canary-based Protections against Brute-force Attacks. Theofilos Petsios, Vasileios P. Kemerlis, Michalis Polychronakis, and Angelos D. Keromytis. In ACSAC'15. [Link]
[Lab2 VM Image]
Week 3, 09/21 Secure Coding and Format-String Vulnerability Lab 2 Due
  • Chapter 6 of the recommended book -- Wenliang Du, Computer Security: A Hands-on Approach.
[Lab3 VM Image]
Week 4, 09/28 Term/Team Project Proposal Discussion Term/Team Project Proposal Due on 09/27
Week X, 10/05 NO CLASS
  • National Holiday
  • Week 5, 10/12 Scanning, Reconnaissance, and Penetration Testing Lab 3 Due
    • Nmap: the Network Mapper - Free Security Scanner. [Link]   Nmap man page. [Link]
    • OpenVAS: Open Vulnerability Assessment System. [Link]   Setting up OpenVAS on Kali Linux. [Link]
    • NESSUS: Vulnerability Scanner. [Link]
    • ZMap: Fast Internet-Wide Scanning and its Security Applications. Zakir Durumeric, Eric Wustrow, and J. Alex Halderman. In UsenixSecurity'13. [Link]   Souce Code. [Link]
    • Metasploit Framework Project Page. [Link]
    • Metasploitable2 (Linux). [Link]
    • Armitage: Cyber Attack Management for Metasploit. [Link]
    [Lab4 Part1]
    [Lab4 Part2]
    [Lab4 Kali VM Image]
    [Lab4 Metasploitable2 VM Image]
    Week 6, 10/19 Reverse Engineering and Obfuscation Lab 4 Due
    • DexLego: Reassembleable Bytecode Extraction for Aiding Static Analysis. Zhenyu Ning and Fengwei Zhang In DSN'18. [Link]
    • DexHunter: Toward Extracting Hidden Code from Packed Android Applications. Yueqian Zhang, Xiapu Luo , Haoyang Yin. In ESORICS'15. [Link]
    • Android Software Development Kit (SDK) [Link]
    • smali/baksmali: an assembler/disassembler for the Dex. [Link]
    [Lab5 VM Image]
    Week 7, 10/26 IoT Security and Wireless Exploitation Lab 5 Due
    • Zephyr: Real Time OS for IoT - A Linux Foundation Collaborative Project [Link]
    • Brillo: Google's Operating System for the Internet of Things. [Link]
    • Contiki: The Open Source OS for the Internet of Things. [Link]
    • IoT S&P slides from Prof. Steven M. Bellovin at Colubmia University. [Link]
    • How to Hack Wi-Fi: Cracking WPA2-PSK Passwords Using Aircrack-Ng. [Link]
    • Security of the WEP Algorithm. [Link]

    [IoT Slides from SMB]
    [Wireless Slides]
    [Wireless Slides from SMB]
    [Lab6 Part1]
    [Lab6 Part2]
    [Wireless Attack Notes]
    [Lab6 VM Image]
    Week 8, 11/02 Firewalls and Intrusion Detection Systems (IDS) Lab 6 Due
    • The Snort Project. Users Manual. [Link]
    • The Linux Firewall iptables [Link] [Link]
    [Lab7 VM Image]
    Week 9, 11/09 Heartbleed Attack Lab Lab 7 Due
    • Chapter 17 of the recommended book -- Wenliang Du, Computer Security: A Hands-on Approach.
    [Lab8 VM Image]
    Week 10, 11/16 Dirty COW Attack Lab 8 Due
    • This lab has been tested on our pre-built SEEDUbuntu12.04 VM. [Link]
    • SEED Labs Prject by Dr. Wenliang (Kevin) Du at Syracuse University. [Link]
    • Chapter 8 of the recommended book -- Wenliang Du, Computer Security: A Hands-on Approach.
    [Lab9 VM Image]
    Week 11, 11/23 RSA Public-Key Encryption and Signature Lab 9 Due
    • Chapter 18 of the recommended book -- Wenliang Du, Computer Security: A Hands-on Approach.
    [Lab10 VM Image]
    Week 12, 11/30 Web Security Lab 10 Due
    • Chapter 9, 10 of the recommended book -- Wenliang Du, Computer Security: A Hands-on Approach.
    [Lab11 VM Image]
    Week 13, 12/07 Return-to-libc and Return Oriented Programming Lab 11 Due
    • The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86). Hovav Shacham. In CCS'07. [Link]
    • Chapter 5 of the recommended book -- Wenliang Du, Computer Security: A Hands-on Approach.
    [Lab12 VM Image]
    Week 14, 12/14 Course Review and Term/Team Project Presentations Lab 12 Due
    [Term Project Slides]
    Week 15, 12/21 Term/Team Project Presentations Final Project Report Due

    Acknowledgement: This course includes material from Dr. Wenliang (Kevin) Du at Syracuse University, Dr. Steven M. Bellovin at Colubmia University, Dr. Angelos Stavrou and Dr. Kun Sun at George Mason University.