什么是漏洞管理?
漏洞管理是一项持续性计划,依靠各种技术和实践来识别漏洞(尤其是网络暴露风险)并及时补救,以确保组织基础设施和资源的安全。漏洞管理的目标是建立系统化流程,无论漏洞出现在哪里,都能发现并减少漏洞。
除了保护传统网络,漏洞管理对于识别和预防整个应用生命周期的漏洞也不可或缺。这包括将漏洞管理整合到 CI 流程 中,同时持续监控 云原生环境 中的所有主机、镜像和功能,以识别、优先处理和降低风险。
在这方面,漏洞管理为健康的网络安全策略奠定了基础,确保安全小组能够在漏洞导致系统入侵、 数据泄露 或其他不利的安全事件之前,可靠地发现并修复漏洞。
图 1:一旦检测到漏洞,就需要对其进行背景分析,以确定其潜在影响、来源及其影响的资产。
漏洞管理详解
网络设备、服务器、存储系统、工作站、传统应用程序、虚拟机、 容器、云应用程序、 微服务、数据库、应用程序接口、云基础设施服务、云平台服务、安全配置--这些似乎不胜枚举。随着敏捷方法的日益盛行和云服务拓宽了 IT 环境,漏洞管理也变得越来越复杂。与传统的 IT 环境一样, 云工作负载 的漏洞管理是一个持续、多方面的过程,涉及安全漏洞的识别、评估、优先级排序和缓解,以确保 敏感数据的保护、保持 云的合规性并降低网络攻击的风险。
这一过程首先要维护最新的资产清单,并采用漏洞扫描来发现云资源中的潜在威胁。然后根据漏洞的严重性和影响进行评估,从而确定补救工作的优先次序。补丁和配置管理可解决软件漏洞和配置错误问题,而持续监控和事件响应可确保快速检测和遏制新出现的威胁。最后,报告和审计活动提供了可见性和问责制,确保了漏洞管理计划的有效性和合规性。
了解薄弱环节、威胁和风险
要了解漏洞为何重要以及它们如何影响您的业务,您必须了解漏洞、威胁和风险之间的关系。
漏洞是指 IT 系统中存在的任何缺陷、弱点、配置错误或疏忽,攻击者可利用这些漏洞控制该系统、从系统中窃取数据、扰乱系统运行或以其他方式对企业造成危害。
这意味着,漏洞为网络威胁的实施创造了机会。威胁是指任何试图--并可能--实施某种网络攻击的实体。然而,要实施网络攻击,威胁需要找到可以利用的漏洞。
当漏洞存在,威胁又主动寻求利用它时,组织就会面临风险。
因此,漏洞使威胁成为实际风险成为可能。没有漏洞,威胁--比如黑客为了经济利益想从组织中窃取敏感数据,或者国家支持的威胁参与者出于地缘政治目的试图破坏关键系统--仍然可能存在。然而,只有当漏洞存在时,才会存在威胁被实际利用的风险。
云漏洞管理为何具有挑战性
对于任何类型的工作负载来说,漏洞管理都不简单,但在处理云工作负载时,检测和缓解漏洞尤其具有挑战性。
云服务复杂多样
云工作负载可能会有巨大的差异。它们可能包括虚拟机、容器、无服务器功能、 协调服务或以上所有功能。每种类型的云工作负载都可能存在不同类型的漏洞,因此您需要一种能够根据工作负载上下文识别不同威胁的漏洞管理策略。
云在不断变化
与大多数本地部署环境相比,云环境通常是动态的。随着工作负载的大规模增减、用户的增减、应用程序的更新等,配置也会不断变化。因此,持续监控漏洞的能力至关重要。
云风险的范围各不相同
并非所有的漏洞都是一样的。与那些只能在罕见配置下利用的漏洞相比,有些漏洞(如可远程执行代码的漏洞)风险更大。你需要知道哪些是严重性的,这样才能先解决它们。
漏洞管理与补丁管理
在某些方面,漏洞管理流程类似于 IT 组织几十年来一直采用的其他安全流程,如补丁管理。与漏洞管理一样,补丁管理涉及在潜在的安全风险(即攻击者可能利用的未打补丁软件)变成实际问题之前,系统地发现它们并作出反应。
但漏洞管理流程并不局限于补丁管理。
- 未打补丁的软件是将漏洞引入 IT 环境的一种方式,但并不是唯一的方式。漏洞管理还能解决其他漏洞入口,如不安全的配置。
- 补丁管理通常涉及定期安装软件补丁,而漏洞管理则是一个持续的过程。你不会,也不应该每周甚至每天只扫描一次漏洞。相反,您应该持续扫描,这样无论何时何地出现漏洞,您都能实时发现并作出反应。
- 漏洞管理流程不仅适用于可以打补丁的资产(如应用程序),还适用于云服务、基础设施和 IT 团队通常无法在传统意义上打补丁的其他类型资源。
常见漏洞和暴露(CVE)概述
当安全研究人员在公开使用的软件中发现漏洞时,他们通常会将其报告给通用漏洞和暴露(CVE)数据库。CVE 数据库是已知漏洞的列表。它们包括漏洞的起因、利用方式、严重性以及如何修补或更新系统以缓解漏洞等详细信息。
大多数 CVE 数据库使用通用漏洞评分系统(CVSS)来定义这些信息,该系统是一个开放式框架,用于共享有关漏洞及其严重性的详细信息。通过提供可访问的漏洞数据,CVE 和 CVSS 提供了一个关键数据,组织可以利用它来确定哪些漏洞会影响其使用的系统或软件。此外,它还能告诉团队这些漏洞的严重程度,以及是否可以根据企业使用的特定配置利用这些漏洞。
国家漏洞数据库 和 MITRE CVE 数据库 是最流行的公共 CVE 数据库。不过,组织也可以维护私有的或增强的 CVE 数据,作为威胁情报产品的一部分提供给其他组织。
图 2:CVE 识别过程
CVE 的一个重要局限是,它们通常只列出影响公开软件(如开源应用程序)的威胁。主要原因是,任何人都可以检查公共软件并发现其中的潜在漏洞。组织保留给内部使用的软件更难让第三方研究人员进行研究。因此,软件中的漏洞不一定会在 CVE 数据库中被发现或披露。
这意味着,千万不要因为 CVE 数据库中没有已知漏洞的记录,就认为应用程序不存在漏洞。漏洞总是有可能存在的--威胁参与者也知道--只是尚未报告而已。
但如上所述,安全漏洞有多种形式。
验证失败
软件内无效的 访问控制 流程或配置可能会允许恶意行为者访问软件或将权限升级到用户权限之外。
SQL 注入
SQL 注入漏洞允许攻击者向数据库注入恶意查询,从而操纵数据或从中外泄信息。SQL 注入漏洞通常是由于与数据库连接的应用程序缺乏适当的输入验证而造成的。
跨站点脚本
跨站点脚本漏洞允许攻击者运行恶意脚本。这种类型的漏洞最常影响那些包含拙劣 Javascript 代码的网站。如果攻击者发现了有漏洞的代码,他们就可以诱使网站运行他们选择的脚本,从而有可能让他们访问连接到网站的端点上的资源。
跨站请求伪造
攻击者可利用跨站请求伪造漏洞,向用户当前已通过身份验证的网站或应用程序注入恶意代码。它们与跨站点脚本漏洞类似,主要区别在于跨站点请求伪造漏洞的核心是冒充认证用户执行恶意操作,而不是通过不安全的 Javascript 执行恶意代码。
安全配置错误
任何类型的安全配置错误或疏忽都可能引发漏洞。例如,由于防火墙配置错误,管理员可能无意中通过互联网访问了敏感数据,或者在配置新的应用程序部署时忘记要求进行多因素身份验证。
漏洞管理与漏洞评估
漏洞管理是 IT 组织用来识别和应对漏洞的策略。但是,当发现个别漏洞时,他们会使用一种称为漏洞评估的程序来了解漏洞所带来的风险程度,并帮助确定如何补救。
漏洞评估之所以重要,是因为并非所有漏洞都会带来相同程度的风险。例如,一般来说,只能由可直接实际访问易受攻击系统的攻击者利用的漏洞,比可通过网络利用的漏洞带来的风险要小,因为通过网络进行操作的威胁参与者的数量通常比可实际访问 IT 资产的威胁参与者的数量要多得多。
此外,在某些情况下,只有在特定配置或环境下才能利用漏洞。例如,如果应用程序托管在 Windows 服务器上,但不托管在 Linux 服务器上,那么应用程序中的漏洞就可能被利用,反之亦然。
基于诸如此类的因素,漏洞评估可以让组织确定每个漏洞对其造成的具体风险程度。然后,他们就可以优先应对最严重性的漏洞,将整体风险水平降到最低。
建立漏洞管理框架
尽管漏洞管理计划需要根据所服务组织的独特要求量身定制,但 Gartner 提供了一个漏洞管理指导框架,为开始进行漏洞管理提供了一个有用的起点。
Gartner 框架 的主要组成部分包括
- 确定计划的范围:企业在开始实施漏洞管理策略时,首先要确定需要处理多少 IT 资产和漏洞类型。
- 确定角色和责任:确定谁在什么时候做什么是漏洞管理的一个重要组成部分。从 IT 工程师等一线员工到 CISO 和首席技术官,每个人都要在发现、报告和管理漏洞方面发挥作用。
- 选择脆弱性评估工具:企业必须决定使用哪些工具来查找和评估漏洞,以及如何将漏洞修复纳入工作流程和工具。
- 创建并完善政策 SLA:服务水平协议决定了组织对漏洞做出反应的速度,也决定了他们可以容忍哪种程度的活动漏洞。服务水平协议是一种特别重要的资源,可根据业务情况进行调整,因为不同的组织可以承受不同程度的风险。
- 确定资产背景来源:资产上下文源可提供补充信息,如有关系统或应用程序在业务中的作用的数据,这对于评估漏洞及其严重性至关重要。
通过满足上述每一项要求,组织可以建立漏洞管理计划,使其有能力在所有相关系统中发现漏洞并作出反应。
漏洞管理的四个关键步骤
在全面实施时,有效的漏洞管理计划应能让企业在漏洞管理流程中执行以下每个步骤。
识别薄弱环节
你无法修复你看不到的东西。查找漏洞涉及扫描组织内的所有 IT 资产,并确定它们(或其中的任何组件)是否存在漏洞。CVE 数据库是实现这一目的的重要资源,尽管公开的 CVE 列表并不是每个漏洞都有详细说明。
评估薄弱环节
发现漏洞后,必须对每个漏洞进行评估,以确定其对企业造成的风险程度。在某些情况下,可能需要人工进行漏洞评估,但漏洞管理工具可以自动确定每个漏洞的严重性,并评估该漏洞在企业环境中被利用的可能性,从而加快评估过程。
处理漏洞
处理脆弱性的方法主要有三种:
- 补救措施:补救涉及彻底消除漏洞,通常是通过更新或修补受影响的资产,使漏洞不再存在。
- 减轻影响:缓解措施使组织能够最大限度地降低漏洞被利用的风险,或减少漏洞可能造成的潜在危害。在补救不可能或不可行的情况下,缓解是一种很好的策略。例如,如果因为没有补丁程序而无法更新存在漏洞的传统应用程序,您仍然可以通过更改应用程序的配置来缓解漏洞。
- 接受:在某些情况下,IT 组织可能会认为漏洞不够严重,不值得进行修复或缓解。在这种情况下,他们只需接受漏洞。
报告漏洞
漏洞报告是向外部利益相关者披露漏洞的过程。这通常涉及向公共 CVE 数据库提交漏洞报告,但组织也可能根据合规性任务或合同协议的要求,直接向监管机构、客户或合作伙伴报告漏洞。无论哪种方式,报告的目的都是分享有关存在哪些漏洞、造成漏洞的原因以及如何修复漏洞的信息,以便其他人能够在漏洞被利用之前对其做出反应。
改进您的漏洞管理计划
制定了漏洞管理计划并不意味着您可以不再担心漏洞问题,转而关注其他问题。相反,漏洞管理应受益于持续改进的策略,即 IT 组织持续寻找改进漏洞管理策略的方法。
脆弱性管理计划改进的常见例子包括
- 更广泛地利用自动化技术,提高漏洞管理的效率和一致性。
- 将更多系统或应用程序纳入漏洞管理范围,以提高覆盖面的全面性。
- 在评估脆弱性时,利用更多的脆弱性数据库和/或资产背景来源来增加可用数据。
- 部署新的或增强的漏洞管理工具,以检测以前的系统无法支持的漏洞类型。
诸如此类的步骤使组织能够更有效、更高效地进行漏洞管理,使其更接近于确保实时检测和修复所有漏洞的目标,无论这些漏洞包含什么内容,也无论它们存在于何处。
管理云工作负载漏洞的最佳实践
要确保在云漏洞演变成严重威胁之前就能捕捉到并修复所有云漏洞,并没有什么简单的诀窍。不过,以下策略可以帮助您降低遭受与云有关的严重网络攻击的风险。
将漏洞扫描纳入 CI 流程
在开发生命周期中,越早发现漏洞,它们在生产环境中导致漏洞的风险就越低。
因此,应将漏洞扫描整合到您的 CI 流程中。与其等到工作负载进入生产环境后再进行扫描,不如在开发和暂存环境中扫描主机、容器、无服务器功能和其他资源。即使您的配置在开发/暂存和生产之间发生变化,在部署前监控漏洞仍能最大限度地防止漏洞潜入生产环境。
在生产中保持扫描
当然,在工作负载部署到生产环境后,您还应该执行持续的漏洞监控。再多的部署前扫描也无法替代对生产工作负载风险的检查。
扫描云环境的所有层面
典型的云工作负载包括多层配置。它们中的每一个都可能存在漏洞。
例如,如果您部署容器,容器映像中就可能存在漏洞。在容器编排器中配置的 RBAC 策略中也可能存在漏洞。除此之外,使用云提供商的 IAM 框架配置的策略可能会给容器化工作负载带来风险。
因此,扫描云工作负载的所有层面至关重要。只要存在数据,就可能存在漏洞。
使用 CVE 获取漏洞背景信息
如上所述,有些漏洞比其他漏洞更严重性。但哪些需要立即关注并不总是显而易见的。
尽管如此,要使漏洞警报尽可能具有可操作性,就需要了解每个漏洞的严重性级别。您可以使用 "常见漏洞和暴露"(CVE)数据库来完成这项工作,该数据库列出了已知的漏洞,并根据它们所造成的风险程度进行 "评分"。
通过将漏洞检测与 CVE 数据相结合,您可以获得有关云工作负载风险的上下文化、可操作的见解。
漏洞管理常见问题
- 网络漏洞涉及网络基础设施、协议或配置中的薄弱环节,使攻击者能够拦截、修改或破坏数据传输。
- 操作系统漏洞是指操作系统或其组件中存在的缺陷,利用这些缺陷可以获得未经授权的访问权限、提升权限或执行恶意代码。
- 人为漏洞源于人为失误或恶意行为,如陷入网络钓鱼攻击、弱密码或内部威胁。
- 应用程序漏洞源于不安全的编码实践和配置错误。
- 流程漏洞源于安全政策、程序或合规性控制不足,导致保护出现漏洞,增加了安全漏洞的风险。
脆弱性管理面临的挑战包括
- 不断出现的新漏洞
- 用于解决已查明漏洞的资源有限
- 确定补救工作的优先次序
- 确保及时打补丁和更新配置
- 在复杂多变的 IT 环境中保持可见性
- 克服人为因素,如抵制变革或缺乏意识。
此外,组织必须跟上行业法规和合规性要求,这又给漏洞管理流程增加了一层复杂性。