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 年夏季学期的版本开源了课程录影,大家可以在下面的课程网站链接里找到。

课程资源

资源汇总

@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个课程实验让你通过编程实现很多漏洞的利用,在实际中加深对知识的理解,个人感觉还是很有意思的。

课程资源

  • 课程网站:fall23, fall22
  • 课程视频:参见课程网站
  • 课程教材:没有指定教材,每节课有 notes
  • 课程作业:一共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

课程资源

 

 

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 寻求帮助。

课程资源

资源汇总

另外,出于评定 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 寻求帮助。

课程资源

资源汇总

另外,出于评定 ASU 学生课程成绩的重要因素,官方不鼓励上传解题思路,每个模块的前两题与逆向部分的 16 题除外。

 

 

SU: SEEDLabs

课程简介

  • 所属大学:雪城大学
  • 先修要求:无
  • 编程语言:C,汇编
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:150 小时

雪城大学的网安课程,由 NSF 提供130万美元的资金支持,为网安教育开发了动手实践性的实验练习(称为 SEED Lab)。课程理论教学和动手实践并重,包含详细的 开源讲义 、视频教程、教科书(被印刷为多种语言)、开箱即用的基于虚拟机和 docker 的攻防环境等。目前全球有1050家研究机构在使用该项目。

涵盖计算机和信息安全领域的广泛主题,包括软件安全、网络安全、Web 安全、操作系统安全和移动应用安全。

课程资源

资源汇总

@LaPhilosophie 在学习这门课中用到的所有资源和作业实现都汇总在 LaPhilosophie/seedlab – GitHub 中。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...