主要观点:作者对比 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 等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。