针对应用程序的攻击如山呼海啸般涌来,比如跨站脚本攻击、暴力破解攻击和SQL注入攻击,开发安全问题引起了广泛关注。因此,开发安全顶着“不容讨价还价”的标签成为了很多企业的当务之急,而美国网络安全与基础设施安全局 (CISA)局长Jen Easterly,则在敦促科技行业担负起产品安全责任。
类似渗透测试和代码扫描这样的技术解决方案无疑有助于缓解不安全软件问题,但仅靠此类方案本身还不够。70%的企业在其软件开发生命周期(SDLC)中缺失了关键安全步骤,因而漏洞数量增长飞快。为摆脱这种困境,企业需要将自己的关注重点从发现漏洞、打补丁和修复漏洞,转变到主动确保从一开始就不交付不安全代码上来。做到这一点需要拥有远见,因而需要加强对所有软件开发相关人员的教育投入,让他们不仅能够识别关键安全原则和漏洞,还能将自己的知识应用于新的情况,更好地保护应用。
不止代码扫描
过度依赖代码扫描工具或源代码分析工具,是SDLC中安全过于后置的典型例子。在应用上线之前通过代码扫描发现漏洞是安全代码开发中的关键一环,但预防永远胜过治疗,毕竟随着时间推移,修复缺陷的成本会变得越来越高。
代码扫描工具的主要问题在于,这类工具存在大量误报的风险,最终可能导致“警报疲劳”,即开发人员会忽略任何标记出来的缺陷,最终产生虚假的安全感。此外,发现重大漏洞时,确认和修复这些不安全代码的责任可能落到开发人员的身上,他们需要知识来实际应用这些修复措施。
所以我们要加强投入,对开发人员和整个SDLC中支持开发人员的每个人进行安全编码培训和继续教育。代码扫描仍然可以发挥重要作用,但如果可以得到在安全原则和最佳实践方面有计划的培训支持,其作用会更加明显。这不仅仅是提高对关键漏洞的“认识”,还要让团队具备安全编码和预防关键漏洞的能力,将关键漏洞掐灭在进入扫描工具视野甚或投入生产之前。这么做还能够减轻开发人员肩上的负担,让他们不用承受在最后阶段修复漏洞的额外压力。我们应该“安全左移”,确保从一开始就做好安全工作。
这种方法的有效性得到了调查研究结果的支持:EMA针对软件开发专业人员的调查发现,利用代码扫描工具的公司中只有10%比没有利用这类工具的公司防止了更多漏洞,而推行持续培训的公司中超过60%都极大改善了代码安全。但事情未必是非此即彼的:EMA表示,综合采用代码扫描、代码审查和第三方持续培训是提升软件开发安全的最佳方法。
养成更安全的习惯
从根本上讲,安全编码需要成为更加持久的、根深蒂固的习惯。但如果缺乏相应的知识和教育,就很难改变行为习惯。真正促成改变,确保开发安全不可动摇,意味着需要投入开发人员和SDLC团队培训,激励他们养成更加安全的习惯。此外,需要认识到,取决于各专业人员的角色,这些安全习惯也会有所不同。
比如说,开发主管本人并不负责编写代码,所以需要研究怎么担负起开发安全应用的责任。确保安全功能被视为代码发布前必备的“救生艇”功能可能需要习惯上的改变,但这可以极大推动开发安全。对于软件开发人员自身而言,他们的安全习惯可能就是在开发过程早期接受那些重要的代码扫描或审查,但只有他们能够认识到安全编码的价值,并且掌握从一开始就尽量减少漏洞的知识,这些习惯才有意义。
如果你还没有投入开发人员教育,那就要抓紧时间着手解决这一开发安全困境了。如果我们真的想要扭转应用漏洞不断涌现的趋势,SDLC就远不止被动修复和代码扫描,还需要考虑如何增强团队能力,减轻后期负担,以及投入继续教育。
参考阅读
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...