Emotet查杀难度高,深信服SAVE引擎以AI对抗高危宏病毒

发布者:深信服千里目
发布于:2020-11-13 11:50

Emotet木马病毒连续2年流行度排行榜首 


Emotet病毒是著名的银行木马病毒,2014年源于俄罗斯,几经迭代升级,已经成为全球最广泛和致命的计算机病毒之一。在any.run上,Emotet病毒高居2019年和2020年流行度排行榜榜首,样本上传量四万余次是第二名Agent Tesla的三倍多(图1)。深信服安全团队监测发现,Emotet近期在国内同样非常活跃,而且均为高度混淆的变种。


图1. Emotet在any.run沙箱上的鉴定上传量


Emotet主要采用小马拉大马的方式,以钓鱼邮件中的Office宏病毒为开端,然后拉取任意恶意PE病毒。这也意味着恶意行为是可任意定制的,从银行信息盗取,到勒索挖矿,无所不能。Emotet串联的典型PE病毒包括Trickbot银行木马和 Ryuk勒索软件。更为严重的是Emotet的连锁反应:企业中一名员工的计算机感染Emotet,病毒将盗取该员工计算机上的通讯录,向其联系人发送与企业业务信息相关的钓鱼邮件,致使病毒大范围扩散,清理十分困难。据记载,美国宾夕法尼亚州阿伦敦市于2018年支付100万美元,用于清理超过1000台被Emotet病毒感染的计算机;2019年末德国金融中心法兰克福市受Emotet入侵,全城断网(图2)。

 

图2. Emotet导致法兰克福全城断网

以下通过一个真实攻击案例分析Emotet病毒。

1. 收到钓鱼邮件

Emotet根据以往的策略一样通过大量的垃圾邮件活动进行分发。此次攻击使用醒目并带有迷惑性质主题的邮件冒充合作商。如下图所示,邮件携带的钓鱼邮件名为CV5433373675QF.doc

 

图3. 钓鱼邮件

2. 打开钓鱼邮件的恶意附件

运行后的文档使用一张醒目的提示信息图片,诱导用户启用编辑浏览无法显示的内容。

 

图4.钓鱼邮件的宏病毒附件

当用户点击启用编辑后,由于使用了内置的Document_open子程序,会触发执行doc文档内嵌的VBA恶意宏代码。如图5所示,Document_open函数中代码调用执控件窗体内的函数。

 

图5. 宏病毒附件中的VBA代码

如图6所示,通过浏览窗体控件中的恶意宏代码,发现代码核心逻辑全部经过多态混淆方式对抗研究人员分析。通过对Emotet家族海量的样本梳理,高度有理由怀疑诱饵文档全部经过自动化生成而来。相较于传统特征引擎依靠特征匹配的查杀方式无法有效拦截Emotet初始阶段的诱饵文档。

 

图6. 宏病毒附件中的隐藏在窗体控件中的VBA代码

3. 宏病毒释放恶意powershell脚本

通过对宏代码去除混淆并进行动态分析可发现,主要以无文件的方式启动powershell脚本引擎解析执行,规避传统特征引擎的查杀。如图7所示powershell进程执行经过BASE64编码的脚本。

 

图7. 宏病毒释放的恶意powershell代码

通过对内存中经过BASE64编码的脚本进行解码后发现,脚本主要通过URL远程下载有效载荷启动。如下图所示powershell代码逻辑以及远程下载有效载荷的URL。 


图8. 解码后的恶意powershell代码

4. 自动下载并运行有效载荷实现恶意行为

Emotet病毒下载的有效载荷使用微软基础类库,利用大量的MFC框架代码使其更容易变形规避传统特征引擎检出。通过大量样本集横向对比可发现多个变种将其初始核心恶意代码隐藏于窗口创建初始化之前。如图9所示,通过申请可执行内存,解密后执行下一阶段恶意代码。比较有趣的是此次示例中VirtualAlloc函数后两个参数采用多次计算生成而来,企图躲避静态分析。

 

图9. 有效载荷释放ShellCode

第一阶段ShellCode代码(图10)极其精简,使用自定义的GetProcAddress函数结合CRC32算法对函数名做校验动态获取ntdll.dll中函数地址。准备好需要的函数后使用RC4算法对资源进行解密,执行二阶段代码。

 

图10. 第一阶段的ShellCode

第二阶段ShellCode继承了一阶段动态获取函数地址方式。如图11所示,再次申请内存空间,并解密出一个可执行程序。如图12所示,通过对CPU缓存刷新后,将执行流程转移到释放的可执行程序中。

 

图11. 第二阶段的ShellCode


 

图12. ShellCode控制流劫持

第三阶段可执行程序在内存中进行展开后,发现其代码逻辑采用while与case配合进行干扰执行流。

 

图13. 第三阶段的ShellCode

该阶段核心功能是以拷贝可执行程序到c:\windows\syswow64下随机命名文件夹并再次随机命名一个可执行文件释放其中。Emotet病毒要创建的文件夹与文件名称如图14所示。


图14. 提取ShellCode释放的文件夹和文件的名称

在创建好要可执行程序后,通过系统服务管理器将可执行程序注册为服务的方式实现持久化。当服务启动后有效载荷完成整个阶段的加载工作,核心功能通过服务启动。如图15所示,服务创建成功后的注册表信息。


图15. 注册表被恶意程序修改

通过服务启动后使用硬编码的IP地址与远程C2服务器建立连接上传主机信息,并进一步控制下发其他恶意模块。如图16所示,与远程C2建立连接过程。


图16. 恶意程序建立C2通信

传统技术查杀Emotet的难度较高


    Emotet变形十分频繁,对传统基于规则和哈希的查杀造成极大挑战。在any.run上记录的Emotet一年内的哈希数量为16560;流行度第2-3名的病毒的哈希数量分别仅为87和34,可见Emotet的多变性。在最近安全事件中的两个Emotet样本完全不同(图17),依靠哈希或规则对抗的挑战十分巨大。Emotet的恶意宏程序被启动之后,可下载各类PE黑文件,甚至可以进行在内存中加载恶意代码的无文件攻击,查杀难度高。 

 

(a) Emotet样本1                                     (b)Emotet样本2

 

图17. Emotet宏病毒变形

 该木马还具有先进的持久性和动态行为逃逸机制,例如能够检测沙箱和虚拟机。该木马具有多态设计,它可以更改其代码以绕过基于常规特征引擎的检测,从而使这种网络防御策略无法抵抗其攻击。如果这还不够,Emotet可以从控制服务器接收更新,执行此操作就像安装了操作系统更新一样。这使特洛伊木马可以将其他恶意软件秘密地放置到受感染的计算机上。Emotet木马具有模块化设计,可以使此恶意软件适应各种任务,并针对每个特定活动对其进行自定义,从而使攻击者具有最大的灵活性。Emotet恶意软件可以执行大量恶意活动,这些活动根据特定活动中使用的模块而有所不同。从2017年开始,Emotet特洛伊木马程序开始配备扩展器模块,从而允许恶意软件感染通过本地网络连接的所有计算机。该病毒的大多数版本都包含一个垃圾邮件模块,该模块可通过从受感染的计算机发出一系列恶意电子邮件来继续传播恶意软件。它分析了电子邮件发送者和接收者之间的关系,并使用收集的信息来增强源自用户PC的后续活动的有效性,从而可以使用个性化垃圾邮件将受害者的朋友、家人和同事作为目标,达到类似蠕虫的传播效果。

深信服SAVE反病毒引擎引入AI技术对抗Emotet等高危宏病毒


对于三次安全事件的三种Emotet变形样本,SAVE反病毒引擎均能在第一时间不升级模型的情况下盲测检出,其中不乏在权威杀软供应商平台VirusTotal上的第一时间独报案例。

依托AI的泛化能力、病毒专家经验和海量样本运维(如图18所示),通过变形宏病毒检测技术,SAVE反病毒引擎准确识别Emotet病毒在高抽象层次上的不动点,从而检测出该病毒。SAVE反病毒引擎对Office文件中的宏程序做词法分析、词素分析、词频分析、黑白词分析、语法分析和熵值分析等多重分析,全面捕捉对病毒和正常文件有区分能力的特征,并用海量样本训练得出准确的AI模型,实现对已知和未知Office文件做准确病毒鉴定的能力。

 

图18. 深信服SAVE反病毒引擎的变形宏病毒检测方案

     目前,SAVE反病毒引擎的变形宏病毒检测技术能够有效检测流行宏病毒、高度混淆的变种病毒和Any.run上排名靠前的各种宏病毒。深信服已将SAVE反病毒引擎广泛应用于深信服众多安全产品和服务中,分布在防护链的每个环节,包括终端检测响应平台EDR、下一代防火墙AF、安全感知平台SIP、全网行为管理AC等,持续将人工智能技术等最新科技成果转化为安全保护能力,有效守护用户的业务安全。

参考资料

[1] 深信服预警报告:https://mp.weixin.qq.com/s/L6VfadlbBMOaLQKrhCTARg

[2] 深信服分析报告:https://www.freebuf.com/articles/terminal/180390.html

[3] 安全牛分析报道:https://www.aqniu.com/news-views/62803.html


声明:该文观点仅代表作者本人,转载请注明来自看雪