Introduction to Computer Security

Location: EB 92 (Tue/Thu 8am-9:50am)
Instructor: Wu-chang Feng
TA: Chuhan Lu (chuhan at
  • Office Hours Tue/Thu 1-2pm in Fishbowl (FAB 120)
Course Description This class provides an overview of computer security intended for a broad audience. Topics covered include basic security principles, access control, cryptography, authentication, network security, host security, application security, and privacy and anonymity with a focus on how they are embodied in actual systems.


Week Topic Labs Due on Monday
1 Introduction
Careers and Roles in Cybersecurity (CyberPDX)
Principles and Approaches
Access Control and Authorization
  • Basics (files, commands)
Labs #1
  • Basics (command I/O, shell navigation, advanced files)
  • Basics (regex, file utilities, network commands, processes)
Labs #2 Labs #1
  • Access Control (permissions, setuid, sudo)
Applied cryptography
  • Encoding, Hash functions, Message Authentication Codes
  • Symmetric, Asymmetric (Public-Key) encryption
  • Digital signatures, Certificates, Key exchange protocols, Perfect Forward Secrecy, Future Secrecy, Signal protocol
  • Password security, Multi-factor authentication
Labs #3 Labs #2
  • FIDO/Passkeys (Passwordless authentication), Zero-trust and continuous authentication
  • Social engineering (Spam, Phishing, Business Email Compromise, Scams, Fraud)
Network security I
  • Data-link layer (802.11, WPA2)
Labs #4 Labs #3
  • Data-link layer (ARP), Network layer (IP, CIDR, Sniffing, Spoofing, Hijacking)
  • Network layer (DDoS, IPSec/VPNs, firewalls and filtering, network segmentation, network intelligence, ICMP)
Labs #5 Labs #4
7 Network security II
  • Transport layer (TCP, TLS, certificate authorities and transparency, certificate revocation), Application layer: DNS security (DNS, DNSSEC)
  • Application layer: DNS security (DoH, DoT, Oblivious DNS), E-mail security (SMTP/IMAP/POP over TLS, DKIM, SPF, DMARC)
Host security
  • Host attacks (Initial access, Privilege escalation)
  • Host attacks (Internal recon, Lateral movement, Persistence, Impact)
  • Host defenses (IDS/IPS/EDR, signature detection, anomaly detection, blocklisting and allowlisting, Software signing, Virtualization and isolation techniques, File system backup and encryption)
Application security
  • DevSecOps
Labs #6 Labs #5
  • Programming language and CPU security, Memory corruption, Return-oriented Programming, Canaries, ASLR, Control-Flow Integrity
Labs #7 Labs #6
  • Supply-chain security
Privacy and anonymity security
  • Privacy (OSINT, Do-not-track, Right to forget, Browser profiles, Cookies and super-cookies)
  • Anonymity (Tor, Onion services, Dark Web)
Finals week Final exam, in-person, no exceptions (Thurs, Dec 8 @ 8am) Sample questions Labs #7


Labs and notebook
Lab assignments will be given each class covering the course material. You will perform each one, while maintaining a lab notebook in a Google Doc that documents your progress via screenshots with your OdinID in them. The notebook should also include answers to any questions in the labs.  Notebooks should be exported as a PDF file and include a table of contents generated by Google Docs. Submission will be done via adding, committing and pushing the file to your private git repository. Use the following naming convention to submit your notebooks.
  • notebooks/<labs_number>.pdf e.g. notebooks/Labs1.pdf
Always turn in what you have done on-time. Late work throughout the quarter may be compiled into a single submission that will be graded at the end of the last week of class in a file named notebooks/LateLabs.pdf. The notebook will be graded based upon the following rubric:
  • Neatness and organization
  • Completeness
  • Inclusion of OdinID or project identifier in screenshots

Course objectives

  • Explain the concepts of confidentiality, availability and integrity.
  • Explain standard access control mechanisms (mandatory, discretionary, originator controlled) and how they can be used in conjunction with security models.
  • Describe use of cryptographic algorithms in various secure protocols including digital signatures, hash functions, symmetric key, and public key cryptography.
  • Explain various forms of authentication and identify social engineering attacks.
  • Explain security issues in networks, hosts, and applications and how they can be addressed
  • Identify privacy issues in computing systems and how they can be addressed


Attendance 5%
Lab notebooks 75%
Final exam 20%
Attendance and participation
Attendance is required and will be taken each class. If you miss class, extra credit will be given back for participation in the Slack channel. You are expected to follow this code of conduct when communicating.
Academic misconduct
  • Includes allowing another student to copy your work unless specifically allowed by the instructor.
  • Results in a grade of 0 for the assignment or exam.
  • Results in the initiation of disciplinary action at the university level.