二维码中XSS攻击检测系统的设计
2016-10-17莫永华于冰冰
莫永华,于冰冰
(桂林电子科技大学信息科技学院,桂林 541004)
二维码中XSS攻击检测系统的设计
莫永华,于冰冰
(桂林电子科技大学信息科技学院,桂林541004)
0 引言
二维条码也称为二维码 (Two-dimensional bar code)是在一维条码基础上,用特定的几何图形按一定规律在二维平面上通过分布的黑白相间的图形以记录信息,由于可存储信息量大,在信息传递应用越来越广。伴随智能手机普及,扫描二维码传递信息的应用越来越多。由于二维码中的信息不能字符显示,在信息中隐藏了用户无法直接识别的威胁就成为可能。如恶意网站信息,在二维码中隐藏恶意URL信息,诱发用户访问钓鱼网站,这些网站通过申请注册相似域名,构建相似度高的网站环境,通过合法用户操作,盗取合法用户账号,发布虚假中奖信息等,但是这种钓鱼攻击方式针对有一定安全意识的用户来说,很难实现成功的钓鱼攻击。然而通过XSS跨站脚本攻击漏洞进行的钓鱼攻击,即使有一定安全意识的用户,缺乏有效防范的情况下,很难抵御。本文主要针对Android手机用户通过二维码扫码来传递信息的应用,设计检测含有跨站攻击的二维码系统,应用特征脚本标签检测的方法,实现二维码安全检测功能。
1 二维码与跨站式攻击研究分析
(1)认识二维码
二维码有三种类型。根据不同需求常用的有:线性堆叠式二维码、矩阵式二维码和邮政码。它们的编码原理也不相同。第一种线性堆叠式二维码,又称为行排式二维码,它是在一维码的基础上实现编码,因此在设计码制、识别和校验有着一维码的特点。它的原理是将多个一维码按照纵向方向堆叠起来,由于行数的增加改变了原来的结构,因此在译码算法等方面与一维码不相同。典型的有:PDF417、Codel6K。第二种矩阵式二维码,呈现出矩阵的形式是一种新型图形符号,也是现在应用最广泛的。数据表示在矩阵相应元素位置上黑色的“点”表示二进制“1”,白色表示二进制“0”,典型的矩阵式二维码有QRCode、Aztec。第三种邮政码。通过对长度不同的条进行编码,主要应用在邮件中,典型的有:POSTNET。
二维码有着更多特点。之所以应用广泛,相比一维码有着更安全可靠、存储信息量大和成本低的优点。由于采用可靠的加密技术,对可数字化信息:编号、照片、指纹、掌纹、虹膜等作为原始数据,使用先进的数学和密码学方法将这些原始数据进行加密运算,生成一组经过加密后的二维码数据。另一个特点是信息存储量大,多达上千字节,在数据的釆集、存储和传递等方面优势突出。二维码在纠错能力上采用先进算法,保障在部分二维码遭到损毁的情况下,还原出全部的原始信息。另外制作PVC面的二维码卡成本低,使用寿命长达10年左右。一般包括二维码图像捕获、识别、解码基本功能,信息获取是系统中的一个主要操作。
(2)二维码中的恶意网站信息与跨站式攻击
以上介绍了二维码在信息传递方面的应用,这些信息存在方式可以是URL(Uniform Resource Locator),统一资源定位符。在Internet上,每一个信息资源都有统一、唯一的地址,该地址就统一资源定位符,就是指网络地址。URL由三部分组成:资源类型、存放资源的主机IP地址或者域名和资源文件名。URL常用格式:Protocol://[username:password]@host[:port]/path/[?query][#fragment](方括号为可选项)。
通过构造相似URL迷惑性用户访问钓鱼网站,这些网站通过申请注册相似域名,构建相似度高的网站环境,通过合法用户操作,盗取合法用户账号,发布虚假中奖信息等,例如某合法网站的URL访问为:http:// www.123.com/index.php,正常应用二维码存储网站URL信息,方便手机用户扫描获取URL并访问网站,由于此URL信息在二维码外观无法看出,不法分子利用这一缺陷,制作URL相似度高的二维码,如http://www. 123.com.cn/index.php具有很大的迷惑性,当用户看到其URL时,很容易误以为是真的官网,当合法用户误入假网站时,输入合法用户信息后,将盗取合法用户信息,造成用户损失,这种构造与合法网站相似度很高的地址,是约鱼攻击者常用的手法之一。但是以上钓鱼攻击方式针对有一定安全意识的手机用户来说,钓鱼攻击的实现有一定难度。然而通过XSS跨站脚本攻击漏洞进行的钓鱼攻击,即使有一定安全意识的用户,缺乏有效防范的情况下,很难抵御。
跨站脚本攻击(Cross Site Scripting)是指攻击者利用网站程序对用户输入缺乏足够的过滤时,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。为了与层叠样式表(Cascading Style Sheets)的缩写CSS区分开,跨站脚本攻击通常简写为XSS。
反射型XSS脚本攻击即如上面所提到的XSS跨站脚本攻击方式,该类型只是简单地将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。由于此种类型的跨站代码存在于URL中,所以黑客通常需要通过诱骗或加密变形等方式,将存在恶意代码的链接制作二维码发给用户,当手机用户扫描含这样的二维码后自动打开浏览器访问并执行脚本,当用户使用合法身份访问时,自己信息将上传给黑客,导致用户信息泄露,威胁用户财产和信息安全。
这里利用DVWA漏洞站点测试的反射型XSS跨站脚本攻击,页面代码如下:
在文本框中任意输入一个用户名,提交之后就会在页面上显示。从URL中可以看出,用户名是通过name参数以GET方式提交的。
http://192.168.1.110/dvwa/vulnerabilities/xss_r/
图1 dvwa系统下XXS界面
网页代码,可以看到这里对用于接收用户数据的name参数没有进行任何过滤,就直接在网页中输出,因而造成了XSS漏洞。可以测试执行输入一段语句来弹出cookie:“alert(document.cookie)”
输入:<script>alert(document.cookie)</script>
根据URL编码,编码规则%3C表示“<”;%3E表示“>”;%28表示“(”;%29表示“)”构造含有跨站攻击的URL:
http://192.168.1.110/dvwa/vulnerabilities/xss_r/?name=% 3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E#
图2 执行跨站攻击代码后返回的cookie值
获取到合法用户cookie值,该信息再通过手机发送到黑客,导致用户信息泄露,威胁用户财产和信息安全。
2 二维码安全检测系统设计
Android平台恶意二维码检测系统的设计采用C/S架构,C为Android手机客户端,S为网络主机服务端。本系统框架分为三个部分二维码的生成、二维码的识别、安全检测。二维码的生成部分,是将字符串装换成图片。识别正好与其相反。安全检测,主要是将识别解析后的到的信息发送到服务器进行判断返回到客户端并将返回的信息显示出来,从而判断此二维码是否安全。下图3展示了Android平台恶意二维码安全检测系统的应用场景。
(1)二维码安全检测设计。因为二维码安全检测,是将识别二维码后得到的数据进行验证的,所以想要完成这一步需要,先完成二维码识别操作。识别完成后系统会将二维码解析出的字符串放到下一个页面来显示,此时二维码还可以提供编辑。在提交安全检测时,客户端会将数据用post方法通过服务器地址发送到服务器,服务器通过服务器地址接收数据,数据通过服务器的httpservlet对象交给服务器端进行特征库数据匹配处理,将处理完的结果发回客户端进行显示。没有攻击特征脚本符号,二维码为安全。检测出特征符信息为不安全,二维码可能带有攻击。最后服务器向客户端发送消息说明,二维码是否存在安全问题。
图3 Android平台恶意二维码安全检测系统的应用场景
图4 安全验证设计图
(2)编码与实现:客户端与服务器交互。
客户端向服务器端传输数据和接收消息代码如下:
3 检测结果与分析
(1)在Android模拟器端的运行。在模拟器上运行只需要,只需要点中项目右键run as,模拟器就会自动启动。再点击一边开始安装此程序。启动完成后,模拟器的演示如下图:
图5 Android模拟器的效果图
(2)系统的安全检测演示与运行
将解析后的数据显示在文本框里,然后点击安全检测按钮,就会弹出一个窗口,显示此二维码是否安全。
图6 安全检测效果图
4 结语
对于二维码信息存储的特点以及在Android手机中信息传递的过程,存在恶意攻击信息并对应用构成威胁,基于二维码的生成、二维码的识别和安全检测功能需求,通过分析反射型跨站脚本攻击的原理,在手机移动端的独自处理安全检测有困难情况下,提出C/S结构解决方案,实现手机客户端扫描二维码,应用网络传输数据,在服务器端接收并安全检测的方法,开发了对隐藏在二维码中恶意攻击信息的检测系统,有效解决了Android手机扫描二维码时遭受到的反射型跨站攻击问题。
[1]徐国辉,陈婕娴.手机二维码技术原理及应用[J].信息与电脑,2013,1(1):18-19.
[2]Rick Rogers著,李耀亮译.Android应用开发[M].人民邮电出版社2010年9月1日出版
[3]赵刚.基于决策树的二维码恶意网址检测方法[J].信息安全技术,2014
Android Application System;Two-Dimensional Code;XSS Attacks;Detection
Design of XSS Attack Detection System in Two-Dimensional Code
MO Yong-hua,YU Bing-bing
(Institute of Information&Technology,Guilin University of Electronic Technology,Guilin 541004)
1007-1423(2016)24-0070-05DOI:10.3969/j.issn.1007-1423.2016.24.016
莫永华(1978-),男,广西桂林人,研究生,讲师,研究方向为计算机网络、网络安全技术
2016-05-27
2016-08-15
二维码传递信息的应用越来越广,隐含恶意攻击的二维码也随之出现,对智能手机扫描二维码就带来安全威胁。针对存储在二维码中的反射型跨站脚本攻击的问题,基于Android平台手机设计一个检测恶意攻击的系统,保障用户扫码安全。先通过DVWA漏洞系统分析反射型跨站脚本攻击,应用特征脚本标签检测的方法,然后采用C/S结构,设计二维码的生成、识别及安全检测功能,最后搭建测试环境,通过对隐藏攻击的二维码安全测试,系统可以有效防御。
Android系统;二维码;跨站脚本攻击;检测
于冰冰(1994-),男,江西南昌人,本科,学生,研究方向为计算机应用
The application of two-dimensional code in mobile phone is more and more widely,two-dimensional code information contains malicious code attacks,this will threaten mobile applications.Against the problems for storage in the two-dimensional code in reflection type cross site scripting attacks,designs an Android phone system to detect malicious attack,realizes the user scan code security.First,analyzes DVWA loopholes in the system of the reflection type cross site scripting attack and application feature script tag detection method,then,uses C/S structure design of two-dimensional code generation,recognition and security detection function,finally,by setting up the test environment,to hiding attack two-dimensional code security testing,system can defense effectively.