CS18-计算机系统安全
UCB CS161: Computer Security
课程简介
- 所属大学:UC Berkeley
- 先修要求:CS61A, CS61B, CS61C
- 编程语言:C, Go
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150 小时
伯克利的计算机系统安全课程,课程内容分为5个部分:
- Security principles: how to design a secure system
- Memory safety: buffer overflow attack
- Cryptography: symmetric encryption, asymmetric encryption, MAC, digital signature ………
- Web: SQL-injection, XSS, XSRF …….
- Networking: attacks for each layer
这门课让我印象最为深刻的部分是 Project2,让你用 Go 语言设计和实现一个安全的文件分享系统。我花了整整三天才完成了这个非常虐的 Project,总代码量超过 3k 行。这样密集型的开发过程,能极大地锻炼你设计和实现一个安全系统的能力。
2020 年夏季学期的版本开源了课程录影,大家可以在下面的课程网站链接里找到。
课程资源
- 课程网站:https://su20.cs161.org/
- 课程视频:参见课程网站
- 课程教材:https://textbook.cs161.org/
- 课程作业:7 个在线 HW + 3 个 Lab + 3 个 Project
资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/UCB-CS161 – GitHub 中。
MIT 6.1600: Foundations of Computer Security
课程简介
- 所属大学:MIT
- 先修要求:离散数学,编程基础,计算机系统基础
- 编程语言:Python3
- 课程难度:🌟🌟🌟
- 预计学时:50小时
MIT 的计算机系统安全本科生课程,共分为 authentication, transport security, platform security, software security, 和 human/end-user security 五个模块。课程组织还是相当清晰的:authentication 关注于认证安全,即如何证明计算机世界的“你”确实是“你”。接着讲解大家了解较多的通信安全,例如数据传输的加密解密,密钥的交换等。但传输是一方面,代码最终需要在终端上执行,这就涉及到运行代码的平台本身甚至软件代码本身的安全性。最后课程还会讲一些关于隐私安全的内容,上升到社会学的范畴去讨论群体信息安全。学完该课程,你将会掌握计算机安全的很多重要基本概念,例如公钥私钥加密算法、哈希算法、电子签名、密钥交换算法等等。除了稍显复杂枯燥的数学和定理证明外,课程中还会结合具体知识点讲解很多现实发生的安全漏洞,让你对这些安全概念有更感性的认识。此外,还有6个课程实验让你通过编程实现很多漏洞的利用,在实际中加深对知识的理解,个人感觉还是很有意思的。
课程资源
资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/MIT6.1600 – GitHub 中。
MIT 6.858: Computer System Security
课程简介
- 所属大学:MIT
- 先修要求:计算机体系结构,对计算机系统有初步了解
- 编程语言:C, Python
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150 小时
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://pwn.college/cse365-s2025/
- 课程视频:参见课程网站
- 课程教材:无
- 课程作业:8 个模块(444 个 challenges)
资源汇总
- Lectures on YouTube: https://youtube.com/pwncollege
- Live Broadcasts on Twitch: https://twitch.tv/pwncollege
- Chat on Discord: https://discord.com/channels/750635557666816031/1328463339528913058
- Open Source on GitHub: https://github.com/pwncollege
- Contact us via Email: cse365@pwn.college
另外,出于评定 ASU 学生课程成绩的重要因素,官方不鼓励上传解题思路,每个模块的前两题除外。
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)
资源汇总
- Lectures on YouTube: https://youtube.com/pwncollege
- Live Broadcasts on Twitch: https://twitch.tv/pwncollege
- Chat on Discord: https://pwn.college/discord
- Open Source on GitHub: https://github.com/pwncollege
- Contact us via Email: pwn-college@asu.edu
另外,出于评定 ASU 学生课程成绩的重要因素,官方不鼓励上传解题思路,每个模块的前两题与逆向部分的 16 题除外。
SU: SEEDLabs
课程简介
- 所属大学:雪城大学
- 先修要求:无
- 编程语言:C,汇编
- 课程难度:🌟🌟🌟🌟
- 预计学时:150 小时
雪城大学的网安课程,由 NSF 提供130万美元的资金支持,为网安教育开发了动手实践性的实验练习(称为 SEED Lab)。课程理论教学和动手实践并重,包含详细的 开源讲义 、视频教程、教科书(被印刷为多种语言)、开箱即用的基于虚拟机和 docker 的攻防环境等。目前全球有1050家研究机构在使用该项目。
涵盖计算机和信息安全领域的广泛主题,包括软件安全、网络安全、Web 安全、操作系统安全和移动应用安全。
课程资源
- 课程网站:https://seedsecuritylabs.org/index.html
- 课程视频:https://www.handsonsecurity.net/video.html
- 课程教材:https://www.handsonsecurity.net/index.html
- 课程作业:四十多个安全领域的lab,实验环境可由课程提供的定制虚拟机和 docker 快速搭建,并且提供详细的原理讲解、实验指导。以 缓冲区溢出实验 为例,该实验属于 软件安全主题 ,这里是它的 实验指导 ,这里是它对应的 教材内容
资源汇总
@LaPhilosophie 在学习这门课中用到的所有资源和作业实现都汇总在 LaPhilosophie/seedlab – GitHub 中。