新的防御方式在开发周期的运用

来源:互联网 发布:windows查静态路由 编辑:程序博客网 时间:2024/05/10 14:13

本篇文章版权由ECFHP所有

作者:高朗

大家好,上次我们谈到,如今的黑客攻击主要利用软件本身的安全漏洞,这些漏洞是由不良的软件架构和不安全的编码产生的。

基于这个原因,新的防御方案孕于而生:Building Security In,构建安全的代码,构建安全的软件。

构建安全的代码,构建安全的软件,说起来是很简单,但是如何做才能到呢?有没有什么捷径?

其实构建安全的软件没有捷径,软件的生命周期大致包括:需求分析、设计、代码实现、系统测试、验收测试、上线维护,如果说软件的开发生命周期是一个大圆的话,那么软件安全就是这是这个圆中心的一个小圆,时刻伴随着软件开发过程,而且软件安全的工作分布在开发过程的每一个环节。

展开来看,具体到企业的各部门之间,开发人员在开发的初期解决安全问题,当然代码进入到版本管理中的后,安全人员在集中进行安全审查,发现问题后,再交给开发人员,并指导开发人员进行修改。当阶段性版本发布后由安全测试人员进行测试和验证,保证所有的问题已经得到解决,然后发布,交于安全运维人员进行上线时刻的监测和保护。整个过程中,管理人员进行协调资源,沟通,管理。

这整个的部署实施过程就是开头给大家提到的Building Security In的理念,也就是软件安全行业提出的,SDLC/SDL的理念。

 那如果将SDLC这个理念与我们实际的开发过程具体步骤有效地结合起来呢?软件安全业界总结并提出了seven touchpoint, 七个切入点。

从软件开发的;需求分析,架构设计,到编码,测试及运维,每一个环节都有切入的工作。

如,需求分析阶段,切入安全需求分析,就是对功能需求进行评定,看这个功能是否会引发安全隐患,还有我们对此系统的安全性的需求是什么级别?

在架构设计阶段,对软件架构,和实现技术进行安全评估,找出架构和技术上的安全隐患。编码阶段,要对源代码进行安全审查,查找出源代码中存在的安全隐患,等等。

直到运维,这里每一个环节都要有一到两个安全工作需要切入。那么,这些安全工作如何在企业实施, 有没有最佳实践?从哪一个环节入手最好?良好的开端是成功的一半嘛!

第一步就是Code Review,代码审查,为什么呢? 原因有两个,一方面,代码审查比较简单,也比较有有效,可以达到立秆见影的效果,同时也有较成熟的工具可以实现,比方说Fortify的源代码扫描工具。另一方面,如果在开发软件后面的阶段或者软件交付给用户后才来处理、查找和修改程序缺陷的话,会要花费更多成本。

本篇文章版权由ECFHP所有  企业安全

原创粉丝点击