4.1 TA551攻击行为的分析与检测
攻击组织TA551(也称为Shathak)主要通过网络钓鱼活动来投递恶意软件的payload[1]。IcedID[2]和Valak是TA551网络钓鱼活动中最主要的payload。图4-1展示了TA551的攻击链。
图4-1 TA551攻击链
1. 攻击组织TA551的介绍
TA551会将利用宏加载病毒的Word文档压缩成ZIP包,并对压缩包进行加密,然后作为钓鱼邮件的附件发送。由于TA551将恶意文档内嵌在加密附件中,因而不少系统无法对恶意文件进行直接分析,从而绕过许多邮件杀毒功能。最近几年,这种技术的使用非常普遍,因为它提高了钓鱼邮件进入用户收件箱的可能性。虽然TA551会改变这些ZIP文档的文件名,但在许多情况下,名称要么是request.zip,要么是info.zip。
使用电子邮件正文中提供的密码打开压缩文档后,收件人会看到一个包含恶意宏的Word文档。这就是dropper,用于从攻击者控制的网站下载其他恶意软件。对于采取了纵深防御战略的组织机构来说,这是一个关键点。由于很多组织机构制定了策略,限制Office宏功能的使用,以此来阻止恶意代码执行。因此,针对TA551的检测只能检测到用户打开了恶意文件,而检测不到后续的进展情况了。
出于各种原因,许多组织机构和用户允许启用宏代码。在这种情况下,宏运行后将下载下一阶段的恶意软件。当然,如果组织机构建立了纵深防御体系,则可以有效地阻止相关工具的下载。例如,Web代理在检查网络流量时可能会阻止访问托管恶意内容的域名。在某些情况下,我们可以观察到网络连接、创建空文件、试图下载等行为,但由于安全策略阻止下载恶意内容,攻击链就此中断。
如果宏策略未能阻止恶意代码的运行,而且网络代理未能阻止下一个payload的下载,这时可能会有一个新的恶意软件家族来执行以上行动。TA551通常会通过DLL安装程序从初始访问阶段过渡到恶意软件的执行阶段。有多种不同的方式下载DLL安装程序(具体可参见5.8节)。在某些情况下,Microsoft Word可以直接下载DLL安装程序。在其他情况下,攻击者会利用重新命名的系统工具certutil.zip或mshta.zip来下载DLL安装程序,这与dropper的下载方式是不同的。恶意代码下载的DLL文件通常会进行伪装,使用各种不同的非DLL扩展名来试图进行混淆,例如.dat、.jpg、.pdf、.txt,甚至.theme。
2. 检测1:Winword生成regsvr32.exe
TA551利用带有Microsoft签名的二进制文件regsvr32.exe进行防御绕过,从初始访问阶段过渡到执行阶段。尽管已签名二进制文件可能会与系统运行的常见进程混淆在一起,但winword.exe和regsvr32.exe之间不寻常的父子进程关系,为我们提供了一个终端检测机会。如图4-2所示,我们可以看到Word执行regsvr32.exe是极其不寻常的,这通常表明存在恶意宏。
图4-2 regsvr32.exe的异常执行
3. 检测2:通过WMI重命名mshta.exe并创建外部网络连接
TA551偶尔也会改变其常用的宏执行方式,利用WMI打破winword.exe的父子进程,从而绕过上述的检测机会。TA551没有直接通过宏下载DLL安装程序,而是利用一个HTML应用(HTA)文件来检索恶意payload。不仅如此,攻击者还重新命名mshta.exe,试图掩盖这一活动。
尽管使用了上述各种绕过手段,但这种行为实际上会给防守方带来更多的检测机会。若攻击者进行了伪装,防守方可以评估进程二进制文件的哈希值或内部元数据。当一个合法的文件被重新命名后,若预期的文件名和观察到的文件名不一致,这种情况往往需要进行检测。在这种情况下,防守方一旦发现mshta.exe,就能够根据这种二进制文件的典型行为,获得更多的检测机会。wmiprvse.exe作为mshta.exe的父进程出现时是不正常的行为,这也是一次难得的检测机会。同样,通过mshta.exe进行外部网络连接也是不正常的行为,这时防守方需要注意相关进程的执行情况。