QR二维码防钓鱼的研究

2020-04-30 04:25柴艳娜
计算机技术与发展 2020年4期
关键词:特征向量域名黑名单

柴艳娜

(长安大学 信息与网络管理处,陕西 西安 710064)

0 引 言

中国互联网络信息中心(CNNIC)发布的第42次《中国互联网络发展状况统计报告》指出[1],截至2018年6月30日,中国手机网民规模已达7.88亿,网民通过手机接入互联网的比例高达98.3%。另据美国We Are Social和Hootsuite的2018年全球数字报告,截止2018年1月,全球范围内移动设备用户已达51.35亿,贡献了52%的Web流量[2]。人们已然处于移动互联网时代,在享受移动智能设备带来的便利的同时,也把自己暴露在日益严峻的安全风险当中。

根据360公司发布的中国手机安全状况报告,传统的钓鱼网站、骚扰电话与垃圾短信等信息安全问题依然是影响Android用户的常见问题。2017年全年360手机卫士共拦截各类钓鱼网站攻击28.8亿次。

QR码由于其存储容量大,易于读取识别等优点,在国内被广泛应用于各个领域,尤其是移动支付方面。但是正是由于其应用的广泛,编解码模式的开放,让其成为钓鱼攻击的良好载体,极易被不法分子所利用。

2017年,在昆明、重庆等地相继发生了共享单车QR码被恶意替换的事件。不法分子将假冒的押金支付页面链接存储在二维码中,然后替换真正的二维码。当用户扫描后就会进入假冒押金支付页面,由于假冒页面与真正的页面高度相似,致使用户不能准确做出判断,造成财产损失。所以如何有效地识别钓鱼网站并作出安全响应具有十分重大的意义。

1 QR码与钓鱼网站分析

1.1 QR码的结构

QR码是由黑色方块排布在白色背景的正方形网格上所组成的,如图1所示。扫码设备扫描QR码图片并根据里德-所罗门纠错算法(Reed-Solomon error correction)处理直到图片被正确解析。码图里的方块在垂直方向和水平方向上面的不同分布代表着不同的信息内容,所以QR码也叫二维码[3]。QR码可以方便地存储数字、字母、比特或者二进制和汉字。因此,QR码被广泛用于文本消息、URL链接以及随移动支付兴起的支付宝或微信等支付实体信息。

图1 QR码图样

QR码的左上、右上及左下有3个“回”字型定位块,这是QR码的必备图形之一。其他的还有校准信息、时序信息、版本信息、格式信息以及编码过的数据信息和纠错码。图2是QR码总体结构示意图。

图2 QR码结构组成

QR码有40个版本,相应的方块矩阵规格大小为21×21至177×177。每个版本的QR码的边长都比上一版本的多4个模块,因此存储的数据也更多。最大的版本40可以存储984个UTF-8编码中文字符,4 096个英文字符。

1.2 钓鱼网站

钓鱼是指伪装成网络中的一个可信实体,试图获取用户重要隐私和敏感信息的恶意行为,如窃取用户名、密码、信用卡及电子支付信息等。钓鱼通常是通过欺诈邮件、即时信息或短信等,将用户引诱前往以假乱真的伪造网站上输入个人信息[4]。伪造网站和合法网站从表面看一摸一样,唯一的区别就在于不同的URL地址。因此,如果一个真实合法的二维码被替换成带有钓鱼链接的二维码,那么用户在使用的时候就很容易上当受骗。用户很难识别出两个二维码的不同之处,而且很多App在设计时,对于识别的二维码也做不到有效的甄别,导致用户信息面临被钓鱼的风险[5]。

1.2.1 钓鱼网站URL特征

钓鱼网站的URL主要有以下几个常见特征:

(1)URL中经常出现IP地址而不是域名(FQDN)。

一般正规合法的网站都会给自己申请一个简单易记易识别的域名,在推广宣传方面可以带来很多便利。钓鱼网站很少会在这方面增加支出[6]。

(2)URL里常出现非标准端口。

标准的HTTP和HTTPS协议,其端口分别为80和443。在默认情况下,URL里省略端口,系统会按标准端口去尝试访问。如果使用了非标准端口,则须在URL明确指定端口,这样会加长URL,导致普通用户记忆和使用上的不方便,正规合法网站基本上都会使用标准端口。而钓鱼网站在很多时候会租用一些便宜的共享主机或网站空间,因此很大概率使用的都是非标准端口。

(3)URL中的域名层级超过6级。

www.taobao.com是一个知名电商网站的三级域名。一般正规网站都会控制URL的长度以方便用户使用,所以域名的层级不会很深。有统计数据表明,当域名层级超过6级时[7],有极大的可能性这是一个钓鱼网站。

(4)使用短域名或者URL长度过长。

随着短链接(URL Shortener)的普及,很多钓鱼网站会用短链接隐藏自己的真实URL,不仅缩短了URL长度易于传播,而且增加了用户识别的难度,只有将短链接还原后才能发现其真实面目。常见的短链接服务商有t.cn,bit.ly,goo.gl,t.co等。

(5)URL中可能包含一些特殊词汇或符号。

钓鱼网站一般都会模仿登陆界面或支付界面等,以此引诱用户。所以相应的,URL里可能会出现login,signin,signon,signup,pay,order,buy等单词[8]。同时,钓鱼网站可能会重定向,可能会携带一些伪造参数,因此其URL极可能含有一些不常见的符号,如“@”。

(6)钓鱼网站的域名与正规合法网站的域名很相似。

一些做的更加逼真的钓鱼网站,它们的网址也会尽可能模仿正规网站的,真假李逵,难以辨别。一般它们会将正规网站域名中的个别字符进行近似的替换,比如将字母“o”替换成数字“0”,将字母“l”替换成数字“1”,以达到混淆视听的目的[9]。比如用ta0ba0.com来模仿淘宝网的域名制作一个钓鱼网站。

1.2.2 钓鱼页面特征

钓鱼攻击者会精心设计伪造目标网站的页面和功能,因而在页面代码中会留下一些关键的特征,常见的有:

(1)a、link及img等资源链接标签的href,src属性通常指向域外攻击者一般会直接将目标网站的前端页面代码保存下来做少量修改,以此进行快速伪造,因此会大量复用目标网站的静态资源,如CSS以及各种图片。所以,有很大的可能是钓鱼网站的静态资源,会跨域引用到正常网站的资源[10]。

(2)ICP经营许可证。

所有的网络内容服务商(ICP),包括网站,在中国大陆的法律法规下,其必须取得ICP经营许可证,在网站上必须注明ICP备案号。通过向主管机关查询备案号,可以获得网站的注册信息,其中便包含有域名信息(见图3),便可据此进行分辨。

图3 ICP备案号

2 钓鱼网站检测

2.1 检测模型

QR二维码防钓鱼系统的主要框架如图4所示。

图4 防钓鱼主要框架

(1)QR扫描解码。

安卓App可以利用智能手机的摄像头对QR码进行拍照,扫描并读取其内含信息。由于QR码协议本身的开放,现在开源社区存在很多活跃高效的QR码图片处理库可以直接使用,比如ZXing,就是一个支持多种格式的1D/2D条码图像处理库。所以,系统可以直接利用ZXing将摄像头拍摄的QR码进行解析,从而提取信息以作后续分析之用。

(2)黑名单匹配检测。

传统的钓鱼网站识别方法之一便是黑名单技术,各大浏览器内置的一些安全机制都会根据黑名单来检查用户访问的链接是否安全从而给出相应的提醒[11]。

PhishTank、中国反钓鱼联盟及安全联盟等都是较为权威的反钓鱼组织。个人用户都可以将自己遇到的钓鱼网址在这些组织上进行分享,使其他用户可以提高警惕[12]。因此,防钓鱼系统可以直接利用这些已经被鉴定的钓鱼网址,分析并创建一份黑名单列表,当用户所扫描的QR码信息中含有黑名单里的URL时,则直接对用户进行风险提示。

黑名单匹配检测的实现技术简单且可重复利用,可以避免对已鉴定的钓鱼网址进行重复判别,节约了大量的时间成本。黑名单必须保持更新,更新频率越高,鉴定样本越多,则黑名单的命中率越高。黑名单的更新需要依赖对钓鱼网址的发现,这天然存在的滞后性,在日益复杂的网络世界里,愈发制约其有效性。

2.2 异常特征检测

如果用户扫描QR码后所得的URL在黑名单中匹配失败,则它就是一个安全性未确定的URL。上文已经对钓鱼网站的URL特征和页面特征进行过分析,对这些异常特征集合进行研究,可以发现其行为模型[12]。

一、URL异常特征向量。

从URL地址的结构和词汇两方面出发,可以提取出如表1所示的7个钓鱼网站URL异常特征向量。

表1 钓鱼网址特征向量

(1)F1:URL不使用域名,而是用IP地址代替,这是一个钓鱼链接比较明显的特征。判断URL中是否含有IP地址相对简单,可以用正则表达式直接匹配。对最终的匹配结果可以用函数f1表示:

f1=1,URL中含有IP地址;

f1=-1,URL中不包含IP地址。

(2)F2:合法的网址一般不会含有“@”,钓鱼链接却经常会使用“@”进行伪装。对于这一特征,可以直接使用正则表达式进行匹配,结果可以用函数f2表示:

f2=1,URL中含有@;

f2=-1,URL中不包含@。

(3)F3:钓鱼链接一般会租用便宜甚至免费的网络服务,这些服务一般会使用到非标准的网络端口,如Web服务但不是标准的80和443端口,此时就会在URL中显示出来。同样可以使用正则匹配,结果用函数f3表示:

f3=1,URL中含有端口号;

f3=-1,URL中不包含端口号。

(4)F4:通常用户访问的网站域名不会超过三级,如果域名中含有3个以上的“.”,则很可能为钓鱼网站,检测结果可以用函数f4表示:

f4=1,URL中“.”的个数大于3;

完成跨国并购,推动企业快速发展。2016年,把握全球天胶市场处于低潮的有利机遇,顺应产业加速整合和资源加速集聚大趋势,完成了对泰国泰华树胶(大众)有限公司的并购及全面接管,一跃成为全球天然橡胶行业中的一线企业,在产业布局、经营规模、产品结构等方面均带来积极变化。目前,集团下属60多个企业,分布在泰国、马来西亚、柬埔寨、老挝、印尼、新加坡、印度以及国内的广东、云南、海南、山东、上海等地。产品涵盖了TSR标准胶系列、混合胶系列、烟片胶系列、浓缩乳胶系列等品类,产品结构更趋科学合理。集团下属海外企业为当地提供直接就业岗位超过10000个,带动就业人口超过3万人,每年为当地创税收约3000万美元。

f4=-1,URL中“.”的个数不大于3。

(5)F5:如果URL长度大于23的话,根据一些研究成果,有很大概率是一个钓鱼链接,此项检测结果用函数f5表示:

f5=1,URL长度大于23;

f5=-1,URL长度不大于23。

(6)F6:钓鱼链接URL中大多会出现敏感词汇以达到冒充效果,因此可以用正则表达式检测如表1所示的敏感词,检测结果可以用函数f6表示:

f6=1,URL含有敏感词;

f6=-1,URL不含敏感词。

(7)F7:URL是短链接,而不是一般网站常用的自己域名的链接,此种特征可以用网址中是否含有常见短链接服务商所提供的域名后缀进行匹配,如表1所示,结果为函数f7:

f7=1,URL是短链接;

f7=-1,URL不是短链接。

二、页面异常特征向量。

如1.2.2分析,钓鱼网址的页面内容可以提炼出下列2个需要关注的异常特征,见表2。

表2 钓鱼网页内容特征向量

(1)F8:一般钓鱼网页会做的与官方网页非常相似,但是其自身的域名肯定与官方域名是不相同的,所以为了与官方保持一摸一样的页面和体验,它们一般会照搬官方网页上的资源,诸如图片,CSS样式,JavaScript脚本等。因此,可以分析抓取到的钓鱼网页内容,分析其HTML结构和标签,检测是否存在引用跨域资源,将结果表示为函数f8:

f8=1,页面内容存在跨域资源;

f8=-1,页面内容不存在跨域资源。

(2)F9:国内的互联网管理条例规定,正规网站的运营肯定会取得ICP许可。因此,抓取钓鱼网站页面,检查其是否有ICP许可备案号,以及检查该备案号是否真实有效且与网页所在域名一致,将结果表示为函数f9:

f9=1,没有备案或者备案无效或不符;

f9=-1,真实有效的ICP备案。

2.3 Logit模型

在根据URL的异常特征来检测其是否安全时,不同的特征对判断结果的区分度是不同的。这意味着不同的特征向量具有不同的权重。权重大的特征,表现的更明显,对结果影响更大,更易识别和使用。权重越小则越难判定,识别效果就越差。因此可以利用Logit模型,将统计分析所得的各个特征向量的权重代入其中,以权重为因子修正模型,获得更加准确的分类结果[13]。

Logit模型(Logit Model)也就是逻辑回归,是最早的、应用最广泛的离散选择模型,是统计实证分析方面的常用方法。Logit模型求解速度快,是一款高性能的分类评定模型。特征检测实质上也是一个对URL根据特征向量进行安全筛查分类的过程。同时,通过曹玖新等人的研究发现,在样本集和向量空间相同的情况下,Logit模型比其他分类模型的性能更强大[14]。

Logit模型其实是个逻辑分布公式,最终获得是一个似然概率,这个概率的计算公式为[15]:

P(Y=1|X=x)=elogit/(1+elogit)

其中,logit=ω0+ω0x0+ω1x1+…+ωnxn,x0,x1,…,xn是样本数据的特征变量,ωi,i∈[1,n]则是各个特征变量对应的权重数值。

App可以分析URL,获得的各项数据,再通过Logit模型得到最后的分类概率,利用这个概率与实验研究验证过的阈值相比较,如果大于阈值,则将URL判定为钓鱼链接。

3 结束语

QR码技术的简便快捷,使得其广泛应用于日常生活中。各种支付场景和信息共享都出现二维码的身影。同时,其广泛应用所带来的安全风险也与日俱增。文中探讨了QR码技术,并分析了钓鱼链接的特征,提出根据特征向量,设计模型对钓鱼链接进行辨识,以防范QR码的钓鱼风险。

猜你喜欢
特征向量域名黑名单
防晒黑名单?第2款就翻车了!
你的卫生巾上“黑名单”了吗?
克罗内克积的特征向量
高中数学特征值和特征向量解题策略
《江苏教育研究》官方网站域名变更公告
《江苏教育研究》官方网站域名变更公告
三个高阶微分方程的解法研究
震惊!100多个地方政府上了失信黑名单
黑名单
矩阵方法求一类数列的通项