【伏影实验室】SolarWinds供应链攻击事件分析

事件简述

SolarWinds是一家国际IT管理软件供应商,其Orion软件更新服务器上存在一个被感染的更新程序,这导致美国多家企业及政府单位网络受到感染,根据软件装机量来看,目前该事件对国内影响较小。

此次供应链攻击事件引发的关联事件是12月8日Fireeye发布被黑客攻击公告,可能泄露了一系列用于评估的网络安全测试工具。12月13日,Fireeye发布公告,证实入侵事件是因为SolarWinds公司软件更新包中存在后门。与该后门相关的事件被Fireeye称为UNC2452,目前并未指出其与已知APT组织的关联。

事件分析及防护

攻击者渗透进入SolarWinds网络环境的方法还没有定论,但结合以往多次的供应链攻击事件推断,攻击者可能已经获取了SolarWinds内网高级权限,创建了高权限账户,维持了多个入口点。通过在SolarWinds的产品中植入后门代码,攻击者可以跟随产品更新进入到SolarWinds的大部分客户网络环境中。同时,由于SolarWinds的令牌已经被用户所信任,攻击者可以伪造SolarWinds令牌,欺骗并绕过防护,在目标网络环境中建立高权限账户,等待时机,完成攻击目标。

由于攻击者获取的是正规厂商的证书并利用其对自身进行签名,这使得所有信任该证书的机构都存在被入侵的风险。特别是在云服务中,攻击者可能通过此伪造的令牌绕过并登录其他公司的环境,进而完成更大范围的入侵活动。

因此我们认为在目前环境下,仍然需要加强账户验证、证书、令牌验证,校验访问源,这也是零信任的基础思想。对于使用SolarWinds产品的客户来说,应及时排查系统中异常的资源访问记录,确定访问源,排查是否已完全信任SolarWinds证书。如已部署边界防护设备,应及时联动威胁情报产品,快速获取IOC拦截潜在的攻击。

此次事件也将引导其他攻击者或威胁组织开始重视并利用正规厂商证书在云服务中进行探查和攻击,云服务厂商也应对此类攻击进行响应和处理。

后门分析

SolarWinds.Orion.Core.BusinessLayer.dll是Orion软件框架的SolarWinds数字签名组件,其中包含一个后门,该后门通过HTTP与第三方服务器进行通信。该文件从SolarWinds提供的更新包中提取得到。

该后门通过一系列时间校验来判断是否开始执行,并且通过校验hash值来保证自身执行环境是真实的目标环境。

首先是当前进程名称的hash值需要等于17291806236368054941,其次是获取文件修改时间,如果文件修改时间在当前时间的12到14天前时,该后门才会继续检查其默认配置项,通过读取config文件中的字段来判断是否可以执行后门的功能。

在完成一系列检查后,将通过DGA算法生成控制域名,该生成算法没有固定的生成结果,其生成方法如下:

  1. 获取DNS解析时间,用于延迟生成域名的时间,根据DNS解析返回状态不同,延时时间在1-3分钟、30-120分钟、420-540分钟不等;
  2. 使用UserID和预置的子域随机生成字串,并从中截取固定长度作为DGA域;

在控制域名解析请求返回CNAME域时,且该域可用,则继续解析获取真实的控制IP地址,当控制域名解析出真正的IP地址后,该恶意程序会主动连接到控制服务器。生成的控制域名子域举例如下:

  • .appsync-api.eu-west-1.avsvmcloud .com
  • .appsync-api.us-west-2.avsvmcloud .com
  • .appsync-api.us-east-1.avsvmcloud . com
  • .appsync-api.us-east-2.avsvmcloud . com

当成功连接到控制服务器后,控制服务器提供了功能全面的控制命令完成攻击。

指令详情如下:

指令枚举序号内容
Idle0无操作
Exit1终止当前线程
SetTime2设置主事件循环执行之间的延迟时间
CollectSystemDescription3搜集主机名,用户名,操作系统版本,MAC地址,IP地址,DHCP配置和域信息
UploadSystemDescription4上传信息
RunTask5使用给定的文件路径和参数启动新进程
GetProcessByDescription6无参数情况下仅返回当前进程PID和进程名称,如果提供了参数,额外返回当前进程的父PID,用户名和域
KillTask7终止指定进程
GetFileSystemEntries8给定路径和可选的匹配模式,将递归列出文件和目录
Writefile9将base64编码后的内容写入指定文件
FileExists10测试指定的文件路径是否存在
DeleteFile11删除指定的文件路径
GetFileHash12计算给定文件的MD5,如果计算出的MD5不同,则返回错误
ReadRegistryValue13读取注册表值
SetRegistryValue14设置注册表值
DeleteRegistryValue15删除注册表值
GetRegistrySubKeyAndValueNames16返回指定注册表路径下的子项和值名称的列表
Reboot17重启系统

以上是该后门的所有功能列举,攻击者通过指令可以完成对目标机器的完全操控,任意启动进程,执行下发的文件,快速在内网中构建出攻击阵地,并向内渗透。同时该后门支持对文件hash进行校验,避免了误操作或者上传无效文件。设置注册表项则是为了提供持久驻留功能,保证系统重启后仍能正常执行后门功能。该后门支持获取进程信息,有利于监控当前计算机是否被人使用,且是否具有价值,同时也可以作为检测依据,避免自动化分析系统引导出恶意行为及流量,有利于隐藏自身。后门提供了等待时间调整的接口,在被监测到异常行为后攻击者可以选择长时间静默,躲避监测,降低了暴露后丢失据点的可能性。

可以看到攻击者精心构造了整个后门,功能非常完善,且触发条件十分苛刻,有效的避免了被沙箱等自动化分析工具检出。

IoC

所有的IoC及特征均由Fireeye披露在Github上:

https://github.com/fireeye/sunburst_countermeasures

域名
6a57jk2ba1d9keg15cbg.appsync-api.eu-west-1.avsvmcloud[.]com
7sbvaemscs0mc925tb99.appsync-api.us-west-2.avsvmcloud[.]com 
gq1h856599gqh538acqn.appsync-api.us-west-2.avsvmcloud[.]com 
ihvpgv9psvq02ffo77et.appsync-api.us-east-2.avsvmcloud[.]com 
k5kcubuassl3alrf7gm3.appsync-api.eu-west-1.avsvmcloud[.]com 
mhdosoksaccf9sni9icp.appsync-api.eu-west-1.avsvmcloud[.]com 
域名IP
deftsecurity[.]com 13.59.205.66 
freescanonline[.]com 54.193.127.66 
thedoccloud[.]com 54.215.192.52 
websitetheme[.]com 34.203.203.23 
highdatabase[.]com 139.99.115.204 
incomeupdate[.]com5.252.177.25
databasegalore[.]com5.252.177.21
panhardware[.]com204.188.205.176
zupertech[.]com51.89.125.18
zupertech[.]com167.114.213.199

文件hash:

MD5文件名称
02af7cec58b9a5da1c542b5a32151ba1 CORE-2019.4.5220.20574-SolarWinds-Core-v2019.4.5220-Hotfix5.msp  
08e35543d6110ed11fdf558bb093d401Solarwinds Worldwide, LLC 
2c4a910a1299cdae2a4e55988a2f102e SolarWinds.Orion.Core.BusinessLayer.dll 
846e27a652a5e1bfbd0ddd38a16dc865 SolarWinds.Orion.Core.BusinessLayer.dll 
b91ce2fa41029f6955bff20079468448 SolarWinds.Orion.Core.BusinessLayer.dll 
4f2eb62fa529c0283b28d05ddd311fae OrionImprovementBusinessLayer.2.cs 
56ceb6d0011d87b6e4d7023d7ef85676 app_web_logoimagehandler.ashx.b6031896.dll 

Spread the word. Share this post!

Meet The Author

伏影实验室专注于安全威胁与监测技术研究。研究目标包括僵尸网络威胁,DDoS对抗,WEB对抗,流行服务系统脆弱利用威胁、身份认证威胁,数字资产威胁,黑色产业威胁及新兴威胁。通过掌控现网威胁来识别风险,缓解威胁伤害,为威胁对抗提供决策支撑。

Leave Comment