黄亦睿 刘功申 孟 魁 蔡逆水
1(上海交通大学电子信息与电气工程学院 上海 200240)2(移动互联网系统与应用安全国家工程实验室 上海 201315)
网络钓鱼(Phishing)或欺诈URL攻击[1]是针对互联网终端用户的一种欺诈性攻击。攻击者通过伪装成电子通信中值得信赖的人或业务来收集敏感信息和个人隐私,如密码和信用卡信息。不同于中间人攻击或其他网络渗透攻击,欺诈URL不需要攻破现有网络协议或架构的漏洞,只需要欺骗终端用户即可达到攻击目的。根据中国反钓鱼网站联盟统计,2017年2月联盟共处理钓鱼网站951个,累计认定并处理钓鱼网站388 859个。银行、电子、证券、通信、支付等行业均是重灾区。虽然近年来反网络钓鱼解决方案取得了很多进展,但网络钓鱼仍然每年都会造成巨大损失。
本文将钓鱼网站定义为满足以下条件的网页:(1) 通过复制目标网站的全部或部分内容来模拟一个知名网站,与其目标呈现出高度的视觉相似性。(2) 网页中具有请求登录并要求输入密码等敏感信息的表单。这类网页由于其极为明显的目的性和相应较低成本构建的性质,一系列敏感特征可以被提取、分析,以达到检测、鉴别欺诈网站的目的。
目前主流的欺诈URL检测技术主要有:
1) 基于黑名单的过滤技术,即收集、记录历史上被确定为欺诈网站的URL或域名,构成黑名单。这种检测技术性能较高,对于已经确定的钓鱼网站,可以快速地检测并提示用户。但维护黑名单库的成本较高,攻击者可以轻易地更换域名或IP地址,即可绕过黑名单检测,而收集、验证钓鱼网站的工作也是极为耗时耗力的。
2) 基于机器学习的检测技术[2-3],针对基于黑名单过滤技术的缺点,对网站相应特征进行提取,使用机器学习算法模型对其进行分类和检测。Garera等[4]分析了已知欺诈 URL的特征,如域名特征、单词特征等,并通过抓取网页分析其敏感特征,得到特征向量,使用回归滤波器进行分类。基于机器学习的特征检测算法具有一定的适用性,可自动分类新的样本,但相关文献并未完全包括欺诈URL的本质特征,如更多的交互性特征和深入的特征等。
针对现有欺诈URL检测方案存在的局限性,本文提出了一种基于机器学习的多特征欺诈URL检测算法。该算法不仅分析了URL,包括域名与端口特征,和Web页面内相关HTML标签的静态特征,更深入地分析了其表单提交响应等交互情况下的动态特征,之后将这些特征使用机器学习模型进行训练与测试。由于网页静态和动态特征本质性地反映了欺诈URL本身的窃取用户账号密码的目的,使用这些特征训练的模型可以有效地检测未知URL的攻击行为。
本文提出算法的输入是待检测网站URL,通过提取URL特征、Web页面特征和交互特征,得到该网站的特征向量。将特征向量输入到经过训练的分类检测模型中,判断其是否为欺诈URL。算法流程如图1所示。
图1 多特征网络钓鱼算法流程图
多特征钓鱼网站检测系统由以下模块组成:正负样本收集模块、特征提取和分析模块、分类器训练和检测模块。
正负样本收集模块实时地收集正常站点和欺诈URL样本集。所用的正例样本由各分类信息网站收集而来,如开放式目录网站DMOZ、国内各类分类信息网站等。反例样本来源于PhishTank提供的欺诈URL数据库和电信研究院提供的欺诈URL数据。
在特征提取模块中,将进行基于URL的特征提取和基于Web内容的特征提取。URL特征是指根据样本URL所表现的域名特征等与Web内容无关的特征。这些特征提取较为快速,且不会因为网站的关闭而失效。Web页面特征则需要对URL进行访问,得到其HTML代码,之后分析HTML内容和表单提交行为等。
这些特征和分析结果,在数据预处理模块中被转换为分类模型所需要的特征向量。
训练模块使用上述特征向量和已经标记好的正负样本值,进行有监督训练。具体地,将正负样本混合,并随机切分为训练集和测试集,使用训练集进行模型训练,之后使用测试集对训练好的分类器进行检查。若分类器的性能未达到一定的准确率,则需要调整分类器参数,或更换分类算法进行训练。若达到相应标准,即可作为敏感特征异常检测的模型。
在检测模型训练完毕后,即可使用模型进行分类,当用户提交新的待测URL,重复上述特征提取过程,得到特征向量。最后使用分类器对其进行分类,得到检测结果。
对于特征提取,如果单纯考虑URL本身的特征,如host信息、单词特征等,则无法确定其是否为欺诈URL。因为 URL无法体现钓鱼网站的本质行为——引诱用户输入账号、密码等敏感信息。攻击者能够通过非常仔细地制作URL来逃避仅依赖于URL的检测机制。钓鱼网站的根本目的为诱导用户输入账号、密码等信息,只有使用表单交互分析其响应,才可以达到捕捉具体钓鱼行为的目的。而单纯考虑Web内容的特征提取,会降低检测效率,且难以提高检测正确率。
本文的特征提取算法将上述两种方案相结合,在保证效率的同时,获得较高的检测精度。
2.1 URL特征
基于URL可提取的特征分为文本特征和域名特征。文本特征是指URL本身的文本属性,主要包括:
1) URL中是否包含IP地址。攻击者往往使用IP地址作为URL中的主机地址,以逃避备案和降低攻击成本;而合法网站为了用户易于记忆,总是使用域名而不是IP地址。
2) URL端口是否是80端口。部分攻击采用非80端口代替传统HTTP协议的80端口,以架设在被入侵的Web服务器上,或低成本的虚拟主机中。
3) URL的子域名个数是否大于2。由于普通用户缺乏辨别域名真实性和域名层级的能力,使用子域名冒充真实网站的主域名情况屡见不鲜。形如http://login.taobao.com.0291445.com/login.html的URL就是典型的欺诈URL。用户往往只关注URL的前半部分,认为是淘宝网的登录页面(login.taobao.com),而忽略后面的一长串内容。此类URL具有很强的迷惑性。通过检测URL的子域名个数是否大于2,能够判断是否为二级域名欺骗。
4) URL中是否含有@等异常字符。如www.ebay.com@www.12345.com将跳转到www.12345.com,这是因为URL中的@符号导致左侧的字符串作为HTTP Basic Auth被忽略,右侧的字符串则是URL的实际域名。结合浏览器地址栏的大小有限,这使得可以在地址栏中编写合法的URL,但实际上导致浏览器检索不同的页面。
5) URL的域名是否包含破折号(-)。钓鱼网站的URL为了模仿合法站点,往往在目标机构域名中加入破折号,而合法网站的域名通常不使用破折号。
6) URL中是否包含敏感单词,如webscr、secure、banking、account、confirm、login、signin等。通常欺诈URL包含此类单词的几率比较高。
基于域名的特征主要包括:
1) Age of domain,域名注册时间。由于域名注册成本很低,攻击者使用的域名往往是新注册的域名,以逃避黑名单检测手段。
2) Expiration of domain,域名有效期。钓鱼网站存活时间较短,攻击者也尽可能短时间地续费该域名;而正规网站为了防止过期被抢注,会提前续费一年以上。
上述域名特征可以通过对域名进行Whois查询得到。Whois查询可得到域名全部注册信息,如域名所有者、注册商、注册日期和过期日期等信息。
2.2 Web内容特征
基于Web内容的特征[5]主要包括以下几种:
1) 链接对象异常率。针对页面DOM模型中的对象,计算异常链接占所有链接的比率。对于合法页面, 对象往往指向同域名下的其他页面,方便用户在网站内浏览。而欺诈URL页面往往只模仿了登录页,而其他链接均指向官方网站,以达到拟真的目标。因此存在较多数量的对象指向不一致的域。
2) 表单对象异常率。针对页面DOM模型中的