主要观点:软件识别对于确定机器上运行的软件及相关安全漏洞至关重要,CISA 发布的白皮书研究软件识别生态系统选项,而 Guix 等通过功能软件部署和源代码识别工作提供独特视角。
关键信息:
- CISA 白皮书研究跨全球软件空间的软件识别生态系统。
- Guix 强调可重现性、来源跟踪和可审计性,能生产多种复杂度的二进制工件。
- 源代码和二进制形式的软件不同,源代码可通过固有标识符明确识别,二进制工件需是可验证构建过程的副产品。
- Guix 通过包定义、可重现构建、全源引导和来源跟踪等方式实现软件识别。
- 可重现构建可确保从源代码到二进制的可验证路径,全源引导提高透明度和安全性,来源跟踪能将二进制工件映射回完整源代码。
重要细节: - CPE 标准作为外在识别机制存在局限性。
- Guix 包定义包含源代码及其哈希和下载 URL,与 Software Heritage 连接。
- 构建基于 Hermetic 构建,通过派生表示构建过程,形成二进制工件的构建依赖图。
- 全源引导从小二进制种子开始构建所有包,提高安全性。
guix pack
命令可生成包含二进制和来源信息的自描述 Docker 镜像,guix time-machine
可重现特定二进制工件。- 仅包名/版本对的软件材料清单无法捕获足够信息,OmniBOR 的 ADG 也有局限性。
结论:固有标识符适用于源代码识别,二进制工件应视为计算过程结果,通过可重现构建和全源引导支持来源跟踪和验证。这些观点在 2022 年科学论文中有进一步阐述。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。