Lecture Time/Location
Tuesday/Thursday 3:00pm–4:20pm, Taconic 122
Instructor
Amir Masoumzadeh (amasoumzadeh@albany.edu)
  • Office Hours: Tuesday/Thursday 4:30pm–5:30pm, Catskill 141 (on Podium), or by appointment
Teaching Assistant
Gaurav Pokharel (gpokharel@albany.edu)
  • Office Hours: Wednesday 1:00pm–3:00pm, Catskill 141 (on Podium), or by appointment

Course Overview

This course introduces students to the fundamental and technical problems surrounding computer security. The course reviews basic security concepts, design principles, and mechanisms. Throughout the course and based on hands-on exercises, students will develop an in-depth understanding of several vulnerabilities and corresponding countermeasures in system security, web security, and network security areas. Topics include privilege escalation, buffer overflow, race condition, SQL injection, cross-site scripting, packet spoofing, TCP attacks, and firewalls.

Student Learning Objectives / Outcomes

Students who successfully complete this course will be able to

Prerequisites

Additional Notes: You are expected to have a good understanding of operating systems and systems programming. You need to be familiar with Linux command line interface and be able to code in C. Also, general knowledge of discrete math and networking can be helpful.

Readings

Required Textbook: Wenliang Du, “Computer & Internet Security: A Hands-on Approach” (2nd/3rd Edition).

Note: You may use either the 3rd edition (ISBN-13: 978-1733003940, 2022) or the 2nd edition (ISBN-13: 978-1733003933, 2019) of the textbook. While the editions differ slightly, both contain the required chapters for this course. Note that the chapter numbers in the syllabus refer to the 3rd edition.

Communication and Submissions

The course syllabus and schedule is available on the course webpage. Most of the tasks in this class will be handled via course GitHub organization including the distribution of notes, assignments, and assignment submission. You will be invited to join the organization in the first week of classes. We will use Brightspace for announcements, in-class exercises, and grades.

Assessment and Grading

You will be assessed based on the following:

In-Class Exercises
You will complete small in-class exercises working in teams, but submitting individually (as quizzes on Brightspace). Submissions are only allowed during designated in-class time and must be in person. Submitting remotely is a violation of academic integrity. Credit is based on submission, not performance. Missing submissions (including due to absence) receive no credit. Up to 10% of exercises will be dropped to accommodate unforeseen situations.
Lab Assignments
You will complete take-home virtual lab assignments that provide hands-on experience with the theoretical concepts discussed in lectures. You are encouraged to discuss the labs with other classmates; however, all submissions must be completed individually based on your personal VM setup. Completing the labs is essential to your success in this course. Some exam questions will be based directly on the lab assignments, while others will require a deeper understanding of the concepts, which the labs are designed to reinforce. Your lowest lab grade will be dropped from your final grade calculation.
Exams
You will take a midterm exam (during the regular class sessions) and a final exam (during the final exam period).
Project
Students enrolled in CSI 524 are required to complete a term project. For students in CSI 424, the project is optional. Project requirements will be posted in the corresponding GitHub repository.
Final Numerical Grade
Your final numerical grade will be a weighted combination of components, depending on which section of the course you are enrolled in:
Course In-Class Labs Project Exam 1 Exam 2
CSI 424 5% 35% Optional (+10%) 30% 30%
CSI 524 5% 15% 20% 30% 30%

The course uses A–E grading. Final letter grades are determined by applying cutoffs based on the overall grade distribution in the class, allowing for more flexible and potentially more favorable outcomes than a fixed grading scale.

Schedule

The following schedule is tentative and will be regularly updated. It is your responsibility to check the schedule regularly. Note that the chapter numbers below refer to the 3rd edition of the textbook. The plus sign (+) means optional reading.

Day Topic/Readings/Assignment
Module 1: Security Basics
Aug25 Course Overview, Setup
Assignment: lab01 (setup) due Sep03
Aug27 Basic Security Concepts
Sep01 Security Policies
Readings:
Assignment: lab02 (permissions) due Sep10
Sep03 Security Policies (cont.)
Module 2: Software Security
Sep08 Environment Variables & Attacks
Sep10 Environment Variables & Attacks (cont.)
Assignment: lab03 (env-setuid) due Sep22
Sep15 SET-UID Programs
Readings:
Sep17 SET-UID Programs (cont.)
Sep22 Buffer Overflow Attack
Readings:
Sep24 Buffer Overflow Attack (cont.)
Assignment: lab04 (bof) due Oct01
Sep29 Format String Vulnerability
Readings:
Assignment: lab05 (format-string) due Oct07
Oct01 Format String Vulnerability (cont.)
Oct06 Pre-midterm Review
Oct08 Pre-midterm Review
Oct13 No Class (Fall Break)
Oct15 Midterm Exam (tentative)
Module 3: Web Security
Oct20 Cryptography Basics, Discuss Midterm Exam
Readings:
  • Textbook: Chapters 24.1-24.3, 25.1-25.4, 26.1-26.3
Oct22 Cryptography Basics (cont.), Cross Site Request Forgery Attack
Readings:
Oct27 Cross Site Request Forgery Attack (cont.)
Assignment: lab06 (csrf) due Nov03
Oct29 Cross Site Scripting Attack
Readings:
Assignment: lab07 (xss) due Nov07
Nov03 SQL Injection Attack
Readings:
Module 4: Network Security
Nov05 Network Security Basics
Assignment: lab08 (packets) due Nov12
Nov10 Attacks on TCP Protocol
Readings:
Nov12 Attacks on TCP Protocol (cont.)
Assignment: lab09 (tcp) due Nov19
Nov17 Attacks on Domain Name System (DNS)
Readings:
Nov19 Attacks on Domain Name System (DNS) (cont.)
Assignment: lab10 (dns) due Nov29
Final Review and Projects
Nov24 Final Review
Nov26 No Class (Thanksgiving Break)
Dec01 Project Presentations
Dec03 Project Presentations
Dec10 Final Exam (Thursday, Dec10, 3:30pm-5:30pm)

Policies

No Late Submission (Except for One Assignment)
Assignments will be typically released at least one week before their due date. You are highly recommended to study an assignment as soon as it becomes available. There will be ample opportunities to benefit from office hours and communication with the instructional team before the due date. Assignments are due at 11:59pm on the day of their deadline. Submissions after due time will receive no points. However, in order to account for unforeseen situations, you can request to submit only one assignment late. In order for your late assignment to be graded, you must email the instructor to request a late submission before the deadline. You should note that a late-submission request may not be always accepted (e.g., when the solutions need to be discussed in class immediately after a submission). Therefore, you are recommended to submit a version of your solution before the deadline if your request has not been reviewed yet. You have up to 3 days to submit after the deadline if your late-submission request is approved. Note that you only have one such opportunity during the semester. Therefore, it is advised to leave that option for truly critical situations. In the case of a team assignment, a late submission is considered for all team members.
Review of Grades
Any issue regarding your graded materials must be communicated to us no later than 5 business days after the posting day of the grades. There will be no re-grading after the 5-day period has passed.
Attending Classes
Class attendance is required for successful completion of this course.
Attending Exams
The midterm exam is given in regular hours of the class. The final exam will be during the final exam period. The exam dates are on the course schedule. The midterm exam date is tentative and will be finalized at least one week before the actual exam date. Makeup exams are not guaranteed and will be given only for valid and verifiable extenuating circumstances (e.g., a major medical situation). It is the student’s responsibility to contact the instructor at least a week ahead of the exam date and arrange to take a makeup exam at an alternate date/time. If an absence in exam is expected due to religious observance, the student is responsible to notify the instructor at least 30 days before the exam date. Otherwise, their request may not be granted.
Academic Integrity
It is every student’s responsibility to become familiar with the standards of academic integrity at the University. Claims of ignorance, of unintentional error, or of academic or personal pressures are not sufficient reasons for violations of academic integrity. Any incident of academic dishonesty can result in a zero grade for the affected course component and a report sent to the appropriate University authorities (e.g., Dean of Undergraduate Education or Graduate Studies). Repeated violations will result in a failing grade for the course.

For all assignments, you must submit your own work, except where collaboration is explicitly permitted or required. Providing your solutions to others or copying even parts of a solution from others is considered plagiarism. In projects/papers, you must properly cite any resources from which you borrow ideas and clearly distinguish them from your contributions.

Policy on Generative AI & AI Assistants
Generative AI tools (e.g., ChatGPT, Claude, Gemini, and GitHub Copilot) are permitted in this course as learning aids, subject to strict boundaries. You may use AI to explain concepts, debug syntax errors, or generate boilerplate code. However, you are strictly prohibited from using AI to generate assignment answers based on the instructions, construct attack payloads for labs, or write complete project deliverables. For the project, any AI assistance must be cited in a section titled “AI Usage” in your repository listing the tools, what specific aspects of the project they supported, and what work was completed independently. You remain 100% responsible for all work submitted. To ensure comprehension, we may conduct random oral walk-throughs requiring you to explain your submitted code and results. Inability to explain your work will result in a zero and a potential academic integrity referral.
Use of Electronic Devices
Computers or other electronic devices may be only used during class for note-taking, in-class exercises, or other class-related activities. You are not allowed to perform any unrelated tasks during class.
Students with Disabilities
Reasonable accommodation will be provided for students with documented disabilities. If you believe you have a disability requiring accommodation in this class, please notify the Disability Access and Inclusion Student Services (DAISS) (Campus Center 130, 518-442-5501). That office will provide me with verification of your disability, and will recommend appropriate accommodations. In general, it is your responsibility to contact me at least one week before the relevant activity to make arrangements.
Health and Well-Being
Your physical and mental health is very important. The university has several health services when you need them. In particular, Counseling and Psychological Services (CAPS) provides free, confidential services including psychological counseling and evaluation for emotional, social, and academic concerns.

If your life or someone else’s life is in danger, please call 911. If you are in a crisis and need help right away, please call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255). Students dealing with heightened feelings of sadness or hopelessness, increased anxiety, or thoughts of suicide may also text “GOT5” to 741741 (Crisis Text Line).