Secure Systems Engineering

This course would cover the design and implementation of secure systems. There will be four parts in the course.


  • The first part is on Binary Exploitation, where we dwell into vulnerabilities associated with C programs and how they can be exploited. Vulnerabilities would include buffer overflows, format string, heap vulnerabilities, etc. We dissect recent malware, like Heartbleed, Mirai, etc, to understand how they work.

  • The second part is on designing a secure system. We discuss least privileges, information flow control, Linux kernel security, trusted execution environments, secure boot, and physically unclonable functions.

  • The third part is on security assurance. We will look at techniques and standards by which one can certify a system to be secure.

  • Finally, we explore new threats in cyber-security, such as Micro-architectural attacks, Hardware Security, etc.


Instructor

Chester Rebeiro

TAs

  • Keerthi K (RISE Lab)

  • Pallavi Borkar (RISE Lab)

  • Mohit Singha (RISE Lab)

  • Reetwik Das (RISE Lab)

  • Sai Venkata Krishnan V (RISE Lab)

  • Sandip Saha (RISE Lab)


Prerequisites

computer organization, assembly language programming for x86, operating systems, advanced programming in C, data structures and algorithms

Logistics

Classes will be held from 17th Jan, 2022 in Slot D.

  • Monday : 11:00 - 11:50 AM

  • Tuesday : 10:00 - 10:50 AM

  • Wednesday : 9:00 - 9:50 AM

  • Thursday: 1:00 - 1:50 PM (will be used for Lab and Tutorials)

Slides

Course Handout

  1. Introduction

  2. Binary Exploitation 1 (Buffer Overflows)

  3. Binary Exploitation 2 (buffer overeads, heap exploits, format string, printf vulnerabilities)

  4. Malware (Types, Examples, Detection, and Evasion)

  5. Dynamic Analysis of Malware (by Sareena K.P.)

  6. Access Control and Principle of Least Privileges