echo "Software Security" | sed s/\ /\ Vulnerabilities\ and\ /g

CS 5770: Software Vulnerabilities and Security (SoftVulnSec)

Northeastern Huskies Boston Strong Boy Router


Engin Kirda

For correspondence, send a mail to

Office Hours: Mondays, 3:00-4:00pm


  1. 10.07.2014 Challenge 4 is online. Use your account credentials to access it. Good luck.
  2. 09.29.2014 Challenge 3 is online. Use your account credentials to access it. Good luck.
  3. 09.22.2014 Challenge 2 is online. Use your account credentials to access it. Good luck.
  4. 09.15.2014 Challenge 1 is online. Use your account credentials to access it. Good luck.
  5. 09.14.2014 Accounts created and account information sent to participants.
  6. 09.08.2014 The course website is online and has been updated.


Internet security has become part of everyday life where security problems impact practical aspects of our lives. Even though there is a considerable corpus of knowledge about tools and techniques to protect systems, information about what are the actual vulnerabilities and how they are exploited is not generally available. This situation hampers the effectiveness of security research and practice. Understanding the details of attacks is a prerequisite for the design and implementation of secure systems.

This course deals with common programming, configuration, and design mistakes and ways to detect and avoid them. Examples are used to highlight general error classes, such as stack and heap overflows. Possible protection and detection techniques are examined. The course includes a number of practical lab assignments where participants are required to apply their knowledge as well as a discussion of the current research in the field. Students will learn how the security of systems can be violated, and how such attacks can be detected and prevented.

The course aims to make the students "security aware", and gain an in-depth understanding about security issues.

Some Topics

  • Operating system security and vulnerabilities (UNIX, Windows, stack and heap overflows)
  • Windows Security
  • Buffer Overflows (including Heap overflow)
  • Testing
  • Reverse engineering and binary analysis
  • Viruses, worms, malware and malicious code
  • Botnets
  • Language security
  • Web security


Significant Programming experience (this course is not for you if you are a beginner)
Knowledge of C/C++ useful
Basic SQL knowledge
Basic web programming knowledge

Dates and Times

Mondays, 6-9pm, Dodge Hall 173

Slides and Schedule

(Use your authentication credentials for the lab to access the material)

12.08.2014 Final exam (Covers material from Class 7-11)
12.01.2014 Class 11
11.24.2014 Class 10 // Quiz 3
11.17.2014 Class 9
11.10.2014 Class 8 // Quiz 2
11.03.2014 Class 7
10.27.2014 Midterm (Covers material from Class 1-6)
10.20.2014 Class 6 (download slides)
10.13.2014 Columbus Day -- no class
10.06.2014 Class 5 (download slides)
09.29.2014 Class 4 // Quiz 1 // (download slides)
09.22.2014 Class 3 (download slides)
09.15.2014 Class 2 (download slides)
09.08.2014 Class 1 (download slides)

Practical Challenges (Assignments)

Students will "need" to solve a set of practical challenges (assignments) in the lab part of the course.
For more information on the challenges and the grading, check this page.

The current challenge is Challenge 4.


The course grade will be based on:

10%: 3 Quizzes
27%: Midterm exam
30%: Final exam
3%: Participation
30%: 8 practical security challenges


Registration details will be announced via e-mail to the registered participants.
Last Modified: Tue Oct 21 10:15:27 EDT 2014

Northeastern University, Boston,