001-【MIT 6.858】【Computer Systems Securit

1. 在构建计算机系统时,需要考虑到可能存在的漏洞和问题,例如文件服务器的bug、密码泄露等。
2. 安全系统需要不断迭代和改进,因为攻击者总能找到新的方式来破坏系统。
3. 安全策略和威胁模型需要与具体系统相适应,需要考虑到可能的攻击方式和后果。
4. 在计算机安全中,攻击成本较低,因此需要采取相应的措施来保护系统。
5. 密码重置和账户恢复是一个常见的安全问题,需要注意恢复问题的安全性。
6. 在密码恢复过程中,恢复问题的安全性至关重要,应该确保恢复问题的安全性不低于密码的安全性。
7. 默认设置在系统安全性中起着重要作用,不安全的默认设置会导致系统容易受到攻击。
8. 假设设计和实现是保密的是一个错误的安全假设,因为设计和实现很容易泄露。
9. 用户通常不太关注安全,因此系统不能假设用户会仔细阅读所有提示框和对话框。
10. 在威胁模型中,要考虑到人为因素,因为人的行为可能会影响系统的安全性。
11. 用户在回答问题时通常不会真正阅读问题,而是根据自己的意图进行回答。
12. 在设计系统时要考虑用户的需求,不要对用户做出太多假设。
13. 在威胁模型中不要假设特定的攻击方式,因为攻击者可能会采取更简单的方式进行攻击。
14. 在证书颁发机构的威胁模型中,不要假设只有少数几个机构是可信的,因为这可能导致攻击者攻击最不安全的机构。
15. 在软件开发和分发过程中,要注意源代码的安全性和软件更新的安全性,因为这些都可能被攻击者利用。
16. 在设计API时,需要考虑到用户可能选择弱密码的情况,并采取相应的策略来限制登录尝试次数,以减少恶意攻击者猜测密码的可能性。
17. 在实现随机数生成器时,需要注意初始化种子的问题,以确保生成的随机数具有足够的随机性,避免被攻击者猜测。
18. 在嵌入式设备或虚拟机中,由于设备的复制性和虚拟化特性,获取真正的随机数种子会面临困难,需要采取额外的措施来确保随机性。
19. 在编写程序时,需要注意缓冲区溢出等低级错误,这些错误可能导致程序崩溃或被攻击者利用,造成安全风险。
20. 在调试程序时,可以通过观察寄存器和堆栈的变化来分析程序的执行过程,从而找出潜在的问题和漏洞。
21. 通过溢出缓冲区,攻击者可以在堆栈中注入代码并选择跳转位置,执行任意代码。
22. 这种漏洞可能导致攻击者以管理员权限在服务器上执行任意代码。
23. 这种漏洞曾经是利用软件的主要方式之一,现在可能被基于Web的JavaScript漏洞所取代。
24. 这种漏洞仍然是现实系统中真实漏洞的主要来源之一。
25. 在实验一中,你们将学习有关这种漏洞的所有知识。