各位 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 lost47524752 still reachable6426262615 indirectly lost355355 possibly lost212191
通过上面表格,我们可以知道,rust重构后的项目:
“possibly lost(可能的内存泄漏)”数量,比重构前的项目,要减少10%。
随着重构的进行,utsudo的安全性会比上述表格中的数据有进一步增强。
7、项目未来规划
utsudo目标是提供一个安全稳定,可定制的提权工具。utsudo使用rust重构,从语言层面避免了因人为疏忽导致的内存泄露等安全缺陷,在将来,utsudo会支持用户自定义功能,通过用户自己的插件,满足不同提权需求。
在接下来的时间里,我们有如下规划:
1、2023年12月,完成二期功能开发,完成对提权功能主体流程的重构,包括参数解析、插件调用等模块。
2、2024年,完成对sudoers插件模块的重构。包括鉴权验证,功能参数配置等功能。