System and Software Security

Viruses and malware infect millions of computers, as some of you may see in the daily breaking news. Attackers often use these malicious programs to steal user data, blackmail businesses, and even bring down national networks, causing billions of dollars in damage per year. This course provides the basics of various security attacks and vulnerabilities (e.g., Buffer Overflow) in Windows and Linux systems and effective prevention methods. From understanding the basics of malicious programs and software security analysis, such as assembly programming and reverse engineering, you can know how attackers build malware/viruses and propose a proper defense approach. You will also learn about system forensics through Kali Linux and advanced tools (e.g., Metasploit) to trace security vulnerabilities and corresponding attacks. Finally, DevSecOps and building security APIs, a critical software security development skill for network administrators and secure software developers, are introduced. Note that this is an English-taught course (We use English in every activity, such as lecture/homework assignment/presentation...).

Course info

Textbook

  No textbook is required. Lecture notes are compiled by the instructor

References:

Weekly schedule

Link for download (software to use in Disassembler, Malware analysis lesson): 

(sent in Ecourse2, Check CourseIntroduction.pdf, slide #23)

Please follow the following steps to prepare an environment for Malware Analysis

Tools for Dynamic Malware Analysis

Grading:

Homework:

 + File for Flawfinder 

Mid-term:

 8 easy/moderate questions: 10 points per one

2 hard questions: 20 points per one

Easy/moderate questions: lecture notes

Hard questions: lecture notes, homework, internet, …

Technique demonstration bonus (can replace the final exam):

a.  Build a program to track the details of where a user went by reading his/her photos/social posts (API calls) 

b. Find several security bugs in popular software in Windows 10 and demonstrate how to exploit 

c. Build generative deep learning (DRL, GAN, ...) models or semi-supervising learning models to detect malicious activities.

d.  Analyzing an Assembly program to list its features/functionalities automatically using deep learning

e. Create a program that highlights Python script security vulnerabilities 

If you have any issues related to the course, please send an email to ask TA or the instructor. 

This course may benefit your early career as much as you study it seriously, not only pass the exam! So please do: