2.为什么需要软件安全开发
1)软件安全问题产泛存在
计算机安全中的首要和关键问题是软件问题。会导致安全问题的软件缺点包括实现缺陷(比如缓冲区溢出)和设计瑕疵(比如不一致的错误处理方式),这些问题已经困扰我们多年。恶意的入侵者时常利用软件的缺点来侵入到系统中。此外,与Internet相连的应用程序通常都是(也非常容易成为)被利用的目标,而不断增加的软件的复杂性和可扩展性更是火上浇油般助长了这种情形。不论如何,软件中的安全漏洞都是很常见的,并且问题还在不断地增加。
计算机系统和网络的安全性越来越受到运行在相应机器上的软件的质量和安全性的影响。与Internet相连的软件,特别是使用Web的定制应用程序,成为常见的攻击目标,据安全研究人员和学者估计,大多数弱点是由基本的缺陷类型如缓冲区溢出、注入类问题引起的, 当然,更复杂的问题,比如竞争条件和设计错误等类型的缺陷也逐渐成为影响安全的重要缺陷类型,而且这种更加复杂(也更危险)的安全问题类型也逐渐普遍和随处可见。
当前的软件开发过程一味追求进度,软件质量的管控措施缺乏或者薄马马。开发人员普遍缺乏开发安全意识和相关的技术。这些现状导致软件中的安全漏洞变得非常普遍,而且问题还在不断增加的过程中。我们必须改变处理计算机安全的方式,有效提升开发人员安全开发意识和加强开发人员的安全开发技术,强化开发过程的质量管控,以有效地解决软件安全问题,这种要求是明确而紧迫的。
软件无处不在。它使汽车开动,控制手机,使洗碗机运行,它控制高速列车的运行,城市交通系统的运转。它是银行和国家权力机构保持活力的源泉。它不时地持续运行在计算机中。认识到软件的应用多么广泛是很重要的事情。由于商业和社会活动越来越依赖于软件, 我们不得不使软件变得更完美一些。既然软件默认地通过网络连接在一起,软件安全就不再是一种奢侈,而是一种必需。