识别软件—2024—博客—GNU Guix

主要观点:软件识别对于确定机器上运行的软件及相关安全漏洞至关重要,CISA 发布的白皮书研究软件识别生态系统选项,而 Guix 等通过功能软件部署和源代码识别工作提供独特视角。
关键信息

  • CISA 白皮书研究跨全球软件空间的软件识别生态系统。
  • Guix 强调可重现性、来源跟踪和可审计性,能生产多种复杂度的二进制工件。
  • 源代码和二进制形式的软件不同,源代码可通过固有标识符明确识别,二进制工件需是可验证构建过程的副产品。
  • Guix 通过包定义、可重现构建、全源引导和来源跟踪等方式实现软件识别。
  • 可重现构建可确保从源代码到二进制的可验证路径,全源引导提高透明度和安全性,来源跟踪能将二进制工件映射回完整源代码。
    重要细节
  • CPE 标准作为外在识别机制存在局限性。
  • Guix 包定义包含源代码及其哈希和下载 URL,与 Software Heritage 连接。
  • 构建基于 Hermetic 构建,通过派生表示构建过程,形成二进制工件的构建依赖图。
  • 全源引导从小二进制种子开始构建所有包,提高安全性。
  • guix pack命令可生成包含二进制和来源信息的自描述 Docker 镜像,guix time-machine可重现特定二进制工件。
  • 仅包名/版本对的软件材料清单无法捕获足够信息,OmniBOR 的 ADG 也有局限性。
    结论:固有标识符适用于源代码识别,二进制工件应视为计算过程结果,通过可重现构建和全源引导支持来源跟踪和验证。这些观点在 2022 年科学论文中有进一步阐述。
阅读 31
0 条评论