今年,GitLab对DevSecOps专业人士的年度调查发现了一些与组织文化相关的问题,这些问题可能会阻碍工程团队和安全团队之间的更深层次协调。
大多数(58%)的安全受访者表示,他们很难让开发部门优先修复漏洞,52%的人表示,繁文缛节往往会减慢他们快速修复漏洞的努力。
此外,安全受访者指出了与他们的工作相关的几个具体挫折,包括难以理解安全发现、过多的误报以及在软件开发过程的后期进行测试。
DevSecOps承诺将工程和安全更好地结合起来,但显然挫折和错位仍然存在。这是因为这些挑战是组织如何看待安全、团队如何合作以及如何分配安全时间的更大问题的症状。
漏洞扫描会暴露所有潜在漏洞。但是,软件包存在常见漏洞或暴露(CVE)并不意味着该漏洞可触及或可利用。
自经过身份验证的漏洞扫描成为常态以来,安全团队和开发人员仍在对漏洞发现进行分类和筛选,这些漏洞发现多年来呈指数级增长。
转向认证扫描在许多方面提高了安全程序的有效性,但也让开发人员陷入了无休止的修复无关紧要的问题的循环中。
当团队将精力浪费在无法解决可利用漏洞的补丁上时,他们就无法完成更重要的任务,例如修补易受攻击和可利用的漏洞。这就是当今安全团队和工程团队之间分歧的根源。
那么,组织如何解决这些问题的根本原因,并促进工程与安全之间的更好融合?
以下是从源头上预防常见安全问题的三种方法。
1. 消除噪音,专注于可操作的高保真信号
在调查中,安全受访者认为误报过多是第二大令人沮丧的问题。误报显然是一个挑战,但它们往往是伪装的漏洞管理问题。
如果组织发现许多误报,这可能表明他们没有尽一切努力确保其安全发现具有高保真度。
组织应该将安全工作的重点缩小到重要的事情上。这意味着传统的静态应用程序安全测试(SAST)解决方案可能不够用。
SAST是一种强大的工具,但如果结果难以管理或缺乏适当的背景,则会失去其大部分价值。
为了使SAST发挥最大作用,它必须与其他安全和开发工具无缝结合使用,并可供开发人员使用。
另一个问题是,大多数扫描工具对于理解漏洞发现的上下文窗口非常狭窄。
这是人工智能可以通过人工智能驱动的功能来解释安全漏洞的领域之一。
2. 最小化技术堆栈,最小化攻击面
专注于重要的事情不仅适用于安全测试——它应该首先从组织如何构建软件开始。
尽管人工智能有望帮助简化软件开发流程,但调查显示,许多组织还有很长的路要走。
事实上,使用人工智能的受访者比不使用人工智能的受访者更有可能整合他们的工具链。
这表明运行不同人工智能模型的不同点解决方案的激增可能会增加复杂性,而不是减少复杂性。
组织技术堆栈的复杂性不断增加是导致安全问题的主要原因。
在构建大型、多方面的软件系统时,某些复杂性是不可避免的。
但是,组织应采取措施避免由次优设计决策导致的复杂性,例如难以维护的代码和冗余依赖关系。
这种不必要的复杂性会造成更大的攻击面,并产生更多的安全扫描结果,需要团队进行分类、优先处理和解决。
组织应从软件最小化的角度来处理开发问题,即刻意选择所采用的工具以及决定在代码库中构建哪些内容。
这将有助于最大限度地减少依赖性、提高软件供应链的安全性、减少扫描仪噪音,并减轻开发人员修复非关键问题的负担。
3. 规范铺设道路
软件开发生命周期中安全测试进行得太晚是我们的调查受访者指出的另一个最令人沮丧的问题。
当团队想要发布某样东西却因为漏洞检测得太晚而被推迟时,他们可能会感到沮丧。
但在许多情况下,可能无法更早地检测到该漏洞。然而,可以实现易于部署、可重复使用的安全组件,限制变量和潜在漏洞。
通过采用基于可重复用例的经过测试和保证的设计模式,团队可以避免后期意外:“铺平道路”方法。
铺平道路是一条推荐的路径,包括一组精心挑选的工具、流程和组件,团队可以遵循这些路径更有效地构建安全的应用程序。
例如,使用GitOps对经过良好架构和测试的基础设施即代码进行版本控制和部署,该代码可针对所有工作负载进行大规模部署。
采用铺设道路可能会减少一些灵活性,但最终会减少工程团队的运营负担和返工,并提高安全性。这需要安全部门和开发部门的共同努力。
安全部门可以帮助设计铺设道路,但工程部门必须参与其中,才能将其作为代码库的一部分进行运营和维护。
安全是一个领域,而不是一个团队
我们已经看到安全实践正在向工程团队转变,我们可以预期两者之间的界限将继续模糊。
然而,随着人工智能的快速普及和软件开发的相应加速;66%的受访者表示,他们发布软件的速度是去年的两倍甚至更快。
对于组织来说,建立优化的系统和框架以实现最大的安全效益至关重要。
这就是为什么开发和安全之间存在文化脱节的想法并不是全部。
培养协作文化至关重要,但安全和工程团队也必须共同努力,重新思考软件开发的基础方面。
例如优化现有代码库和构建可扩展的以工程为中心的解决方案,以便整个组织的技术团队无缝采用。