随着网络威胁日益猖獗和复杂,网络安全的焦点正集中在安全代码的重要性上。白宫的《国家网络安全战略》、网络安全和基础设施安全局(CISA)的 "按设计保证安全"(Secure-by-Design)倡议,以及其他国家的倡议和立法,将安全责任完全推到了软件生产商的肩上。在软件开发生命周期(SDLC)的早期确保安全,曾经被认为是一件很好的事情,但现在对于企业保护其数据和系统并避免发生漏洞后的监管后果至关重要。
确保安全编码实践的关键在于开发人员的培训。软件工程师通常很少或根本没有接受过网络安全教育。他们的工作,尤其是在当今加速的 DevOps 环境中,一直是尽快开发出新的应用程序、升级和服务,而且越来越多地借助快速工作的生成式人工智能模型,让安全团队在 SDLC 的后期阶段解决网络安全问题。这种方法无法有效解决大量代码产生的缺陷,往往会导致软件漏洞被释放到生态系统中。
开发人员需要从一开始就接受编写安全代码的培训,并能够捕捉人工智能生成的不安全代码,或者当这些代码出现在他们使用的开源软件和其他第三方软件中时。对于许多开发团队和组织来说,这是一个尚未涉足的领域。他们如何知道开发人员正在接受所需的培训?培训是否定期进行?
一些开展开发人员教育的公司发现,为开发人员建立一套技能基准并根据明确定义的基准来衡量他们的进展是有益的。为了帮助实现这一目标,Secure Code Warrior 推出了一项基准,旨在准确衡量开发人员在安全培训方面的进展。SCW Trust Score使企业能够衡量培训在工作中的应用情况,并使安全、开发人员和工程团队能够进行协作。
这种方法既能证明安全代码培训已初见成效,又能找出需要改进的地方。
安全设计的理由
软件生产商完全有理由在 SDLC 流程之初就将安全性纳入其中。事实证明,对应用程序和服务不断增长的需求以及人工智能为开发流程带来的速度对开发人员非常有用,他们很快就采用了生成式人工智能,但这也不可避免地导致漏洞百出的软件被发布到管道中。生成的代码越多,缺陷也就越多--最近的研究发现,近四分之三的应用程序(无论其创建方式如何)至少包含一个安全漏洞,其中近 20% 被认为是关键漏洞。
在软件开发流程(SDLC)的后期弥补漏洞变得既耗时又昂贵,令人望而却步。美国国家标准与技术研究院(NIST)发现,在测试过程中修复缺陷所需的时间是在 SDLC 开始阶段确保软件安全所需的时间的 15 倍,而在部署/维护阶段修复缺陷所需的时间则要长 30 到 100 倍。
所有这些都强调了在开发周期开始时应用安全的重要性,事实证明,这不仅是降低风险的最有效方法,也是最具成本效益的方法。开发人员与安全团队合作,而不是让他们作为单独的实体运作,是将安全引入 SDLC 开始阶段的最佳人选。接受过安全最佳实践培训的开发人员能有效减少漏洞。问题是,接受过培训的开发人员少之又少。
基准之美
公司的基本途径包括建立安全技能基线、提供培训,以及向组织和监管机构证实开发人员已掌握必要的技能。事实证明,这对所有经济部门的许多组织来说都具有挑战性,但其实大可不必如此。
安全领导者面临的挑战之一,是在整个企业中推广培训计划的难度。但 SCW 的研究表明,企业,尤其是那些拥有大量开发人员的企业,可以成功实施安全设计方法。规模较小的企业在应用安全设计原则的程度上往往差异很大。不过,它们也能从包含信任分数的方法中获益,而且可能会更快地显示出改进效果。
Trust Score 使用基准指标来衡量每个学员的进步,汇总他们的分数来评估整个团队的表现,并将组织的进步与行业基准和最佳实践进行比较。它不仅能跟踪培训情况,还能显示开发人员日常应用新技能的情况。它还能突出需要改进的方面,使企业能够优化其培训/技能提升计划。
在 CISA 有数据可查的关键基础设施领域中,大多数组织在实施安全设计原则方面的水平大致相同。从金融服务和国防工业基地到医疗保健、IT 和关键制造等行业的信任度得分都在同一范围内--在 1000 分的评分标准中略高于 300 分。尽管传统观点认为,作为监管最严格的行业,金融服务业将遥遥领先,但没有一个行业超过其他行业。
未纳入信任度排名的关键基础设施部门,如化工、能源和核运营部门,一般不会创建自己的软件,而是依赖于其他部门,尤其是 IT 部门。然而,在这些部门内维护安全系统的重要性(没有人愿意看到核电站被入侵)只能说明,首先确保这些部门所使用软件的安全是多么重要。
总结
监管压力的增加和网络威胁形势的现实,使得那些希望保护其数据、系统、业务运营和声誉的企业必须采用 "按设计确保安全 "的方法。在很大程度上,创建安全软件的工作掌握在开发人员的手中,但他们需要得到全面的技能提升和培训计划的帮助,以提供他们所需的教育,并展示如何应用这些教育。
一个包含基准的计划,在信任分数等工具的支持下,可以清楚地了解开发团队的关键进展。这是一种重要的新方法,开发人员和他们为之工作的公司都需要这种方法,以确保他们不断提高安全软件开发技能,同时满足新的设计安全要求。