2025年的 Crate 安全:工具与技术 (RustConf China 2025系列精选)

本内容是对 RustConf Chian 2025系列演讲中 2025年的 Crate 安全:工具与技术 内容的翻译与整理。推荐点击链接观看原视频。

演讲嘉宾 Adam Harvey, Rust基金会安全软件开发者



好的,谢谢。大家好,我是 Adam。我大概会待在这边,尽量不挡住屏幕。今天我要跟大家聊聊供应链安全。我在加拿大工作。

我在 Rust 基金会担任软件开发工程师,主要专注于生态系统安全。实际工作中,主要是尝试在 crates 里发现恶意软件,并协助处理一些事件,比如昨晚有些人可能看到的,有人试图冒充 crates.io 来窃取大家的 GitHub 令牌。那挺“有趣”的,导致我比预期更晚才睡。我同时也是 Rust crates.io 团队的成员。我应该说明一下,尽管我今天穿着这件 T 恤,我并不是以 Rust 基金会的官方身份发言。但如果我说了什么很聪明的话,那肯定就是 Rust 基金会的官方立场。

我们会比较快地过一遍,因为这是个相对简短的演讲。我会覆盖两个大的方面:第一,整体谈谈供应链安全,以及我所知为改进供应链正在进行的工作;第二,基于这些,介绍一些你可以实际使用的工具,帮助提升你自身供应链安全,改善你所依赖的依赖项的安全性。换句话说,演讲的前半段我会把你们吓一吓,后半段我会告诉你们其实一切都会好起来的。

供应链安全的基本概念并不难。你所使用的一切,尤其在 Rust 这样的语言里,都会使用到其他东西,而那些东西又依赖别的东西;你构建的东西要安全,整条链上的东西都需要安全。实际上,几乎不可能在实践中完全避免这种链式依赖。即便你在做嵌入式系统开发,就像 James 刚刚讲的那样,即使你不使用标准库,你仍然要依赖编译器,可能还要依赖操作系统,而这些同样需要是安全的。

cargo tree -p serde

举个例子,这是一个简单的 crate:Serde,大多数人应该都知道。即便是 Serde 也有 6 个依赖,而且我很确定 David Tolnay 已经尽力把依赖数降到最少了。这意味着,当我们使用 Serde 时,并不是只拉一个 crate,而是拉进来加总起来大概六七个之类的。这会很快累加,因为有些东西比另一些更复杂。


比如这个文本编辑器 Zed,有些人可能听说过,它完全用 Rust 编写。Zed 直接依赖(屏幕上有)164 个 crate,但当你查看整个依赖树时,会拉进来 1115 个依赖。这就意味着有 1115 个 crate 必须是安全的。我就不在这里展示 cargo tree 的输出了。我尝试过把它画成图,但效果并不好。重点是:依赖真的很多。

即便是更小的项目,比如 BAT(一个用 Rust 写的更好的 cat 替代品),也有 30 个直接依赖和 119 个传递依赖。其中很多是我在工作中常见的,比如做命令行解析几乎都会用到 clap。我的工作经常是写一些一次性分析用的小工具。我会说,这些项目平均都会拉进 80 到 100 个依赖。这还不包括任何异步相关的内容,比如 Tokio 等等。总之

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值