Linux用户请注意!按照路透社的报导,Linuxsudo被爆出存在一个加壳漏洞,可完全绕开sudo的安全策略。
先简单说明一下情况,报导强调sudo存在一个安全策略隐患,尽管"sudoersconfiguration"配置文件中明晰表明不容许以root用户进行访问,但通过该漏洞,恶意用户或程序仍可在目标Linux系统上以root用户身分执行任意命令。
sudo,也就是以超级管理员身分运行(superuserdo)的意思。sudo是Linux中最常使用的重要实用程序之一,它功能非常强悍linux windows,几乎安装在每一款基于UNIX或Linux的操作系统上,也是这种操作系统的核心命令。作为一个系统命令,普通用户可通过它以特殊权限来运行程序或命令(一般以root用户身分运行命令),而无需切换使用环境。
默认情况下linux用户sudo权限,在大多数Linux发行版中linux用户sudo权限,/etc/sudoers文件中RunAs规约的ALL关键字容许admin或sudo组中的所有用户以系统中的任何有效用户身分运行任何命令。如右图所示:
但是,在Linux系统中存在一条基本安全范式——权限界定(privilegeseparation)。管理员可以配置sudoers文件,来指定什么用户可以运行什么命令。
这么一来,虽然限制了用户以root用户身分运行特定命令或任何命令,该漏洞也可能容许用户绕开此安全策略并完全接管系统。
Sudo开发者说到:“即便RunAs规约明晰严禁root用户访问,但若果Runas规约文件中首先列举了ALL关键字,具有sudo权限的用户就可以使用它来以root身分运行任意命令。”
怎样借助此漏洞?SudoUserID-1or4294967295
此外,该漏洞由苹果信息安全部门的JoeVennix追踪发觉(漏洞的CVEID为CVE-2019-14287)。假如想要借助这个漏洞,只需按以下的形式运行即可:
sudo -u#-1 id -u
或则
sudo -u#4294967295 id -u
不过我们也能见到这儿存在一个这样的前提,那就是你的安全策略设置如下:
eviluser = (ALL, !root) /usr/bin/vi
之后这个eviluser就能否通过sudo-u#-1vi命令以root身分运行vi。
之所以会形成这个漏洞,是由于将用户ID转换为用户名的函数会将-1(或无效等效的4294967295)误觉得是0linux防火墙设置,而这恰好是root用户UserID。据悉,因为通过-u选项指定的UserID在密码数据库中不存在,因而不会运行任何PAM会话模块。
最后,请将sudo升级到1.8.28最新版本,新版本已于明天发布!该漏洞会影响1.8.28之前的所有版本。
开源中国约稿啦!
开源中国是目前饱受关注、具有强悍影响力的开源技术社区,拥有超过400万的开源技术精英。我们传播开源的理念,推广开源项目,为IT开发者提供一个发觉、使用、并交流开源技术的平台。