近日,在 sudo 中发现了一个基于堆的缓冲区溢出漏洞(CVE-2021-3156),其 CVSS 评分为 7.8,被称作“Baron SamEdit”。成功利用该漏洞,任何无特权的本地用户无需额外身份验证即可立即提升至 root 权限。该漏洞影响以下 sudo 版本:
- 1.8.2 至 1.8.31p2 的遗留版本
- 1.9.0 至 1.9.5p1 的稳定版本
这对大多数组织,尤其是那些主要基于 Linux 基础设施的组织构成了严重威胁,因此检测此类威胁至关重要。大多数漏洞扫描器现已更新,能够检测系统是否存在漏洞。但如果您想进行额外检查,可以在任何有疑问的系统上运行以下命令进行可靠验证:
sudoedit -s '\' `perl -e 'print "A" x 65536'`
该命令会返回两种输出之一,用于判断系统是否存在漏洞:
- 如果系统返回的错误信息包含“Segmentation fault”或“malloc(): corrupted top size”,则系统存在漏洞。
- 如果系统返回“usage”,则系统不存在漏洞。
开发检测方法
自该漏洞初始文档发布以来,已经出现了许多 PoC 变体,其中最可靠的利用代码来自:
如果您希望进行自己的模拟以创建检测规则,上述资源是不错的起点。但请注意,所有可用的 PoC 都基于类似的技术,即通过 -s 选项(设置 sudo 的 MODE_SHELL 标志)或 -i 选项(设置 sudo 的 MODE_SHELL 和 MODE_LOGIN_SHELL 标志)来调用 sudoedit 命令。以下是成功和失败利用的示例输出:
鉴于 sudoedit 的调用方式,最直接的检测方法是利用 Linux 命令行审计功能,查找使用了“-i”或“-s”选项的 sudoedit 命令。一个非常简单的检测逻辑如下:
("Sudoedit" AND ("-i" OR "-s"))
在我们的测试中,当利用尝试失败或发生正常的系统管理员活动时,此类检测也会触发告警。为了更好地微调查找,不能仅仅寻找传递给 sudoedit 的常见选项。
为了成功利用该漏洞,系统上必须安装 C 编译器,因为需要编译用于构建必要 EXECVE 调用的代码。GCC 是最常见的 C 编译器,它原生安装在大多数 Linux 操作系统上并被广泛使用,这使我们能够编写一个补充检测规则。
如前所述,GCC 普遍存在,试图对 GCC 编译 .c 文件的行为进行告警会让安全运营中心(SOC)淹没在海量告警中。但我们的目的不是直接告警,而是补充之前的检测规则,以提高真正告警的有效性,同时减少系统管理员日常操作带来的噪音。
通过寻找一系列事件序列:首先是 GCC 构建 EXECVE 调用,随后触发 sudoedit 检测规则。这将使我们能够获得一个高效的检测规则,自然地过滤掉基础设施中发生的常见系统管理员活动,从而使 SOC 能够有效地处理单个可信告警。
如果您已经在使用 Anvilogic,可以通过我们的无代码威胁场景构建器轻松实现这种序列化检测,将两个检测规则通过时间窗关联起来,并将自动生成的代码以及经过验证的底层检测规则直接部署到您的 SIEM 中。
Anvilogic 平台旨在帮助安全运营中心提升能力,它使分析师能够通过机器学习推荐快速识别相关的威胁检测,通过自动化工作流将这些检测部署到他们的 SIEM 中,并允许任何分析师通过我们的无代码威胁场景构建器创建复杂的检测。我们所有的检测规则都是利用真实漏洞利用开发的,并附有威胁情报详情,且经过我们的安全威胁研究团队的验证。
要了解有关 Anvilogic 的更多信息,请访问 www.anvilogic.com 并申请演示我们的产品。
关于作者
Kevin Gonzalez 现任 Anvilogic 安全总监,负责威胁检测生命周期和企业安全。在加入 Anvilogic 之前,Kevin 在 Lennar Corporation 和 Cubic Corporation 领导网络安全运营、工程和架构实践,并为多家组织提供安全分析项目和安全解决方案架构的咨询服务。Kevin 来自佛罗里达州迈阿密,拥有佛罗里达国际大学管理信息系统硕士学位以及多项网络安全认证。
Eric Hines 现任 Anvilogic 检测工程师,负责威胁检测分析和情报。在加入 Anvilogic 之前,Eric 是一名信息安全分析师,在美国海军的各种网络行动中拥有多元的背景。Eric 目前居住在田纳西州查塔努加,拥有马里兰大学全球校区计算机网络基础设施和网络安全学士学位以及多项网络安全认证。 CSD0tFqvECLokhw9aBeRqrZe0ThWKDr69cGkMPfLDl+cNYPeySNh4vCqeGuL02VpqtjJfSA5lWOMF8HRZ0HV2g1eVWwf2tsQcI189+5iIikY3K8o/Q+DL+xt7c44cJUIgqdSko/GMFcGv+FwyJyWHw==