中文

链路专家 (CoE):通过代码克隆搜索逆向工程 JavaScript 应用捆绑包的软件材料清单

软件工程 2024-08-30 v1

摘要

软件材料清单 (SBoM) 是软件制品中所有组件、库和模块的详细目录,提供软件供应链 throughout 的可追溯性。随着 JavaScript 在软件工程中因其动态语法和无缝供应链集成而日益流行,暴露于漏洞和攻击的风险也显著增加。JavaScript 应用捆绑包是为部署目的而 consolidating、symbol-stripped 和优化后的代码集合。通过逆向工程过程从 JavaScript 应用捆绑包生成 SBoM 可确保供应商软件发布的完整性、安全性和合规性,即使无法获取原始依赖图。本文介绍了针对 JavaScript 应用捆绑包生成 SBoM 的首个研究。我们确定了该任务的三个关键挑战,即嵌套代码作用域、极长序列和大型检索空间。为解决这些挑战,我们引入链路专家 (CoE),一个用于通过代码分段、代码分类和代码克隆检索生成 SBoM 的多任务深度学习模型。我们在 500 个 Web 应用捆绑包(包含超过 66,000 个依赖项)上对 CoE 与单个任务特定解决方案进行评估。我们的实验结果表明,与组合的单个任务特定解决方案相比,CoE 在训练和推理时间上都具有竞争力。因此,CoE 为 JavaScript 应用捆绑包的 SBoM 生成提供了第一个可扩展、高效且端到端的解决方案。

关键词

引用

@article{arxiv.2408.16198,
  title  = {Chain-of-Experts (CoE): Reverse Engineering Software Bills of Materials for JavaScript Application Bundles through Code Clone Search},
  author = {Leo Song and Steven H. H. Ding and Yuan Tian and Li Tao Li and Philippe Charland and Andrew Walenstein},
  journal= {arXiv preprint arXiv:2408.16198},
  year   = {2024}
}