本文节选自笔者在NSC2016中国网络安全大会上《人工智能辅助威胁情报生产的三个实例》演讲,为其中第二个实例的内容。
Whois流,指将Whois域名注册数据、PassiveDNS解析数据、IP、邮箱、和各类地址等信息用于挖掘恶意组织的方法。Whois流这两年出镜率愈发高涨,每篇公开发表的分析报告里都会出现,国际国内会议的幻灯片内也随处可见耳熟能详的网状关系图。俨然Whois流已成为当今最主要的方法之一,也是威胁情报服务平台的标准配置。
但是,辛辛苦苦积累了十年域名注册数据和变迁历史,只要黑客组织在注册新域名时使用了隐私保护,分析者就无法获得有效信息,那么关联分析也无从谈起。庞大的历史数据,在缺少第一环的情况下,突然变得对分析师的溯源分析工作毫无帮助,不能提供丝毫价值。
目前,域名注册信息隐私保护服务随手可得,传统的花费已经极低,而免费的又大量涌现,例如有几家.pw注册服务商免费提供隐私保护,而阿里云也为相当部分后缀提供类似服务。既有那些采用脱敏方式的,又有批量使用同一虚拟注册人的。后者会造成分析人员自以为是的误报:看,我又抓到了一个超大地下组织,名下多达几万恶意域名,关联恶意样本几百种,横跨数十次战役(campaign)。
Domain Shadowing(域名阴影)利用失窃口令的正常域名账户,大量创建子域名,用于钓鱼、挂马、C&C等,这种恶意攻击手法非常有效,且难以遏止。因为你不知道黑客下一个会使用谁的账户,所以几乎没有办法去获悉下一个受害者。同时,这对Whois流分析师是个灾难,因为域名的注册人完全是合法的,不是恶意组织,关联分析更无从谈起。
pDNS的处境也不是全无隐忧,动态DNS和CDN等的盛行,第三方被黑服务器的加入,也增加了数据采集难度,降低了信息准确性。
在这种趋势下,最令防守方胆战心惊的是,谈到关联分析,Whois和pDNS这两招目前是大部分厂商都会,同时也是唯一会的。你去看市面上提供威胁情报服务的平台厂商,大部分也就只能提供这两类数据的关联,加上作用很小的单只木马样本哈希数值(木马家族分析对关联挖掘很有帮助,但投入大技术壁垒高)。再过两年,Whois流关联分析手法已得到普及的我们,面对黑客都使用隐私保护的情景,还有没有能力愉快地在分析报告里堂而皇之地对嫌疑人画像?
此外,Whois流的误报漏报率实在是高,笔者就曾发现过公开报告中出现了多次明显错误,相信各位看官也有类似经历,亟需一种新的办法来改进。
显然,为了能在未来有效地挖掘僵尸网络与恶意组织,大幅提高准确率,威胁情报服务商和分析人员必须未雨绸缪,从现在开始就努力寻找更多能够标识入侵者、载体、与手法的特征,积累更多的“指纹”,以保证未来有能力继续实施关联分析。
笔者在准备此演讲内容时,尚未见到有类似公开研究发表。寻找更多特征指纹标注,是很自然的技术与业务发展,迟早都会出现。我们在文件追踪溯源中已经使用包括相似内容在内的多种组合指纹,反欺诈中的人机识别也大量使用了组合指纹,读者也能想到更多应用场景。上周参加FIRST2016时也发现RiskIQ讲了类似内容议题。相信主动收集特征指纹的尝试,即使目前在全球范围内是凤毛麟角,以威胁情报行业的速度,想来用不了多久各家都会推出。
笔者沿用了行业内惯称的“指纹”一词,更能帮助从业者直观理解特征的含义,另外,笔者将指纹特征分成两大类:基础设施和表层应用,这是根据识别特征的本质进行区分,表示着从采集到使用、以及后期分析中都有相对应的不同,更适合未来进一步实施行为分析。未来随着恶意行为的演化,也肯定会出现更多分类。
显然,IP、域名注册信息等都是基础设施指纹的一部分。恶意组织的基础设施需要一定花费来获取,导致变动成本较高,因此相对应用层特征来说变化较慢,是很好的数据基础。说起来Whois信息并不是很理想,因为区分度不够强,造假的成本太低,只是因为获取简单且使用直观容易理解才得到普及。
一个可以作为基础设施指纹的选择是,SSL连接中用于标识服务器身份的证书。恶意组织使用脚本大量快速部署服务器时,经常会使用同一证书,管理僵尸网络和传输收集数据都更加容易。威胁情报平台采集证书十分简单,既可以主动尝试发起SSL连接,也可以通过网络抓包获取,存储和查询也十分简单。证书可提供强关联支持,是分析员梦寐以求的利器。
与Whois域名注册信息不同,类似证书这样的基础设施指纹并不是普遍存在的,所以简单提供关联操作界面并不现实,需要引入更复杂的算法分析能力和可视化界面。另外,此类分析工作远比人机识别复杂,后者只需要按照预先设定好的权重进行打分即可,而溯源追踪则需要针对海量指纹数据做大规模索引、聚类、和分类。
因此,我们仍需要引入多个弱关联的指纹,以提高准确率和可实施性。例如,提供服务器的第三方供应商(有组织为黑客服务的地下产业链信息尤佳)、多层C&C之间的连接、动态域名提供商、主机的基本属性(操作系统和数据库等)、基础设施的复用、等等。处理如此多的维度,对情报生成平台的架构和用户界面设计是一项颇大挑战。
表层应用指纹的选择更加多样化。例如webshell脚本代码都可以计算复杂内容指纹,进行代码相似度识别。我们这里讨论的不是简单对整体文件计算散列值,而是将内容分段并提取关键特征后考虑特征顺序因素而设计的内容指纹,可以在更改代码小于30%时仍可明确计算出木马来源,或者指出木马家族名称。这些也都是强关联支撑。
我们在实践中发现钓鱼网站系统也存在高度复用,通过分析页面展现,即可划分不同恶意组织。在某些钓鱼页面上,还存有第三方统计代码,例如Google Analytics、百度统计等。料想黑产组织内部也需要不断改进手法以提高渗透率,或者KPI驱动要考核不同地区间的业绩,或者按效果分赃或向第三方设施服务商付款。同样的,这些统计代码也可以用于关联分析。
表层应用的指纹选择非常多,笔者就不一一赘述了。有些黑产组织善于利用wordpress嵌入C&C,有的善于通过广告联盟植入恶意代码。更多的例子包括,数据表名称、代码注释、着陆页、转向、第三方服务商等等。请读者自行研究。
当然,特征越多,手工分析越难。面对特征维度快速上升的海量指纹数据,使用机器学习做相似度关联是基本要求。Whois流简单点几下鼠标右键逐渐单线生成网状关系图的情景恐怕很难复现,而是一类具有相似特征的基础设施(如C&C服务器)会被聚成一堆,或被分类区别开。单单应用大规模索引系统(如Elastic Search)将无法胜任复杂分析需求。可以预见系统将会变得十分复杂,但在目前恶意组织隐匿身份的手法越来越多样化的趋势下,我们除了继续投入建设威胁情报平台之外还有别的选择吗?就在NSC大会当天传出新闻,Mandiant在辅助孟加拉央行追查SWIFT项目中花费了700小时后没有得到有效结果,再次请求追加580小时。从现在的市场反馈看来,甲方更关注的是,厂商究竟有没有办法让用户看到情报的效果,有没有持续产生商业价值的能力。如果业界的威胁情报平台能提供更多的特征指纹和更强大的关联分析能力,将会极大促进安全的整体水平。