中文

SBOM.EXE:针对Java动态代码注入的软件账单(SBOM)

密码学与安全 2024-07-02 v1 软件工程

摘要

软件供应链攻击日益成为重大威胁,因为软件开发越来越依赖来自多个、常常未经验证来源的贡献。来自未经验证来源的代码并不会构成威胁,直到被执行。Log4Shell是近期一次供应链攻击,示例在运行时处理恶意输入,导致远程代码执行。它利用Java的动态类加载功能破坏了应用程序的运行时完整性。传统的防御措施可在构建时缓解供应链攻击,但在缓解由动态加载的恶意类在运行时提出的威胁方面存在局限。这要求开发一种系统来检测这些恶意类并防止其执行。本文介绍SBOM.EXE,一种旨在保护Java应用程序免受此类威胁的主动系统。SBOM.EXE构建基于应用程序完整软件供应链的可接受类列表,并在运行时强制执行此列表,阻止任何未识别或被篡改的类执行。我们通过缓解基于上述威胁的3个关键CVE来评估SBOM.EXE的有效性。我们运行该工具与3个开源Java应用程序,报告称该工具与实际应用程序兼容且具有最小的性能开销。我们的发现表明,SBOM.EXE能够以最小的性能影响维持运行时完整性,提供一种新方法来加固Java应用程序免受动态类加载攻击。

关键词

引用

@article{arxiv.2407.00246,
  title  = {SBOM.EXE: Countering Dynamic Code Injection based on Software Bill of Materials in Java},
  author = {Aman Sharma and Martin Wittlinger and Benoit Baudry and Martin Monperrus},
  journal= {arXiv preprint arXiv:2407.00246},
  year   = {2024}
}

备注

17 pages, 3 figures, 5 tables, 8 listings