各位 openEuler TC委员大家好: 1、推荐项目 项目名称:utsudo 推荐方向:openEuler年度技术创新项目 2、推荐人: 王路军 Email: wanglujun@uniontech.com giteeid:ut-wanglujun 曹佩庆 Email: caopeiqing@uniontech.com giteeid:hustcao4 宾凌宇 Email: binlingyu@uniontech.com giteeid:binlingyu 张欢欢 Email: zhanghuanhuan@uniontech.com giteeid:luckhuanhuan 吕从庆 Email: lvcongqing@uniontech.com giteeid:HelloWorld_lvcongqing 3、仓库地址 https://gitee.com/openeuler/utsudo https://gitee.com/src-openeuler/utsudo 4、应用范围 utsudo已集成到UOS和openEuler23.09版本中。 5、社区贡献 目前的utsudo仓库,共有7名开发者参与开发工作,已有15920行rust代码,已向社区提交并合入1000+PR。 二期功能的开发也正在如火如荼的进行,每天都会有新的代码提交和功能实现。二期功能开发全部完成后,rust代码规模预计达到30000+行。 6、项目介绍 随着科技发展,安全不再是当今世界的可选项。频发的安全漏洞,越来越严重的影响着每个人的工作和生活。系统管理员可以使用sudo命令授予某些用户以 root身份运行某些命令的权限,如果sudo存在安全漏洞,对系统的威胁是致命的。 基于上述考虑,我们打算使用更加安全的语言rust对sudo命令进行重构。考虑到目前sudo的广泛应用,要求我们重构后的utsudo,要保持对sudo的完美兼容,同时性能也要基本持平或者优于原生sudo。 通过使用Rust编程语言进行重构,utsudo能够有效防止高危漏洞,如缓冲区溢出和内存泄漏。Rust的静态类型检查、所有权模型和轻量级运行时系统,使得utsudo能够以更高效、更可靠的方式运行,并减少对系统资源的占用。 2023年6月份utsudo在openEuler社区创建,归属在memsafety SIG组。 utsudo项目将为操作系统中的Sudo功能带来革命性的改进。随着越来越多的开发者和组织意识到Rust在安全性和可靠性方面的优势,utsudo将成为未来操作系统中的首选Sudo工具。 安全性提升 为了验证utsudo的安全性,我们使用Valgrind工具进行了简单测试。Valgrind是一种开源的内存调试和性能分析工具。它主要用于帮助开发人员检测和调试程序中的内存泄漏、访问越界和数据竞争等问题。 重构前 重构后 difinitely lost 4752 4752 still reachable 64262 62615 indirectly lost 355 355 possibly lost 212 191 通过上面表格,我们可以知道,rust重构后的项目: “possibly lost(可能的内存泄漏)”数量,比重构前的项目,要减少 10 %。 随着重构的进行,utsudo的安全性会比上述表格中的数据有进一步增强。 7、项目未来规划 utsudo目标是提供一个安全稳定,可定制的提权工具。utsudo使用rust重构,从语言层面避免了因人为疏忽导致的内存泄露等安全缺陷,在将来,utsudo会支持用户自定义功能,通过用户自己的插件,满足不同提权需求。 在接下来的时间里,我们有如下规划: 1、2023年12月,完成二期功能开发,完成对提权功能主体流程的重构,包括参数解析、插件调用等模块。 2、2024年,完成对sudoers插件模块的重构。包括鉴权验证,功能参数配置等功能。