NSC2015冷风:特种木马攻击与溯源

郭勇生:大家好!我是天融信阿尔法实验室的”冷风”。这次我给大家带来的议题是特种木马的攻击,以及特种木马的溯源。主要介绍两个方面:

1、特种木马的特性。

2、攻击溯源的一些思路,溯源主要是两个简单的案例。

我们怎么样定义特种木马,电控网络上特别多,比如黑鸽子、黑洞、Gost(音),大家也用过,一旦被公开大家都在用的远控那么它不能称之为特种木马了,我认为特种木马是针对特定目的开发定制的绕过沙箱的软件木马,不光是远控,还有其他的软件也是这样的。作为后门或恶意程序有两大点是最主要的,它进入木马网络后怎么样穿透网络,能连接出来,这一点是很重要的。第二是它和杀毒软件的对抗,现在每台电脑都有杀毒软件,如何避过杀毒软件查杀是要点所在。

特种木马对网络的穿透性。分为五个方面:

1、代理的穿透性,早期的远控是直连的,TCP、UDP,直连就可以控制上线,中间经过大型网络的上线,比如微软ISA的代理,上网之前回弹出一个框让你输入用户名、密码,验证成功才能上网,代理的程序大部分远控无法做到,它的方法,完全模仿用户的操作,比如用户用IE浏览器,用HTTP协议出来,它模仿HTTP在网关验证,然后再连接出来。HTTP实验的时候通过拆解密码或用其他的方式,比如用户上网时弹出框来让你输入密码,它也弹出让你输入密码,它这样伪装获得你的帐号密码,再进行穿透。

2、绕过流量监控和恶意地址检测。管理员往往看到流量监控和恶意地址,比如一般访问的是国内网站,突然有一天连接从来没有连接过的地址,这时候网络管理员会有异察。恶意的攻击进入到网络内部,重要的还是你的数据,它会把你的数据脱走,脱数据的时候这个数据有可能大也可能小,大也可能是百G甚至上T的,这样就会产生很大的流量。恶意软件它怎么避开这个检测呢?如果它使用公有的网络环境,比如JoBox或者Google的云,或者网盘数据,最大程度上迷惑管理员和运维,让他们看不清这个数据被人恶意脱走,还是用户自己上传的云数据。

3、采用多种协议穿透。有时候在渗透过程中有很多情况,你可以进去,但是上不了网,也Ping不通,通过DNS可以解析,这种情况有时候可以束手无策,有时候可以通过DNS隧道,通过DNS隧道进行数据传输。而恶意程序和特种远程控制软件会在内部集成几种协议,比如同时支持TMP、DNS、ICMP等等,会检测那些会被网络协议识别出来,会自适应网络协议进行连接,它做到只要用户数据能出来它就出来,穿透性就有很大的提高。

4、协议加密绕过IPS/IDS防火墙。这种防火墙是把很多通信特征,把病毒通信特征库,采集大量通信特征加进去,你的程序通讯时一般会被通信特征拦下来。而恶意的攻击者会采用一种新的方式,在每次生成时,配置恶意程序时会采用不同的加密方式或者不同的密钥,这样两边进行匹配,每次生成的通信特征不一样,这样绕过IPS/IDS。

5、插入白名单程序绕单机防火墙。这些恶意程序绕过用户电脑,用户电脑装着单机防火墙,比如科莫多(音),单机防火墙弹性是非常大的,如果高级用户对每一个进程,专家记的都会了解,而大多数用户是使用默认状态,因为他不希望自己在上网时有各种提示弹出来,所以恶意程序会采用把自己注入到一些白名单程序里,通过它来通讯,一是迷惑用户,二是对反病毒软件是有效果的,至于怎么样把自己注入白名单程序里,杀毒软件会拦截,这个拦截方法我们后面再分析。

一些恶意程序与杀毒软件的对抗。

1、对抗虚拟机检测。

2、对抗启发式检测。

3、目前普遍杀毒软件的软肋,比较容易被攻破的地方。

对抗虚拟机环境检测,比如搜索虚拟环境中的进程,文件系统、注册表,修改文件,当它发生这样的行动就政策它是恶意的,你可以自测所运行的环境不是用户真实的环境。既然它是虚拟机就不可能完全模拟到用户的操作,假设这个程序你执行完之后等着用户点击鼠标交写和真实的键盘交写。真实的情况下点击之后可以进行恶意操作,而虚拟机有可能模拟不到这种操作,他可能认为你这个程序没有恶意行为就放行、绕过,针对这种检测,主要是上面四条:

1、搜索虚拟环境中的进程、文件系统、注册表。

2、搜索虚拟环境中的内存。

3、搜索虚拟环境中的特定虚拟硬件。

4、搜索虚拟环境中特定的处理器指令和功能。

对抗启发式检测。

启发式软件,分析恶意程序和正常程序,恶意程序和正常程序会有差别,恶意程序会有操作界面,会有文件大小,恶意程序只有10K、20K,会有网络链接,会修改系统目录等等,它是根据每一条特性设定一个阈值,综合判断程序的阈值,比如达到60分就说明这个程序很可能是有害的,真正的用户应用程序不可能具有专门的特性。通过这个思路,你绕过他们时可以程序尽量少调用一些API,使用动态的方式加载,做成Shellcode方式,或者找个比较大的开源程序,这个开源程序如果用启发式进行查的话,它的阈值就会比较低,把你的恶意程序插入到其中的某一部分,这样就起到了很大的迷惑作用。

关于目前大多数杀毒软件软肋问题。现在杀毒软件和前些年已经有了本质上的不一样,原来通过修改特征码,恶意程序通过修改特征码,几个跳转就可以做到免杀,现在这样基本是行不通了,不管虚拟机、启发式、云还是沙箱都非常严格。它们的软肋在于白名单机制,因为杀毒软件它必有的一种机制,必然要有一些机制,要有白名单,要有一些程序放行的,这一块成为最大的问题。

360有个比较严格的机制”非白即黑”,意思是我不能判断你这个程序是无害的程序那么我就认为你是有害的程序,这是非常极端的机制做法。如果要这样的做法必然要排除第三方软件和共享软件。问题就在于,白名单程序你怎么样能确定它确确实实是白名单程序呢?这个东西你肯定也要有病毒分析师分析这个程序,它究竟是不是白名单,有没有危害,这个工作量是相当巨大的。360病毒分析师的工作量基本13分钟要判断一个文件是白是黑或者是灰。就13分钟来判断,如果是一个有针对性的攻击者自己去写一套软件,找一套开源的程序做一定的修改,加入一定的恶意程序,提交到这个组,你去分析时很难确保我肯定能给你分析出这个东西有恶意的情况。不只是他,所有的都有这样的问题。

最早杀毒软件有个问题,帮用户优化启动项,让机器跑得更快,有时候你可能会发现,优化完以后你的网银用不了了,炒股软件用不了,总之很多和钱相关的东西就出问题了,而这个时候用户就会面临一个选择,我是用你这个杀毒软件还是用我这个网银呢?到后来杀毒软件公司他们也可能发现这个问题,凡是和网银类、插件类的默认就不会显示在你的启动项域化里,这时候就给恶意攻击者一些机会,他们可以分析网银插件,找一些问题可以利用的,比如DLL劫持等问题,通过它启动一个恶意程序,这样即便杀毒软件认为它有危害也是给它放行的权值会比较高。也不排除某些人购买数字签名加到这个软件上达到绕过的目的,数字的签名成本很低,也就几千元,而且这方面的验证也不是特别严格。

特种木马的溯源。

1、溯源之难。

真正做过溯源的人,如果你没有去做过可能有一些思路,真正要去做的话会发现特别难,因为网络上的隐藏成本是非常低的,如果他稍稍有些反侦查意识,做一些保护手段你很难去追查。现在国外的VPN你可以轻轻松松买到办理,如果去溯源,查到一个恶意IP在境外,得到它了想进一步走怎么办?你境外协调这个事情是协调不了了的,国家和国家之间这个机制是不完善的。当然,在国内,比如你自己入侵了一个国内的站,挂了一个国内的VPN,这样想抓你是分分钟的事情,没这么困难的。因为你用VPN服务器,它直接用机房或者相应VPN提供商就能查到你各种链接。

在溯源时要考虑一个问题,我们的对手是谁,这是兰德报告里一小段,他把黑客分为顶级黑客、一流黑客、二流黑客,他说顶级黑客的数目可能不会太多,大多数黑客会把局势搞乱,可能行动会惊动敌人,并把目标暴露给目标集合。对二流黑客来说,他们最合适的工作是绘制目标网络拓扑和翻查对方用户文件。我们遇到顶级黑客不是特别多,关于顶级黑客也是个传说。即便是二流黑客,你对他的溯源也不是那么容易。

2、如何发现特种木马。

如果没有样本怎么得到特种木马呢?原来我配合一些特定的目标去一些受害单位做单机检查,这基本上是大海捞针,因为真正的攻击肯定在整体数量上不是那么多,而且针对性特别强,你做个网络,到这家单位检查,到那家单位检查,能找到的几率是非常小的。目前来看,最好的方法还是大数据的方式,刚才方兴前面说他们不再做盒子了,而是使用大数据,其实趋势就是这样的。比如国内大型杀毒软件部署的量特别大,他们采集样本肯定没有问题,只有在这个基础上再去做大数据分析,找特种攻击相对来说还是比较有胜算的。比如前段时间报出来的海莲花,大数据里要有大数据,而是对大数据要有甄别能力,这时候你的思维要多维度考虑这个事情,你针对特种木马,它的特性就是没有特性,凡是有类似行为,但非常隐蔽,只部署在某一些部门里,而且连接也不频繁,数据量也不太大,把这些揪出来进行分析的话可能成功率就非常高,如果排序的话,把这些恶意程序行为做倒序排,研究量不多,数量也不大,研究点也不多,类似这样的你可以作为重点观察对象。

3、基于调试信息的溯源。

往上有篇文章分析木马作者分析得特别细,都能查到这个人叫什么,在哪里工作,哪里毕业的,工作是什么?他是怎么做到的呢?其实他就是拿到了这个病毒样本,拿到病毒样本之后去做二进制分析发信编译其留下的调试路径,而这个调试路径包含了它的用户名,也就是说它把原代码编译时放到了桌面上,编译以后他桌面上的用户名被编译到了里面。就这么一点就能把它彻底暴露出来。这个问题看似非常简单,如果不暴露出这种事件或问题时有谁能知道编译器能进入你的路径,发布的时候在里面呢?大家是不是都喜欢把自己的东西放到桌面上,你的用户名又是什么呢?是不是和你自身的名字和单位放在一起呢?相信80%都是这样的。

4、基于IP的一个溯源案例。

还有一次拿到恶意软件的样本,它回链一个地址,处于非激活状态,IP已经连不通了,你通过二进制分析不出来东西时怎么办?它通过反连的IP地质到DomainTools去发行,它的曾经对域名解析到了一个IP地址,有了这个域名之后你可以对域名进行溯源,有了注册人信息,有了注册人信息你可以再一步步走,这依赖于DomainTools国外一个服务商,它号称12年的注册记录,包括域名的所有权、域名注册记录、托管数据、截图和其他DNS记录等信息。你觉得这个域名把它解析到了IP地址,之后解析到别处,认为是安全的,其实不是,你做的过程很可能被这样的服务商给记录下来。

5、基于蜜罐的分析。

如果发现了目标攻击,这个攻击正在进行的话,你可以通过设一些蜜罐获取对方的真实地址,方法其实可以很简单,在各种文档中插入一些网络的资源如图片,把IP地址暴露出来,难的不是设蜜罐,难的是怎么样让他相信你,这是很难的。

6、一层VPN的溯源。

下面有讨论,如果我剥了一层国外的VPN到国外的网站你能不能查到是我干的呢?左边是攻击者,右边是被攻击者,中间共同穿越了一个GFW防火墙,剥了一个境外的VPN再攻击被攻击者。被攻击者网站上的日志是可以看到境外VPN这个地址的,假设这个网站的日志你可以看到,而攻击者必然是在这个时刻的前后连接过境外的VPN,这也是有链接的,即便它是隧道,它加密了,但加密之前最初验证时肯定是有验证的,这时候你通过了GFW,它肯定能记录下来,是没有疑问的。这么一个理论就形成了,境外VPN攻击了一个被攻击的网站,而同时你又连了这个VPN,只要去防火墙上查一查,在网站被攻击时,国内哪个IP连接了国外的VPN就可以知道是谁了,思路是这样的也没什么问题。

现在关键是在这里,入口这个地方会不会做这个记录呢?有人说能,有人说不能。我觉得思路上来讲是能的,但具体实现上是很难的,因为网络的出口流量特别大,如果做这个记录你得需要多大的存储空间,事实上是很难的,即便你剥了一层VPN,会追溯到你的可能性也不会很大,当然剥了两层和你这个思路就更行不通了。

7、基于日志的分析。

它难就难在大量的数据分析,大量设备日志联动起来,形成一条攻击链然后找到对方。成功的也有,比如多,有时候网站上大量日志都是境外IP进行扫描,结果突然断了一下,又境内的IP,这时候VPN断了,扫描功能还在继续,这是存在的。

我的介绍就这么多。谢谢!

上一篇:NSC2015中国网络安全大会盛大召开

下一篇:NSC2015马坤:基于众筹插件模式的分布式安全扫描平台