墙上有 999 箱 Rust

主要观点:作者对比 crates.io 上的 crate 与其上游仓库,以检测供应链攻击,目前已完成对下载量最多的 999 个 crate 的对比并公布结果,未发现恶意活动,约 83%的 crate 版本与上游仓库匹配,同时指出了分析过程中的诸多问题及未来工作方向。
关键信息:

  • 工具:已构建分析 crate 版本的工具,未来将开源,目前依赖个人镜像 crates.io 的工具。
  • 方法:取每个 crate 的每个版本,检查 manifest 中的repository、crate 文件中的 VCS 元数据,克隆仓库重建 crate 文件等。
  • 问题:包括 symlinks 处理、文件不存在、脏 crate、构建失败、workspaces 相关问题、非常旧的 crate 等。
  • 结果:最近的 999 个 crate 版本中,多数匹配上游仓库,少数存在各种问题,如找不到修订、缺少 VCS 信息等。
  • 未来工作:扩展到整个 crates.io corpus,集成到 crates.io 进行实时检查,提供 GitHub 行动,改进分析等。
    重要细节:
  • 对 999 个 crate 的定义及选择依据,如按下载量和时间等。
  • 感谢 Rust Foundation 和 crates.io 团队的支持。
  • 前端相关的说明,如作者非前端开发者及页面大小等。
  • 关于cargo package的相关问题及等待的 cargo issue 等。
阅读 16
0 条评论