移动Web安全分析
2016-02-21山东省聊城市公安局网络安全保卫支队助理工程师
李 璐 山东省聊城市公安局网络安全保卫支队助理工程师
刘洪伟 山东省聊城市公安局网络安全保卫支队助理工程师
戴 芬 山东省聊城市公安局网络安全保卫支队助理工程师
崔媛媛 中国信息通信研究院高级工程师
移动Web安全分析
李璐山东省聊城市公安局网络安全保卫支队助理工程师
刘洪伟山东省聊城市公安局网络安全保卫支队助理工程师
戴芬山东省聊城市公安局网络安全保卫支队助理工程师
崔媛媛中国信息通信研究院高级工程师
在HTML5以及HTTP2.0发展的基础上,移动Web技术得到了全新的发展。在移动Web技术发展的同时,也带来了一些新的安全问题。本文首先分析了移动Web可能存在的安全问题,然后梳理了目前一些业界的移动Web安全技术进展。根据移动Web安全问题及安全研究现状,提出了对移动Web安全的想法,拓宽了电子数据取证工作的新思路。
移动Web;HTML5安全;电子数据取证
1 引言
移动Web是以HTML、HTTP等技术为基础构建的移动互联网信息服务系统,主要由Web应用服务、Web运行环境、服务部署托管平台、应用生成开发工具等部分组成。移动Web在桌面Web的基础上添加了新的UserAgent(用户代理)类型、标记语言、文档格式,为小尺寸屏幕提供优化的Web内容,并可解决移动设备上的资源限制、Web浏览器可用性差等问题。
移动Web在Web生态系统中引入了一些新的组件,包括:
●针对移动设备进行了优化的标记语言和样式。
●可区分移动和桌面HTML的UserAgent类型。
●符合移动设备特性的访问设备的接口API(应用协议接口)。
●HTML5语言的大量使用。
移动WebAPP基于移动终端的浏览器或Web运行引擎进行访问交互,将移动终端设备的本地能力,与移动Web的网络业务能力及服务架构模式相互融合,既提供了丰富的设备和网络能力,又保持了传统Web APP良好的跨平台特性。
2014年10月,W 3C发布正式的HTML5规范,随后主流浏览器均宣布支持HTML5,这包括PC浏览器(Chrome、IE、Firefox、Opera、360浏览器等),也包括手机浏览器的内核Webkit。
2 移动Web可能存在的安全问题
HTML5一些新的特性,使得移动Web在防恶意代码、终端能力调用、本地存储等方面存在安全隐患。一些违法犯罪分子利用这些安全隐患大肆进行恶意攻击、盗取个人隐私信息、诈骗等违法犯罪活动,同时也给电子数据取证工作带来新的挑战。
2.1HTML5协议安全问题
HTML5的新特性在推动移动Web发展的同时,也增加了攻击者发动攻击的几率,引入了新的安全问题。
(1)CORS(跨域资源共享)攻击
在CORS(CrossOriginResourceSharing)之前,Web资源访问的策略是同源策略(SameOrigin Policy),即一个域的文档或脚本,不能获取或修改另一个域的文档的属性,也就是不能跨域访问。同源策略在保证安全性的同时,对Web应用的开发有一定的限制作用,因此在HTML5中出现了CORS,即跨域资源共享,它定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求,使得Web应用的开发具备更大的灵活性。
目前,许多浏览器都提供了对CORS的支持,如Chrome、IE、Firefox。服务器方面,应用CORS的系统包括Face.com、GoogleCloudStorage等,主要是为开放平台向第三方提供访问的能力。
CORS非常有用,可以共享许多内容,给Web开发带来了非常大的灵活性,不过这也带来了一定的安全风险,包括:
●攻击者可能伪造HTTP头来跨域访问获取敏感信息。
●CORS使得Web网站会收到大量来自其他域的跨域请求。这些请求有时可能会被用于执行应用层面的DDoS攻击。
●CORS使得Web网站会收到大量来自其他域的跨域请求。这些请求有时可能会被用于执行应用层面的DDoS攻击。
●如果攻击者已经确定了某个用户可以全域访问的某个网站页面上存在SQL注入漏洞,他可能会编写一个JavaScript数据采集脚本,并在存在XSS问题的网站上插入这段脚本。当用户访问含有这种XSS脚本的网站时,他的浏览器将执行针对该页面的SQL注入攻击,采集所有的数据并发送给攻击者。
●HTML5协议引入PostMessage函数来实现跨域的数据通信。在源端使用PostMessage(Data、Origin)来发送消息;在接收端,通过注册函数到事件“Message”上来接收消息,进而实现跨文档、多窗口、跨域的数据通信。在PostMessage中,参数Data是要传递的数据,Origin是字符串参数,用来指明目标窗口。当发送端使用“*”来作为Origin参数的话,所有注册了M essage事件的页面都将会收到这条消息,这样就会很容易地获得发送端的数据,带来数据泄露的风险。
(2)WebSQL攻击
Web SQL的安全问题通常表现为两个部分:一种是SQL注入,和本地数据库一样,攻击者可以通过SQL注入来进行数据库攻击;另一方面,如果WebAPP有XSS漏洞,那么利用XSS漏洞,攻击者可能会获取到用户本地数据,造成用户隐私信息泄露。
(3)WebWorker攻击
传统的HTML中Javascript是单线程执行的,在执行过程中浏览器不能同时执行其它Javascript脚本。HTML5中提出的WebWorker的概念可以将Javascript的执行过程放入一个新线程里去执行。这样可以同时执行多个Javascript任务而不会阻塞浏览器,非常适合异步交互和大规模计算。但是这样一个好的特性也会引入新的安全问题。
用户如果访问恶意页面或者网站时,页面的恶意代码就能把用户的浏览器当作肉鸡,利用WebWorker大规模执行多线程攻击,例如DDoS攻击、发送垃圾邮件或者进行网络嗅探。
另外,WebWorker在后台运行,用户无法通过命令来杀死WebWorker线程,只能依靠WebWorker线程主动退出。攻击者可以利用这个特性,启动一个死循环的WebWorker线程,不断地申请内存,占用CPU资源,而用户无法得知具体的原因。
(4)Web Storage攻击
HTM L5支持WebStorage,开发者可以为应用创建本地存储,存储一些有用的信息。例如,LocalStorage可以长期存储,而且存放空间很大,一般是5M,这极大地解决了之前只能用Cookie来存储数据的容量小、存取不便、容易被清除的问题。
但是,Web Storage存储的用户信息没有经过加密存储,那么其他应用可能会访问到LocalStorage存储的信息,造成用户隐私的泄露。另外,LocalStorage的API都是通过Javascript提供的,这样攻击者可以通过XSS攻击窃取信息,如用户token或者资料。
2.2HTML5新标签带来的XSS安全问题
HTML5去掉了很多过时的标签,例如<Center>和<Frameset>,同时又引入了许多新标签,包括<Audio>、<Video>、<Canvas>、<A rticle>、<Footer>等,而这些标签又有一些属性,如Poster、Autofocus、Onerror、Form action、Oninput,这些属性都可以用来执行Javascript,这会导致XSS和CSRF(跨站请求伪造)攻击。
2.3Device API安全问题
HTML5中定义了很多关于设备的接口,使得用户可以在浏览器或者WebAPP中方便地访问手机的各种设备资源,但同时也带来了风险,容易造成用户隐私泄露。这些API包括CalendarAPI(日历)、Camera(摄像头)、Communication log(通话记录)、ContactsAPI(联系人信息)、FileSystem API(访问用户文件系统)、Gallery API(视频、音频和照片等媒体)、MessagingAPI(发送短信/彩信)、System Information API(电池信息、CPU信息、内存信息、网络信息、传感器信息、存储信息、输入/输出设备等信息)、TasksAPI(任务管理器信息)、UIAPI(手机的UI信息)、GeolocationAPI(终端位置信息)。
2.4移动W eb APP安全问题
移动WebAPP基于移动终端的浏览器或Web运行引擎进行访问交互,将移动终端设备的本地能力与移动Web的网络业务能力及服务架构模式相互融合,既提供了丰富的设备和网络能力,又保持了传统Web应用良好的跨平台特性。
现有的移动设备本地APP,由于它们通过终端系统直接访问设备上的各种硬件接口,应用代码直接在设备本地运行,并能够针对不同系统、硬件平台进行本地定制优化,因而在终端应用的响应处理效率、设备能力调用方面具有诸多优点。与之相对,移动WebAPP由于具备Web业务能力及服务模式,在应用部署、维护、跨平台等方面具有本地应用不可比拟的优势。
移动WebAPP既具有Web的特性又具有移动设备本地APP的特性,因此Web和移动本地APP所面临的安全问题同样也适用于WebAPP。
恶意移动Web APP主要的安全问题包括恶意代码、非授权调用终端API。
这些恶意移动WebAPP成为了骚扰广告、泄漏个人隐私信息、偷取流量与话费的罪魁祸首,成为电子数据取证工作的新的研究领域。
(1)恶意代码
互联网恶意代码完全可以移植到移动WebAPP上,根据国家对恶意代码的恶意行为,可总结为恶意扣费、隐私窃取、远程控制、恶意传播、资费消耗、系统破坏、诱骗欺诈、流氓行为等恶意行为。
(2)非授权调用终端API
W 3C规定了很多DeviceAPI,供HTML5的浏览器和WebAPP调用,以充分体现HTML5对移动设备的良好支持。但是如上文所述,在给开发者带来方便的同时,终端设备API的调用,如果不进行完善的授权管理,将会给用户隐私带来非常严重的安全问题。
3 移动WebAPP安全研究现状
3.1W 3C
W 3C(万维网联盟)是Web技术领域最具权威和影响力的国际标准组织,制定了一系列Web技术标准,包括HTML5系列标准。在安全方面,W 3C制定了如下几个相关标准:
(1)WebCryptographyAPI
该文档定义了在Web应用中执行基本加解密操作的JavaScriptAPI,如哈希操作、签名生成和验证,以及加解密操作等。
(2)CSP(ContentSecurityPolicy)
CSP是由W 3C的Web APP安全工作组(Web APP SecurityWG)制定的标准。该文档定义了一个内容安全策略的机制,这种策略可以使WebAPP的作者(或应用服务器管理员)来通知客户端从哪里装载资源。这种安全机制可以减少一大类XSS攻击。CSP具体通过HTTP头:Content-Security-Policy来定义具体的内容安全策略。
(3)Subresource Integrity
该文档定义了一种机制,确保客户端所获得的资源是未被篡改的。
(4)DNT(TrackingPreferenceExpressing)
DNT是由W 3C的追踪保护工作组(Tracking ProtectingWG)制定的标准,该文档允许用户通过一个简单、可扩展、灵活的浏览器设置表达自己对Web站点追踪行为的偏好,为HTML5在保护用户隐私方面提供保障。
3.2相关浏览器
(1)Firefox
Firefox浏览器有如下的安全保障:
●隐私保护:Firefox支持DNT(Do notTrack),用户可以在浏览器中设置用户隐私相关条款,可以选择禁止网页追踪用户行为。此外,Firefox还支持删除用户上网痕迹。
●网站安全检查:Firefox可以标识用户当前浏览的网站的安全性,包括是否加密、是否经过身份认证等信息,避免用户浏览恶意网站。
●反钓鱼和防恶意网站:Firefox有恶意网站列表,如果用户访问到恶意网站,浏览器会警告用户。
●防恶意软件:如果用户下载含有恶意代码的恶意软件,浏览器会发出警告。
●自动安全更新:Firefox可以进行自动更新,保证用户使用最新和最佳的安全修补。
(2)GoogleChrome
Chrome在以下方面保证了浏览器安全:
●黑名单:Chrome会定期地更新防止网络钓鱼和恶意软件的黑名单,并在用户试图浏览可能造成电脑损害的网站时予以警告。
●沙箱:Chrome中的每一个标签页都是一个沙箱(Sandbox),以防止恶意软件破坏用户系统或利用标签页影响其他标签页。沙箱遵守最小权限原则,每个动作的权限都会被限制,例如仅能运算而无法写入文件和从敏感区域读取文件(如我的文档、桌面)。
●插件:插件通常并没有统一的标准,且无法像标签页般沙箱化。为了降低被攻击的风险,插件是独立运行的。从5.0版本起,Chrome内置AdobeFlash Player以确保使用的为最新版本降低被攻击的风险。其后在9.0版本将Flash播放器内置在沙箱中独立运行。
●多进程:能容许多个程序同时运行而互不影响,每个网页标签独立于窗口程序存在,当资源过高或崩溃时,不会因为一个停顿而整个浏览器崩溃。
●任务管理器:用户可以查看哪些网站占用了最多的内存、下载流量和CPU资源,有利于管理各个标签页与插件,也便于用户终止恶意操作。
●诈骗和恶意程序保护:当Chrome侦测到浏览网站可能有害时,便会发出实时警告。
●自动更新:为确保受到最新版安全性更新的保护,Chrome会定期检查更新,以确保更新永远为最新版本。
4 移动Web安全建议
根据前文对移动Web安全问题的分析以及当前研究现状,我们对移动Web安全提出一些建议,这些建议从移动终端、浏览器以及应用服务器几个角度出发。
4.1移动终端
移动终端应该在以下几个方面保证移动Web的安全:
●终端应支持移动Web APP或浏览器对Device API的授权访问。移动Web APP或浏览器在调用DeviceAPI时,终端应提示用户,得到用户许可后,再对其进行授权访问控制。
●在安装移动WebAPP时,移动终端操作系统应支持对移动WebAPP进行数字签名的认证,以确保移动WebAPP对于移动终端系统来说是可信任的。
●移动终端操作系统应该维护和定时更新一个恶意网站的黑名单,当移动WebAPP试图访问这个黑名单中的网站的时候,移动终端系统需要提醒用户,并终止用户的访问动作。
4.2移动Web浏览器
●对于在浏览器中运行的WebAPP,需要对服务器和WebAPP进行认证,以确保服务器和WebAPP是可信任的。认证方式建议采用数字证书方式。
●浏览器在调用DeviceAPI接口时,需要获得用户的授权。授权方式一般采用首次调用提示用户,经用户许可后才可进行调用。对于关键的系统资源,如关键系统分区,应该禁止DeviceAPI的访问。
●Web CryptographyAPI定义了在Web应用中执行基本加解密操作的JavaScriptAPI,如哈希操作、签名生成/验证以及加解密操作等,使用这些API,可以实现例如端到端的应用数据的加解密、邮件的加解密与签名等功能。
●浏览器应提供一些针对常见XSS攻击的XSS过滤器,防止一些常见的XSS攻击。
●浏览器应支持对Cookie访问的保护,对不可信的服务器或WebAPP应禁止访问用户Cookie相关的信息。浏览器应支持DNT功能。DNT(DoNotTrack),由W 3C发布,是浏览器提供的防止用户隐私泄露的功能。当用户选择该功能后,浏览器在HTTP数据传输中添加一个HTTPHeader,这个头信息向Web网站的服务器表明用户不希望被追踪。
●浏览器应能对通过Web Storage存储的用户信息进行加密存储,以保护用户隐私不被泄露。
●浏览器应对Web服务器进行判断,以确保服务器是可信任的。可以采用黑白名单的方式,防止用户访问恶意网站,如钓鱼网站。
4.3移动Web服务器
●Web服务器和移动WebAPP应配有相关的数字证书,以支持浏览器对其认证。
●Web服务器应对接收到的请求进行认证,尤其是针对CORS的请求,要进行身份认证,如认证Session ID,只有通过身份认证的请求,才对其进行处理。
●针对CORS(跨域资源共享)攻击,Web服务器方应遵循一个最小原则,即只向请求方暴露最小的、最必须的功能。
●CSP定义了对Web资源的访问限制的一种策略,并定义了在服务器和客户端之间传递策略并确保策略强制执行的机制。Web服务器应支持CSP。
●移动WebAPP应支持WebCryptographyAPI,配合浏览器端实现安全的密码操作。
●Web服务器应支持DNT功能,配合浏览器实现用户隐私保护。
●很多XSS攻击和Web SQL攻击都是利用Web页面编写的不完善,通过构造特殊的输入参数来达到攻击的目的的。例如XSS攻击是通过构造Javascript脚本为输入参数,进而实现攻击的目的。因此,在开发阶段,Web服务器端对于输入数据,应进行严格的审查。包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
●在存在SQL输入的页面上,应该设计SQL输入形式不应为可拼接的字符串,保证参数的输入符合设定的类型。
5 结束语
根据前文所述,由于HTML5的一些新特点,给移动Web引入了一些新的安全问题。同时,各界针对移动Web的安全问题,也提出了针对性的防范方法,为电子数据取证工作拓宽了思路,有些安全问题还需要我们进一步探索其防御之道。
HTML5作为下一代的Web技术已经成为了不争的事实。每个新技术的兴起,都会存在安全的问题。不过从长远的角度来看,HTML5的优势依然非常明显,只有增强HTML5的普及和应用,更多的安全漏洞才会暴露出来并修正,未来才能够更加安全。当然,未雨绸缪地研究移动Web的安全保护策略以及相关电子取证工作也是非常有必要的。
Analysis on Mobile Web Security
LiLu,Liu Hongwei,Dai Fen,Cui Yuanyuan
On the basis of HTML5and HTTP2.0development,mobile web technique gets a whole progress.with the development of mobile web technique,it also brings some new security problem.This article fist analyses the security issues of mobile web,then introduces some security technology progress at present.According to the mobile web security issues and security research status,we put forward the thought of mobile web security,which can broaden the new ideas of electronic data forensics.
mobile web security;HTML5security;electronic data forensics
2016-01-10)