互联网安全研究小组 (ISRG) 的 Prossimo 项目正在用 Rust 重写 sudo 和 su,目标是提升它们在内存方面的安全性,确保它们不再遭受内存安全漏洞的困扰,并进一步增强 Linux 和开源生态系统的安全性。
据介绍,Prossimo 选择的软件会重点关注以下方面:
- 使用非常广泛(几乎每个服务器/客户端都在使用)
- 位于临界边界
- 执行关键功能
- 是否使用了内存不安全的语言编写(例如 C、C++、asm)
而 sudo 刚好满足了上面的情况,因此 Prossimo 决定保护这款最关键的软件,尤其是避免内存安全漏洞。
sudo(substitute user [或 superuser] do),是一种计算机程序,用于类 Unix 操作系统如 BSD、Mac OS X/macOS 以及 GNU/Linux,该计算机程序可以让用户以安全的方式使用特定的权限执行程序(通常为操作系统的超级用户)。
它最早开发于 1980 年代。几十年来,sudo 已成为执行更改同时最大程度降低操作系统风险的重要工具。
但因为它是用 C 编写的,所以 sudo 经历了很多与内存安全问题相关的漏洞。为了确保关键软件的安全性,防止内存安全漏洞,由 AWS 资助的 Ferrous Systems 和 Tweede Golf 正在联合将 sudo 和 su 从 C 移植到 Rust。
该项目现在托管在 GitHub:https://github.com/memorysafety/sudo-rs
这项工作从去年 12 月开始,计划于 2023 年 9 月结束。具体开发计划查看:Work Plan。