定义安全代码的重要性

开发驱动数字业务的软件、应用程序和程序的开发人员已成为许多组织的生命线。如果没有竞争性的应用程序和程序,或者没有24小时访问其网站和其他基础设施,大多数现代企业将无法(盈利)运作。
然而,这些非常相似的接触点也常常是黑客和其他恶意用户用来窃取信息、发动攻击和其他犯罪活动(如欺诈和勒索软件)的门户。
成功的攻击仍然很普遍,尽管大多数组织在网络安全方面的支出都在大幅增加,而且DevSecOps等运动正在将安全性转移到那些如今是业务命脉的开发人员身上。开发人员了解安全的重要性,并且绝大多数人都希望部署安全和高质量的代码,但软件漏洞仍在被利用。
为什么?
第二年,Secure Code WarriorThe state of developer-driven security survey, 20222021,与Evans Data Corp合作,调查了全球1200名开发人员,以了解安全编码实践的技能、认知和行为,以及它们在软件开发生命周期(SDLC)中的影响和感知相关性。
调查发现,对于什么是安全代码缺乏明确的定义或理解。事实证明,开发人员认为是安全代码,什么是安全代码事实上是
编写高质量的代码是开发社区的头等大事,这并不奇怪。但当被问及安全代码时,只有29%的人表示,优先考虑的是编写没有漏洞的代码。相反,开发人员将安全性较差、可靠性较低的实践与安全代码的创建相关联。例如,审查现有代码(37%)和依赖外部资源库获取安全代码(37%)是开发人员与安全编码相关的首要实践。重用已经被认为是安全的代码(32%)是另一种流行的选择。编写无漏洞代码的积极实践排在第六位,29%的人表示这是创建安全代码的最佳实践。
当进一步询问时,管理层缺乏时间和连贯的方法被认为是创建安全代码的最大障碍。
对现有代码的依赖是增加软件附带可利用漏洞的风险的因素之一。解决构成安全代码的内容之间的这种脱节对于开发人员创建同样安全的高质量代码是必要的。
组织可以做些什么来解决这种情况?
调查中最重要的信息之一是,开发人员社区作为一个整体,充满了关心自己工作的专业人士。作为一个群体,编写高质量的代码对他们来说至关重要。问题是,在许多情况下,他们工作的组织没有确定生产安全代码所需的最佳实践,也没有为培训投入足够的资源,也没有使他们的开发人员能够实现这些目标。
事实上,大多数开发人员表示,他们的组织甚至没有明确定义什么是安全代码。其中一个最令人担忧的例子是,28%的调查对象表示,如果在将应用程序或程序部署到生产环境中或向公众提供后,没有报告任何违规行为,那么他们的组织认为代码是安全的。
这可能不言而喻,但在当今复杂的威胁形势下,仅仅希望取得好的结果而不实际努力,可能会产生可预测的结果:甚至更多的安全漏洞。
谢天谢地,这是一种相对容易的情况,至少可以开始解决问题,然后开始朝着安全代码的目标努力。第一步,也可以说是最重要的一步,是让组织定义他们认为安全的代码。所有超出该定义的内容都需要被视为不安全。
安全编码应定义为从SDLC开始,熟练的开发人员编写没有漏洞的代码的实践。只有定义了这种实践,开发人员社区才能朝着这个目标努力。
实现安全代码的目标
一旦确定了安全代码的定义,各组织就需要准备好支持这些工作及其开发人员,他们将实现实现全面安全代码实践的目标。这种支持至关重要。如果没有它,您的组织中的安全代码定义虽然很重要,但只不过是纸老虎。安全编码实践必须得到管理层的认可,并给予适当的考虑、授权和预算,才能成功。
这可能需要为开发人员制定新的基准目标,而开发人员传统上是根据其编码速度来衡量的。事实上,调查中有37%的开发人员报告称,他们在代码中留下了已知的漏洞,因为时间紧迫,无法从一开始就修复这些漏洞或正确编写代码。
起初,这可能意味着增加最后期限,让开发人员有更多的时间进行正确的编码,尽管由于对程序修订、补丁和部署后工作的需求较少,编码过程开始时的时间开销可能会在以后得到弥补。而消除一个部署的漏洞的可能性最终可以节省数百个小时,甚至可能数百万的收入损失、罚款和清理成本。
开发人员还需要相关的实际操作培训,尤其是与他们可能遇到的特定漏洞相关的培训,并帮助学习如何识别和修复代码漏洞。尤其是在36%的受访者表示他们想从代码中删除漏洞,但不具备这样做的技能或知识的情况下,情况更是如此。
想阅读安全代码斗士对全球1200名开发人员的调查中获得的更多见解吗?您可以在此处访问它们:开发者驱动安全状态2022