When, where, and who

Mon: 03:35 PM to 4.50 PM IST, Tues: 2 PM to 3.15 PM IST, KD-101, course staff: Biswa, Saurabh, Sujeet, and Upasana

Course Objective

Elevator Pitch: To understand attacks like meltdown and spectre attacks, Foreshadow, ZombieLoad, RowHammer, and RamBleed, the whys and hows, how to mitigate them, and how to mount new attack points.

Detailed Pitch: Memory subsystem is an important layer in the computing system that has to be efficient for the whole system to operate efficiently. In the current era of computation, multiple cores are deployed in devices that range from smart-phones, laptops, desktops, servers, and cloud based systems. Though, innovations in the world of hardware and computer architecture have resulted in faster computation in terms of better performance, a lot of sensitive data that is stored and processed by these devices get leaked through various hardware components, such as branch predictors, caches, Translation look-aside buffers (TLBs), page tables, prefetchers, Dynamic Random Access Memory (DRAM) controllers, DRAM, and non-volatile memories (NVMs). Basically, these hardware components become side-channels and/or covert-channels and become source of information leakage in the form of side-channel and covert-channel attacks (for example, the recent meltdown and spectre attacks,Foreshadow, ZombieLoad, RowHammer, and RamBleed). The goal of the course is to make students understand the various sources of attacks and their mitigation techniques at the memory systems, and design secure memory systems. The course will be a fusion of fundamentals and state-of-the-art research on secure memory systems.

Course Style: The course will be based on discussion/debates, programming assignments to mount new attacks, mitigate attacks, and understand the performance and security trade-off. There will be no mid-term, end-term, semi-term, *term* exams :)

Prerequisites

  • For B.Tech. : CS220 or CS330 or CS422
  • For M.Tech./M.S./Ph.D.: Interest and willingness to learn security aspects in computer architecture and/or operating systems.
  • Good programming skills in C/C++