谷歌开源内部 Rust Crate 审计结果


谷歌宣布并发布了一些汇总的 Rust crates 内部审计结果,以继续履行对开源 Rust 社区的承诺。一直以来,谷歌都在积极拥抱 Rust,在许多开源项目中进行了应用。以及持续投资 Rust 社区:包括帮助建立了 Rust 基金会,员工积极贡献 Rust 上游、在财务上支持关键的 Rust 项目等。

此次开源对 Rust Crate 的审计结果,则使得开发者可以自己的项目中轻松导入这些已经由谷歌审核完成的结果,以证明所使用的 Rust Crate 的属性;并根据这些数据,判定 crate 是否满足项目的安全性、正确性和测试要求。同时,也避免了开发者之间一些重复的审计工作。

“Rust 可以轻松地将代码封装和共享到 crate 中,crate 是可重用的软件组件,就像其他语言中的包一样。我们拥抱广泛的开源 Rust crate 生态系统,既利用了谷歌以外编写的 crates,也发布了我们自己的几个 crates。”

根据介绍,Rust 社区本身存在一个名为 Crates.io 的服务,供开发人员分发自己的 crate;开发人员可以使用 Crates.io 下载和使用其他人开发的 crate,但所有的第三方代码都有一定的风险因素。在一个项目开始使用一个新的 crate 之前,成员们通常会进行一次彻底的审计,根据他们的安全、正确性、测试等标准来衡量它。谷歌将其审计结果进行整合并进行了开源发布,还使用 cargo vet 来快速验证了项目所使用的 crate。

不同的用例有不同的要求,而 cargo vet 允许用户为每个依赖项独立配置要求。在本地编译器层面,对 crate 的要求可能只在于不包含活跃的恶意代码、侵犯隐私、泄露数据或安装恶意软件。但客户端部署的代码通常却需要满足更严格的要求,比如确保有没有内存安全问题,使用最新的密码术以及符合标准和规范。因此在使用和共享审计结果时,重要的是要考虑项目的要求与审计期间记录的事实的关系。

目前,ChromeOS 和 Fuchsia 项目已经贡献了他们的审计结果。谷歌方面表示,该公司的一些其他开源项目也将很快加入此行列。“我们希望通过与开源社区分享我们的工作,可以让 Rust 生态系统更加安全可靠......我们希望你能从 Googlers 所做的工作中发现价值,并与我们一起建立一个更安全、更可靠的 Rust 生态系统。”


相關推薦

2023-08-02

审计中强调的风险。四种不同威胁模型的开发涉及与各个内部团队以及外部利益相关者的协作,包括 crates.io 团队、基础设施团队、安全响应工作组和安全代码工作组。所有这些威胁模型的详细信息预计将在不久的将来与社区共

2022-10-18

谷歌宣布推出安全操作系统 KataOS,作为他们最新专注于运行环境侧重于机器学习工作负载的嵌入式设备的操作系统。出于将安全性放在首位的宗旨,KataOS 专门使用 Rust 语言开发,并基于 seL4 微内核进行了构建。 通过 seL4 CAmkE

2022-10-21

谷歌宣布将其 Go 应用镜像构建器 ko 作为沙箱项目提交给 CNCF。ko 是谷歌在 2019 年开源的 Go 应用程序的简单、快速和安全的容器镜像构建器,最近还添加了一些新功能,包括多平台支持和自动 SBOM 生成。 就像谷歌

2023-06-30

谷歌基于团队内部使用 Rust 的体验和经历,分享了他们对这门“网红”编程语言的见解,其中包括对常见 Rust 谣传的澄清。 1. Rust 至少需要学习 6 个月 谷歌驳斥了此说法。 谷歌内部调查显示,超过 2/3 的受访者有信心在学习

2023-03-11

似于一些 crate,比如 tokio::pin! ,但是标准库可以利用 Pin 内部结构和临时生命周期扩展来获得更像表达式的宏。 fn block_on<F: Future>(future: F) -> F::Output { let waker_that_unparks_thread = todo!(); let mut cx = Context::from_waker(&waker_that_un

2022-07-26

谷歌工程师 Chandler Carruth 近日在多伦多举办的 CppNorth 大会上宣布,正式开源谷歌内部打造的编程语言:Carbon,并称 Carbon 是 C++ 的继任者(目前处于实验性阶段)。 Chandler 列举了当今流行编程语言演进的一些例子,比如:Java

2022-09-15

了一笔资金,以支持一名专门的安全工程师。Alpha-Omega 由谷歌和微软资助,其使命是直接参与提高 OSS 项目的安全性。“我们正在学习如何把钱变成安全”。

2023-05-09

关详细信息,请参阅扩展 Python 库代码。 BitBake 有多项内部更改,这些更改可能会提高内存和磁盘使用率以及解析时间,特别是: BitBake 的 Cooker 服务器现在是多线程的。 Ctrl+C 现在可以用来中断一些以前忽略它的长时间运

2022-09-20

: 治理挑战 1、如何引导开发并保持 Rust 的开放性? 开源工作中,在什么是对项目最有利的,以及什么是志愿贡献者想做的之间总存在着一些矛盾。现在,随着 Rust 社区逐渐发展壮大且 Mozilla 结束直接支持,Rust 中的这种紧张

2023-02-02

uiltin_wait 和其他一些功能移植到了 Rust。Rust 位存在于 C++ 内部并与之链接的 crate 中。开发者可以按照常见的方式进行构建: 安装 Rust 1.67 或更高版本 像往常一样 cmake,可以通过 corrosion 来运行 关于使用 Rust 重

2022-09-23

Rust 1.64 还提供了 alloc::ffi::CString,用于处理只使用 alloc crate 的 C 字符串。 rust-analyzer 现在可以通过 rustup 获得 rust-analyzer 现在作为 Rust 工具集的一部分被包含在其中。这使得下载和访问 rust-analyzer 更加容易,并使其在更多平台

2023-10-09

钓鱼即服务平台 Greatness - FreeBuf网络安全行业门户】 3. 谷歌为攻击中利用的libwebp漏洞分配了新的最高CVE编号 谷歌已经为最近被攻击利用的libwebp安全漏洞分配了新的最高CVE编号(CVE-2023-5129)。这个零日漏洞在两周前修补过。【V

2023-06-03

t 的新版本 —— 1.70.0,新版本中值得关注的变化包括: Crates.io 默认启用稀疏索引 Cargo 的 "sparse" 协议现在默认启用,用于从 crates.io 读取索引。这个功能之前已经在 Rust 1.68.0 中稳定下来,但仍然需要配置才能在 crates.io 中使用

2023-04-27

计脱不了干系。Rust 标准库可以被看作是几个相互依赖的 crates,其中两个主要组成部分是 core 和 alloc。就目前而言,gccrs 还不能编译其目标版本的 core crate;虽然 Philip 正在推进该方面的工作,但这一落后还是“严重影响了我们