Rust 重写 sudo 和 su


互联网安全研究小组 (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。


相關推薦

2023-08-31

互联网安全研究小组 (ISRG) 发起的 Prossimo 项目——用 Rust 重写 sudo 和 su,目标是提升它们在内存方面的安全性,确保它们不再遭受内存安全漏洞的困扰,并进一步增强 Linux 和开源生态系统的安全性。 sudo(substitute user [或 sup

2023-02-02

,不需要任何配置。 fish 作者近日提交 PR 称要用 Rust 重写 Fish Shell 项目。 他认为应该将 Fish Shell 的开发语言从 C++ 过渡到 Rust,目标是在下一个主要版本发布之前完成它,重写原因包括: 没有人真正喜欢 C++ 或 CMake,也

2023-03-03

 —— 内核中的“VGEM”驱动程序正在用 Rust 编程语言重写。 VGEM(Virtual GEM) 是 Linux 4.1 版本引入的虚拟 GEM 提供者,作为最小的非硬件支持的图形执行管理器 (GEM) 内存管理服务已经存在了一段时间。它被 LLVMpipe 和其他非本

2023-04-29

微软正在用 Rust 编程语言重写核心 Windows 库。Windows 操作系统安全总监 David “dwizzle” Weston 上个月在以色列特拉维夫的 BlueHat IL 2023 上宣布,Rust 将进入操作系统内核。"在接下来的几周或几个月内,你将在内核中使用 Rust 启动 Win

2023-03-21

日,其团队发博客称将要将 Rust 引入 Xen 项目,使用 Rust 重写一些 Xen 组件。 Xen 是由剑桥大学开发的 x86 开源虚拟机监控器 (VMM),支持在单个机器上高性能地虚拟化多个操作系统。 XCP 项目的整个平台包含许多不同的程序

2023-02-05

llabora 的 Faith Ekstrand 近日发文,介绍了有关考虑使用 Rust 重写 Mesa Vulkan 驱动的工作。这项工作的设计目标包括让 Rust Vulkan 驱动封装尽可能 clean 和“Rust-like”、跟踪可变性和生命周期,并尽可能使用 Vulkan allocators。 目前,Mesa

2023-03-01

同的服务。 近日,Cloudflare 工程师介绍了如何使用 Rust 重写基于 C 语言的 Nginx 模块。Cloudflare 工程师在博客写道,他们用 Rust 为 Cloudflare 基础设施中最古老和最不为人所知的部分——cf-html,编写了替代品。这是一个 Nginx 模块,

2022-12-23

成当前变革,这些工作都停滞了。 此外,他认为 Rust 要重写审视“稳定而不停滞”的战略。避免停滞非常重要,Rust 不能停止创新,但也不能无限制地任由其发展。因为语言的复杂性和规模是有代价的,这与 Rust 让人们编写可

2023-08-03

因,从 FydeOS v17 开始,你将无法在系统 bash shell 中使用「sudo su」命令来提权,请使用「sudo -i」命令作为替代。 值得注意的有: 从 FydeOS v17 开始,我们推出了 FydeOS 及配套服务的「区域版本」,不同区域版本的产

2023-11-16

Vjeux 在 Twitter 发帖,寻求有能力的开发者来使用 Rust 重写前端代码格式化工具 Prettier,并悬赏 1 万美元。 使用 Rust 实现更快、更美观的 printers 引起了广泛关注。但主要问题在于,它们都无法与 prettier 的长尾格式化逻

2023-11-28

。 项目维护者 Fabian Boehm 今天在 GitHub 回应了使用 Rust 重写 Fish Shell 的进度,称已几乎完成。 根据开发者的说法,他们已经完成了从 C++ 到 Rust 的大部分移植工作,但还有一些剩余的组件需要进行翻译。目前,他们正在处

2023-12-01

os-rebuild 可能会因挂载单元丢失而失败。 现在支持用 Rust 重新实现 sudo 的 sudo-rs 模块。新增了一个实验性模块 security.sudo-rs。由于 sudo-rs 当前的局限性,切换到该模块(通过 security.sudo-rs.enable = true;)会带来 sudo 行为的细微变

2023-07-18

ider Preview Build 25905)。 发布公告提到此版本已经使用 Rust 重写 Windows 11 内核中的部分模块。 据介绍,该预览版使用 safe Rust 对关键内核功能进行了早期实现。具体来说,win32kbase_rs.sys 包含 Windows GDI region 的新实现。虽然

2023-01-19

发团队去年将原本用 Ruby 编写的 CLI 工具改用 Node 进行了重写,并在近日介绍了这项决定背后的原因和权衡。 Shopify CLI 是 Shopify 平台开发者的重要工具,能够用于构建主题、应用程序和 Hydrogen 开发,让开发者以最佳实践创建