-
-
沙虫(CVE-2014-4114)相关威胁综合分析报告 — 及对追影安全平台检测问题的复盘
-
发表于: 2014-10-17 21:29 715
-
1 威胁卡片与简介
CVE-2014-4114 是OLE包管理INF 任意代码执行漏洞,该漏洞影响Win Vista,Win7等以上操作系统,攻击者使用PowerPoint作为攻击载体,该漏洞是在Microsoft Windows和服务器上的OLE包管理器。在OLE打包文件(packer.dll)中能够下载并执行类似的INF外部文件,允许攻击者执行命令。
2 漏洞原理
针对我们首先获取的MD5 HASH为330e8d23ab82e8a0ca6d166755408eb1的样本进行分析。
通过分析工具我们可以看到这个文件嵌入了两个OLE 对象,如下:
图 2‑1嵌入OLE对象
OleObject2.bin中的“\\94.185.85.122\public\slides.inf”字符串,它也是一个webdav的路径。下载后发现是一个INF文件,它是利用漏洞触发的关键。
图 2‑3slides.gif远程路径
当该文件被PowerPointer加载后,它会调用Packager.dll的一个函数将这两个文件从网络上下载下来并保存在临时目录中,该函数是CPackage::OLE2MPlayerReadFromStream。
CPackage::OLE2MPlayerReadFromStream函数的关键代码如下:
图 2‑4远程获取函数代码
下载后的文件如下图:
图 2‑5 下载文件截图
然后在函数CPackage::DoVerb中调用SHELL32!CDefFolderMenu::InvokeCommand函数加载slides.inf,并安装这个inf文件。CPackage::DoVerb的关键代码如下:
图 2‑6 CPackage::DoVerb的关键代码
安装INF的过程最后是通过调用C:\Windows\System32\InfDefaultInstall.exe程序来安装的。如下图:
图 2‑7INF安装图
Slide.inf的内容如下:
整个INF的主要功能是将slide1.gif重命名为slide1.gif.exe,然后添加注册表启动项。
因为DefaultDestDir的值为1,代表的是INF文件当前所在的路径也就是临是目录。也就是说%1%\slide1.gif.exe就是%USERPROFILE%\AppData\Local\Temp\slide1.gif.exe.因此就是在注册表路径HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce下添加一个新项,该项的值为%USERPROFILE%\AppData\Local\Temp\slide1.gif.exe,其中%USERPROFILE%根据不同的机器而变化。
漏洞产生的主要原因是OLE PACKAGER允许安装INF,而INF可以对系统的某些资源如注册表等进行修改,最终导致可以执行恶意代码。
3 相关样本
3.1 CVE-2014-4114漏洞相关的样本集信息
针对CVE-2014-4114目前的相关样本进行了系统的梳理,请见下表。
表 3‑1 CVE-2014-4114相关样本梳理
3.2 CVE-2014-4114漏洞关键载荷文件分析
在样本集中有漏洞溢出文件、载荷文件、及载荷文件相关文件等,下面针对关键的载荷文件、载荷相关文件进行分析如下:
3.3 历史联系样本
具有与载荷有行为相似样本
MD5:628EF31852E91895D601290CE44650B1
MD5:78387651dd9608fcdf6bfb9df8b84db4
类型:EXE
程序图标:word文档图标(如下图)
行为:释放文件包括doc并打开,伪装成doc,添加启动目录lnk, 释放FONTCACHE .dat文件FONTCACHE.DAT 46649163c659cba8a7d0d4075329efa3,导出函数名与slide.gif释放的DAT文件导出函数发生变化。
4 对追影安全平台检测问题的复盘分析
使用安天反APT产品的某用户在2014年10月14日18时许,将上述溢出样本投放到安天追影安全平台中进行测试,反馈问题如下:
1.溢出样本流经设备后,不能触发报警;
2.在测试终端上,观看溢出样本后,其所下载slide1.gif的文件会被平台报警。
安天相关研发分析团队对用户所反馈的信息连夜进行了分析,最后定位了问题。鉴于相关经验教训可能对APT检测分析工作有一定意义,因此我们将其记录于此。
如图4-1所示,安天追影安全平台由两个设备组成,一台是VDS网络病毒监控系统,其接入网络设备镜像口,获得旁路流量,进行还原,调用反病毒引擎进行检测,同时对不能识别的对象投入到另一台追影高级威胁鉴定器设备中去分析,而VDS可以定期获取检测结果刷新原有的检测记录。鉴定器即采用沙箱虚拟分析的机理设计。从目前来看,业内同类产品基本采用这一“流量+沙箱”的方案。不同的只是是否支持直路串接,是否整合为一台设备等等。
图 4‑1安天追影安全平台的部署
经我们对用户测试情况的多次复盘,最终得出了先骨干现象的原因。用户所获取的4114溢出样本,扩展名为PPT$($可能其样本提供者所加,以避免样本被误打开),因此用户将其扩展名更名为PPT,采用HTTP下载的方式,构造了攻击事件,但此时文件虽然被获取,但鉴定器并未得出结论。 图4-2是安天PMC测试组于次日做的事件再现,此时可见未获正确检出结果。
图 4‑3VDS捕获Slide1.gif实体文件
图 4‑4VDS检出Slide1.gif恶意程序
图 4‑5追影安全平台对Slide1.gif的鉴定报告
图 4‑6安天CERT自用的内部追影的分析报告
尽管可以对PE载荷进行检测,但沙箱未能对溢出文件告警,是一个严重的产品问题,安天PMC测试小组在引擎部门的配合下,经过一夜的分析,锁定了问题的原因。测试小组经分析结论为,溢出部分未能成功检测,与追影鉴定器的对格式和文件名的识别策略,以及打开方式等设计不够完善有关,具体原因如下,供同仁们尽情鄙视吐槽:
1.追影鉴定器对格式文档的默认投放策略为,如果带有合法的文档扩展名(doc、docx、xls、xlsx、ppt、pptx、rtf、pdf)等,则保留原文件,按照预设版本策略,选择虚拟机,进行关联加载。而如果没有合法文档扩展名,则按照AVL SDK反病毒引擎所识别出的格式,获取对应扩展名进行投放。
2.经我们手工重新投放测试,样本被命名为.ppt后,无论在虚拟机中还是实体机中。被Powerpoint打开后,进入相关PPT编辑界面,不会触发恶意行为。
3.而如果手工把样本改为pptx,则会弹出如图4-7的格式不一致的提示,从而打开失败。
图 4‑7Powerpoint的格式告警
4.实际上该样本实际既非ppt格式,也非pptx格式,而是与pptx格式相近的ppsx播放格式,而触发该漏洞三种路径:
a)其扩展名被命名为ppsx,打开后即自动播放触发。
b)其扩展名被命名为ppt,打开后进入编辑,此时需要由人工播放触发。
c)其扩展名被命名为ppt按照编辑打开后,点击如图4-8中,我们用红笔标注的的两个OLE对象也可以触发。但实际上c并不处在一个合理的攻击路径上,因此路径b,实际上可以成为一个对于部分沙箱系统的"免杀"。
图 4‑8 ppt格式文档页面截图
5.针对上述问题做策略调整后,追影沙箱可以检测本样本(如图4-9、图4-10所示),并可以触发其行为,以及其他采用类似“免杀”策略的样本。即我们增加了按照合法扩展名和格式识别对应扩展名各执行一次的策略,同时对PPT格式样本,增加了/C参数对PPT进行播放。
图 4‑9ppsx格式追影分析成功发现威胁
图 4‑10ppsx格式载体发现网络通信
图 4‑11ppsx格式自动播放后截图
5 总结
多部门合写报告,作为PMC测试小组的组长,我因为“不懂安全技术”被抓来写总结。因此我只能更多整理同事们一天来的语言。
10月14日夜,在我们测试小组与引擎部门分析相关漏洞与产品问题的时候,安天CERT的几个小伙伴正在等待微软本月补丁发布,他们期待分析SSL漏洞。BOSS在群里说,骤然理解了,什么是“同时打赢两场局部战争的能力”。
总工们怕我们会拿检测到哪个PE来掩饰问题,敲打我们说:“单放到一个实际的检测场景下看,一个PE载荷如果没有与其前导的格式溢出建立关联,这个事件的安全等级会下降。其可能被与其他普通的事件混合在一起。从而导致不被关注,因此对这个PE告警的价值大打折扣。”
几个老家伙一直在线等待我们的验证报告,凌晨两点,我们反馈了初步的结果,并根据扩展名为.ppt的情况下,漏洞需要人工播放才能触发,我们也给出了需要重视相关免杀技巧的结论。
在15日早晨,当我们把验证结论发送给发现问题的用户方研究人员时。他回信宽慰我们,你们能够检测到后面下载的PE样本,也部分证实了产品能力。
但我们不能原谅自己,一个安全产品不能按照预期的设计全面和有效地应对威胁,这是工程师团队的耻辱。
要感谢专业的用户帮我们验证和发现了问题,用户是最好的老师!
而我又犯错误了,早上接受采访时,我把具有“免杀”效果的.ppt扩展名说成了.pptx。15日下午,根据对目前所能获取到的所有信息的复盘,安天CERT部门给出了另一个观点,尽管上述绕过沙箱的方法是可行的,并在用户测试中确实部分绕过了我们的追影平台。但除了用户自己手工修改名字的这个样本外,从安天自身已经获得样本和其他信息中,没有发现样本投放中使用了上述技巧的实证。但大家都忧心忡忡地认为,从攻击的趋势来看,攻击者通过构造和社工的方法,让文档的真正打开者能按照攻击者设想条件触发攻击,而在沙箱中无法触发。这必然是今后“流量+沙箱”类产品解决方案面临的主要挑战。随着沙箱的普及,恶意代码开发者也会不断地增加各种对抗沙箱的条件,类似验证码,人工点击或者播放等条件对攻击者很容易预设,而自动化的沙箱却很难逾越,需要不断的对抗完善。
Seak发了一条微博,这让我可以省去自己想结尾:
“从广义上说,入口点是确定性攻击路径的起点”,而从这个意义上看,EPO和Stolen Code都注定会在格式溢出构造技巧中找到影子。社会工程学可以把被攻击者导向那个“起点”,而对鉴定器来说,这个起点又可以足够隐蔽。
附录:参考资料
[1]CVE-2014-4114: Details on August BlackEnergy PowerPoint Campaigns
http://www.welivesecurity.com/2014/10/14/cve-2014-4114-details-august-blackenergy-powerpoint-campaigns/
[2]Analysis of SandWorm (CVE-2014-4114) 0-Day
http://research.zscaler.com/2014/10/analysis-of-sandworm-cve-2014-4124-0-day.html
[3] iSIGHT discovers zero-day vulnerability CVE-2014-4114 used in Russian cyber-espionage campaign
http://www.isightpartners.com/2014/10/cve-2014-4114/
CVE-2014-4114 是OLE包管理INF 任意代码执行漏洞,该漏洞影响Win Vista,Win7等以上操作系统,攻击者使用PowerPoint作为攻击载体,该漏洞是在Microsoft Windows和服务器上的OLE包管理器。在OLE打包文件(packer.dll)中能够下载并执行类似的INF外部文件,允许攻击者执行命令。
2 漏洞原理
针对我们首先获取的MD5 HASH为330e8d23ab82e8a0ca6d166755408eb1的样本进行分析。
通过分析工具我们可以看到这个文件嵌入了两个OLE 对象,如下:
图 2‑1嵌入OLE对象
OleObject2.bin中的“\\94.185.85.122\public\slides.inf”字符串,它也是一个webdav的路径。下载后发现是一个INF文件,它是利用漏洞触发的关键。
图 2‑3slides.gif远程路径
当该文件被PowerPointer加载后,它会调用Packager.dll的一个函数将这两个文件从网络上下载下来并保存在临时目录中,该函数是CPackage::OLE2MPlayerReadFromStream。
CPackage::OLE2MPlayerReadFromStream函数的关键代码如下:
图 2‑4远程获取函数代码
下载后的文件如下图:
图 2‑5 下载文件截图
然后在函数CPackage::DoVerb中调用SHELL32!CDefFolderMenu::InvokeCommand函数加载slides.inf,并安装这个inf文件。CPackage::DoVerb的关键代码如下:
图 2‑6 CPackage::DoVerb的关键代码
安装INF的过程最后是通过调用C:\Windows\System32\InfDefaultInstall.exe程序来安装的。如下图:
图 2‑7INF安装图
Slide.inf的内容如下:
整个INF的主要功能是将slide1.gif重命名为slide1.gif.exe,然后添加注册表启动项。
因为DefaultDestDir的值为1,代表的是INF文件当前所在的路径也就是临是目录。也就是说%1%\slide1.gif.exe就是%USERPROFILE%\AppData\Local\Temp\slide1.gif.exe.因此就是在注册表路径HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce下添加一个新项,该项的值为%USERPROFILE%\AppData\Local\Temp\slide1.gif.exe,其中%USERPROFILE%根据不同的机器而变化。
漏洞产生的主要原因是OLE PACKAGER允许安装INF,而INF可以对系统的某些资源如注册表等进行修改,最终导致可以执行恶意代码。
3 相关样本
3.1 CVE-2014-4114漏洞相关的样本集信息
针对CVE-2014-4114目前的相关样本进行了系统的梳理,请见下表。
表 3‑1 CVE-2014-4114相关样本梳理
3.2 CVE-2014-4114漏洞关键载荷文件分析
在样本集中有漏洞溢出文件、载荷文件、及载荷文件相关文件等,下面针对关键的载荷文件、载荷相关文件进行分析如下:
3.3 历史联系样本
具有与载荷有行为相似样本
MD5:628EF31852E91895D601290CE44650B1
MD5:78387651dd9608fcdf6bfb9df8b84db4
类型:EXE
程序图标:word文档图标(如下图)
行为:释放文件包括doc并打开,伪装成doc,添加启动目录lnk, 释放FONTCACHE .dat文件FONTCACHE.DAT 46649163c659cba8a7d0d4075329efa3,导出函数名与slide.gif释放的DAT文件导出函数发生变化。
4 对追影安全平台检测问题的复盘分析
使用安天反APT产品的某用户在2014年10月14日18时许,将上述溢出样本投放到安天追影安全平台中进行测试,反馈问题如下:
1.溢出样本流经设备后,不能触发报警;
2.在测试终端上,观看溢出样本后,其所下载slide1.gif的文件会被平台报警。
安天相关研发分析团队对用户所反馈的信息连夜进行了分析,最后定位了问题。鉴于相关经验教训可能对APT检测分析工作有一定意义,因此我们将其记录于此。
如图4-1所示,安天追影安全平台由两个设备组成,一台是VDS网络病毒监控系统,其接入网络设备镜像口,获得旁路流量,进行还原,调用反病毒引擎进行检测,同时对不能识别的对象投入到另一台追影高级威胁鉴定器设备中去分析,而VDS可以定期获取检测结果刷新原有的检测记录。鉴定器即采用沙箱虚拟分析的机理设计。从目前来看,业内同类产品基本采用这一“流量+沙箱”的方案。不同的只是是否支持直路串接,是否整合为一台设备等等。
图 4‑1安天追影安全平台的部署
经我们对用户测试情况的多次复盘,最终得出了先骨干现象的原因。用户所获取的4114溢出样本,扩展名为PPT$($可能其样本提供者所加,以避免样本被误打开),因此用户将其扩展名更名为PPT,采用HTTP下载的方式,构造了攻击事件,但此时文件虽然被获取,但鉴定器并未得出结论。 图4-2是安天PMC测试组于次日做的事件再现,此时可见未获正确检出结果。
图 4‑3VDS捕获Slide1.gif实体文件
图 4‑4VDS检出Slide1.gif恶意程序
图 4‑5追影安全平台对Slide1.gif的鉴定报告
图 4‑6安天CERT自用的内部追影的分析报告
尽管可以对PE载荷进行检测,但沙箱未能对溢出文件告警,是一个严重的产品问题,安天PMC测试小组在引擎部门的配合下,经过一夜的分析,锁定了问题的原因。测试小组经分析结论为,溢出部分未能成功检测,与追影鉴定器的对格式和文件名的识别策略,以及打开方式等设计不够完善有关,具体原因如下,供同仁们尽情鄙视吐槽:
1.追影鉴定器对格式文档的默认投放策略为,如果带有合法的文档扩展名(doc、docx、xls、xlsx、ppt、pptx、rtf、pdf)等,则保留原文件,按照预设版本策略,选择虚拟机,进行关联加载。而如果没有合法文档扩展名,则按照AVL SDK反病毒引擎所识别出的格式,获取对应扩展名进行投放。
2.经我们手工重新投放测试,样本被命名为.ppt后,无论在虚拟机中还是实体机中。被Powerpoint打开后,进入相关PPT编辑界面,不会触发恶意行为。
3.而如果手工把样本改为pptx,则会弹出如图4-7的格式不一致的提示,从而打开失败。
图 4‑7Powerpoint的格式告警
4.实际上该样本实际既非ppt格式,也非pptx格式,而是与pptx格式相近的ppsx播放格式,而触发该漏洞三种路径:
a)其扩展名被命名为ppsx,打开后即自动播放触发。
b)其扩展名被命名为ppt,打开后进入编辑,此时需要由人工播放触发。
c)其扩展名被命名为ppt按照编辑打开后,点击如图4-8中,我们用红笔标注的的两个OLE对象也可以触发。但实际上c并不处在一个合理的攻击路径上,因此路径b,实际上可以成为一个对于部分沙箱系统的"免杀"。
图 4‑8 ppt格式文档页面截图
5.针对上述问题做策略调整后,追影沙箱可以检测本样本(如图4-9、图4-10所示),并可以触发其行为,以及其他采用类似“免杀”策略的样本。即我们增加了按照合法扩展名和格式识别对应扩展名各执行一次的策略,同时对PPT格式样本,增加了/C参数对PPT进行播放。
图 4‑9ppsx格式追影分析成功发现威胁
图 4‑10ppsx格式载体发现网络通信
图 4‑11ppsx格式自动播放后截图
5 总结
多部门合写报告,作为PMC测试小组的组长,我因为“不懂安全技术”被抓来写总结。因此我只能更多整理同事们一天来的语言。
10月14日夜,在我们测试小组与引擎部门分析相关漏洞与产品问题的时候,安天CERT的几个小伙伴正在等待微软本月补丁发布,他们期待分析SSL漏洞。BOSS在群里说,骤然理解了,什么是“同时打赢两场局部战争的能力”。
总工们怕我们会拿检测到哪个PE来掩饰问题,敲打我们说:“单放到一个实际的检测场景下看,一个PE载荷如果没有与其前导的格式溢出建立关联,这个事件的安全等级会下降。其可能被与其他普通的事件混合在一起。从而导致不被关注,因此对这个PE告警的价值大打折扣。”
几个老家伙一直在线等待我们的验证报告,凌晨两点,我们反馈了初步的结果,并根据扩展名为.ppt的情况下,漏洞需要人工播放才能触发,我们也给出了需要重视相关免杀技巧的结论。
在15日早晨,当我们把验证结论发送给发现问题的用户方研究人员时。他回信宽慰我们,你们能够检测到后面下载的PE样本,也部分证实了产品能力。
但我们不能原谅自己,一个安全产品不能按照预期的设计全面和有效地应对威胁,这是工程师团队的耻辱。
要感谢专业的用户帮我们验证和发现了问题,用户是最好的老师!
而我又犯错误了,早上接受采访时,我把具有“免杀”效果的.ppt扩展名说成了.pptx。15日下午,根据对目前所能获取到的所有信息的复盘,安天CERT部门给出了另一个观点,尽管上述绕过沙箱的方法是可行的,并在用户测试中确实部分绕过了我们的追影平台。但除了用户自己手工修改名字的这个样本外,从安天自身已经获得样本和其他信息中,没有发现样本投放中使用了上述技巧的实证。但大家都忧心忡忡地认为,从攻击的趋势来看,攻击者通过构造和社工的方法,让文档的真正打开者能按照攻击者设想条件触发攻击,而在沙箱中无法触发。这必然是今后“流量+沙箱”类产品解决方案面临的主要挑战。随着沙箱的普及,恶意代码开发者也会不断地增加各种对抗沙箱的条件,类似验证码,人工点击或者播放等条件对攻击者很容易预设,而自动化的沙箱却很难逾越,需要不断的对抗完善。
Seak发了一条微博,这让我可以省去自己想结尾:
“从广义上说,入口点是确定性攻击路径的起点”,而从这个意义上看,EPO和Stolen Code都注定会在格式溢出构造技巧中找到影子。社会工程学可以把被攻击者导向那个“起点”,而对鉴定器来说,这个起点又可以足够隐蔽。
附录:参考资料
[1]CVE-2014-4114: Details on August BlackEnergy PowerPoint Campaigns
http://www.welivesecurity.com/2014/10/14/cve-2014-4114-details-august-blackenergy-powerpoint-campaigns/
[2]Analysis of SandWorm (CVE-2014-4114) 0-Day
http://research.zscaler.com/2014/10/analysis-of-sandworm-cve-2014-4124-0-day.html
[3] iSIGHT discovers zero-day vulnerability CVE-2014-4114 used in Russian cyber-espionage campaign
http://www.isightpartners.com/2014/10/cve-2014-4114/
赞赏
看原图
赞赏
雪币:
留言: