通过机器学习检测恶意活动

Jan 03, 2019
1 minutes
... views

我们一直努力寻找新的方式来保护客户和阻止攻击获得成功,我们最近新增的一项研究资源便是对大型域信息数据集使用不受监督的机器学习。像这种基于机器学习的技术可帮助我们发现新威胁,并在威胁影响客户前成功阻截它们。这种技术可在启用后快速识别较大型活动中的恶意域,而且相比传统方法,它们可更大范围地覆盖这些活动。

本博客文章通过示例详细介绍了我们如何使用这种不受监督的机器学习技术。具体来说,在最近的一个钓鱼活动中,我们发现了 333 个有效域。在这个活动实际启动的第一天,某一热门在线恶意软件数据库仅发现了 87 个域,而两个知名的阻止列表没有发现任何域。在接下来的两周里,表现最佳的阻止列表仅阻截了 333 个域中的 247 个,恶意软件数据库仅识别出 93 个。

不受监督的机器学习可扩展这些活动的总覆盖范围,并在活动影响易受威胁的用户之前尽早识别出它们。在下面讨论的活动以及使用相同技术检测到的其他活动中,Palo Alto Networks 客户在域激活的一天内便得到了良好的保护。

 

背景

一类在线恶意活动会在短时间内出于同一目的使用许多个域。这些活动通常会利用包括世界杯在内的最新时事,而且域名通常采用合法域名的误植域名,或表明与合法服务有一定相关性的名称,例如针对 company.com 使用 c0mpany.com 这样的域名。

之前这样的例子就是 2017 年发生 Equifax 数据泄露事件后推出的恶意活动。发生 Equifax 数据泄露事件后,信用报告机构成立了一个合法网站:www.equifaxsecurity2017[.]com,用来帮助人们确定他们是否受到影响。这触发了一个或多个恶意活动,这些活动注册了成百上千个高度模仿真实网站的域。例如,www.equifaxsecurity3017[.]com。

密切关注一个域名并分辨出其真假通常很简单,但是由于一个活动中可创建数百个这样的域,在所有欺骗性域开始影响大量用户前发现它们,不是一件易事。虽然这些域的域名略有不同,但同一个活动的恶意域仍然有许多共同特性,例如 IP 子网、自治系统编号 (ASN)、DNS 生存时间 (TTL)、Whois 信息,以及许多其他属性。根据这一观察结果,我们部署了一个系统,用于根据属性相似性,从 DNS 流量和集群域中提取属性。作为现有方法的补充,我们这个系统能够识别可能无法以其他方式识别出的活动域。

图 1:高级流程

方法

我们的方法(见图 1)是将在被动 DNS 记录中发现的域聚集在一起。被动 DNS 是用于记录 DNS 查询/响应流量的机制。这些记录主要包含时间戳、请求域、相应 IP 地址,以及其他数据片段。为保护隐私,系统不会捕获来自个别客户端(设置了“需要递归”位)的 DNS 流量,而且还会删除客户端 IP。

被动 DNS 记录可从各种来源获取,且经常供研究人员用于了解大规模互联网流量。通常,我们每天可获得超过 6 TB 供分析的被动 DNS 记录。

我们使用被动 DNS 记录中的信息生成的特征来聚集这些域,如 IP 地址以及像 BGP 和 Whois 这样的其他特征。这样我们便可获得彼此相关的域集群,但这些域集群未以其他方式标记为良性或恶性。

此时没有标记这些数据,因此不受监督的机器学习适用于这一情况。我们知道分组到一起的域拥有许多共同特性,但是不知道它们是否是恶意内容。为了发现恶意集群,我们会使用种子域,这些域看起来属于新活动的一部分,而且我们已经确认它们为恶意域。

 

种子域

种子域是看起来分组显示的恶意域的例子。

我们可通过各种方式发现种子,目前,我们重点使用三个信息来源来确定候选种子域:域注册、新发现的域以及趋势话题。

 

域注册

我们会留意最近注册的域,并查找名称相似的分组。如果恶意活动在利用最近的某个事件,则可能以对应于该事件的名称注册某个大型群域。我们可查看任何群组的已知恶意域,结果位于我们的种子域列表中。我们根据自己的检测以及第三方威胁情报(如热门在线恶意软件数据库),识别已知的恶意域。因此,许多恶意域可能都无法被发现或得到报告,但是我们只需找到一些示例,便可开始该过程。

 

新发现的域

此外,我们也会在以前从未见过的被动 DNS 记录中查找新域。这些域可能是在很久之前注册的,但尚未投入使用,直到发起攻击活动才被发现。我们可搜索这些域来寻找相似名称的群组,并确定来自任何已知恶意域的种子。

 

趋势话题

我们也可搜索社交媒体来寻找热门话题。如果发生了任何众所周知的事件,它们通常会出现在每日的社交媒体动态中。我们可以通过最近发现的域名,交叉检查 Google 或 Twitter 上出现的热门词汇。例如,如果我们看到了一项与最近事件相关的 Google 动态,例如某个体育赛事,我们可以查看同样引用该体育赛事的最近发现的域。我们会再次寻找相似名称的群组,并查看任何已知的恶意域。现在,通过我们的种子域列表,我们可以搜索包含这些种子的域集群。

 

查找恶意集群

我们确定将使用的种子域群组后,便可在我们先前根据被动 DNS 数据计算的域集群中,搜索这些种子域。(请参见图 2。)具有较大比例的种子域的任何集群都被视为恶意活动,该集群中的所有域都会被标记为恶意域。

图 2:域集群

结果

例如,我们最近发现了一个钓鱼活动,该活动使用的恶意域的名称就像这样:check-box-with-money##[.]loan。我们通过观察在同一时间注册的一组相似域,发现了这组域。第一天,我们发现注册了 77 个域。在这些域中,某一热门在线恶意软件数据库仅识别出 17 个,但是将这些数量的域添加到我们的种子组中已经足够了。通过对在被动 DNS 记录中发现的域进行集群分析,我们立即又发现了 2 个在注册时没有看到的域。

第二天,我们又发现了该活动中的 16 个域,第三天发现了 58 个域,第四天发现了 88 个域。在这个活动进行的前两周里,我们发现了 333 个与该钓鱼活动相关的域。

更有意思的是,我们发现,在这 333 个域中,有 247 个在第一天便已实际显示的域没有被热门在线恶意软件数据库识别出来。在随后的两周里,该数据库仅标记了其中 7 个域。两周后,仍然有 240 个域没有被该数据库标记为钓鱼域,尽管这些域积极活跃于互联网上,而且显然属于同一恶意活动的一部分。

此外,我们还使用两个知名的阻止列表进行了检查。我们发现,这两个阻止列表在第一天均没有开始阻截出现在互联网上的域。在随后的两周里,在 333 个域中,一个阻止列表仅阻截了 80 个域,另一个阻截了 247 个域。

这些结果强调,尽管安全社区发现了恶意活动中的某些域,但还有许多域可轻松通过而不会被阻截,这便是攻击者的最终目标。

 

结语

这一钓鱼活动只是其中一个例子。在过去几个月里,我们发现了 15 个不同的恶意活动,包含超过 1,000 个有效域。虽然其中许多域都是有效域且属于活动的一部分,但是多个热门的第三方服务都没有识别出它们。在第三方服务发现的域中,相比于在线恶意软件数据库、两个知名阻止列表,我们发现这些域的速度平均分别快 2.8 天、3.9 天和 2.4 天。至今,在第三方发现的域中,我们发现域的最大时间差量为:恶意软件数据库 46 天,第一个阻止列表 15 天,第二个阻止列表 32 天。图 3 显示了识别时间的总体对比。

图 3:第三方发现前的时间

防护并发起行动

我们可通过 PAN-DB URL 过滤和 DNS C2 签名(属于 Threat Prevention 订阅的一部分),保护 Palo Alto Networks 客户免遭这些恶意和钓鱼域的威胁。Palo Alto Networks 防火墙客户可帮助我们的被动 DNS 研究主动发现恶意和钓鱼域。若要在 PAN-OS 版本 8.0 或更高版本中启用被动 DNS 共享功能,请选择“被动 DNS 监控”(设备 > 设置 > 遥测数据)。对于 PAN-OS 7.1 版或较早版本,在防间谍软件安全配置文件中启用被动 DNS 共享功能。被动 DNS 记录主要包含时间戳、请求域、相应 IP 地址,以及其他数据片段。为保护隐私,系统不会捕获来自个别客户端(设置了“需要递归”位)的 DNS 流量,而且还会删除客户端 IP。


Subscribe to the Blog!

Sign up to receive must-read articles, Playbooks of the Week, new feature announcements, and more.