81%的开发人员表示知道软件存在缺陷
2021年5月的一份报告发现,81%的开发人员表示会在知道软件存在缺陷的情况下发布易受攻击的应用程序,76%的开发人员经历了为了权宜之计牺牲移动安全的压力。数据显示,90%的网络攻击事件与软件安全漏洞有关,作为网络安全的基础组成部分,确保软件安全愈发重要。
需要改变什么才能打破这个循环?又该如何开始行动?
软件开发职责
报告中数据表明:20%的高管经常对不安全的应用程序表示默认,而80%的管理者把责任推给了没有做好本职工作的开发者。另一方面,开发者似乎将此归咎于资源的缺乏。
关于为什么有安全漏洞的软件和应用程序要进入市场的争论是多方面的,涉及到的利益相关者主要有:
DevOps团队
软件买家
甚至CISO
每个人似乎都想推卸责任,甚至声称修补漏洞是生活中不可避免的事实。
但不论是在国外还是国内,对网络安全的重视让人们质疑依赖售后补丁的做法是否足够有效,企业在安全的开发环境中开发软件似乎更能提早预防安全漏洞的产生。
目前多条涉及网络安全及数据安全的法规要求企业机构确认软件是否安全,并检查其中的代码问题,尤其大规模引入的开源组件。对开发人员来说可能要熟悉新的工作习惯和流程,他们应该重新检查他们的开发环境,并提高应用程序开发的整体安全标准。
软件安全开发人人有责
从管理层到安全、运营、开发、项目和产品管理,软件开发流程中的每一员需要明白的第一个也是最重要的概念是,安全是每个人的责任。开发不能怪资源不足,管理不能怪开发人员没有做好他们的工作,运营不能怪工作过度,不能及时安装升级和补丁。
如果软件开发生命周期 (SDLC) 的所有参与者都没有对解决方案、环境和解决方案的整个生命周期的安全性进行关注和投入精力,那么该过程很容易失败。管理、项目和产品管理都需要确保他们为安全、运营和开发团队所需的工具投入时间、精力和资金,以确保他们拥有安全的应用程序。
当每个人对安全都有正确的心态,并且分担了应用程序安全性的责任,接下来一起看看SDLC。有一些标准、工具和指导可以使企业的DevSecOps建设更加流畅,如开发期间检测代码安全的静态代码检测工具及SCA开源成分分析工具,动态应用程序测试工具及交互式应用程序测试工具,可以帮助开发人员在整个流程中更好地发现及解决软件安全问题,良好的安全辅助工具有助于大大提高开发效率。
不可避免的打补丁
没有发现漏洞,并不意味着不存在漏洞。开发人员也很难预测每一次更新的每个安全漏洞,这就是为什么存在补丁的原因。理想情况下,将漏洞的快速响应纳入应用程序设计更稳妥。
设计向前兼容允许系统接受用于其自身更高版本或第三方组件的输入,并且能够将新版本快速投入生产,有助于在该领域响应零日漏洞或已识别的关键漏洞。
规划跨职能协作的集群过程,可以让团队为敏捷响应安全威胁做好准备。准备和预测与发布活动同时发生的安全响应可以训练团队快速识别关键资源来解决漏洞,为他们提供必要的支持,并提供快速的更新路线来解决威胁,同时进行其余的开发团队不间断地执行他们当前的活动。
安全工作并不止于此,到目前为止,我们已经为SDLC的所有参与者建立了安全心态,建立了基本的安全编码实践,并推荐了实施安全开发所需的工具,来保护自研代码及第三方代码安全,确保开发环境安全。
企业确保软件安全的最终目的,是保护用户、设备及数据的安全,在有效实施的情况下可以显著降低可能允许攻击者访问企业软件供应链的数据泄露可能。这可以通过在用户与应用程序交互时不断验证用户的网络、设备和上下文来完成。
让我们回到了网络安全的两个核心原则:系统开发安全是每个人的责任,时刻保持警惕确保软件安全,两者都需要成为公司DNA的一部分。
参读链接:
https://www.helpnetsecurity.com/2021/11/05/software-development-responsibility/