利用 AI 进行漏洞管理

高级 AI 模型改变了安全团队和攻击者发现漏洞的速度和规模。AI 可以在几分钟内发现漏洞,攻击者可以比以往更快地利用这些漏洞。

Google 已使用 AI 转变了漏洞管理方式,NaptimeBigsleep 项目就证明了这一点。我们使用 AI 来扫描、识别和修复自身基础设施中的漏洞。我们还与整个行业的合作伙伴(包括开源维护人员、芯片供应商和硬件制造商)合作,在 bug 被利用之前通过 AI 找到并修复 bug。

本文档介绍了如何采用 AI 技术来帮助您执行以下操作,从而查找和修补应用中的漏洞:

  • 制定 AI 威胁防御计划。
  • 扫描外部漏洞。
  • 确定资产和问题的优先级。
  • 修复严重漏洞。
  • 使用主动响应 playbook 进行监控。

构建 AI 威胁防御计划

AI 威胁在时间和规模上都不同于传统威胁。用于开发、测试和部署应用修复的手动流程已不再足够。您必须实施新策略,包括自动化补丁管理、持续监控、与开发流水线更紧密的集成以及软件现代化。

为了帮助您的组织改变漏洞管理方法,请考虑以下原则:

  • 漏洞管理必须包含 AI 和智能体选项。
  • 所有软件都必须进行修补。
  • 控制措施必须能够持续发现和管控影子 AI、未经授权的内部 API 集成、浏览器扩展程序和本地开发者管理的工具。
  • 组织的关键风险定义必须承认,模型可以利用攻击路径,而不仅仅是单个漏洞。
  • 贵组织必须能够在几分钟内采取补救措施。

若要制定 AI 威胁防御计划,您需要获得高管赞助,并与开发、运营、安全和业务团队的合作伙伴开展协作。在初始规划阶段,请完成以下操作:

  • 建立清晰的治理和所有权,包括明确的委员会、角色和决策流程。
  • 确定结果和关键指标(例如 SLA 遵守情况、例外情况数量和资产覆盖率),以便跟踪进度并向高层领导汇报。
  • 制定政策、服务等级协议和例外流程。

下图展示了构建有效的 AI 威胁防御计划的各个阶段。本文档的其余部分介绍了每个阶段。

AI 威胁防御计划阶段。

如需帮助您制定和实施威胁防御计划,请与 Mandiant 网络安全咨询联系。

第 1 阶段:准备

在整个代码库中部署 AI 漏洞扫描器之前,请评估资产的风险。优先考虑需要使用 AI 进行扫描的扫描类型和资产,以免使分诊流水线不堪重负。

扫描外部暴露情况

最容易受到 AI 威胁的资产是面向互联网的资产,例如:

  • Compute Engine 虚拟机
  • Cloud Run functions
  • Google Kubernetes Engine (GKE) 集群
  • 公共 Cloud Storage 存储桶

为了长期维护这些资产的完整列表,请使用 Wiz Red Agent 等产品启用持续发现功能。 持续发现是一个持续的自动化流程,可在资产创建或更改时实时扫描资产。Wiz Red Agent 可以主动扫描面向互联网的网络,以查找活跃的 Web 应用、公开的 API、自定义构建的软件,甚至振动编码的应用

找到资产后,Wiz Red Agent 可以模拟真实攻击来查找漏洞并创建攻击链。当 Wiz Red Agent 发现漏洞时,会将数据发送到 Wiz 安全图谱。借助 Wiz 安全图,您可以了解面向互联网的资产连接到哪些内部资产,从而了解外部违规行为的潜在影响。

例如,假设某位开发者为新的聊天机器人创建了一个测试环境。开发者想测试聊天机器人与实时数据的互动情况,因此使用 Cloud Run 部署了一个原型。为了简化测试,开发者允许未通过身份验证的调用,这会使原型公开。开发者将包含真实用户数据快照的临时 Cloud Storage 存储桶连接到原型。不过,开发者忘记删除其测试环境。

在此示例中,Wiz Red Agent 可以找到新的 *.run.app 子网域,并通过其持续发现功能将该资产标记为面向互联网的资产。然后,Wiz Red Agent 可以与聊天机器人原型互动,以确定聊天机器人是否已连接到 API 端点。Wiz Red Agent 会模拟各种攻击(例如提示注入攻击),以确定是否存在任何漏洞。由于开发者未设置适当的安全性,Wiz Red Agent 发现了一个漏洞,并确定该漏洞可用于横向移动到 Cloud Storage 存储桶中。 Wiz Red Agent 将数据发送到 Wiz 安全图谱,后者会将此漏洞标记为严重优先级。您的流程可以在几分钟内关闭此原型。

优先考虑用于深度代码扫描的资源

深度代码扫描会在开发者仍在编写软件时跟踪数据流和源代码,以查找结构性错误和安全后门。不过,对所有代码进行深度代码扫描是一个资源密集型且耗时的过程。

为了确定哪些代码库需要进行深度代码扫描,您必须按平台或环境(例如 SaaS 或自托管)创建所有代码库的清单。请考虑以下事项:

  • 源代码或二进制文件的可访问性(是公开提供还是内部提供)。如果您的二进制文件是公开的,那么目前还没有针对 LLM 驱动的反向工程的真正保护措施。
  • 编程语言(您的代码是否使用内存安全语言,例如 Go、Rust、Java 或 Python)。
  • 代码运行所需的权限。
  • 代码必须访问的资产的敏感度。

针对风险最高的代码(即公开可访问、使用内存不安全语言、需要高权限才能运行且必须访问高度敏感数据的代码)实现深度代码扫描。

此外,还要确定是否可以采取其他缓解措施来帮助保护您的代码。请考虑以下事项:

  • 在扫描旧版或使用不足的组件之前,请评估是否可以完全停用或弃用这些组件,从而减轻维护和安全负担。在某些情况下,您可以迁移到攻击面更小的替代方案。
  • 查看补丁状态。如果补丁落后,请优先将这些依赖项升级到受支持的最新版本。
  • 作为一项长期优先处理策略,请找出使用内存不安全语言编写的关键组件,并寻找内存安全的替代方案。如果没有更安全的替代方案,请考虑将它们列入使用内存安全型语言进行重写的路线图,以减少内存安全漏洞。在短期内,考虑使用沙盒作为风险缓解措施,例如 GKE 沙盒

为了帮助确定资产的优先级,您可以使用 Wiz 功能,例如:

  • Wiz Service CatalogWiz 清单,以确定与您的资产相关的暴露风险和影响风险。

    Wiz 清单会自动发现虚拟机、数据库和代码库等资产。Wiz 清单可以确定资产是否可公开访问、是否处理不受信任的用户输入或外部 API 流量,以及资产所运行的环境。Wiz 服务目录可以将这些资产分组为业务服务(例如结算系统或客户门户),您可以为这些业务服务分配所有权。这些群组有助于确定哪些资产是关键业务系统、哪些系统可以访问敏感数据,以及谁负责相应应用。

  • Wiz 安全图和 Wiz 工作负载扫描器来识别实时生产环境中使用的源代码库。

    Wiz 工作负载扫描器会检查您的环境,以确定代码是否在您的环境中实际运行,并跟踪代码的软件沿袭。Wiz 安全图谱会发现恶意组合,以确定潜在问题是否属于高风险。您可以利用这些信息,优先对高风险攻击路径和潜在的横向移动漏洞进行深度代码扫描。

  • Wiz 代码到云流水线可映射生产环境中资产的沿袭。

    Wiz Code-to-Cloud Pipeline 可以优先处理生产环境中处于活跃状态且可访问的代码,确定漏洞的来源代码库,并强化基础设施即代码 (IaC) 配置。借助 Wiz Code-to-Cloud Pipeline,您可以将代码库与实际使用情况相关联。

第 2 阶段:扫描并确定优先顺序

创建计划并根据风险确定资产的优先级后,您可以使用 AI 来帮助查找和甄别环境中的漏洞。

完成代码库的深度扫描

完成深度代码扫描后,您可以使用高级 AI 推理来查找复杂的代码缺陷,将这些缺陷与云漏洞相关联,并减少误报。完成以下类型的扫描:

  • 基准扫描:持续扫描 IDE 和 CI/CD 流水线中的代码,以查找常见的编码错误、硬编码的密钥和存在漏洞的依赖项。
  • 深度 AI 扫描:分析具有复杂业务逻辑的高度关键代码库,并识别 SAST 可能遗漏的链式漏洞或零日漏洞。

如需完成基准扫描,您可以使用 Wiz Code 扫描密钥、查找 IaC 错误配置、完成静态应用安全保障测试 (SAST),以及使用软件成分分析 (SCA) 识别第三方软件中的安全风险。

Wiz Code 通过评估 CI/CD 基准中的代码并阻止任何不符合您标准的 build,帮助您强制执行安全政策。Wiz Code 可以检查您的代码库,以确定生产环境中哪些漏洞可被利用。当 Wiz Code 发现漏洞时,Wiz Green Agent 会自动分析周围的代码并创建补丁来解决问题。如果在开发者的 IDE 中发现问题,Green Agent 可以在开发者将更改提交到流水线之前重构代码。如果在 CI/CD 流水线中发现问题,Wiz Green Agent 可以自动在 GitHub 或 GitLab 中创建包含代码补丁的拉取请求。

如需完成深度 AI 扫描,您可以将 CodeMender(预览版)与 Gemini Enterprise Agent Platform 搭配使用。CodeMender(由 Google DeepMind 开发)是一款高度专业化的自主 AI 工程智能体,专注于深层代码级推理、调试和修补。CodeMender 就像一位自主的高级软件工程师,可将代码拉入沙盒、运行各种测试并修复核心逻辑。测试运行可能包括动态分析、模糊测试和自动化编译测试。CodeMender 可以根据结构性影响自主确定 bug 的优先级,修补问题,并使用迭代方法重构代码。

确定问题的严重程度并规划修复方案

在编制漏洞列表后,您可以将 Wiz Code 和 CodeMender 的发现结果路由到 Wiz SAST Triage AI Engine 等引擎,以增强发现结果并帮助确定攻击媒介是否可被利用。Wiz 安全图谱还可以通过代码到云的流水线来丰富上下文。Wiz Red Agent 可以探测有效网站并验证攻击路径。

完成初步诊断工作后,请考虑以下建议,以微调 AI 智能体并移除误报:

  • 请资深工程师审核少量随机抽样的调查结果,以发现模式、明确信任边界并优化 AI 流程。
  • 根据您的漏洞报告指南创建 AI 技能,该指南定义了您的组织认为的真实漏洞,而不是误报或非安全 bug。
  • 使用 AI 智能体规划和编写测试用例,并在沙盒环境中执行这些用例。
  • 针对新的样本发现运行 AI 智能体,并调整提示和 AI 技能,直到它们与人类的决策相符。

如果证明漏洞可被利用所需的时间比实现低风险修复的时间长,请跳过重现过程,直接进入修复阶段。

第 3 阶段:修复

为了解决问题,您必须实现高速工作流,以便在开发者 IDE、代码库和生产环境中大规模自主验证、修补和验证漏洞。

Wiz Green Agent 可以根据现有数据自动创建补救计划。它会触发 Wiz 工作流,通过您的工单系统提醒 SecOps 团队,并将补救计划发送给 CodeMender。CodeMender 会编写补丁、在安全沙盒中测试修复以防止出现回归问题,并创建拉取请求来修补您的系统。然后,开发者可以查看拉取请求,并点击以部署更改。

虽然升级依赖项的核心实践并非新事物,但维护一个健康、自动化的补丁系统对于应对 AI 驱动的发现所生成的大量补丁至关重要。组织需要做好准备,以便快速接收更新,而不会中断生产系统。

我们建议您采取以下措施来优化补救流程:

  • 建立依赖项可见性:持续维护软件依赖项清单。
  • 自动执行构建和发布流程:在完成测试和资格认证工作后,尽量减少发布代码和开始升级所需的手动步骤。
  • 建立持续升级节奏:定期更新依赖项可最大限度地减少发布安全补丁程序时的代码增量。增量越小,意味着在紧急修补期间出现重大更改的风险越低,部署时间越短。
  • 通过 Canary 部署测试发布:实现自动化的 Canary 部署和可靠的回滚机制,以升级依赖项。Canary 部署可让您在生产环境中测试补丁,同时最大限度地降低影响。

对软件进行现代化改造

从传统开发工作流程过渡到智能体框架需要协调专门的 AI 智能体,这些智能体专注于特定任务,例如撰写、生成测试和安全审核。以下示例介绍了如何将 AI 智能体引入软件开发生命周期:

  • 开发:开发者使用 IDE 内聊天或 CLI 自然语言提示设计应用并制作应用原型。
  • 构建:AI 进程可帮助开发者生成代码或通过代码补全功能修改现有代码。
  • 测试和维护:开发者和质量保证团队使用 AI 驱动的测试和自动化重构。
  • 审核和部署:开发者使用 AI 赋能的代码审核和对基础设施即代码的支持。
  • 问题排查:开发者在 Firebase Crashlytics 等工具中使用 AI 驱动的问题分析功能来排查崩溃和错误。
  • 运维:开发者和软件工程师使用 AI 智能体来了解和修改现有应用。

通过软件现代化,安全和技术债务缓解工作会左移到自主代理,这些代理旨在对您的环境进行小规模的迭代式更改。软件现代化依赖于 Model Context Protocol (MCP) 服务器,该服务器可让模型直接实时访问外部工具和实时环境数据。

为了在软件开发生命周期开始时降低不安全代码风险,请部署独立代理,这些代理可以在规划期间分析依赖项、使用工具集成生成单元测试,并直接在源代码库中进行自动化代码审核。通过将项目专用规则、专业技能和确定性命令钩子直接嵌入到开发者工作区中,编码智能体成为降低风险的主要前线。为了强制代理采取正确的步骤,请使用确定性脚本,并使用单独的专用代理调用同级审核。专业智能体可以包括安全扫描器智能体、调试智能体或自动化红队智能体。

为了帮助实现软件现代化,Google Antigravity 和 Gemini Code Assist 等工具可以充当独立协作方,在人工审核或中央流水线构建之前捕获、测试和修复问题。Google Antigravity 提供完整的代理管理器和 IDE 体验,而 Gemini CLI 中的 Gemini Code Assist 提供用于无头执行的终端 CLI。您可以在 Wiz 和其他 Google 产品中使用各种代理技能来协助完成开发流程。Agent Platform 包含 Gemini 3.5 Pro 和 Flash 等模型,这些模型可提供多步推理、长上下文窗口和内置工具执行功能。

为了提高开发速度,请使用可以增量规划、持续测试并在提交之前在本地扫描小更改的代理。这些代理有助于确保代码库稳定性,并在提交内容较小且隔离时执行回滚。

强化安全基础

在将代理引入您的环境之前,请确保您已适当加固基础设施和 SDLC 流水线。请考虑采取以下措施来构建安全基础:

  • 配置政策和访问权限控制,以便了解软件组件,帮助检测漏洞,并在将软件部署到生产环境之前修复问题。
  • 使用安全强化型基本映像搭配安全强化型虚拟机、机密计算和 WizOS 来保护应用层、操作系统层和硬件层。
  • 使用 Wiz 运行时传感器监控开发者工作站和 CI/CD build runner,以检测实时 CI/CD 流水线攻击并提供活跃的内存中上下文。
  • 查找并修正安全状况服务中的偏差,以保持与安全政策一致的环境。
  • 配置一个安全的开源使用网关,以使用 Wiz 注册表连接器强制执行安全政策。
  • 使用严格的网络分段和防火墙规则隔离开发、预演和生产环境。
  • 将所有流水线、部署和访问日志存储在集中式不可变存储位置,以便进行持续监控和取证。
  • 将 CI/CD 流水线视为不可变的基础设施,以避免篡改和配置偏移。不可变基础架构还需要使用临时性的短时效 runner,以防止攻击者在您的基础架构中获得永久立足点。
  • 将对应用和集群的所有更改存储在支持版本控制的源代码库中,并在部署之前进行审核。

如需了解更多最佳实践,请参阅Google Cloud 最低可行安全平台

强化 SDLC

安全 AI 框架 (SAIF) 介绍了您必须实施的控制措施,以确保在 SDLC 流水线中安全使用 AI。添加 AI 时需要考虑的关键事项包括:

  • 人类必须保持控制权,以确保问责制,并在没有明确的人工监督或责任归属的情况下,防止智能体在关键场景中自主行动。您需要不同的代理身份、用户意见征求机制和安全输入。
  • 智能体的权限必须受到限制,以确保智能体只能完成其预期目的,而不会不当升级权限。您必须配置适当的访问控制、范围受限的凭据管理,并使用沙盒来适当隔离组件。
  • 所有操作都必须可观测,以确保透明度和可审核性,并支持安全决策和用户理解。

供应链攻击可能会入侵可信代理,以修改关键数据库、篡改代码或泄露生产机密。为了缓解这些风险,使用 AI 的 SDLC 流水线依赖于以下安全最佳实践:

  • 用于控制浏览器扩展程序、CLI 实用程序和 IDE 插件的 IDE 和工作区设置,以防止未经批准的 AI 编码助理将专有代码库行渗漏到未经审查的外部模型端点。
  • 严格的访问权限控制,以防止未经授权的修改。严格的 Identity and Access Management (IAM) 和身份验证控制有助于确保您仅向流水线服务账号(包括代理账号)授予强制性最低权限,对所有人工用户强制执行多重身份验证,并定期审核用户和代理的访问权限,以确保这些权限保持最新状态。
  • 源代码和配置保护,可确保恶意代码或意外代码永远不会进入构建阶段。请考虑以下事项:
    • 确保分支经过审核,并且拉取或合并请求由授权的同级人员(尤其是人工审核人员)审核。
    • 不允许合并的绕过选项。
    • 确保所有提交都已签名,以验证代码的真实性并防止未经授权的篡改。
    • 限制派生内部代码或意外将私有代码库设为公开的能力。
  • 动态密钥管理,避免凭据泄露。为了动态处理 Secret,请消除源代码和配置文件中的硬编码密码、API 密钥和令牌。IaC 和配置文件中的自动化密文扫描工具可帮助在接受提交之前找到任何密文。Secret Manager 可让您在运行时动态注入凭据。
  • 在流水线中自动执行安全检查,以便尽早发现漏洞。考虑采用包含 SAST、SCA 和 DAST 测试的测试策略,以便在开发期间、在第三方库中以及在运行应用时发现漏洞。
  • 安全的应用软件包,有助于防止篡改。为 build 软件包使用不可变的版本控制,并在将容器映像和软件包推送到制品注册表之前对其进行扫描。在所有环境(包括开发、模拟和生产环境)中推广相同的容器映像。

第 4 阶段:监控

由于智能体攻击会迅速改变威胁形势,因此您必须持续监控流程并发现自动化机会。您还必须能够检测并应对代码漏洞造成的威胁,无论代码位于何处。为了有效监控威胁,您必须确保传感器已就位、建立适当的指标、完成模拟运行,并使用经过演练的积极响应 playbook。

Wiz Defend 与 Google Security Operations 集成,可通过 Wiz 平台提供的提醒和上下文信息来增强 SOC 工作流程。Wiz Defend 可直接在云环境中监控运行时行为、云配置、身份和漏洞。Wiz Defend 会整理实时提醒,并将取证证据处理为高保真检测结果和整合的威胁。 Wiz Blue Agent 可以调查数据,以确定威胁是否真实存在。 然后,Wiz 可以将确定优先级的提醒发送给 Google SecOps,以便进一步采取响应措施。

Google SecOps 可以注入来自整个环境的遥测数据,以关联事件和协调响应 playbook。此遥测数据包括本地服务器、SaaS 身份提供方、端点、防火墙和多云环境。Google SecOps 包含一个智能 SOC,可自动调查提醒以提供更多背景信息。分析师可以使用自然语言提问,智能体可以提供技术背景信息、遥测数据,以及有关如何解决问题的建议。该代理还可以自动创建和管理威胁检测规则、识别检测缺口,并自动针对缺口生成检测规则。

Agentic Threat Intelligence 可以使用 Mandiant 和 VirusTotal 的数据来加快调查速度。Agentic Threat Intelligence 可自动执行复杂且耗时的任务,例如逆向工程代码、分析恶意软件和生成自定义威胁简报,从而让安全团队能够专注于其他关键工作。

下图展示了各种监控工具如何协同工作,以添加上下文、完成自动化任务和确定提醒的优先级。

AI 威胁监控工具。

后续步骤