在2021年9月从微软补丁星期二更新这个星期就出来了。
每个人都屏息等待的修复是CVE-2021-40444的补丁,这是微软在星期二补丁发布前几天宣布的 MSHTML 中的零日远程代码执行错误:
MSHTML(Internet Explorer (IE) 使用的 Web 渲染器)中的远程错误总是一个大问题,特别是如果骗子在好人之前发现它们时。
距离补丁星期二只剩下这么短的时间,微软的一个大问题是,“他们会成功吗?”……幸运的是,答案是“是”:
当然,大多数补丁星期二更新关闭的不仅仅是一个安全漏洞,而其他一些通常不会得到太多宣传,要么是因为好人首先发现了它们,使补丁具有主动性,要么他们没有影响网络上的每台计算机。
本月,CVE-2021-38647 被证明是此类安全漏洞——有趣且重要,但显然不是很令人兴奋。
此缺陷根本不会直接影响 Windows,因为它是 Microsoft 的开源开放管理基础设施(OMI) 工具中的一个错误,该工具通常是为 Linux 设计的,特别是为 Azure 托管的 Linux 服务器设计的。
你没看错:本月的补丁星期二错误通知之一是针对 Linux 系统管理员的产品存在缺陷,微软通过其 GitHub 服务以源代码形式提供该产品。
事实上,一个多月前的 2021 年 8 月 12 日,OMI 源代码中正式提供了相关的错误修复。
因此,从表面上看,这个漏洞似乎是真正不值得上下跳动的漏洞之一,而且鉴于其公共源代码早已更新,它可能已经在许多或大多数服务器上进行了修补。
嗯,Wiz是一家发现并报告了这个错误并因此负责启动修复它的过程的奇怪命名的初创公司,认为这是非常值得兴奋的。
事实上,他们对此非常兴奋,以至于将其称为OMIGOD
,并将其写在公司博客上。
他们甚至给了它一个标志,我们在文章顶部的图片中使用了这个标志。
当您听到一个新的 BWAIN 宣布时很容易变得愤世嫉俗——我们轻松愉快地缩写为令人印象深刻的错误——但如果你有任何 Linux 服务器,值得注意 Wiz 所说的话。
大大简化了,OMI 是微软对 WMI 的基于 Linux 的回答,WMI是系统管理员用来监视其 Windows 网络的Windows 管理界面。
与 WMI 一样,OMI 代码作为服务器上的特权进程运行,以便系统管理员和系统管理软件可以查询和控制正在发生的事情,例如枚举进程、启动实用程序和检查系统配置设置。
不幸的是,网络骗子,尤其是勒索软件罪犯,就像系统管理员一样喜欢 WMI。
这是因为一旦攻击者在网络某处拥有管理员级别的滩头阵地,WMI 就可以帮助他们在整个组织中计划和执行破坏性攻击。
可悲的OMIGOD
是,从理论上讲,这是一个 OMI 错误,它为犯罪分子提供了对您的 Linux 服务器的相同类型的分布式电源......
…除非您首先不需要管理员级别的滩头阵地,因为 CVE-2021-38647 基本上提供了一个完全自己的滩头阵地,让您一次性闯入、获得 root 和接管。
令人惊讶的是,这个错误似乎归结为一个可笑的简单技巧。
与其猜测一个有效的身份验证令牌以插入到欺诈性 OMI Web 请求中,您只需完全省略对身份验证令牌的所有提及,就可以了!
当然,随着一个多月前发布的相关代码补丁,源代码形式不少,您可能会认为作为 OMI 用户的 Linux 系统管理员已经有足够的时间进行补丁。
您可能还假设任何依赖其 Linux 发行版提供更新的二进制包的人(从而避免从源代码手动重建代码的需要)也将领先。
然而,正如 Wiz 在其博客文章中相当尖锐地指出的那样,许多 Linux-on-Azure 用户可能不知道他们有 OMI,因此甚至不知道要注意它的安全问题。
这是因为 OMI 软件以及他们选择使用的各种 Azure 服务可能已经自动安装。
维兹声称:
Linux 机器上的 Azure 客户(根据 Microsoft 占所有 Azure 实例的一半以上)如果使用以下任何服务/工具,就会面临风险:Azure 自动化、Azure 自动更新、Azure 操作管理套件 (OMS)、Azure 日志分析、Azure 配置管理、Azure 诊断 [和] Azure 容器洞察,
正如该公司被迫承认的那样,“这只是部分名单”,仅限于他们碰巧知道的名单,因此很可能还有其他名单。
如果您管理 Linux 服务器,特别是如果它们托管在 Azure 上,我们建议您检查是否有 OMI,如果有,请确保您拥有最新版本。
omicli ei
(enumerate instance) 命令来检查每台服务器上安装的版本。查找版本1.6.8-1或更高版本。omilci.conf
, omigen.conf
and 的文件,omiserver.conf
以及任何帐户主目录中名为.omiclirc
and.omigenrc
的文件,或使用 Linux 发行版的包管理器搜索名称以omi*
. 如果您发现 OMI 在您没有预料到的地方,请转到 1。netstat
命令检查服务器上的侦听套接字。(见下文。)除非您真正想要或需要,否则请关闭远程访问。netstat
命令的使用方法查看所有监听套接字(需要 root):
# netstat -l [...]
要显示所有带有进程 ID 和名称的侦听套接字:
# netstat -lp [...]
将输出限制为侦听 TCP 套接字,假设 OMI 在 TCP 上使用 HTTPS:
# netstat -lp | tcp 协议 [...]
要练习使用此命令,请在一个终端窗口中启动侦听 TCP 套接字,如下所示……
$ nc -n -l -v -p 8888 听[任何] 8888 ...
...然后,在另一个终端窗口中,使用netstat
来搜索端口 8888 上的侦听套接字:
# netstat -lp | tcp 协议 tcp 0 0 [0.0.0.0]:8888 0.0.0.0:* LISTEN {PROCESSNO]/nc
请注意,在上面的示例中,[0.0.0.0]:8888
表示 nc 进程正在侦听所有网络接口上的端口 8888,这意味着可以本地或远程访问该端口。