现代软件开发高度依赖来自公共仓库的第三方组件,这扩大了软件供应链攻击面。为了应对这一风险,美国联邦倡议推动了软件物料清单(SBOM)作为标准化机制,通过描述软件组件、依赖关系及其关联来提升透明度。然而,基于元数据或文件系统工件构建的SBOM无法捕获运行时加载和执行的组件,尤其是在Python等动态生态系统中。此外,通过插桩生成运行时SBOM需要提前部署监控并保持系统可观测,这在生产环境和事件响应场景中难以满足。相比之下,易失性内存为恢复运行中应用程序的实际运行时状态提供了可靠来源,无需事先插桩。本文提出了MEM-SBOM,首个直接从Python应用程序运行时状态生成SBOM的内存取证框架。它从解释器内部结构恢复模块、解析包版本、分析字节码以构建依赖图并识别易受攻击的函数。我们将MEM-SBOM实现为一套Volatility 3插件,并针对51个真实世界Python应用进行了评估。结果显示,它实现了100%的提取准确率,识别出Streamlit是唯一调用tornado依赖中易受攻击例程的应用,并恢复了现有SBOM工具遗漏的所有运行时包,提供了更准确的依赖图和更好的漏洞评估。这些能力使MEM-SBOM成为软件供应链安全和事件响应的实用基础,通过对系统上实际执行的内容提供取证可靠的运行时视图。
💡 推荐理由: 现有SBOM工具无法反映运行时真实依赖,导致安全评估盲区。MEM-SBOM利用内存取证技术,无需预先监控即可生成准确的运行时SBOM,为供应链安全审计和事件响应提供关键支撑。
🎯 建议动作: 研究跟进