截屏2023-05-31 17.08.33.png

MIT6.824: Distributed System

课程简介

  • 所属大学:MIT
  • 先修要求:计算机体系结构,并行编程
  • 编程语言:Go

这门课和 MIT 6.S081 一样,出品自 MIT 大名鼎鼎的 PDOS 实验室,授课老师 Robert Morris 教授曾是一位顶尖黑客,世界上第一个蠕虫病毒 Morris 病毒就是出自他之手。

这门课每节课都会精读一篇分布式系统领域的经典论文,并由此传授分布式系统设计与实现的重要原则和关键技术。同时其课程 Project 也是以其难度之大而闻名遐迩,4 个编程作业循序渐进带你实现一个基于 Raft 共识算法的 KV-store 框架,让你在痛苦的 debug 中体会并行与分布式带来的随机性和复杂性。

同样,这门课由于太过出名,网上答案无数,希望大家不要参考,而是力图自主实现整个 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。

课程资源

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

课程资源

标签: cs, cs自学, cs自学指南, 自学cs, cs自学路线, cs自学计划, cs自学教程, cs自学资源, cs自学技能, cs自学教程入门, cs自学教程进阶, cs课程, cs基础课程, cs核心课程, cs进阶课程, cs高级课程, cs课程推荐, cs交流, cs技术, cs专业介绍, cs学习资源