系统安全:攻与防

系统安全:攻与防

2025 南京大学《操作系统原理》
系统安全:攻与防

攻破一个进程

Undefined behavior 不是和大家开玩笑的 😈

center

  • Tutorial (Memory error 贡献了巨量的内核漏洞)
2025 南京大学《操作系统原理》
系统安全:攻与防

防御一个进程

我们至少可以减少攻击面

  • www-root, ASLR: mmap 映射到随机的地址, Canary (stack protector), NX-bit (no execute), CFI (endbr64), ...
  • 程序只能按照 “预期” 的方式运行 (LLM 时代的新机遇)

center

2025 南京大学《操作系统原理》
系统安全:攻与防

访问控制:也没能完全解决安全问题 😭

“单次” 看起来合法的访问,也可能存在非法行为

  • Tenex: Authentication system call
int check_password(__user char *given_pass) {
    ...
    for (i = 0; i <= strlen(correct_pass); i++)
        if (correct_pass[i] != given_pass[i]) {
            sleep(3);
            return EACCESS; // access denied
        }
    return 0;
}
2025 南京大学《操作系统原理》
系统安全:攻与防

看似精妙的设计,实际……

软件没问题,硬件也可以有漏洞

center

2025 南京大学《操作系统原理》
系统安全:攻与防

Meltdown

raise_exception();  // even an HTM abort
uint8_t volatile x = probe_array[data * 4096];

center

  • Timing side channel
    • Tenex: 天道好轮回 😊
  • 现在的办法:KPTI (Page Table Isolation)
    • 改写了教科书 😭
2025 南京大学《操作系统原理》
系统安全:攻与防

你甚至看不见你的对手在哪 (1)

2025 南京大学《操作系统原理》
系统安全:攻与防

你甚至看不见你的对手在哪 (2)

center

2025 南京大学《操作系统原理》