大小并不重要
——犹达(Yoda)
一、在修复软件缺陷的各个阶段,程序员的态度从拒绝到开明再到怀疑的发展过程:
- 那种问题不可能出现
- 我的机器上没有出现过这种问题
- 那种问题不应该出现
- 怎么会发生那种问题
- 噢,我看看
- 以前怎么运行正常呢?
- 怎样防止将来出现这样的问题?
二、软件安全漏洞的两大类别
1.设计漏洞
设计漏洞是一种设计错误,往往发现于软件的安全功能特性中。
2.实现漏洞
安全漏洞是由软件实际编码中的安全缺陷造成的。
优秀的安全设计人员一般使用分类法、最低权限、攻击面缩减、密码技术等安全技术,将实现缺陷的影响或严重程度控制到最低程度。
分类法:使用高度的抽象和健壮的接口验证,以确保模型的正确使用。
最低权限:只授予用户或进程完成其工作所需的最少权限。
攻击面缩减:只保留那些完成软件功能绝对需要的接口,非必需接口予以取缔。