安全软件开发介绍

安全软件开发旨在回答以下问题:

  1. 什么是安全的软件?
  2. 可以使用什么样的安全控制来防止和减轻网络攻击?

安全软件开发有很多种定义,不同的机构给的定义不同,但是在总的来说有两点是一样的:

  • 置信度
  • 没有漏洞

美国国家航空航天局(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