近日,根据根据WhiteHat Security的一项新研究,在制造业、公共服务、医疗保健、零售、教育和公用事业等行业中使用的应用程序中,至少有50%包含一个或多个严重的可利用漏洞。
而根据AppSec Stats Flash 今年启动的应用安全调查报告,制造业的应用安全“暴露窗口”风险最大,该行业近70%的应用程序至少具有一个严重的可利用漏洞。
WhiteHat在过去三个月中记录的前五大类漏洞分别是信息泄漏、会话到期、跨站点脚本、传输层保护不足和内容欺骗。报告的作者指出:“发现和利用上述漏洞所需的工作和技能门槛很低,很容易受到攻击。”
与此同时,行业用户缓解关键漏洞的平均时间偏长。报告发现,所有行业的平均漏洞缓解时间为189天。不过令人欣慰的是,过去12个月的平均天数呈下降趋势(同比减少了5天)。漏洞缓解表现最糟糕的三个行业——教育、公共管理和房地产,缓解关键漏洞平均用时都超过了一年之久。
应用安全人才需求激增
应用程序开发安全已经成为网络安全未来发展的关键所在。一项最新的行业研究表明,开发安全已经成为增长最快的网络安全技能。预计未来五年开发安全技能的需求将增长164%。五年内,开发安全人才的职位缺口将从2020年的29635人扩大到48601人。
上述调查发现提出了重要的问题:什么是应用程序开发安全性?是什么在推动“安全左移”和开发安全需求的快速增长?
什么是应用开发安全
首先,开发安全是通过查找和修复漏洞来增强应用程序的防御能力。顾名思义,此过程通常发生在应用程序投入生产环境之前的开发阶段。但也可能在所有者部署了这些应用程序之后发生。
测试应用程序开发安全性的方法有很多,统称为应用程序安全性测试(AST),主要有以下三大类:
根据Verocode发布的《2020年软件安全现状报告》,结合使用多种扫描类型(包括静态分析(SAST)、动态分析(DAST)和软件组成分析(SCA))的团队可以提高修复率。那些同时使用SAST和DAST的人可以把漏洞修复工作缩短24天。而在SDLC中进行自动化安全测试比非自动化测试发现半数漏洞的速度要快17.5天。
总之,用于软件安全测试的(自动化)工具需要与研发团队现有的研发流程和安全实践匹配融合,并具备与研发管理平台融合的能力。
为什么需要应用程序开发安全性?
对应用程序开发安全性的需求不断增长反映了两个持续的趋势。
没有开发安全就没有业务安全
软件漏洞对企业构成重大威胁。弱的服务器端控制、不安全的数据存储、破解的密码以及其他问题为外部攻击者窃取信息打开了方便之门。潜在的客户可能会因为应用程序开发安全性问题而选择不与容易遭受数据泄露的实体打交道。
最后,客户和业务合作伙伴可能比监管部门和消费者更加关注供应链合作方的应用开发安全问题。企业应当在遭受攻击之前就告诉客户,他们使用了哪些应用程序和工具来编写安全代码。在某些情况下,客户对开发安全施加对压力比监管机构和合规审计员更大。这表明开发安全已成为一种关键的业务方法,企业可以通过这种方法与客户一起开展业务,同时保持保持紧密互信的伙伴关系,而不是数据泄露事件披露之后。
开发人员的最佳做法
正如工作场所所需的安全防御技能始终在变化一样,开发安全的技能本身也在变化。开发人员工具链内置的软件组件分析工具以及有限的防御测试, 可能会在未来几年内取代旧的AST方法。行业专家预测,到2022年,自动化解决方案将能够修复SAST工具发现的10%的漏洞。
这些预测揭示了应用程序开发安全发展方向的趋势。但是,这些趋势与当下开发人员的安全开发最佳实践并不冲突。例如,开发人员应当意识到,他们几乎不需要从头开始编写自己的代码。他们不能寄希望于“右侧的”安全防护。相反,开发人员可以使用安全框架来推动其代码开发流程,他们还应确保使用的是最新版本的第三方代码或库。
开发人员还应该注重团队合作的力量,与安全架构师和运营团队通力合作实施威胁建模。此过程不仅有助于发现和分类潜在威胁,还可以促进沟通和相互理解,这是建设DevSecOps文化的基础工作。