安全软件开发旨在回答以下问题:
- 什么是安全的软件?
- 可以使用什么样的安全控制来防止和减轻网络攻击?
安全软件开发有很多种定义,不同的机构给的定义不同,但是在总的来说有两点是一样的:
- 置信度
- 没有漏洞
美国国家航空航天局(NASA)将安全软件开发定义为一个系统的(systematic )、有计划的(planned)活动,确保软件流程符合所需的产品和程序标准。 虽然这是一个相当平淡的定义,但 NASA 接着将安全软件开发定义为:软件、硬件和服务中没有有意(intentional )或无意的漏洞(vulnerabilities ),并且软件的功能更接近我们的定义。
其中关键的短语有:
- justified confidence 合理的可信度
- functions as intended 和预期一样的功能
- free from exploitable vulnerabilities 没有可以被利用的漏洞
- the system operates correctly during an attack 系统能够在被攻击时正常运行
- the system limits the damage and attack can do 系统限制攻击和破坏的程度
- ensure that your system does not propagate attacks 确保系统不会传播攻击
- the system recovers as quickly as possible after an attack 被攻击后系统能够尽快上线
- your system manages updates and patches in a robust manner 系统使用可靠的方式管理更新补丁
05/08/2019