在《DevSecOps中的漏洞管理(上)》中讨论了什么是漏洞管理,在讨论DevSecOps及DevOps模型中包含安全性的重要性时,建立有效的漏洞管理实践是非常重要的。这可以通过将漏洞管理设置为程序来实现。
我们可以开始对IT组织进行漏洞管理评估。人们经常问的问题可能是,既然已经建立了一些补救机制,为什么还需要进行评估。但拥有这些类型的评估以跟上安全和漏洞修复的行业标准是极其重要的。以下就是需要进行漏洞管理评估并跟上行业安全标准的原因之一。
在典型的IT组织中,我们用于软件开发的项目中,只有20%-25%的自定义代码。我们将使用所有工具进行不同类型的代码扫描,并确保修复漏洞。然而,其余的代码将来自开源模块和库。我们检查出的框架和库将继承下面的更多框架和库,我们可能不知道这些代码有多干净。这些代码不是内部编写的,我们不知道它为成功运行所做的一些调用;另一方面,我们有包含包和元数据的容器。如果没有以正确的方式进行配置,作为代码的基础设施可能会为漏洞开辟多种途径。
因此,正确实施DevSecOps可以首先缓解漏洞,而正确的漏洞管理可以补救开放的漏洞。
通过漏洞管理实践实现高效应用程序安全的步骤,直到操作成熟:
1.漏洞管理评估
评估对于了解IT组织的环境非常重要。这将使我们能够优先考虑避免风险的漏洞类型——分析漏洞风险并关注紧急情况。我们可以定义、识别和监控已知或新出现的漏洞的端点。
2.身份和访问管理
需要高效的IAM(Identity and Access Management,身份识别与访问管理)来主动防止漏洞的打开。IAM是组织中需要放置安全层时内部网络和外部网络之间的网关。利用适当的身份验证技术,如多因素身份验证(MFA,Multifactor Authentication)、Sigle Sign-On(SSO,Sigle Sign-On)和基于风险的身份验证(RBA,Risk-based authentication)。
- IAM的优势如下:
- 确保数据机密性
- 数据安全
- 阻止恶意软件攻击
- 将组织门户仅限于所需的各方
3.SAST 和 DAST扫描
SAST: 静态应用程序安全测试分析程序源代码,以识别安全漏洞。SAST方法指导开发人员在早期开发阶段开始测试他们的应用程序,而不执行功能组件。这种方法可以尽早发现应用程序源代码的安全缺陷,避免将安全问题留给后期的开发阶段。这减少了开发时间并增强了整个程序的安全性。
DAST: 动态应用程序安全测试实时扫描软件应用程序,查找主要漏洞来源,发现安全漏洞或开放漏洞。DAST测试正在运行的应用程序,但不能访问其源代码。DAST是一种封闭盒测试形式,可以刺激外部攻击者的视角。它假设测试人员不知道应用程序的内部功能。它可以检测SAST无法检测的安全漏洞,例如仅在程序运行时出现的漏洞。
因为DAST测试需要一个完整的工作应用程序,所以将它们保留到应用程序开发过程的后期阶段。测试人员需要与应用程序交互:提供输入、检查输出,并模拟用户交互的其他典型操作。
4.有效配置管理数据库(CMDB,Configuration Management Database)
保持最新的配置管理数据库是成功的漏洞程序极为重要的方面。理解组织的软件资产和配置管理过程是关键。配置发现工具,以更透明地洞察软件配置。更新CMDB并将配置项映射到服务和应用程序。
结论
在拥有高节奏的开发环境和具有自动化管道的IT运营团队的组织中,实现有效的漏洞管理非常重要。考虑到目前的行业形势,预防安全漏洞和网络攻击如呼吸一般重要。这可以通过在软件开发生命周期的早期和所有阶段引入安全方面并及时修复漏洞来实现。