【译】SUPERNOVA恶意软件分析

  • A+
所属分类:安全文章

摘要

SolarWinds Orion软件的供应链攻击展示了攻击者使用的技术复杂性,以及新奇的技术组合,其大约影响了18000SolarWinds客户。如原始披露中所说,一旦获得了更合法的持久性方法,攻击者就会移除其初始后门。在FireEye列出的IOC中,作为调查的一部分,发现了一个名为SUPERNOVA.NET Webshell,没有对其操作方法或该webshell在环境中的任何行为的相关说明。 

【译】SUPERNOVA恶意软件分析



在分析木马化的Orion控件时,SUPERNOVA是对SolarWinds Orion应用程序中现有app_web_logoimagehandler.ashx.b6031896.dll模块的修改,其细节很少被公开。值得注意的是,该dll文件与SUNBURST中的dll文件不同,它没有经过数字签名,这可能表明该webshell并未像SUNBURST那样被早期植入SolarWinds的软件开发管道中。此外,Guidepoint SecuritySUPERNOVA进行了自己的研究,得出了类似的结论。

之后,我们将概述其操作和功能,支持高级持续威胁(APT)的策略和技术,以及对木马化的SolarWinds的防护。

  • 攻击者创建了一个复杂的、内置于内存的Webshell,嵌入到Orion的代码中,充当了交互式.NET运行时API

  • Webshell Payload是即时编译并动态执行的,这使端点和数字取证和事件响应(DFIR)分析更加复杂。

  • 已添加反间谍软件签名83225,以防止SUPERNOVA流量。

 

概述

在传统的webshell攻击中,这些服务器脚本页面通常是某种交互式的前端文档,可以对其进行操作以影响后端处理,这通常导致远程代码执行(RCE)。webshell可以通过针对底层服务器中的错误配置或漏洞进行上传、下载或安装webshell,或者在二次开发期间将其作为辅助持久性手段进行删除。webshell是嵌入在脚本页面中的恶意代码,通常基于PHPjavajspVBScriptJScript ASP以及C#ASP.NET等语言实现,它从远程服务器接收命令,并将在web服务器的底层运行环境中执行。

SUPERNOVAWebshell似乎也是为持久性而设计的,但是它的新颖性远远超出了Unit 42研究人员遇到的常规Webshell恶意软件。

尽管.NET Webshell非常普遍,但是大多数都使用命令和控制(C2)参数,并执行一些相对表面级别的攻击。比如,攻击者通过植入程序转储目录结构或操作系统信息,或通过网络调用以加载更多的攻击工具。

SUPERNOVA的不同之处在于,它以一个有效的.NET程序作为参数。.NET类、方法、参数和代码数据在内存中编译和执行。与低级的webshell stagers不同,没有其它的取证工具写入磁盘,并且除了初始的C2请求之外,不需要其他的网络回调。

换句话说,攻击者构建了一个隐蔽的、完整的.NETAPI,嵌入到Orion二进制文件中,该文件的用户通常具有较高的权限,并且在组织的网络中具有较高的可见性。攻击者可以使用恶意C#代码任意配置SolarWinds(以及.NET SDK公开的Windows上的任何本地操作系统功能)。该代码在SolarWinds运行期间实时编译,并动态执行。这非常危险,因为它允许攻击者在侦察、横向移动和其它攻击阶段部署复杂或功能全面的.NET程序。

 

植入阶段

植入程序是app_web_logoimagehandler.ashx.b6031896.dll恶意文件的木马化副本,该文件是公开HTTP API的专有SolarWinds .NET库。端点响应来自Orion软件堆栈其它组件的特定.gif图像的查询。添加到.dll中的代码是无害的,自动化防御很容易忽略这些代码,甚至可能是通过人工审核。

攻击者通过向API添加四个新参数和一个在Orion主机上的使用.NET执行这些参数的恶意方法来利用正常文件。下图展示了Orion组件用于处理HTTP请求及其响应的正常代码:


 

【译】SUPERNOVA恶意软件分析


在上图中,第42行定义了提供给HTTP端点的参数的集合,其中只有id是有效并经过处理的。但是,其它的C2参数在此代码段之前以相同的方法ProcessRequest()添加,而执行方法则附加在同一个文件中。以下第27-41行是部分恶意代码,该代码将4C2参数传递给恶意方法DynamicRun():

【译】SUPERNOVA恶意软件分析



上述的四个参数codesclazzmethodargs 通过GET查询字符串传递给木马化的标识处理程序组件。然后,这些参数在自定义方法中被执行,这与简单调用底层操作系统或编程语言函数的常规Webshell行为不同。命令和控制(C2)参数和目的如下:

C2 参数

目的

clazz

要实例化的C#类对象名称

method

clazz类的调用方法

args

参数是换行符,并作为位置参数传递给方法

codes

.NET程序集和用于编译的名称空间

 

安全防护人员需要注意,结合使用这四个参数(按查询字符串的任何顺序)到logoimagehandler.ashx的任何入口流量都是强大的IOC。如果一个探测器以任何顺序触发此组合的检测,请立即隔离Orion实例并将其镜像。如果请求来自网络内部,那么发起请求的用户也很可能受到了危害。

 

执行

攻击者可能会通过Internet或内部受损的系统向嵌入的WebShell发送请求。该代码经过精心设计,可以接受参数作为有效.NET程序的组成部分,然后在内存中进行编译。由于不会删除任何可执行文件,webshell的执行会避开大多数defender端点检测,并且编译后的程序集会立即调用指定的类方法。

可以看到,添加的第27行开始、第37行包含了执行的try/catch模块,大概是为了防止操作员失误在Orion中引起未经处理的异常,从而引发不必要的检查。这是攻击者重视技术和操作安全的一个小例子。

下图显示了DynamicRun()将C2参数编译到内存中的.NET程序集中。在第106行和107行中,我们可以看到正常的编译器API标记被破坏,以阻止被安全人员发现。第115行实例化攻击者指定的类对象,并在第116行执行攻击者代码。

【译】SUPERNOVA恶意软件分析



这种设计模式称为动态代码执行。在软件工程环境中,它使程序具有灵活性和可扩展性。在网络攻击的情况下,攻击者的代码和工具也是如此。

 

战术和技巧

在许多方面,SUPERNOVAWebshell都具有其它Webshell共同的属性。该恶意软件被秘密植入服务器中,远程接收C2信号并在服务器用户的环境中执行。

但是,SUPERNOVA由于其内存执行、参数和执行的复杂性以及通过在.NET运行时实现一个完整的编程API的灵活性而具有新颖和强大的功能。

就恶意软件行为而言,在内存中执行恶意二进制文件并不是一项新技术。该技术通常表明攻击者试图绕过端点和DFIR检测。但是,这种行为在webshell中很少遇到,因为常规的webshell是在运行时通过调用环境中的子shell或进程(如cmd.exePowerShell.exe/ bin / bash)来执行Payload

SUPERNOVA即时编译参数并在内存中执行生成的程序集。除了逃避检测之外,这还表明攻击者足够熟练,可以有意识地将他们的行为隐藏在可见的范围内,并避免留下痕迹。

 

防护

在易受攻击的服务器中植入Webshell对于攻击者而言并不是新策略。但是,与常规的Webshell恶意软件相比,代码的相对复杂性令人惊讶。此外,针对SolarWinds的攻击进一步扩大了人们对诸如SUPERNOVA中使用的新技术的兴趣。

捕获高级入侵的唯一方法是纵深防御策略。只有通过在一个窗格中协调多个安全设备和应用程序,才能检测到这些攻击。

关于防护,Palo AltoNetworks除了在产品套件中提供了众多保护措施之外,还创建了反间谍软件签名83225,以检测受影响网络中存在的任何残留的C2基础结构。Palo Alto Networks客户可以受到以下保护:

  • 通过Cortex XDR进行端点保护。

  • 通过WildFire(下一代防火墙安全订阅)检测恶意软件沙箱。

  • 威胁防御(下一代防火墙安全订阅)中的一系列防御措施,包括IPS和AppID 。

  • CortexData Lake的威胁情报。

  • 与Cortex XSOAR的网络防御协调。

 

针对受影响产品,solarwinds已经发布了相关安全更新,以防止SUNBURSTSUPERNOVA恶意软件,如下:

2019.4 HF 620201214日发布)

2020.2.1 HF 220201215日发布)

2019.2 SUPERNOVA补丁(20201223日发布)

2018.4 SUPERNOVA补丁(20201223日发布)

2018.2 SUPERNOVA补丁(20201223日发布)

如果无法升级,可以安装如下脚本来临时防护SUPERNOVA恶意软件:

https://downloads.solarwinds.com/solarwinds/Support/SupernovaMitigation.zip

 

IOC

SolarWinds Orionapp_web_logoimagehandler.ashx.b6031896.dll

c15abaf51e78ca56c0376522d699c978217bf041a3bd3c71d09193efa5717c71

 

URI

logoimagehandler[.]ashx

 

HTTP查询字符串参数

clazz

method

args

codes

 

 

原文链接:

https://unit42.paloaltonetworks.com/solarstorm-supernova/

 

 


本文始发于微信公众号(维他命安全):【译】SUPERNOVA恶意软件分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: