近日,国内著名厂商发布了一份APT攻击分析报告,里面写到其木马是由Cobalt Strike生成,虽然看分析似乎并没有使用DNS通道,但Cobalt Strike被地下世界广为称道的正是其DNS隐蔽通讯信道的功能。随着类似kit的普及,侦测DNS通信滥用必然会受到广泛重视。
目前,几乎所有网络安全设施都会允许DNS协议类型的数据报文不受限制地传输,DNS通讯作为隐蔽通道已经开始被黑客们广泛应用。并且,使用随机域名生成算法(DGA)也已经逐渐成为木马的标准配置。建立恶意域名识别能力,可以有效提升SIEM/SOC发现攻击行为的效果,第一时间迅速发现被木马感染的设备。同时,恶意域名识别,也是大数据安全的重要分析手段,是已建立起大数据安全平台的CISO们应首先考虑部署的分析引擎之一。
一个大型企业每天多达上亿次的域名解析请求,会产生上千万条各不相同的域名记录,虽然有厂商提出可以关注超长域名等,显而易见的,考虑到工作量,这方法完全不现实。所以,虽然利用DNS通讯已经存在了超过十年,但行业内一直没有较好的方案。现在,受益于机器学习和自然语言处理技术的成熟,机器智能分析海量DNS日志,并发现归纳恶意域名的产品,已经开始在市场上出现。
本文假定读者有相当程度基础,限于篇幅对DNS机理不作解释,请自行搜索补课。文中所有实例都是分析真实数据而得到。
回传敏感数据
去年震惊零售业的POS木马的余波还在扩散,Home Depot和Target等巨头付出了惨重代价。此事件中肆虐的FrameworkPOS木马就采用了DNS隐蔽通道回传数据的方法,将在内存中发现的信用卡数据上传服务器,具体格式如下:
DNS传输敏感数据,也应是数据防泄漏(DLP)产品需要注意的方向。在当前内部威胁愈演愈烈的情况下,需防止内鬼利用dnscat等工具,将个人隐私和业务数据缓慢而长期的外传。
那些抓紧机会炒作企业海量数据泄漏事件以达到宣传目标的厂商,究竟有没有产品和能力帮助企业防御类似攻击呢?
像下面这些域名不知道是加密回传数据还是什么,但总之是可疑的。
Cobalt Strike中对DNS隐蔽通道的可定制功能已经相当强大。其Malleable C2模块可以定义域名解析请求和返回结果中包含数据的长度,对那些只靠判定长短的沙盒与网关设备能够轻易绕过而不被发现,还可以定义sleeptime,那些依靠简单关联和序列分析的SIEM产品也束手无策,而且只要局域网中一台设备下载完payload后,可以通过SMB传输给另一台,不需要再次连接外网下载。所以,侦测发现Cobalt Strike木马中的DNS通信十分重要。
C&C
像有很高曝光率的Gameover Zeus、New GoZ、CryptoLocker等都是使用类似下面格式的C&C服务器域名。
上面这些随机生成的域名曾是严重依靠特征和信誉库的威胁分析团队的噩梦。以09年的Confiker.D为例,使用公私钥机制生成域名,一台设备感染后的木马每天使用110个TLD生成50000个域名,只尝试连接其中500个,防御方难以预测恶意域名。
如果在企业中发现类似域名解析请求,那么发起这些请求的设备很有可能是被感染了木马,企业安全团队可以轻易地根据IP或MAC地址定位,在杀毒软件更新特征库之前发现入侵,这也是业界热炒的预测发现的一种场景。
Zeus的一些变种使用了Tor隐藏服务器作为C&C,例如egzh3ktnywjwabxb.onion。我们也很容易地发现了一些连接Tor服务器的尝试,即使这些不是C&C,在企业中出于安全考虑,也应全面禁用Tor。
此外,Cobalt Strike的作者建议联系木马C&C的间隔时间要大于24小时,且间隔时间随机,这样对专业APT防御团队的挑战非常大。靠人工或简单正则表达式搜索,即使利用splunk等工具,仍无异于大海捞针。而使用恶意域名分析引擎的团队,可以轻易发现随机域名,并关联请求设备,大大提升检出率,降低工作量并提升效率,有效缩减成本。
Domain Shadowing
“域名阴影的手法,是利用失窃口令的正常域名账户,大量创建子域名,从而进行钓鱼攻击。这种恶意攻击手法非常有效,且难以遏止。因为你不知道黑客下一个会使用谁的账户,所以几乎没有办法去获悉下一个受害者。
我们也看到有黑客使用Domain Shadowing技术攻击合法网站后大量建立钓鱼网页,而这些合法网站不会被信誉库屏蔽。
利用恶意域名识别引擎,可以迅速识别大量同源域名。无论是企业内部使用,排查显示恶意网页的设备是否已被感染,还是生产威胁情报供外部使用,都有一定价值。
与其它数据协同分析
当然,如果将恶意域名识别与其它日志数据放在一起分析,就会得到更多更准确的结果。
例如,分析Cobalt Strike或类似kit生成的木马通过DNS通道下载payloads,一个显著特征是,一台特定设备,在一段时间内频繁请求解析可疑域名,这是因为每次DNS返回的TXT大小有限制,需要多次才能拼接出完整的payload。
再如,确定了几组恶意域名后,可以查到注册邮箱地址等特征,使用反查whois方法,挖出攻击者的组织,以及其它被注册可能用于攻击的域名。或者使用人肉搜索大法,就像国外厂商公布的APT*报告一样。
随机生成域名也会被用于p2pbot和DDOS等多种攻击方式中,具体分析方法在此不赘述,感兴趣的可以自己研究。
真不错