漏洞界二八定律,过去20多年来的绝大多数安全事件都是头部那10个软件漏洞造成的。然而,很多企业仍然选择事后补救,得过且过地承受安全事件造成的人员和业务后果。不过,当前一项新的研究为我们指明了由人主导的新方向。
以下讨论见解源于Secure Code Warrior与Evans DataCorp进行的一项研究,题为《从响应转向预防:转变中的应用安全》,旨在探索开发人员对于安全编码、安全代码实践和安全操作的态度。
研究中,开发人员和开发经理被问及他们最常用的安全编码实践。以下三种方法最为突出:
- 在部署之后扫描应用,找出异常或漏洞
- 仔细审查编写的代码,检查是否存在异常或漏洞
- 重用之前通过审查确认安全的代码
开发人员仍将安全代码实践视为主动式操作,但逐渐开始承认这是个重点在从左侧开始的人的问题。
我们能从研究结果中看出什么呢?三大常见安全编码实践中有两种都依然重在响应式方法,第一种依赖工具(扫描器),第二种依赖开发人员(即人的因素)执行人工检查:两种情况都是在代码已经写好之后。采用这些方法检测到的漏洞都得踢回开发团队返工,对项目时间线和项目成本产生连锁反应。
排第三的常见安全编码实践则是认识到了主动编写安全代码,在第一时间避免漏洞的好处。这一操作凸显了向从左开始的转变,这种预防性的主动式方法在软件开发周期伊始就将安全内置到软件中了。
响应式就是昂贵的代名词
IBM的研究表明,修复已发布代码中的漏洞比在一开始就发现并修复漏洞要多贵30倍。巨大的价差有力刺激了业界采用更注重人的主动式软件安全防御方法,开发人员可以使用这种方法从一开始就编写更加安全的代码。
这就是所谓由人主导的防御。但要令开发人员开始关注安全,安全就必须成为他们日常思考和编程的一部分。这需要拿出与开发人员的日常工作高度相关的新型培训方法,激励他们主动学习,而当前培训模式与开发人员的日常工作相关度不高,且无法促使他们主动学习。
为创建主动安全文化,新型培训模式应当:
- 让安全编码成为开发人员提升软件安全技能过程中极具吸引力的积极体验
- 鼓励开发人员用安全思维审视自己的日常编码工作
- 使安全编码成为开发人员日常工作流程的固有特质
做到以上几点,可以从一开始就防止漏洞出现,让团队能够信心满满地快速拿出品质代码。阅读完整报告可以了解转变中的软件安全,获悉关于企业如何阻止漏洞反复出现,并在整个SDLC中体验安全文化积极转变的分析与建议。学习怎样:
- 确保从SDLC一开始就考虑安全因素
- 采取由人主导的方法安全编码
- 杜绝不良编码实践,收获良好结果