分类: 信息化
2018-02-27 13:23:26
随着IT技术的不断发展,病毒、木马也在同步发展,从恶意破坏到窃取信息、敲诈勒索等层出不穷。很多事件也从单纯的技术炫耀变成了利益驱动,安全公司在分析这些攻击事件的时候,发现有越来越多的定向攻击,即大家所说的APT攻击(advanced persistent threat),这些APT定向攻击背后有明显的团伙组织在行动。
从公开的aptnotes()来看APT报告的数量逐年增加,在2014年达到了顶峰,这一年公开的报告有104份。虽然2015年的量略有下降,但公开的报告数仍有80份,截止到2016年7月,2016年的已经公开的报告已经有58份了,但这些仅仅是已经公开的报告,相信有不少APT攻击的报告仍处于保密状态。
APT常用攻击手法
APT定向攻击不同于以往传统的非针对性择弱攻击,传统攻击的获利模式基于控制大量肉鸡来构建Botnet,通过垃圾邮件、垃圾信息、DDoS、SEO、流氓推广等方式来获利,或者盗取肉鸡上的账号并洗劫账号中的虚拟财产和真实财产。而APT定向攻击的特点,决定了这是一种不顾强弱的针对性攻击,在攻击之前一定会大量收集将被攻击目标的相关信息和情况,比如收集攻击目标相关工作人员的邮箱地址进行邮件鱼叉攻击、经常访问的Web站点进行水坑攻击。
我们在日常的APT追踪溯源分析工作中,总结了一些常见的APT攻击手法。
1.1 水坑(Watering Hole):
a)、通过自行架设或者入侵WEB服务站点,在站点中插入恶意的代码,使得访问人员的浏览器、Flash插件或Java控件等存在漏洞的工具在访问这些站点时远程执行恶意代码;
b)、或通过二次打包WEB服务站点上的正常应用程序,将木马捆绑其中;
c)、或伪装成应用程序更新包;
d)、或在Office文档中加入漏洞利用代码。
图2 海莲花APT攻击中伪装成Flash升级包的页面
图3 海莲花APT攻击中伪装成通告文件
图4 DroppingElephant APT 针对中国攻击时所架设的关于中国的钓鱼网站
1.2 鱼叉式网络钓鱼(Spear Phishing):
a)、通过架设钓鱼网站,来获取目标相关人员的一些信息,比如姓名、电话、账号、密码等信息,甚至通过钓鱼网站诱导访问人员下载安装伪装成安全控件、更新包的木马。
图5 Dropping Elephant APT 针对中国攻击时所架设的网易邮箱钓鱼网站
b)、通过向攻击目标发送邮件,在精心构造的邮件正文中附带钓鱼网站的链接或者在附件中夹着恶意附件,比如含有Office、PDF文档漏洞的利用和欺骗性的可执行文件等。
图6 海莲花APT攻击中的鱼叉邮件
c)、通过社交工具、即时聊天软件进行传播,伪装身份并加入某些群体,比如加入军人的QQ群,并向这些军人的QQ发送恶意文件。
图7 通过“部队”、“转业”等关键词可以很轻易的找到军人团体的QQ群
1.3 U盘:
通过感染恶意程序的U盘,利用相关漏洞达到攻击隔离网络的目的,由于需要物理接触,属于高度定向攻击。比如震网(Stuxnet)病毒就使用了U盘作为传播介质,从而摆渡到隔离网络进行传播攻击。
1.4 Web攻击渗秀:
利用服务端系统或应用的漏洞攻击渗透,并以此为跳板在内网中横向移动。
1.5 其它:
除上述几项常见的攻击手法外,还有P2P文件共享、内网文件共享、内网主动攻击等方式和方法。
在多起APT定向攻击事件报告中,我们可以看到存在针对性的信息资产窃取或针对性的瘫痪破坏,以及获取关键系统的访问及控制权限。比如海莲花就主要针对中国政府、科研院所、海事机构、海域建设及航运企业等相关重要领域展开相关攻击及信息窃取。
在这些APT定向攻击事件的背后,我们能看到有专业的团队分工合作,比如震网(Stuxnet)就同时利用了微软和西门子公司产品的7个漏洞进行攻击,其中Windows系统上MS10-046、MS10-061、MS10-073、MS10-092四个漏洞属于0day漏洞,并且恶意代码需要保证PLC正常工作还不崩溃,这是需要有极强的漏洞挖掘能力人才和对PLC精通的人才。不是所有的APT定向攻击事件都会如同震网(Stuxnet)一样使用多个0day漏洞,还有很多APT攻击所使用的漏洞利用都是已发布修复补丁的,因为很多人没有升级打补丁的习惯,或者使用了盗版了系统或Office工具,不能升级。虽然已经是Nday漏洞了,但使用起来,效果也不差。下面罗列了公开APT报告事件中常用的漏洞分布,可以看出CVE-2012-0158使用较多。
图8 APT报告事件中常用的漏洞分布
除了使用Nday漏洞利用外,攻击者还会想办法绕开安全软件的主动防御、对安全软件进行免杀等。
比如通过加壳、加花指令、代码变形、垃圾指令填充等各种方式来达到免杀的目的,甚至直接使用VBS、JS、Powershell脚本语言来执行恶意代码,还有一些会使用“白利用”等方式来进行免杀和主动防御绕过。
APT事件的分析与发现
刚才讲了APT攻击的一些常用手法和攻击形式,那么如何来发现APT攻击事件呢?
实质上,对于安全公司或安全部门而言,每天都会有海量的数据及大量的线索,而APT事件的相关线索就隐藏其中,需要做的事情就是将这个线索找到,拓展扩大,最后形成一个较为全貌的APT定向攻击事件报告。所以线索的获取是个关键,通常线索获取有外部的反馈和自有数据的跟踪挖掘。其中,外部的反馈可以从感染现场或者远程取得——恶意代码样本及网络和主机上的相关数据。而自有数据的跟踪挖掘则需要关注APT的常见攻击渠道,比如鱼叉邮件的附件。
收集整理APT攻击事件中恶意代码的特征,并通过这些特征找到新增加的样本。但在实际工作中,很多样本都有,只是有没有精力仔细分析,比如EquationAPT定向攻击事件中,0a209ac0de4ac033f31d6ba9191a8f7a这个样本,早在2012年8月就有人上传到virustotal.com进行安全检测,但直到2015年2月才由安全公司报出,类似的例子有很多,就不一一列举了。
图9 EquationAPT定向攻击中0a209ac0de4ac033f31d6ba9191a8f7a样本在virustotal检查情况
样本除了代码相似性聚类外,还可以通过C&C地址、沙箱行为、编译时间、编译工具的版本、语言、程序流程、木马的启动路径、及加解密函数算法甚至某些函数的处理来相关联分析。
图10 海莲花样本关联分析过程
图11 海莲花样本关联分析过程
带有明显的社会工程学的邮件也是一种非常明显的恶意特征,可以作为常用的发现手段之一。
图12 海莲花APT事件中的精心伪装的程序附件
实际上,通过挖掘带有漏洞利用的Office文档,也能挖掘出APT事件,比如Dropping Elephant APT就有大量使用CVE-2014-4114。
而C&C的域名、服务器的IP、域名的Whois信息等,这些都能成为关联分析一个要素,最后将各个线索串起来。除此外,流量特征、端口、IP等也是线索的发现要点。
图13 海莲花APT攻击中的分析拓展过程示意图
在海莲花追踪溯源过程中,我们通过一个样本,进行同源性分析,找出了数个相关的同源性样本,并通过同源性样本的关联属性,找到了水坑攻击的站点,顺着水坑攻击的站点做分析,从而找到更多的受感染主机。就这样由点到面,再由面拓展更多面,最后完成一起APT事件分析报告,当然,这背后仍需要不少背景研判和相关知识的支撑。
写在最后
本文限于篇幅,还有一些攻击手段和手法未展开具体讲述,如磁盘无文件、无进程、Rootkit、Bootkit等等。APT定向攻击背后的因素太多,未来也将长期存在。随着检测手段的更新和攻击手段的升级,将会使APT攻防双方的门槛和成本都增加,这对安全厂商而言是个不小的考验。