CS自学指南-计算机系统安全

MIT6.824: Distributed System
课程简介
- 所属大学:MIT
- 先修要求:计算机体系结构,并行编程
- 编程语言:Go
这门课和 MIT 6.S081 一样,出品自 MIT 大名鼎鼎的 PDOS 实验室,授课老师 Robert Morris 教授曾是一位顶尖黑客,世界上第一个蠕虫病毒 Morris 病毒就是出自他之手。
这门课每节课都会精读一篇分布式系统领域的经典论文,并由此传授分布式系统设计与实现的重要原则和关键技术。同时其课程 Project 也是以其难度之大而闻名遐迩,4 个编程作业循序渐进带你实现一个基于 Raft 共识算法的 KV-store 框架,让你在痛苦的 debug 中体会并行与分布式带来的随机性和复杂性。
同样,这门课由于太过出名,网上答案无数,希望大家不要参考,而是力图自主实现整个 Project。
课程资源
- 课程网站:https://pdos.csail.mit.edu/6.824/schedule.html
- 课程视频:参见课程网站链接
- 课程视频中文翻译:https://mit-public-courses-cn-translatio.gitbook.io/mit6-824/
- 课程教材:无,以阅读论文为主
- 课程作业:4 个非常虐的 Project,具体要求参见课程网站
MIT 6.858: Computer System Security
课程简介
- 所属大学:MIT
- 先修要求:计算机体系结构,对计算机系统有初步了解
- 编程语言:C, Python
MIT 的计算机系统安全课程,实验环境是一个 Web Application Zoobar。学生学习攻防技术并应用于该 Web Application。
- Lab 1: you will explore the zoobar web application, and use buffer overflow attacks to break its security properties.
- Lab 2: you will improve the zoobar web application by using privilege separation, so that if one component is compromised, the adversary doesn't get control over the whole web application.
- Lab 3: you will build a program analysis tool based on symbolic execution to find bugs in Python code such as the zoobar web application.
- Lab 4: you will improve the zoobar application against browser attacks.
这个课我主要是做了 Lab 3。Lab 3 是通过混合符号执行来遍历程序的所有分支,理解了符号执行的思想后 Lab 并不难做。这个 Lab 直观展示符号执行这种技术的使用方法。
这个课的 Final Project 是实现 SecFS,一个远端文件系统,面对完全不可信的服务器,提供机密性和完整性。参考论文为 SUNDR。
课程资源
- 课程网站:http://css.csail.mit.edu/6.858/2022/
- 课程视频:参见课程网站
- 课程教材:无
- 课程作业:4 个 Lab + Final Project / Lab5
ASU CSE365: Introduction to Cybersecurity
课程简介
- 所属大学:Arizona State University
- 先修要求:无
- 编程语言:C, Python, x86 assembly
亚利桑那州立大学 Web 安全的导论课,课程以模块化的形式构成,主要包含以下方面:
- Program Misuse: Linux commandline, privilege escalation
- Web fundamentals: http, server, intercept
- Assembly: registers, memory, control flow
- Cryptography: Symmetric/Asymmetric encryption, hashing, trust
- Web security: Command/HTML/SQL/Stack injection
课程以 Challenge 为主,Lectures and Reading 为辅。Challenge 中的习题以 CTF 的形式展开,难度依次递增。
对于基础较弱的学习者,卡关是正常现象。如果在解题过程中遇到困难,可以在首页 Chat 栏目中给出的 Discord Server 寻求帮助。
课程资源
- 课程网站:https://dojo.pwn.college/cse365/
- 课程视频:参见课程网站
- 课程教材:无
- 课程作业:7 个模块(167 个 challenge)
ASU CSE466: Computer Systems Security
课程简介
- 所属大学:Arizona State University
- 先修要求:无
- 编程语言:C, Python, x86 assembly
亚利桑那州立大学系统安全的核心课,课程以模块化的形式构成,主要包含以下方面:
- Linux commandline: Program misuse, program interaction
- Shellcoding: Assembly, shellcode injection, prevention
- Reverse Engineering: Function frame, static/dynamic reversing tools
- Program Exploitation: Hijacking to shellcode, JIT spray
- System Exploitation: Kernel modules, privilege escalation
- Miscellaneous: Sandboxing, Memory Errors, Race conditions
与 CSE365 相同,课程以 Challenge 为主,Lectures and Reading 为辅。Challenge 中的习题以 CTF 的形式展开,难度依次递增。
习题质量挺高的,但某些模块难度较大,尤其是涉及到内核的部分,有的时候一天都写不出一道题。如果在解题过程中遇到困难,可以在首页 Chat 栏目中给出的 Discord Server 寻求帮助。
课程资源
- 课程网站:https://dojo.pwn.college/cse466/
- 课程视频:参见课程网站
- 课程教材:无
- 课程作业:13 个模块(358 个 challenge)