本文为微步在线威胁情报沙龙华南站的嘉宾樊兴华的现场分享,樊兴华是微步在线安全分析团队负责人,他将回顾微步在线对暗云木马的分析过程,并揭秘微步在线的追踪溯源能力如何“炼成”。
今天给大家简单分享一下我们在追踪溯源方向上的一些经验和积累。
在分享开始之前,我想先向大家明确溯源的概念。通常意义上的溯源分两种,一种是内部溯源,当企业被攻击之后,企业的应急响应人员和安全管理人员需要对入侵做取证和分析,去寻找最开始的突破口,以及评估此次攻击的影响,这个过程就属于内部溯源。
另外一种属于外部溯源。在内部溯源过程结束之后,安全人员会拿到入侵者所使用的木马等工具。此时,安全人员要进一步把攻击事件背后的信息提炼出来,做成画像,进行溯源。比如攻击者的个人信息,他是谁,他是哪里的人,他在攻击中用了哪些资产,他的攻击过程是否有一定的针对性?是针对行业还是针对地区?这个过程就是外部溯源。我今天分享的内容就属于外部溯源。
先简单介绍一下暗云木马。暗云木马经历了三代,从15年到17年,每年有一代更新。我们最近一次溯源分析是在17年4月份,也就是暗云三代木马。
暗云木马的目的其实很简单,在早期是刷流量、做推广、骗点击,从而获利。到了17年4月份,暗云木马演化到第三代的时候,主要用来发起DDoS攻击——它建立一个非常庞大的DDoS僵尸网络,背后大概有四五百万台被控主机,暗云正是利用这样一个庞大的DDoS僵尸网络,发起一些DDoS攻击,通过这种方式获利。
暗云木马另外一个显著的特点,就是隐蔽性非常强。第一,暗云木马完全基于内核,执行过程中所有插件的下载、包括配置文件的下载,都是直接基于内存,没有任何文件实体。第二,最开始的样本有合法的数字签名,来自深圳的一家公司。第三,因为暗云木马是完全基于内核的,所以暗云木马可以对抗主流的杀毒软件,直接把相关杀毒软件的主动防御功能关闭。
我们如果要调查暗云木马,会面临很多挑战,第一,样本取证非常困难,因为它是内核级的,所以我们只能通过DDoS的流量做简单的流量分析,拿到一个主控域名。第二,暗云木马在执行过程中是通过Shellcode,所以我们的样本分析也很困难。第三点是事后的分析,我们分析完之后,发现暗云木马或者说木马背后的攻击者,他们的基础设施网络非常复杂、庞大。这是当时业界去溯源暗云木马事件的时候碰到的几个挑战。
那么,微步在线是怎么分析的呢?
我们前面说到,我们当时拿到了一个唯一的域名,其实就是www.acsewle.com,我们在后端有一个追踪溯源系统,通过追踪溯源系统对这个域名做了分析之后,我们有了两个发现:第一,就是上面这张图,我们发现在那个红色方框这块里面的叫ads.haossk.com 这个域名,其实就是暗云二代的主控域名,而暗云二代的主控域名和暗云三代的唯一域名被我们的溯源系统发现有一定关联性。第二,图里的被红色框圈出来的这些域名,也在分析后被认定是暗云三代木马在执行过程中所使用的其它的cc域名,也就是说,暗云木马在执行过程中,不只使用了一个主控域名,而是使用了多个主控域名,当然这个图也只是列出了一部分。
我们最终的溯源分析结果如上图所示,我们发现,第一,暗云三代的域名跟暗云二代的这个主控域名 haossk.com存在一定关联,因为它们曾经在某个时间段同时解析到23.234.26.89这个IP上面。第二个,通过四五级的往下拓线的关联分析,我们发现了暗云木马其实不止这一个主控域名。第三,我们也得到了暗云木马基础设施上的一些特点,首先暗云木马解析的IP是集中分布在这两个CC网站上,其次因为感染量大,流量很大,所以暗云木马使用了CDN加速的方案,使用了国内一家CDN厂商提供的服务,再次,暗云三代的很大一部分主控域名使用了xundns的NS服务器,最终结果也显示,这是国内的一家厂商。我们是通过前面这些,拿到了暗云三代以及背后团伙所拥有的80条资产,也就是80条域名。
这个效果其实是非常明显的,因为我们整个分析过程中,只输入了一个域名。通过对这个域名做追踪溯源分析,我们就拿到了暗云三代所拥有的80个域名资产。
再说一下暗云木马的追踪。这张图是在16年4月18号我们通过溯源系统得到的结果。
下面这张图是大概半年之后,16年的11月3号,我们通过同样的域名再做一次分析,发现输出多了一个域名,就是标红的域名ms.maimai666.com,其实我们事后分析,它就是暗云三代的一个域名。
一个月后,这个ip上又形成了一个叫www.acsewle.com,这个域名就是我们当时追踪溯源暗云三代事件的时候,我们拿到的唯一域名。
这三张图是为了说明什么?
第一,我们发现暗云三代开始活动时间是在16年11月份,这一点跟我们国内的其他厂商发布的结论可能不太一致。
第二,因为我们直接通过域名的ip的解析,只能定位到暗云木马大概的活跃时间是从12年10月份开始,所以我们做了一个比较事后诸葛亮的假设,如果我们在16年的4月18号通过溯源系统对暗云木马做日常的监控,我们其实可以在16年11月3号就发现暗云三代开始活动的迹象,也就是新增的、从未被使用过的域名,而且一个月后又出现一个新的域名。
假如,我们在16年的时候,能够去监控暗云三代开始活动的迹象,同时把这个监控的结果下发给的客户,或者把这些信息公开披露出来放到我们的情报社区里共享给安全界,可能就不会导致几百万台机器感染暗云三代木马。
这是我们说的暗云木马追踪的一个案例。下面分享一下,我们在这个事件中抽象出的追踪溯源方法论。
第一,我们必须有一定的样本分析能力。通过样本分析,我们可以提炼出样本里面木马所使用的cc、样本的静态特征,比如Yara特征等,然后我们可以通过溯源分析系统,对这个cc做一个追踪溯源分析,就像分析暗云木马的样本。
在溯源分析完成之后,我们可以把这些结果存储到数据库,我们有一个监控追踪系统,每天更新黑客画像系统里面录入的域名、cc等信息。我们先做一个监控,可以在第一时间发现它们的一些变化,这是具体的方法论。而样本分析能力是所有安全分析师都必须具备的一种能力,我们通过多引擎或者沙箱去做分析,然后提取出像引擎的病毒名、家族名、主控域名等信息,还有像Yara行为签名、ATT&CK模型等。我们微步在线其实也有一款微步在线云沙箱,从2015年公司创立,就已经在内部研发并使用,只不过我们在2017年底才开始计划把它拿到前台,目前已经上线,还在beta阶段。
我们把沙箱从我们原来的社区里拆分出来,结合我们自己使用时的需求做成一条单独的产品线。我们的沙箱完全免费,基于SaaS化,而且里面集成了我们自己情报分析情报提取的系统,最终输出在安全报告里,可以用于事件分析以及安全设备,去做拦截的IOC。另外,我们还集成了数以千计的行为签名,可以对样本的行为做非常直观的翻译。
目前沙箱已经支持了主流Windows、Linux、安卓等主流操作系统,数十种文件类型。区别于其他传统厂商提供的沙箱服务,我们的沙箱能够直接判定某个样本是恶意还是非恶意,判定结果基于我们机器学习的决策树算法。另外,我们的沙箱中也集成了微步在线五款情报分析系统,提取出来的情报IOC可以直接在报告里面反馈给用户,用户拿到这些IOC后,可以放到设备里面去做检测和拦截。
刚刚说到样本分析能力,我们在溯源分析的时候,应该如何着手去做呢?其实有几个步骤,首先就是我们那个溯源模型里要有一些关键因子。
常见的因子包括域名、IP、Hash值,以及Passive DNS,再比如域名的注册邮箱、域名的DNS记录等,这些是比较基础的关键因子。具体关联模型其实很简单,我们所说的关联呢其实就是我们认为两个因子之间有一定的关联关系,那么我们就会用一条线来连接,最终产出的就是一个非常复杂,看起来不可读的网状结构。
我举个简单的例子,上图是我们具体关联模型里面关联的一些点,比如就是域名的话,如果说他有他的子域名,他有二级子域名,我们认为这个域名跟他的子域名是有关联的,另外就是域名曾经解析的ip,包括当前解析ip,包括哪些样本曾经跟这个域名发生通信,这个域名的注册邮箱注册人信息等,这些我们都认为可能会有一定的关联。
通过前面的关联因子的关联模型,最终得到一个原始结果:一张看起来非常乱非常不可读的一张图。那么如何把图中的无关信息除掉呢?我们有几个思路。第一,过滤原始结果,过滤的方法包括几个模型,比如我们要识别域名贩子的模型,因为我们做过滤的目的是要把那些跟攻击者不相关的信息噪音剔除掉。域名贩子是专门有一批人通过倒卖域名去盈利,典型的场景就是这个域名可能是在某一个域名贩子的名下注册,但是使用者可能已经是另外的人了。这种情况下,这个域名虽然被使用,但已经不属于攻击者的资产,我们就要剔除掉。类似的思路比如像CDN,因为CDN的IP其实也是类似的就是很多域名去共享IP,这些IP跟攻击者没有任何关联,也不是攻击者的资产,这些我们也要剔除掉。
过滤之后是判定。判定的方法也有几个维度。第一,微步在线在云端有数十万量级的商业情报库;第二,我们自建了微步在线情报社区,每年有很多热心的用户给我们提交每年几十万的情报。一个典型的例子就是图上的down2.b591.com,这是我们一个用户提交的域名,最后被我们发现其实是一个主控域名。第三是类似DGA的随机域名识别,正常域名可能不大用DGA模型去识别,只有一些恶意软件和木马为了躲避检测才会使用DGA的算法,我们就可以通过这些模型去识别出随机域名,然后对它做一个恶意判定。
其它类似仿冒域名、相似度、沙箱判定规则这些我们也会使用。在过滤和判定之后,我们的判定模型就已经出来了,这就是我们溯源分析的模型。
其实我们所说的溯源模型就是微步在线的自动追踪溯源的系统(Z),Z系统最大的特点就是支持一键自主溯源,支持对域名、IP、Hash等因子的分析。另外,Z系统里继承了一些智能化分析模型,能够去除无关的干扰。第三个特点是可以“一窝端”,最典型的就是暗云木马,输入一个域名,输出背后攻击者的80多条资产,攻击者不管用什么方式发起攻击,都会被拦截掉。
追踪溯源系统适用的场景就是一些攻击案件的调查溯源,比如高级APT攻击,以及像普通的黑产类这种攻击事件,都可以支持。此外我们是基于SaaS的服务,可以提供API,只需要将域名输入,点一下自动分析,就不需要再做任何操作了。
下面说一下我们在监控追踪这方面的能力。我们后台是有一个自动狩猎(Hunting)的系统,这个系统每天处理云端新增的数百万的样本及每天新增数百万域名,这些新增数据都会被放到我们这个系统里去做规则的匹配。具体匹配的模型分两种,一种是基于样本维度的追踪模型,另外一种是基于域名和IP的追踪模型,最终我们能够从这百万级的样本和数百万级的域名里面输出可能跟这个事件相关的一些结果,再加上分析师人工去确认。但是对于一些我们目前比较熟悉的黑客组织,比如像印度的白象,我们也基本不需要人工再去干预。
具体到样本追踪的模型,大概分这几个维度:一是我们会基于多引擎输出的样本,比如名字和家族,二是通过代码化的这种相似度的判定,比如像2017年5月份发生的WannaCry的事件,我们在追踪溯源的时候,都是通过样本里面某些代码的相似度是一来初步判断,然后去做Yara规则、行为签名的模型。
前面说到的追踪溯源Z系统是我们的付费产品,但是产品里的数据是从我们的X社区来的,大家应该比较熟悉了,在座很多人都用过。
X社区的一个特点是嗯有非常丰富的技术数据和情报数据,我们有七年的PDNS数据以及16年的Whois历史数据。另外,我们在2017年也开始尝试从原来单纯的域名IP分析,转变成情报共享社区,目前X社区是我们国内最大的情报共享社区。我们做X社区的初衷是,要在这个社区实现一站式的威胁分析,域名的信息、注册人信息、DNS解析信息,运营商样本信息,以及跟事件相关的信息都能够在这里查询。此外,X社区还提供了丰富、齐全的云端API。
那么,通过我们抽样出的方法论,我们能做到什么效果呢?
效果一共有四个方面。第一,评估威胁等级,比如我们发现暗云木马背后有80多个域名,我们就认为暗云的危险等级非常高,因为攻击规模非常大。第二,还原所有攻击者资产,一窝端。第三,预测未来攻击,暗云是个很好的例子,当我们监控了暗云已有的域名时,将来某一个时间点暗云木马再次发起攻击时,它所使用的资产就可以在被我们监测到以后,第一时间拦截下来,变相达到了我们去预测攻击的目的,也达到了我们主动防御的效果。
我们的黑客画像系统会覆盖到全球近三年来活跃的上百个APT组织,比如白象、海南花、Lazarus等,覆盖的行业呢大概也是跟我们公司的客户是保持一致的,也就是说像金融能源政府互联网这些行业和领域,我们都在保持关注和监控。
我们希望更多的分析师加入我们,欢迎有意愿的安全同行加入微步在线。我的分享就是这些,谢谢大家!