谈谈鱼叉式网络钓鱼黑箱粉碎机

美国加州大学伯克利分校和劳伦斯伯克利国家实验室(LBNL)的几位安全研究人员开发了鱼叉式网络钓鱼黑箱粉碎机,通过分析鱼叉式网络钓鱼攻击的根本特点设计了一组新的信誉特征。该组特征对应于鱼叉式网络钓鱼攻击的两个关键阶段,随后引入新的异常检测技术(DAS),以非参数的方式运行,不需要任何标记的训练数据,利用信誉特征来检测攻击。研究人员与LBNL的安全团队进行合作,评估了近4年的电子邮件数据(约3.7亿个电子邮件)以及相关的HTTP日志,验证其具有检测凭证鱼叉式网络钓鱼攻击的功能。强势围观后来谈谈这一鱼叉式网络钓鱼黑箱粉碎机的强大功能。

什么是鱼叉式网络钓鱼?

网络钓鱼是“社会工程攻击”的一种形式,攻击者向用户发送貌似来自合法企业或机构的欺骗性电子邮件,引诱用户回复个人身份数据或财务账户凭证,或单击电子邮件中的链接访问伪造的网站、下载恶意软件,属于犯罪欺诈行为。

鱼叉式网络钓鱼不同于其他的广撒网式的网络钓鱼,攻击者发送有针对性的欺骗性电子邮件,欺骗受害者执行危险操作。从攻击者的角度来看,鱼叉式网络钓鱼需要很少的技术复杂性,不依赖于任何特定的漏洞,躲开了技术防御,并且常常成功;从防守者的角度来看,由于电子邮件为受害者“量身定做”,受害者容易受到欺骗,而攻击者有意地将他们的攻击邮件做成合法的手段,传统信誉和垃圾邮件过滤往往检测不出其中包含的恶意内容,所以鱼叉式网络钓鱼很难抵挡。

鱼叉式网络钓鱼攻击有几种形式:

1. 试图欺骗收件人打开恶意附件,但是在论文中的实验环境(LBNL)下实现成功攻击的很少; 2. 凭证鱼叉式网络钓鱼,通过恶意电子邮件诱导收件人点击链接,然后在生成的网页上输入凭证。

凭证窃取为研究人员的研究重点,因为这一攻击相对漏洞利用类攻击要容易。如果涉及恶意软件,即便目标已经中招,积极修复和其他安全机制会提供防护,而一旦凭证被找到,就只需诱使目标暴露出数据。

鱼叉式网络钓鱼黑箱粉碎机的原理

鱼叉式网络钓鱼黑箱粉碎机是研究人员在企业环境中提出缓解鱼叉式网络钓鱼风险的新方法,利用网络流量日志和机器学习的一套系统,可以在用户点击嵌入电子邮件中的可疑URL时,实时触发警报。

鱼叉式网络钓鱼的攻击对象不同于常规网络钓鱼的任意用户,而是专门针对拥有某种特权访问或能力的用户。根据这种选择性的目标和动机研究人员提出了一种分类法,在两个维度上表征鱼叉式网络钓鱼攻击,这两个维度也对应于攻击的两个关键阶段:

1.诱惑阶段(lure),攻击者冒充受信任的身份发送电子邮件来说服收信人的阶段; 2.利用阶段(exploit),攻击者获得信任后,利用这种信任诱导收信人执行危险操作的阶段。

诱惑阶段攻击者的攻击方式有四种:

1. 冒用电子邮件地址(address spoofer),利用受信任个人的电子邮件地址作为攻击电子邮件的“发件人”; 2. 冒用电邮名称字段(name spoofer),伪造看起来可信的名称而不伪造电子邮件地址,这种方式规避了DKIM和DMARC; 3. 未知攻击者(previously unseen attacker),伪造名称和电子邮件地址,看起来类似于真实用户和真实地址; 4. 横向攻击者(lateral attacker),从被黑受信账户向其他用户发送钓鱼邮件。

第一种攻击方式研究人员不予考虑,因为域名密钥识别邮件标准(DKIM)和域名消息验证报告一致性协议(DMARC)之类的电子邮件安全机制会处理,剩下的三种攻击方式为研究重点。

鱼叉式网络钓鱼黑箱粉碎机对网络钓鱼攻击的两个关键阶段制定了两类特征:

1. 发信人信誉特征(domain reputation features),描述了该电子邮件的发送者是否属于上述攻击方式之一,反映了发信人的可信程度,可以利用该特征捕获诱惑阶段(lure)的特征向量; 2. 域名信誉特征(domain reputation features),描述了用户根据域名访问该URL的可能性,反映了域名的可信程度,可以利用该特征捕获利用阶段(exploit)的特征向量。

鱼叉式网络钓鱼黑箱粉碎机利用的数据为网络流量日志,包括LBNL的SMTP日志、NIDS日志和LDAP日志,其中,SMTP日志记录LBNL有关组织员工(包括两名员工之间的电子邮件)发送的所有电子邮件的信息;NIDS日志记录有关HTTP GET和POST请求的信息,包括访问的完整URL;LDAP日志记录用户在公司的电子邮件地址,登录时间以及用户进行身份验证的IP地址。

因为攻击者采用不同的攻击方式,发信人的信誉特征也不同,鱼叉式网络钓鱼黑箱粉碎机根据三种攻击方式采用三个子探测器(sub-detector),每个子检测器使用包含四个标量值(两个用于域名信誉,两个用于发信人信誉)的一个特征向量。

鱼叉式网络钓鱼黑箱粉碎机引入了定向异常评分(DAS,Directed Anomaly Scoring)技术,用于从未标记的数据集中自动选择最可疑的事件,DAS按照事件的可疑性来对事件进行评分,再按照评分进行排序,所有的事件排序完成后,DAS只选择N个最可疑(排名最高的)的事件,其中N是安全团队的警报预算(即能接受的预计警报数)。

鱼叉式网络钓鱼黑箱粉碎机的总设计如图1,分为三个部分:

1. 特征提取部分(feature extraction stage),利用来自LBNL的SMTP日志、NIDS日志和LDAP日志为邮件中的每个URL提取和保存三个特征向量(FV,feature vectors)(每个子探测器有一个FV),使用网络流量日志,记录在电子邮件中的URL上的所有点击。 2. 夜间评分(nightly scoring stage),每天晚上,收集每个子探测器过去一个月的点击URL事件,并对其特征向量FV进行异常评分(DAS),将该月份最可疑FV存储在ComparisonSet集合中; 3. 实时报警生成(real-timealert generation stage),观察实时网络流量,查看点击的电子邮件URL,将每个子探测器的实时点击特征向量FV与ComparisonSet进行比较,并根据需要为安全团队生成警报。

图1 鱼叉式网络钓鱼黑箱粉碎机设计图

鱼叉式网络钓鱼黑箱粉碎机的应用情况

鱼叉式网络钓鱼检测的难点,在于此类攻击比较少见,在研究人员的实验环境下,企业数据集包含3.7亿电子邮件——约4年的量,但只有10例已知的鱼叉式网络钓鱼案例。鱼叉式网络钓鱼样本的相对稀少性,也使机器学习技术缺少了创建可靠训练模型所需的大量数据。研究人员在LBNL中应用鱼叉式网络钓鱼黑箱粉碎机时,配置警报预算为10个,从LBNL的3.7亿个电子邮件数据集中对其进行了评估,成功识别了19个钓鱼活动中的17个,占89%,平均假阳性率(false positive rate)为0.004%。

在应用的过程中,鱼叉式网络钓鱼黑箱粉碎机具有一定局限性,对于攻击者在高信誉网站上托管钓鱼网页和超出网络监视器的可见性这两种情况无法检测到,但是在手动分析子检测器检测到的FV可以发现其中存在矛盾。

鱼叉式网络钓鱼黑箱粉碎机与传统检测方法的对比

对于网络钓鱼攻击的传统检测方法有如下几种:

1.手动阈值(Manual Threshold),手动设置每个特征的阈值,如果所有特征值都低于阈值,则生成警报; 2. 有监督学习(Supervised Learning),基于大量关于攻击检测的文献,或从垃圾邮件分类得到先前的鱼叉式网络攻击,需要一个标记的训练数据集; 3. 标准异常检测(Standard Anomaly Detection),包括密度估计技术,如高斯混合模型(GMM);聚类和基于距离的技术,如k-最近邻(kNN)分类算法的。

传统检测方法有以下局限性:

1.对于鱼叉式网络钓鱼攻击的特征值的真实分布情况并不能确定,参数的选择也具有盲目性,手动设置特征阈值会导致错过攻击; 2. 鱼叉式网络钓鱼样本的相对稀少,很难集合成一个足够大的训练集,并且在恶意样本和良性样本的分类上高度不平衡,不利于有监督学习; 3. 在许多安全设置中,标量特征通常具有其数值的方向性,例如,一个域的访问次数越少,越是可疑,而标准异常检测技术不能将不对称或方向性的概念纳入其计算; 4. 事件即使只有一个或几个的特征是统计学异常的,标准异常检测技术就将该事件视为攻击,造成警报预算的浪费。

局限性和发展方向

鱼叉式网络钓鱼黑箱粉碎机可以检测已知的和以前未被发现的远程攻击,但对于对手可能会采取限制和逃避策略具有局限性,体现在如下方面:

1.有限的可见性,在LBNL网络边界之外进行的电子邮件和网络活动不会记录在NIDS日志中,LBNL不通过HTTPS提供的中间人流量,导致错过电子邮件链接到HTTPS网站的攻击; 2.有限的报警预算,设置的报警预算尝试满足产生的警报数量的上限,但是如果攻击在一天内爆发,可能受报警预算限制而错过一些攻击; 3. 逃避策略,攻击者可能通过说服高访问量的网站,并利用其来托管钓鱼网站从而提高链接的域名声誉特征,这种情况只能发现矛盾,不能产生报警; 4. 历史数据限制,随着历史日志数据的减少,鱼叉式网络钓鱼黑箱粉碎机质量可能降低,当只有1个月的历史数据时,无法检测到任何攻击; 5. 未来的工作可以探索如何设计有效的预警机制,作为预防性防御的一部分。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

“穿墙透视”黑魔法来了!只需WiFi和智能手机就可实现

无线设备无处不在,无论是在家中,办公室里,还是在街上,人们沐浴在几千赫兹甚至太赫兹的射频频率中。

1473
来自专栏FreeBuf

如何搭建你自己的“深度学习”机器?

深度学习是一门用来解决复杂问题的技术,例如自然语言处理和图像处理。目前,我们已经可以很快的处理超大计算量的问题——这多亏了GPU,GPU最初就是用于快速生成高分...

2085
来自专栏AI黑科技工具箱

0.伏笔:图像读取方式以及效率对比

入职了之后挺忙,已经好久没有做一些科普性的更新了。近期已做了些学术要求不高的工作,所以刚好有时间写写总结。

68111
来自专栏数据魔术师

干货|十分钟快速复习禁忌搜索(c++版)

说到的话一定要做到!做到!到! 昨天向大家保证今天分享 Tabu Search (TS) 代码 c++ 版本,然后,小编就去熬了个夜... ...

6129
来自专栏专知

【下载】Scikit-learn作者新书《Python机器学习导论》, 教程+代码手把手带你实践机器学习算法

【导读】哥伦比亚大学老师Andreas C. Müller同时也是著名机器学习Python包scikit-learn的主要贡献者 Andreas Muller ...

6755
来自专栏即时通讯技术

全面掌握移动端主流图片格式的特点、性能、调优等

图片通常是移动端应用流量耗费最多的部分,并且占据着重要的视觉空间。以大家最常用的即时通讯IM应用为例,应用中存在大量的图片数据往来(比如图片消息、用户相册、用户...

1502
来自专栏Web行业观察

我是如何爱上ag-grid框架的

与每个管理系统一样,我们需要选择一个网格来显示我们的数据,而我的前任已经在应用程序中使用了两个网格 -  ag-Grid(v2.7)和Ng-Table(v0.8...

1.1K4
来自专栏影子

关于图文识别功能相关技术的大致实现

转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8908906.html

2011
来自专栏影子

关于图文识别功能相关技术的大致实现

1824
来自专栏北京马哥教育

干货 | 10 行 Python 代码创建可视化地图

当我开始建造Vincent时, 我的一个目的就是使得地图的建造尽可能合理化. 有一些很棒的python地图库-参见Basemap 和 Kartograph能让地...

4647

扫码关注云+社区

领取腾讯云代金券