Py学习  »  机器学习算法

利用机器学习检测恶意活动

嘶吼专业版 • 5 年前 • 481 次点击  

研究人员开始使用无监督机器学习算法来对大量域名信息数据集进行分析,以发现新的威胁并进行拦截。一旦恶意域名开始活跃,机器学习算法就可以快速识别出攻击活动的恶意域名。 

背景

比如在一类在线的恶意活动中使用了许多个域名,并持续了一段时间。这些活动一般利用像世界杯这类近期的热点事件,域名一般模仿一些合法服务或合法域名,比如c0mpany.com就是模仿合法域名company.com。

2017年Equifax数据泄露后,Equifax就搭建了一个网站www.equifaxsecurity2017[.]com来帮助用户确定其是否受影响。然后恶意攻击者就注册了上百个模仿该域名的恶意域名,比如www.equifaxsecurity3017[.]com。

辨别一个欺诈域名很容易,但一个恶意攻击活动会创建上百个这样的域名,因此问题的关键就是如何找出所有这些欺诈域名。虽然这些域名不同,但属于同一攻击活动的恶意域名也有一些共同点,比如IP子网、Autonomous System Number (ASN)、DNS Time-To-Live (TTL)、Whois等信息。

因此,研究人员提出一种基于相似性来从DNS流量和域名簇来提出属性的系统。系统通过充实现有的方法,可以识别出属于同一攻击活动的域名。

图1 基于机器学习方法从DNS流量识别出恶意域名的系统

方法

如图1所示,研究人员的方法是将被动DNS(Passive DNS)记录中出现的域名进行聚集。Passive DNS是一种记录DNS查询和响应流量的机制。记录主要含有时间戳、查询的域名、响应的IP地址等。出于隐私考虑,来自单个客户端的Passive DNS记录有很多的来源,常被用来理解网络流量。研究人员发现每天会有6TB的passive DNS记录产生。研究人员将没有在passive DNS记录中的信息根据特征将域名进行聚类,比如IP地址、BGP、Whois等。

因为这些数据目前是没有标记的,因此研究人员选择使用无监督机器学习方法。这些被分为同一组的域名共享一些特征,但这些特征是否是恶意的还不能确定。为了找到恶意的分组,需要用到攻击活动中的seed域名。

Seed域名

Seed域名是分组中恶意域名的示例。有很多方法可以找到seed,本例中使用三种信息源来识别候选seed域名:Domain Registrations, Newly Seen Domains, Trending Topics。 

· Domain Registrations

查看最近注册的域名,找出有相似名的分组。如果攻击活动使用的是最近的事件,就会有许多与该事件相关的域名注册。研究人员检查了已知的恶意域名的分组,结果放在seed域名列表中。最后根据检测结果和第三方威胁情报来识别已知的恶意域名。许多恶意域名可能都没有被报告国,但只需要一些例子就可以开始这一过程。

· Newly Seen Domains

还可以在passive DNS记录中查找一些新出现的域名。这些域名可能注册了很久,但最近才开始使用。研究人员通过找出有相似名的分组,然后从含有恶意域名的组中找出seed。

· Trending Topics

同时也要从社交媒体来搜索最新的热点。如果有大的公众事件发生,一般都会成为当天的社交媒体热点。可以通过在Google或Twitter中交叉搜索热点关键词。然后找出具有类似域名的分组并检查是否含有恶意域名。

恶意域名簇

在识别出seed域名的分组后,在passive DNS数据中搜索这些聚集的簇(如图2)。含有seed域名比例较高的簇被认为是恶意的,而且簇中的所有域名都会被标记为恶意的。

图2: 域名簇

结果

研究人员近期发现一个模仿check-box-with-money##[.]loan的恶意域名的钓鱼活动。同时又许多类似的域名注册,其中一天就又77个域名。其中17个出现在恶意软件数据库中,但还不足以加入seed group中。通过对passive DNS中的域名进行聚类分析,研究人员发现2个没有从注册信息中发现的域名。在该攻击活动的前2周,研究人员共发现与该钓鱼活动相关的333个域名。-

这333个域名中,247个未在主流的在线恶意软件数据库中出现过。在随后的两周内,这些域名中只有7%被标记。两周后,还有240个域名没有被标记为钓鱼邮件。研究人员也检查了两个知名的拦截列表。第一天这些域名一个都没有出现,在之后的两周,只有80个域名添加进了拦截列表。

这一结果说明即使安全社区和公司发现和拦截了攻击活动中的一些域名,仍然有很多域名突破了拦截列表,这也是攻击者的最终目的。

结论

过去的2个月里,研究人员共发现与15个不同的攻击活动相关的超过1000个活跃的域名。其中许多域名都没有被主流的第三方服务提供商识别出来。利用机器学习方法检测恶意域名的结果平均比在线恶意软件数据库早2.4天,比第一个主流的拦截列表早3.9天,比第二个主流的拦截列表早2.4天;最大检测时间差比在线恶意软件数据库早46天,比第一个主流的拦截列表早15天,比第二个主流的拦截列表早32天。图3是palo alto networks与其他第三方检测出恶意域名的时比较图。

图3: 第三方检测恶意域名的时间图


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/cpidDyQQYn
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/25960
 
481 次点击