论文学习_ERS0: Enhancing Military Cybersecurity with AI-Driven SBOM for Firmware Vulnerability Detection

1. 引言

研究背景:在军事行动中引入 SBOM (software bill of materials) 变得越来越重要,特别是在供应链安全、资产管理和漏洞管理的背景下。 军事行动通常依赖于复杂的平台网络、作战技术及其软件组件,这些组件通常来自无数供应商,每个供应商的信任度和透明度各不相同。 现代供应链在软件采购和部署方面的复杂性本质上要求所有参与的供应商都具有高度的信任。 然而,这种基于信任的方法使这些供应链,特别是开源软件(OSS)面临供应链攻击的重大风险。 当恶意行为者渗透到供应链的任何一点时,就会发生此类攻击,可能会损害所分发的软件组件或生产和集成组件的管道的完整性和安全性。 在软件在操作功能和安全性中发挥关键作用的环境中,例如在军事行动中,这种系统性弱点尤其令人担忧。SBOM 在现代军事行动中至关重要

SBOM 简介:SBOM 作为一种战略工具,通过在供应链中引入透明度元素来减轻这些风险。通过提供系统中使用的所有软件组件的全面且详细的列表(包括其来源、版本和依赖项),SBOM 可以仔细检查和验证每个组件的安全性和完整性。 这种程度的透明度对于识别和解决在复杂的供应链关系网络中可能被忽视的漏洞至关重要。 作为一种主动方法,SBOM 在防止供应链攻击方面特别有价值,因为它可以及早检测到软件组件中的任何异常或未经授权的更改。SBOM 是软件物料清单,类似于食品包装上面的配料表,其映射关系可表示为(软件,TPC)→(食品,成分)

现存问题:获得可靠的 SBOM 具有挑战性,因为依赖供应商提供这一关键信息会重新引入 SBOM 旨在缓解的信任问题。 期望供应商披露所有已发布固件的完整源代码也是不现实的,不仅是由于专有问题,而且因为将源代码转换为最终固件的管道本身可能会在供应链内受到损害。 因此,基于对供应商的零信任假设,右移方法是必要的。 这种方法寻求开发能够直接从已发布或部署的固件和软件组件中提取 SBOM 的专用工具。 此类工具将独立分析并生成全面的组件列表,无需依赖供应商提供的信息,并确保对软件的组成和潜在漏洞进行更准确、更安全的评估。出于零信任的考虑,SBOM 工具应具有直接从固件中提取 TPC 的能力

现有的 SBOM 生成解决方案主要依赖于手动流程,其中精心设计了特定的字符串匹配模式。 现有的最先进的解决方案,例如固件分析和比较工具(FACT)以及通用漏洞和暴露(CVE)二进制工具,其范围受到限制,仅能够识别数百种特定产品和组件,如上图所示。 由此可知,在 SBOM 生成中需要更先进和自动化的方法。 此外,这些解决方案常常忽略代码级模式,而代码级模式至关重要,因为它们包含实际的漏洞。 未能捕获这些模式表明当前 SBOM 生成方法的有效性和彻底性存在重大差距。 另一个未充分解决的方面是固件高级功能的表征,例如加密、通信和 I/O 操作。 这些功能对于军事行动至关重要,因为它们定义了作战范围、潜在的攻击向量、可能的后门的存在以及整个固件的完整性。 因此,迫切需要一种解决方案,不仅能识别 SBOM 的组件,还能全面理解和描述固件的高级功能和潜在能力。现有的 SBOM 工具自动化程度低,且无法实现固件信息的深入挖掘

研究内容:论文提出了一种新颖的系统 ERS0,它利用机器学习来扩展 SBOM 创建过程。该方法包括两个关键组成部分:(1)用于精确版本字符串和产品检测的字符级字符串相似性学习;(2)用于 OSS 库和版本识别的跨架构代码克隆搜索。这种方法大大拓宽了 SBOM 分析的范围和准确性。此外,论文的目标是使用静态分析来检测固件映像的高级功能。论文开发了一种生成性大语言模型 (LLM),该模型经过向上训练,可以根据 ATT&CK 行为目录创建能力识别规则。 ERS0不仅提高了 SBOM 识别的准确性,而且还提供了对固件功能和潜在漏洞的全面了解,从而大大有助于军事行动的安全性和鲁棒性。ERS0 结合 LLM 于 ATT&CK 模型可实现 SBOM 的深层次提取

2. 相关工作

SBOM 对于软件安全变得越来越重要,特别是对于识别软件包中的组件。SBOM 生成是一个相对较新的研究领域。FACT、CVE 二进制工具和 EMBArk 等工具在该领域众所周知,但它们存在一些可扩展性缺陷。

  • FACT:FACT 擅长自动查找和分析固件部分,帮助列出 SBOM 所需的所有软件部分。 然而,它需要手动创建规则来识别这些部件,这使得当存在多种不同的产品时其效率较低。 随着越来越多具有不同类型固件的产品问世,手动更新这些规则可能会导致 SBOM 中信息丢失或过旧。FACT 需要手动创建规则,在新型固件检查时存在信息不全和信息丢失的问题
  • CVE Binary Tool: 会查找存在已知问题的软件版本,这有助于 SBOM 显示可能的安全风险。 但是,与 FACT 一样,CVE Binary Tool 也依赖于需要手动生成的规则。 保持这些规则最新是一项劳动密集型工作,尤其是当软件变化很快且形式多样时。 这使得该工具很难准确地跟上并覆盖广泛的软件组件。CVE Binary Tool 存在与 FACT 类似的问题
  • EMBArk:可以很好地自动分析固件并提供 SBOM 所需的详细信息,但 EMBArk 也存在与其他工具相同的问题,它需要手动制定规则来查找零件和安全问题。 编写这些规则需要大量工作,并且跟不上软件和许多不同可用产品的快速变化。 这使得它在为大量产品生成 SBOM 时不太有用。EMBArk 存在与 FACT 类似的问题

虽然这些工具有助于生成 SBOM 和分析软件安全性,但它们需要手动制定规则,因此很难将它们用于广泛的产品。这是一个严重的问题,因为软件总是在变化,并且有许多不同类型的软件产品可用。因此需要更快地制作和更新 SBOM 并能够同时处理许多不同产品的方法。

3. 系统设计

ERS0 中的自动化 SBOM 生成过程是一个通用工作流程,从固件映像开始,生成完整的 SBOM,并完成安全漏洞评估和行为分析。 这个详细的过程集成了开源拆包工具、机器学习模型以及预定义和动态生成的规则的使用,以生成不仅在组件列表方面而且在安全分析方面提供丰富信息的 SBOM。 工作流程如下图所示:

  • Step 1-4. 固件拆包、字符串提取以及二进制文件反汇编:通过支持多种镜像格式的解包工具 unblob 将固件解包为独立的二进制文件和资源文件。通过二进制文件中的有效字符串(组件名称、组件版本等),实现固件的有效提取。通过 Ghidra 和 IDA Pro 将二进制文件的机器代码转换为汇编代码。
  • Step 5-6. 字符串嵌入与搜索:通过机器学习模型将字符串转换为其对应的嵌入,通过比较字符串嵌入之间的相似性可以实现字符串之间相似性的比较。通过将生成的字符串嵌入与已知的产品名称嵌入进行比较,以识别固件中的潜在匹配项。
  • Step 7-8. 代码嵌入与搜索:通过机器学习模型将汇编代码段转换为其对应的嵌入,通过比较代码嵌入之间的相似性可以实现代码之间相似性的比较。通过将生成的代码嵌入与已知的产品代码嵌入进行比较,以识别固件中的潜在匹配项。
  • Step 9-10. SBOM 与 CVE 匹配:在之前步骤中识别的组件信息及版本信息会被记录在 SBOM 中,ERS0 通过对 CVE 记录进行审查以确定识别的组件是否与已知漏洞相关。
  • Step 11-13. CAPA 规则生成:RES0 集成了 CAPA 引擎,该引擎应用预定义和动态生成的规则,根据软件的代码和元数据评估软件的功能和行为。除此之外,论文还通过 LLM 生成新的 CAPA 规则以应对更复杂的情况。
  • Step 14. ATT&CK 行为目录:RES0 系统根据 MITRE ATT&CK 框架对识别的行为进行分类。

总体而言,自动化的 SBOM 生成工作流程不仅有助于软件组件的识别和记录,还有助于评估其安全风险,从而为软件组件透明度和风险管理提供强大的工具。

3.1 常量匹配

RES0 通过机器学习技术将给定的输入字符串转换为嵌入高维空间的数值向量,最终实现大规模字符串模式的有效提取。下图中,对于产品名称 "pdns" 与版本字符 "[lua2backend]",模型应该为这两个字符串的相似性匹配结果输出 1;对于产品名称 "openssl" 与版本字符串 "lua2backend",模型应该为两个字符串的相似性匹配结果输出 0;对于类似于 "IEEE 802.11" 的字符串,模型应该将其与所有产品名称字符串的相似性匹配结果输出为 0,因为该字符串对应网络协议,类似的网络协议字符串是否真的对于组件识别没有任何作用仍待商榷

为了实现匹配模型的构建,论文使用预训练模型 CANINE 作为编码器,其详细信息可参考论文或链接。该模型已经在广泛的文本语料库上进行了预训练,利用这周预训练模型可以促进 "产品名称" 与 "版本字符串" 之间的语义匹配。例如,"libcrypto" 是 "libssl" 包中的一个库,而 "libssl" 又是 Op-enSSL 项目的一部分。因此预训练模型无需微调就可以在 "libcrypto"、"libssl"、"OpenSSL" 之间取得较高的相似性(相关性)。在上图中,编码器模型按照  Siamese 架构进行训练,进而学习两个输入字符串之间的相似性。具体来说,论文的目标是计算产品名称 P 与版本字符串 V 之间的相似性值,使用 CANINE 预训练模型将这些输入转换为数值向量,令 f(P) 和 f(V) 分别代表 P 和 V 的嵌入向量,如下式所示:

嵌入向量 f(P) 和 f(V) 之间的余弦相似度可通过下式计算:

基于余弦相似度的余弦损失函数可通过下式计算:

在相似性匹配阶段,首先,RES0 将所有已知的产品名称 P 编码为向量表示形式(作为参考数据库,可以与传入的字符串进行比较)。之后,RES0 将接收到的版本字符串 V 编码为向量表示形式。最后,RES0 通过余弦相似度对两类向量表示进行比较,并通过设置好的阈值判断字符串是否匹配。 

3.2 代码匹配

RES0 通过机器学习技术将给定二进制可执行文件的汇编代码与已知产品二进制文件的汇编代码进行比较。RES0 利用专门训练的模型 Pluvio 来识别各种计算机体系结构中汇编代码的相似性,该模型通过检测不同类型平台上功能和用途相似的汇编代码实现 TPC 的匹配。例如,对于两个不同版本的校验和算法 CRC32(一个针对 ARM 处理器,另一个针对 AMD64 处理器),Pluvio 模型可以有效识别他们之间的相似性。具体来说,ERS0 首先对提取到的固件进行反汇编,从而揭示固件中有关代码含义和结构的更丰富的语义信息。之后,ERS0 将连续的汇编代码流分割为独立的汇编函数,并进行控制流分析。最后,通过比较汇编代码函数之间的相似性实现固件中 TPC 的有效检测。识别跨架构汇编代码功能和用途之间的相似性。

代码匹配算法如上所示,该算法在步骤一将目标二进制文件作为算法的输入;在步骤二从目标二进制文件中提取所有汇编函数;在步骤三分别提取上一步提取出的汇编函数并进行单独分析;在步骤四使用 Pluvio 模型在综合存储库中搜索每个函数 f 的克隆;在步骤五对目标函数匹配到函数对应的 TPC 进行计数;在步骤六选择克隆技术最高的前十个 TPC;在步骤七将目标二进制文件与上一步提取的 TPC 二进制文件进行再次匹配;在步骤八算法检查克隆计数阈值并选择最高匹配的 TPC。

3.3 规则生成

ERS0 通过大型预训练自然语言模型(例如 ChatGPT 或 Llama2)来生成 YARA 规则,CAPA 是一个利用 YARA 规则来识别二进制可执行文件中的高级功能的开源项目,下图为其应用示例。该示例尝试识别 "ws2_32.select" 应用程序编程接口(API)并标记二进制文件具有获取套接字状态的功能。 

然而,规则创建过程依赖于手动工作,需要安全分析师具有理解 ATT&CK 技术的强大背景,并且非常熟悉跨多个平台的低级和高级编程 API 和库。 这提出了重大挑战,因为规则生成过程必须扩大规模以涵盖所有 ATT&CK 技术。 论文采用检索增强生成 (RAG) 提示工程来促进规则创建过程。该技术将语言模型与检索系统相结合,使用外部信息生成文本。 具体来说,首先检索有关查询的相关信息以丰富对话上下文,然后继续执行提示对话的后续任务。 ERS0 使用 Atomic Red Team 项目作为外部知识库。 该项目包含每种 ATT&CK 技术的技术描述以及示例攻击的几种实现。 这种 RAG 设计允许 AI 动态提供最新的特定领域信息。 对于每种 ATT&CK 技术,ERS0 都会启动一个提示对话,其中包含八个步骤来创建 YARA 规则:

  • Step 1. 数据预备:整个 ATT&CK 目录(包括 Technique 描述和攻击示例)将被输入到 Atomic Red Team 项目的语言模型中。这些全面的数据确保模型对各种攻击技术有深入的了解。
  • Step 2. Technique 识别:请求模型提供给定 ATT&CK Technique ID 的详细描述。通过了解给定Technique 的细节,模型可以定制生成的规则以精确匹配与该技术相关的行为。
  • Step 3. 相似性分析:根据描述查找并列出与给定 ID 最相似的前五种技术。此分析有助于丰富规则生成目标技术的上下文,并提高所生成规则的准确性。
  • Step 4. 系统调用识别:通过模型识别与所考虑的技术相关的典型 Windows 和 Linux 系统调用。识别并合并相关系统调用对于查明规则需要解决的特定行为至关重要。
  • Step 5. 高级命令分析:通过模型识别不太常见且未记录的 Windows 内核 API,并与该技术相关联。这些不起眼的 API 通常在复杂的攻击中被利用,将它们包含在规则中可确保此类策略不会被忽视。
  • Step 6. 跨平台分析:将分析扩展到包括识别该技术的相关 MacOS、Java 和 Python API,确保生成的规则在不同操作系统中全面且有效。
  • Step 7. 常量识别:通过模型识别每个 API 使用的所有潜在常量值,例如十六进制数、浮点数、十进制数或字符串值。常量通常作为恶意操作的关键指标,使其识别对于规则的准确性至关重要。
  • Step 8. YARA 规则生成:通过模型生成专门定制的 YARA 规则,以检测与目标技术相关的行为。该规则可作为识别系统中是否存在特定恶意技术的实用工具。

通过自动化这些步骤,ERS0 克服了手动规则创建的挑战,从而能够在更大的范围内生成全面且有效的检测规则。 这种方法不仅高效,而且可以确保规则是最新的并且在各个系统中都是相关的。

4. 实验评估

论文开发了用于 SBOM 生成的基准数据集,这对于固件分析以评估工具对库和潜在漏洞的覆盖范围至关重要。 论文评估了三种工具的性能:FACT、EMBark 和 CVE Binary Tool,每个工具都与 ERS0 结合使用。 论文的数据集是通过聚合来自两个来源的所有包来编译的:用于 Linux 预编译包的 Debian 包存储库和用于 MS Windows 动态链接库 (DLL) 的 Conan 开源包存储库。 这总共产生了 395,933 个软件包和 1,583,732 个二进制可执行文件,每个可执行文件都带有产品和版本信息注释。为了进行评估,论文单独测试了每个工具以及 ERS0。 选择这种方法是因为 ERS0 被设计为与数据集中的所有包兼容,而其他每个工具对不同包的支持级别也不同。 仅当某个工具具有与该包相对应的预定义规则时,论文才专门评估该包上的工具。

上表描述的结果提供了三种工具(FACT、EMBArk 以及 CVE Binary Tool)在将二进制文件与适用包匹配的性能以及 ERS0 的性能方面的比较分析。 论文根据工具将二进制文件(libcrypto.dll)与其正确供应商(OpenSSL)和版本(1.1.1)匹配的准确性来评估工具。 

FACT 共有 42,838 个适用的包和 54,394 个二进制文件。FACT 匹配了 129 个二进制文件,而 ERS0 匹配了 45,690 个二进制文件。 EMBArk 拥有 78,854 个适用的软件包和 218,433 个二进制文件。EMBArk 匹配了 1,075 个二进制文件,而 ERS0 匹配了 163,824 个二进制文件。 CVE Bin-ary Tool 共有 102,571 个适用的包和 305,558 个二进制文件。 CVE Bin-ary Tool 匹配了 46,495 个二进制文件,而 ERS0 匹配了 269,432 个二进制文件。

这些结果表明,虽然每个工具都有自己的匹配二进制文件的能力,但 ERS0 在识别所有工具的二进制匹配方面表现出更强大的性能。 ERS0 的高匹配数量表明其较高的匹配覆盖能力。 然而,单个工具的匹配次数较低并不一定意味着性能较差; 他们的匹配可能是高度专业化的或保守的,以确保高精度。 同样重要的是要考虑上下文和特定用例,其中一种工具可能比其他工具表现更好,尽管数字较低,例如在需要特定包支持或更高精度的场景中。

5. 系统接口

ERS0 基于存储库的概念来组织固件映像。 在这种情况下,存储库体现了专门用于管理和分析的固件映像的集合。 值得注意的是,每个存储库的功能都独立于其他存储库。 这些存储库由当前用户专有,即将推出的功能将实现访问共享。

存储库仪表板提供了固件映像存储库中安全分析的高级视图,如下图所示。 这里的关键指标包括提取的二进制文件数量(21,835)、CVE 漏洞实例(4,697)以及高严重性漏洞的流行率(占总数的 48%)。 该仪表板突出显示了 CVE 的平均严重性分数 (6.94)、平均严重性分数的增加(与某些基线相比 +2.45%)以及漏洞的严重性,其中 129 个漏洞被确定为严重严重性(占总数的 3%)。 它还提供历史背景,并用线图显示 CVE 的平均年龄跨越五年,表明漏洞被识别和潜在解决的速度。 对行为类别的分析表明重点关注根级操作,而 ATT&CK 策略图表对观察到的行为及其来源进行分类,这对于理解攻击模式和规划防御至关重要。

给定存储库中的固件映像,用户可以打开其相应的最新 SBOM 分析报告。SBOM 和漏洞报告提供对系统软件组件中存在的漏洞的深入分析。CVE 分数百分位图显示了漏洞严重程度随时间的分布情况,年平均分数为 7.10,表明存在重大安全风险。 CVE 严重性饼图反映了这一点,显示高/严重漏洞占很大一部分(总共 83 个实例中的 50 个)。 该报告列出了几个特定的​​ CVE 条目,例如 "BoM point-to-point_protocol_project" 中的严重漏洞和 "BoM lua" 中的高漏洞。这些条目按严重程度进行分类,并为确定补丁和修复工作的优先级提供可操作的情报。 数据表明需要持续监控和更新软件组件,以有效缓解这些已识别的漏洞。能力报告深入研究了与系统内文件相关的特定功能和潜在风险。 它将行为分为数据操作、通信和具有数据操作/编码功能的主机交互文件等领域,其中 27 个使用 XOR 编码(一种混淆数据以逃避检测的常用技术)。 名为 "signify" 的文件被明确标识为采用此技术,与恶意软件行为目录的防御规避类别以及 ATT&CK 框架的 T1027 混淆文件或信息指示符保持一致。 这些见解对于使用复杂的混淆或规避方法识别可能构成安全风险的文件至关重要。

6. 结论

ERS0 有效增强了固件安全性和资产管理流程。 通过集成人工智能和大规模语言模型,它提供了一种改进的构建 SBOM 的方法,该方法可以扩展以适应各种字符串模式和库签名。 初步结果表明,ERS0 可以提供更全面的 SBOM 覆盖范围和更准确的漏洞识别,同时还提供更广泛的功能。 与开源替代方案相比,其性能表明它有潜力通过可扩展且高效的工具来管理固件资产和保护供应链,从而支持军事行动。 展望未来,ERS0 可以在网络防御的持续改进中发挥支持作用,满足军事技术和基础设施不断变化的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值