【国际视野】美国网络安全和基础设施安全局和联邦调查局联合发布《设计安全警报:消除缓冲区溢出漏洞》

【国际视野】美国网络安全和基础设施安全局和联邦调查局联合发布《设计安全警报:消除缓冲区溢出漏洞》

原创 天极智库 天极智库 2025-02-14 10:00

天极按

近日,
网络安全和基础设施安全局(CISA)发布了《联合网络防御协作组织人工智能网络安全协作手册》(Joint Cyber Defense Collaborative (JCDC) Artificial Intelligence (AI) Cybersecurity Collaboration Playbook)。该手册是通过 JCDC 与联邦、国际和私营部门合作伙伴共同开发的,它为人工智能社区(包括人工智能提供商、开发商和采用者)提供了关于如何自愿共享可操作事件信息的基本指导,并介绍了主动共享信息如何能够加强操作协作和提高人工智能系统的复原力。

网络安全和基础设施安全局(CISA)通过联合网络防御协作组织(JCDC)与联邦、国际和私营部门的合作伙伴合作,牵头制定了人工智能(AI)网络安全协作手册。JCDC 是 CISA 内部的一个公私协作组织,利用国会在 2021 年《国防授权法案》(NDAA)中授予的权力,联合全球网络社区共同防御网络空间。JCDC 人工智能网络安全合作手册是 2024 年举行的两次桌面演习 (TTX) 的直接成果,这两次演习汇集了联邦、行业和国际合作伙伴。第一次桌面演习于 2024 年 6 月在弗吉尼亚州雷斯顿的微软公司举行,通过应对人工智能(AI)网络安全事件带来的独特挑战奠定了基础。这项基础性工作为操作手册的早期开发提供了参考。第二次
 TTX 于 2024 年 9 月在加利福尼亚州旧金山的 Scale AI 总部举行,通过模拟金融服务领域的人工智能网络安全事件,帮助参与者进一步完善操作手册。CISA 将大约 150 名参与者(包括来自美国联邦机构、私营部门和国际政府组织的代表)的实时反馈纳入了游戏手册。这些演习强调了加强业务协作和信息共享的必要性,最终形成了操作手册的最终版本。

受众

本手册向网络安全操作专业人员(包括事件响应人员、安全分析师和其他技术人员)介绍如何与 CISA 和 JCDC 合作并共享有关人工智能相关网络安全事件和漏洞的信息。

背景介绍

CISA 作为美国的网络防御机构和关键基础设施安全与恢复能力国家协调员,在应对人工智能特定网络安全挑战方面发挥着至关重要的作用。通过 JCDC.AI,CISA 建立了公私合作伙伴关系,以改善信息共享并制定计划,促进协调应对针对软件系统(包括人工智能系统)的网络威胁。随着人工智能越来越多地融入关键基础设施,了解并应对其独特的挑战和复杂性,对于加强对恶意网络行为者的防御至关重要。

人工智能系统依赖于数据驱动的非确定性模型,因此具有独特的复杂性,容易受到恶意网络活动的攻击,如模型中毒、数据篡改和对抗性输入。CISA 与 JCDC 合作伙伴合作,利用共享的知识和能力来对抗恶意网络行为者并加强集体应变能力。

目的

JCDC 人工智能网络安全合作手册促进人工智能社区(包括人工智能提供商、开发商和采用者)自愿共享信息,以加强集体网络防御,应对新兴威胁。该手册旨在促进政府、行业和国际合作伙伴之间的业务合作,并将定期更新,以确保随着人工智能应用的加速,能够适应动态的威胁环境。该手册旨在:

  • 指导 JCDC 合作伙伴如何自愿共享与人工智能系统相关的事件和漏洞信息。

  • 概述 CISA 在收到共享信息后应采取的行动。

  • 促进联邦机构、私营企业、国际合作伙伴和其他利益相关者之间的合作,以提高对人工智能网络安全风险的认识,并提高人工智能系统的复原力。

虽然该手册侧重于加强联合反恐委员会内部的合作,但也定义了适用于其他信息共享机制的关键信息类别(附录 C),如信息共享和分析中心(ISAC)。CISA 鼓励各组织采用该操作手册的指导意见来加强自身的信息共享实践,从而有助于采用统一的方法来应对关键基础设施中与人工智能相关的威胁。

关键定义

JCDC 人工智能网络安全协作手册纳入了关键立法和技术框架中的定义,为应对人工智能网络安全挑战奠定了基础。

  • 人工智能系统: 基于机器的系统,针对人类定义的特定目标,做出影响真实或虚拟环境的预测、建议或决策。这些人工智能系统使用基于机器和人类的输入来感知环境,通过自动分析将这些感知抽象为模型,并使用模型推理来提供信息或行动选项。

  • 事件: “事件 “一词是指未经合法授权而实际或即将危及信息系统信息的完整性、保密性或可用性,或未经合法授权而实际或即将危及信息系统的事件。

根据这些定义,CISA 制定了人工智能网络安全事件的工作定义:“未经合法授权,实际或即将危及人工智能系统、人工智能系统启用和/或创建的任何其他系统或存储在任何这些系统上的信息的保密性、完整性或可用性的事件”。

网络安全事件通常源于软件或系统中的漏洞。美国国家标准与技术研究院(NIST)将漏洞定义为 “信息系统、系统安全程序、内部控制或实施中可能被威胁源利用或触发的弱点”,是人工智能系统网络安全的核心。该手册还有助于协调披露关键基础设施中与人工智能系统相关的漏洞。

信息共享: 保护与机制

通过 JCDC 共享信息,公司可从加强协调和政府支持中获益,并获得在可信环境中就人工智能网络安全问题进行合作的能力。JCDC 为关键基础设施部门的重要网络安全问题提供了沟通机制,使企业能够讨论和应对人工智能网络安全方面的共同挑战。JCDC 的召集能力可帮助企业获得有价值的威胁情报、缓解策略和协作性网络安全环境。

通过共享信息,JCDC 加快了对网络威胁的协调响应,并帮助政府合作伙伴收集必要信息,以确定是否应启动国家事件响应机制。此外,JCDC 还制作和分发相关的网络威胁情报、漏洞管理见解和缓解策略,使公司能够更好地管理和消除新出现的威胁。

信息共享保护

《网络安全信息共享法案(2015)》(CISA 2015)为非联邦实体提供了保护,使其可以按照特定要求与政府共享网络威胁指标和网络安全防御措施,并规定尽管有任何其他法律,它们也可以这样做。这些保护措施包括不放弃特权、保护专有信息、免于根据《信息自由法》(FOIA)进行披露、禁止在监管执法中使用等。《网络安全信息共享法案(2015)》还要求国土安全部具备与联邦政府和私营部门实体共享网络威胁指标的能力和流程,并为通过该流程共享的信息提供责任保护。该法规还为按照法定要求与州、地方、部落和领地 (SLTT) 实体共享的网络威胁指标和防御措施制定了保护措施,包括根据 SLTT 信息自由法,这些信息免于披露。《网络安全信息共享法案(2015)》不涵盖法律规定的非网络威胁指标或防御措施的共享信息。与人工智能相关的信息只要符合网络威胁指标或防御措施的条件,就属于该法的管辖范围。

信息共享机制

CISA 制定了管理和保护 JCDC 合作伙伴共享数据的流程。

JCDC 内部的信息共享

CISA 利用交通灯协议 (TLP) 作为其主要的传播控制标记系统。JCDC 内部通过电子邮件共享的所有数据均应明确标注相关的 TLP 名称。同样,其他利益相关者也可通过电子邮件与 JCDC 共享信息,[email protected],并遵循 TLP 标记系统。某些 TLP 标记要求在向组织外传播前获得信息来源的许可。所有组织都应在分享前寻求适当的许可。下文 “主动信息共享 ”和 “关于事件或漏洞的信息共享 ”部分提供了有关与 JCDC 共享的有价值信息类型的更多指导。

有时,JCDC 合作伙伴可能希望在不注明出处的情况下共享信息。在这种情况下,这些合作伙伴可直接与 CISA 共享,由 CISA 在不注明出处的情况下继续共享。合作伙伴在与 CISA 共享信息时,应提供有关如何处理其信息的详细说明,并指定信息使用的任何限制(如清单 1 所述)。 有了这些保障措施和协议,CISA 可在 JCDC 内部营造一个共享关键网络安全信息的安全环境,鼓励积极参与并保护敏感数据。附录 A 提供了表 1 的填充示例。

表 1:信息处理限制与背景

新漏洞协调实践

要报告新发现的产品和服务中的网络安全漏洞,JCDC 合作伙伴应使用 CISA 的协调漏洞披露流程。合作伙伴可通过 CISA 协调漏洞披露页面上的 “报告漏洞 ”链接安全地提交漏洞。如果 JCDC 合作伙伴对此流程有疑问或担忧,请联系 JCDC 代表。该代表可将合作伙伴与 CISA 漏洞管理人员联系起来。

其他需要考虑的漏洞协调最佳实践:

  • 制定并实施漏洞披露政策 (VDP),以便安全研究人员和其他人员了解哪些类型的测试可用于哪些系统,以及向何处发送漏洞报告。有关 CISA 与联邦机构共享的 VDP 示例,请参阅 Binding Operational Directive 20-01。联合数据中心合作伙伴应酌情修改 VDP 模板。

  • 如果在 JCDC 合作伙伴运营的系统中发现漏洞,各实体应按照该合作伙伴的 VDP,根据其特定指南报告问题。

  • 如果 JCDC 合作伙伴发现已部署的联邦政府系统中存在漏洞,则应按照其 VDP 中的要求通知系统所有者。作为最后手段,可通过卡内基梅隆大学软件工程研究所 (SEI) CERT 协调中心向 CISA 报告这些问题。

事件报告

要报告事件,JCDC 合作伙伴应使用 CISA 的自愿网络事件报告门户。报告实体应在表格中提供的解释性文本框中描述事件中与人工智能相关的任何方面。

主动共享信息

JCDC 
强烈鼓励合作伙伴尽早主动共享人工智能网络安全事件或漏洞的可操作信息。鉴于人工智能系统的复杂性以及在识别安全问题及其根源方面的挑战,
JCDC 
合作伙伴应持续、主动地共享有关恶意活动、趋势、发布前出版物和评估的关键信息。持续的信息共享可使所有合作伙伴保持对不断变化的环境的态势感知,从而实现对关键威胁的早期检测、识别和修复。通过建立一个信息灵通、相互协作的网络防御网络,
JCDC 
加强了对所有关键基础设施部门的人工智能系统的保护和恢复能力。

表 1 所列的主动信息共享类别有助于 CISA 和 JCDC 合作伙伴评估已观察到的相关信息,了解行动环境的复杂性,并就潜在的防御行动做出明智决策。另请参阅附录 B,了解鼓励合作伙伴主动共享信息的事件示例。

表 1:主动信息类别

共享有关事件或漏洞的信息

JCDC 
合作伙伴应

2
,自愿共享有关人工智能网络安全事件或漏洞的信息。其他利益相关方可通过电子邮件与 
JCDC 
共享自愿信息,电子邮件地址为 
[email protected]
。该核对表有助于突出可操作的数据,以简化 
JCDC 
与合作伙伴之间的共享流程。附录 

提供了


的填充示例。 
JCDC 
鼓励合作伙伴遵循核对表,同时也欢迎共享任何相关信息,即使未满足核对表的所有要点。

此外,使用网络表格自愿报告事件或产品或服务中的漏洞是通过加密渠道向 CISA 提供所有相关信息的好方法。如果使用网络表格,JCDC 合作伙伴应通过电子邮件通知 JCDC 代表。

表 2:主动信息共享

CISA 的信息分析和业务使用

图 1:CISA集体行动方法

作为从 JCDC合作伙伴收集信息的中心枢纽,CISA管理和协调所需的集体行动(见图1)。当 CISA收到有关网络安全事件或漏洞(包括人工智能特有的事件或漏洞)的信息时,它首先会将信息输入中央跟踪平台进行汇总和验证。在此阶段,CISA会删除任何可能不构成威胁的合法或良性指标,并确保从数据集中删除任何可识别受害者身份的信息,以保护隐私。

接下来,CISA继续分析和丰富数据。这包括确认指标是否与特定合作伙伴(如云服务提供商或互联网服务提供商)相关,以酌情促进协调。可利用CISA 现有数据进一步丰富信息。CISA会进行额外的分析,通过透视相关信息来获取更多见解。

然后,CISA可考虑进行内部和外部协调,根据共享的信息采取适当的防御行动。收集、匿名和丰富的指标可输入入侵检测系统,以保护联邦文职行政部门(FCEB)机构、州、地方、部落和领土(SLTT)实体以及关键基础设施资产。在某些情况下,可为联邦文职行政机构实施域块,以应对威胁。

如其 TLP级别所示,信息还可与行业、美国联邦政府、SLTT和国际合作伙伴共享,以支持网络防御目的。在共享信息的过程中,JCDC合作伙伴可能会获得并进一步分享更多的见解,从而在所有相关合作伙伴之间形成多向信息流。这种丰富的信息流可促成分析交流、公共网络安全咨询(与JCDC 合作伙伴协调)以及更广泛的跨部门合作,共同应对网络威胁。

加强协作

图 3:CISA信息共享与协作流程

加强协调涉及在常规操作无法完全解决或理解网络安全问题时加强信息共享和扩大合作。在这种情况下,CISA和 JCDC合作伙伴可选择实施额外机制并增加沟通频率,以改进事件响应和补救工作。这些活动都是自愿的,并根据情况按需启动。

CISA 对合作伙伴共享的信息进行评估,决定采取何种行动,并根据情况的变化调整加强协调的程度。CISA在很大程度上依赖于与JCDC 合作伙伴的合作,以评估哪些事件值得进一步分析并确定加强协调的优先次序。附录B 中详述的PyTorch 依赖链受损事件就是一个需要加强协调的活动实例。

信息共享有助于 CISA采取各种有针对性的行动来加强网络安全。这些行动可以单独执行,也可以合并执行,具体取决于已识别威胁或漏洞的性质。这一过程本身是动态的,涉及多个利益相关者之间的合作,通常是同时进行的。CISA采用灵活、综合的方法,根据不断变化的威胁情况调整应对措施,包括但不限于:

  • 为检测和预防目的共享信息: 在美国政府机构、私营部门、SLTT、关键基础设施和国际合作伙伴之间传播关键威胁情报,以加强集体网络安全工作。

  • 揭露并瓦解对手的战术和基础设施: 通过公共网络安全咨询、TLP:CLEAR 或 TLP:GREEN 报告或小组共享,揭露并潜在地降低对手使用的战术、技术和基础设施所带来的风险。

  • 协调应对恶意基础设施的战略: 与相关合作伙伴合作,识别网络攻击中使用的由对手控制的基础设施,并制定有效的缓解策略。

  • 识别并通知受害实体: 识别受网络事件影响或可能受网络事件影响的组织,并及时发出警报,以便迅速采取保护措施。

  • 共享检测能力: 为 JCDC 合作伙伴提供策略,以提高其识别和缓解自身网络中的网络威胁的能力。

  • 制作和分发相关的威胁情报产品: 创建可操作的产品,如威胁咨询和情报报告,其中包括分析、缓解建议和当前威胁状况的更新。

  • 提供主动服务和参与: 主动与合作伙伴接触,提供量身定制的建议、漏洞管理策略和最佳实践,以便在事件发生前加强防御。

  • 通过响应式参与评估不断变化的威胁: 促进实时响应参与,如电话和协调会议,以帮助合作伙伴更好地了解威胁环境,并确定适当的下一步措施。这有助于确保合作伙伴了解预期的行动以及如何有效应对。

作为加强协调的一部分,JCDC与联邦政府合作伙伴密切合作,对重大人工智能网络安全问题做出统一回应。通过这种合作,联邦政府的能力得到了统一,确保在应对重大威胁或漏洞时考虑到所有可用资源和专业知识。与联邦政府合作伙伴协调有助于确保CISA 和 JCDC采取的行动与更广泛的政府工作相辅相成,从而加强事件响应和补救战略的整体有效性。

行动呼吁

JCDC人工智能网络安全合作手册为人工智能社区(包括人工智能提供商、开发商和采用者)自愿共享信息提供了重要指导,以加强集体防御,应对不断变化的网络威胁。随着人工智能应用的加速,人工智能系统的威胁范围不断扩大,带来了新的漏洞和安全挑战。本手册将定期更新,通过政府、行业和国际合作伙伴之间的积极合作来应对这些挑战。

JCDC 合作伙伴应将该手册纳入其事件响应和信息共享流程,根据需要进行迭代改进,并提供反馈。请参阅 “问题与反馈 ”部分的说明。通过持续的合作和实际应用,这种持续的投入可加强和调整该手册。

为加强合作与参与,JCDC邀请人工智能安全专家和利益相关者考虑采取以下行动:

  • 标记技术交流机会: JCDC 合作伙伴应确定并分享与影响人工智能界的新兴威胁、对手或漏洞相关的技术交流机会。这些交流可提供重要的见解,使 JCDC 和 CISA 能够积极应对共同的风险。

  • 确定人工智能界的优先问题: 突出关键问题和风险有助于确保 JCDC 的优先事项与人工智能界确定的最紧迫挑战保持一致。这种一致性有助于更有针对性、更有效地满足关键的人工智能安全需求。

  • 促进事后分析和知识共享: 在社区内开发和共享事后分析、案例研究和教育内容,可促进积极主动地应对人工智能安全挑战。分享经验教训可加强集体应变能力,提高应对未来事件的准备程度。

  • 成为 JCDC 合作伙伴: 加入由来自全球各组织的网络防御者组成的多元化团队,该团队致力于主动收集、分析和共享可操作的网络风险信息,以实现同步的网络安全规划、网络防御和响应。要了解有关 JCDC 的更多信息,请访问 CISA 的 JCDC 网页并发送电子邮件至 [email protected]

通过人工智能社区的积极参与,该手册将成为应对未来人工智能安全形势的动态资源。随着关键基础设施所有者和运营商越来越多地使用人工智能工具,业务合作在加强网络安全和推进人工智能技术的安全应用方面发挥着至关重要的作用。

附录A:信息处理限制和自愿信息共享核对表填充示例

以下是基于 2023年 1 月提交给MITRE ATLAS 的真实案例研究 “通过提示注入在 MathGPT 中执行代码 ”的自愿信息共享核对表填写示例。该事件涉及一名行为者利用提示注入漏洞访问应用程序主机系统的环境变量和GPT-3 API 密钥。利用这一访问权限,该行为者对MathGPT 执行了拒绝服务(DoS)攻击,MathGPT是一个采用 GPT-3语言模型回答用户生成的数学问题的公共应用程序。该攻击还可能耗尽应用程序的API 查询预算或完全中断其运行。

尽管 MathGPT团队后来已经缓解了此次事件中发现的漏洞,但本案例研究仍被用于填充自愿信息共享清单。本示例以MathGPT 开发人员在检测到攻击后不久对攻击做出响应的视角编写,就像事件仍在活动一样。

附录B:主动共享信息和加强协调的案例研究

主动信息共享实例:Clearview 人工智能配置错误案例研究

为了说明现实世界中的威胁行为者在日常操作中可能会使用哪些方法来利用人工智能系统,以及这些技术与传统的网络入侵有何不同,我们研究了MITRE ATLAS 关于Clearview AI 配置错误的案例研究。

Clearview AI 开发了一种面部识别工具,可在公开照片数据库(如Facebook、谷歌和YouTube)中搜索匹配的照片。该工具已被执法机构和其他实体用于调查目的。

然而,Clearview AI 的源代码库虽然有密码保护,但配置不当,允许任意用户创建账户。这一漏洞使外部研究人员能够访问包含Clearview AI 生产凭证、云存储桶密钥(包含70K 视频样本)、应用程序副本和Slack 标记的私有代码库。

通过访问这些训练数据和凭证,恶意行为者可以破坏未来的应用程序版本,导致部署模型中的面部识别功能降低或被恶意破坏。这一案例突出表明,需要以超越传统网络安全措施的方式确保人工智能系统的安全。此类系统不仅需要稳健的卫生措施,如强制执行最小权限访问、多因素身份验证以及严格的监控和审计,还需要针对人工智能技术带来的独特风险量身定制特定的保障措施。

在本案例中,安全研究人员通过对抗性方法展示了Clearview AI 系统中的漏洞,详情如下:

  • 策略: 资源开发

o技巧: 建立账户

一名安全研究人员通过错误配置的服务器设置初步访问了Clearview AI 的私有代码库,该设置允许任意用户注册有效账户。

  • 战术:收集

o技术:从信息库获取数据

私人代码库包含用于访问AWS S3 云存储桶的凭据,从而发现了面部识别工具的资产,包括

o已发布的桌面和移动应用程序。

o具有新功能的预发布应用程序。

o Slack 访问令牌。

o原始视频和其他数据

  • 策略:资源开发

o技术: 获取公共 ML人工制品

对手可以下载训练数据,并从源代码和反编译应用程序二进制文件中收集有关软件、模型和功能的详细信息。

  • 战术:影响

o技术: 侵蚀 ML模型完整性

由于访问了这些信息,敌方可能通过降低或恶意操纵面部识别能力来破坏未来发布的 应用程序。

增强协作示例:受损的PyTorch 依赖链

为了说明在非例行或临时信息共享不足的情况下,增强协调情景下可能发生的过程,我们研究了MITRE ATLAS 的另一个案例研究:“PyTorch依赖链受损”。

在此案例中,一伙身份不明的恶意行为者通过破坏与PyTorch 预发布版本相关的Linux 软件包,实施了一次供应链攻击。15他们将恶意二进制文件上传到代码库,该二进制文件与合法的PyTorch 依赖程序同名。结果,PyPI软件包管理器(pip)无意中安装了恶意软件包,而不是正版软件包。这种被称为 “依赖关系混淆 ”的技术暴露了使用受影响的 pip安装版本软件包的 Linux机器上的敏感信息。

攻击通过以下步骤展开,详情如下:

  • 战术:初始访问

o 技术: ML供应链破坏 – ML 软件

一个名为 torchtriton的恶意依赖包被上传到PyPI 代码库,其软件包名称与以PyTorch-nightly命名的软件包相同。行为者利用系统中现有的优先级规则,诱骗用户下载恶意软件包,而不是合法软件包。恶意软件包包含附加代码,可上传从安装该软件包的机器上获取的敏感数据。

  • 战术:收集

o技术:从本地系统获取数据

恶意软件包调查受影响系统,以获取IP 地址和用户名等基本指纹信息以及其他敏感数据。

  • 战术:渗透

o技术:通过网络手段渗透

所有收集到的信息(包括文件内容)都通过加密域名系统查询上传到外部网域。

MITRE ATLAS 网站上有一份完整的TTPs 演变清单,威胁者可能会使用这些TTPs 来攻击人工智能系统,这些TTPs 是由人工智能安全社区共享的真实世界攻击和现实红队演习提供的。

附录C:自愿共享信息的其他途径

遭遇人工智能网络安全事件的组织可通过多种自愿渠道向联邦政府通报事件,以请求技术援助、报告犯罪或参与业务合作。人工智能社区还开发和部署了更多自愿共享信息的非正式机制,以促进社区对前沿人工智能事件的认识和讨论。除了本手册中描述的联系CISA 的方法外,各组织还应考虑以下选项。

附录D: 其他资源

以下文件提供了组织可参考的其他信息资源,以了解人工智能系统的网络安全。


期回顾

【国际视野】卡巴斯基:EAGERBEE后门变种瞄准中东

【国际视野】美国进出口银行监察长办公室:机构未妥善保护个人身份信息,存在泄露风险

【国际视野】美国国家科学技术委员会发布《数据基础设施互联互通的框架》建议报告

【国际视野】欧盟发布《2024 年欧盟网络安全状况报告》

天极按

近日,美国美国网络安全(CISA)和基础设施安全局和联邦调查局 (FBI) 发布了安全设计警报,消除缓冲区溢出漏洞,这是其合作的安全设计警报系列的一部分。该系列旨在推进全行业的最佳实践,以消除产品生命周期设计和开发阶段的所有类别的漏洞。“消除缓冲区溢出漏洞”描述了通过安全设计原则和最佳实践来防止或减轻缓冲区溢出漏洞的成熟技术。

恶意网络行为者利用缓冲区溢出漏洞入侵软件

缓冲区溢出漏洞是一种普遍存在的内存安全软件设计缺陷,经常导致系统受损。网络安全和基础设施安全局(CISA)和联邦调查局(FBI)认识到,内存安全漏洞包含一系列广泛的问题,其中许多问题需要花费大量的时间和精力才能妥善解决。虽然所有类型的内存安全漏洞都可以通过在开发过程中使用内存安全语言来预防,但其他缓解措施可能只能解决某些类型的内存安全漏洞。无论如何,缓冲区溢出漏洞是内存安全漏洞的一个很好理解的子集,可以通过使用内存安全语言和本警报中列出的其他成熟技术来解决。尽管缓冲区溢出漏洞已有记录详实的有效缓解措施,但许多制造商仍在继续使用不安全的软件开发实践,使这些漏洞继续存在。由于这些原因,以及利用这些缺陷可能造成的损害,CISA、FBI和其他机构将缓冲区溢出漏洞归类为“不可饶恕”的缺陷。

因此,CISA和 FBI敦促制造商使用行之有效的预防方法和缓解措施来消除这类缺陷,同时敦促软件客户要求制造商提供包含这些预防措施的安全产品。本警报概述了根据安全设计原则和软件开发最佳实践防止或缓解缓冲区溢出漏洞的行之有效的方法。

当威胁行为者访问或写入计算机内存错误部分(即内存缓冲区之外)的信息时,就会出现缓冲区溢出漏洞(CWE-119)。这些漏洞可能发生在管理缓冲区的两个主要内存区域:基于堆栈的溢出(CWE-121)(在内存堆上分配)和基于堆的溢出(CWE-122)(在内存堆上分配)。缓冲区溢出漏洞具有严重的安全风险,因为其可能导致数据损坏、敏感数据暴露、程序崩溃和未经授权的代码执行。威胁者经常利用这些漏洞获取对组织网络的初始访问权,然后横向移动到更广泛的网络:

  • CVE-2025-21333

  • CVE-2025-0282

  • CVE-2024-49138

  • CVE-2024-38812

  • CVE-2023-6549

  • CVE-2022-0185

编写机构敦促制造商立即采取行动,防止在其产品中引入这些漏洞。制造商可以通过使用本警报中列出的安全设计实践来防止缓冲区溢出漏洞。软件制造商的高级管理人员和业务领导人应要求其产品和开发团队记录过去的缓冲区溢出漏洞,以及他们如何努力消除这类缺陷。

CISA和FBI还建议,软件客户应要求制造商提供软件物料清单(SBOM)和安全软件开发证明,以确保制造商遵守本警报中的安全软件开发实践。

为防止缓冲区溢出漏洞,技术负责人应实施以下安全设计实践。

(注:这并不是一份全面的减轻和预防缓冲区溢出漏洞的方法清单,但包含了CISA确定为最有效、最可行的方法)。

  • 在可行的情况下,开发软件时使用内存安全语言,将内存管理的负担从开发人员转移到编程语言的内置安全功能上。注意:可以禁用或覆盖某些内存安全语言的内存安全保证;开发人员必须避免这样做,以防止缓冲区溢出漏洞。此外,在软件包的某个部分使用内存安全语言并不能修复其他库中的内存不安全代码。

  • 编写机构认识到,使用内存安全语言重写代码库需要付出巨大的努力。因此,我们建议制造商制定并实施分阶段的过渡计划,以提高内存安全语言的使用率。理想情况下,该计划应包括使用内存安全语言开发新代码,并随着时间的推移,在可行的情况下,将软件中权限最高/暴露最多的代码过渡到内存安全语言。

  • 启用编译器标志,在编译时和运行时防止缓冲区溢出(根据应用程序的性能要求,尽最大可能),并在发生溢出时发出警报。

  • 使用 AddressSanitizer 和 MemorySanitizer 等工具链定期运行单元测试,通过运行时检查缓冲区溢出和其他内存安全问题来检验源代码。在单元测试覆盖率较高的代码库中,此类工具可以在内存安全相关问题成为漏洞之前,检测到许多(但不是全部)内存安全相关问题。

  • 积极开展对抗性产品测试,包括静态分析、模糊测试和人工审核(视需要而定),以确保代码在整个开发生命周期内的质量和安全性。

  • 发布内存安全路线图,概述制造商计划如何使用内存安全语言开发新产品,并优先将代码迁移到内存安全语言。

  • 对过去的漏洞(包括缓冲区溢出)进行根本原因分析,以发现趋势和模式。在可能的情况下,采取行动消除产品中的整类漏洞,而不是表面原因。

安全设计经验

在可行的情况下,制造商应使用内存安全语言和本预警中描述的最佳实践开发新软件,努力消除缓冲区溢出漏洞。此外,消除缓冲区溢出漏洞有助于降低其他内存安全问题的发生率,如格式字符串、off-by-one和useafter-free漏洞。有关内存安全和过渡到使用内存安全语言的更多信息,请查阅以下资源:

  • CISA 和 FBI 的《内存安全路线图案例》、《探索关键开源项目中的内存安全》和《产品安全陋习》。

  • 白宫国家网络总监办公室 (ONCD) 的《回到基石》报告。

  • 美国国家安全局 (NSA) 的《软件内存安全》。

  • 谷歌关于内存安全和从源头消除内存安全漏洞的观点、微软的《我们需要更安全的系统编程语言》、亚马逊网络服务 (AWS) 的 Rust 可持续性以及 Mozilla 的《用 Rust 重写浏览器组件的意义》。

遵循安全设计原则

制造商应考虑承诺遵循以下由17个全球网络安全机构联合制定的三项 “安全设计 ”原则。

原则1:对客户安全结果负责

软件制造商必须消除缓冲区溢出漏洞,将客户安全放在首位。主要投资包括为开发人员提供安全的构建模块,以防止出现可能危及可靠性和用户数据的错误。依靠检测后修复是不可持续的;相反,制造商应在软件开发生命周期内实施最佳实践。自动保障措施应能防止不安全的功能,而静态分析工具和严格的代码审查则有助于在部署前发现缺陷。通过从源头解决漏洞,制造商无需依赖客户的修复就能提高安全性。

原则2:拥护完全透明度和问责制

制造商必须优先考虑披露产品漏洞的透明度。他们应跟踪产品中的漏洞,包括软件即服务(SaaS)产品的漏洞,并通过 “常见漏洞与暴露”(CVE)计划进行报告。CVE记录必须完整、准确、及时,并辅以适当的通用弱点枚举(CWE),以方便跟踪软件缺陷类别。

软件开发人员已总结出避免各种缓冲区溢出漏洞的方法,如CWE-119及相关CWE下的漏洞。制造商应找出这些漏洞的根本原因,并致力于消除这些漏洞和解决更广泛的内存安全问题。此外,他们还应保持一个强大的漏洞披露计划(VDP)和一个产品安全事故响应团队(PSIRT)。CISA提供各种资源,帮助企业建立和维护VDP。

原则3:建立实现这些目标的组织结构和领导力

技术高管必须将软件安全资源视为战略投资,认识到安全设计实践可带来显著的长期节约。例如,谷歌的Android团队在确定缓解内存安全漏洞的长期成本将超过预防这些漏洞所需的投资后,于2019年将新代码过渡到内存安全编程语言。同样,微软、AWS和Mozilla等组织也倡导采用内存安全语言来增强软件安全性。

除了财务方面的考虑,领导者还必须认识到安全对客户、经济和国家安全的更广泛影响。这包括投资于将安全作为核心业务优先事项的计划和激励措施。各组织应积极主动地消除整类漏洞,并进行定期审查,以发现和解决反复出现的问题。高管必须积极监控进展情况,确保分配足够的资源,并致力于持续改进。

软件制造商和客户的行动项目

软件制造商应考虑接受 “设计安全承诺”,以表明他们致力于通过设计确保产品安全。该承诺书列出了七个关键目标,签署者承诺在通过设计确保产品安全方面取得可衡量的进展,包括减少缓冲区溢出等系统漏洞。

客户应要求软件在设计上是安全的。希望获得设计安全软件的组织应参考我们的 “按需安全 ”指南,并将以下产品安全注意事项纳入其采购生命周期:

  • 采购前: 提出问题,了解各软件制造商如何确保产品安全。

  • 采购期间: 将组织的产品安全要求纳入合同语言。

  • 采购后: 持续评估产品安全性和安全结果。


期回顾

【国际视野】美国网络安全和基础设施安全局发布《产品安全不良实践》

【国际视野】美国网络安全和基础设施安全局、美国国防部高级研究计划局等多机构联合发布《缩小软件理解能力差距》报告

【国际视野】美国网络安全和基础设施安全局发布《联合网络防御协作组织人工智能网络安全协作手册》

【国际视野】美国进出口银行监察长办公室:机构未妥善保护个人身份信息,存在泄露风险

END

天极智库
聚焦网络安全相关领域,聚集网络安全职能部门、行业主管部门、科研院所、相关企业和专家学者的力量,组织开展政策研判、事件分析、技术研究、学术交流,为国家网络安全工作提供支撑,增强国家网络空间安全防御能力,提升国家关键信息基础设施安全保障能力和水平。