張玉清 賈 巖 雷柯楠 呂少卿 樂洪舟
1(綜合業務網理論及關鍵技術國家重點實驗室(西安電子科技大學) 西安 710071)2(中國科學院大學國家計算機網絡入侵防范中心 北京 101408)3(陜西省信息通信網絡及安全重點實驗室(西安郵電大學) 西安 710121) (zhangyq@nipc.org.cn)
?
HTML5新特性安全研究綜述
張玉清1,2賈 巖1雷柯楠1呂少卿3樂洪舟1
1(綜合業務網理論及關鍵技術國家重點實驗室(西安電子科技大學) 西安 710071)2(中國科學院大學國家計算機網絡入侵防范中心 北京 101408)3(陜西省信息通信網絡及安全重點實驗室(西安郵電大學) 西安 710121) (zhangyq@nipc.org.cn)
HTML5是構建Web應用的最新標準,它引入許多新特性來賦予瀏覽器豐富的功能,但因此也引入了新的安全問題.HTML5安全問題實際由各個新特性的安全問題組成.根據功能差異,對HTML5中的標簽與表單、通信功能、離線應用與存儲、多媒體、性能與表現、設備訪問等新特性的安全性進行了詳盡的分析、總結和討論,指出其蘊含的安全問題及可能的防范方法.然后對現有國內外研究工作進行了總結,進一步將HTML5安全問題歸納為3類:傳統威脅延伸、惡意利用、使用不當,為進一步研究提供了思路.最后,指出了HTML5安全研究未來有價值的4個方向:新特性安全性、惡意利用檢測、跨平臺安全性和新安全應用形式.
Web安全;HTML5;綜述;postMessage;WebSocket;AppCache;WebStorage
隨著互聯網的飛速發展,Web已經融入生活的方方面面,我們幾乎每天都會使用Web處理各種事務,如銀行業務、網上購物、瀏覽新聞、電子郵件、社交網絡等等.為推動Web的標準化及滿足應用日益豐富的要求,2007年萬維網聯盟W3C(World Wide Web Consortium)立項HTML5,并于2014年10月完成標準化工作[1].它包含了一系列的HTML語義標簽、JavaScript API、CSS3等新特性.目前,無論是電腦還是智能終端,互聯網的主要瀏覽器都對新標準提供了良好的支持[2].
HTML5標準由眾多的新特性組成,根據功能的不同,可以分為標簽與表單、通信API、離線應用與存儲、多媒體、性能與表現、設備訪問6類,如表1所示.其中,新標簽與表單引入了語義信息和豐富的交互事件與屬性,使客戶端更加靈活;通信API提供了瀏覽器與服務器、瀏覽器與瀏覽器、瀏覽器標簽之間新的通信方式,滿足多種應用場景下的開發需求;多媒體特性使得瀏覽器原生支持多種圖形、視頻、音頻,無需額外安裝插件;性能與表現特性則使性能顯著優化,并提供給UI多種友好的表現形式;設備訪問特性使得瀏覽器能夠充分的利用多種平臺的不同硬件,構建出豐富的應用.

Table 1 Summary of HTML5 New Features
雖然HTML5提供了豐富的應用形式,但同時也帶來了許多新的安全問題,傳統的Web安全問題如XSS、CSRF、設備指紋識別、UI欺騙等在HTML5環境下有了新的發展,同時,XMLHttpRequest2、Web-Storage、postMessage等新API還引入了新的跨源、本地存儲、標簽通信風險.主要原因歸納有如下3點:1)傳統的安全問題會以新的形式在使用了HTML5技術的應用中出現,如HTML5新標簽帶來了更多的XSS攻擊向量;2)HTML5許多新API賦予了Web強大的功能,這同時提供給攻擊者許多新的攻擊方式;3)由于開發者對HTML5新的特性不夠熟悉,使用時難免會考慮不周,導致應用存在被攻擊者利用的漏洞.總的來說,正是由于HTML5引入了許多新的特性,所以才產生了諸多新的安全問題,
現今Web的廣泛應用使得其安全性至關重要,而HTML5作為新的Web標準,其安全問題直接關系著整個Web平臺的安全.所以,安全界已經對HTML5安全開展了廣泛的研究.首先,2010年Kuppan[3]在黑帽大會上公布了通過HTML5技術進行攻擊的系列方法,包括新標簽跨站點腳本(cross-site scripting, XSS)、COR反向代理、點擊劫持、應用程序緩存中毒、客戶端RFI、網絡掃描、構建僵尸網絡等,并同時給出了概念驗證程序.這是安全界最早分析HTML5安全問題的系統性報告.在2012年歐洲黑帽大會上,Shah[4]再次補充了通過HTML5技術進行攻擊的10種攻擊手段,包括CORS、UI欺騙以及HTML5帶來的新XSS攻擊載荷等.國際著名Web安全組織OWASP針對HTML5安全,專門成立工作組并維護了在線HTML5安全手冊[5],對開發者具有非常高的參考價值.在國內,吳翰清[6]的著作《白帽子講Web安全》中較早地對HTML5安全進行了探討;2013年,孫松柏等人[7]對HTML5安全做了概括性論述,并對國內許多知名站點進行了安全測試,發現HTML5安全問題嚴重影響當前國內Web安全.
除對HTML5的綜合安全研究外,學術界自2010年后對HTML5的各個特性也進行了深入的研究,發現了XSS、信息泄露、用戶追蹤等多方面的安全隱患,并提出相應方案來加強HTML5的安全性.
HTML5安全問題實際由各個新特性的安全問題組成,故本文試圖圍繞著引入的各類新特性,對HTML5安全展開討論.
本節按照新特性功能的不同,分類討論各個新特性的安全研究現狀.由于跨站點腳本的普遍性,并且其經常能夠作為其他攻擊的先決條件,故單獨列出討論.另外為保證研究的完整性,在最后補充了HTML5其他的相關安全問題.
1.1 標簽與表單
HTML5規范了HTML解析器,定義了許多新的內容,如新的結構標簽、音視頻標簽、MathML等,并豐富了原有表單、內嵌窗口的屬性.
這些新內容除帶來跨站點腳本威脅外,還會引入其他的風險.iframe的sandbox屬性可以設置是否允許內嵌窗口執行腳本,從而使攻擊者進行UI欺騙時繞過FrameBusting檢查.HTML5對表單功能的加強也引入了許多新的風險,如autocomplete屬性提供自動完成的功能,使瀏覽器根據表單ID將輸入信息保存在本地,方便用戶的同時違背了同源策略,產生泄露表單中隱私的風險[8];pattern屬性提供客戶端的正則表達式過濾,但開發者仍需在服務端對輸入進行驗證,疏忽會導致嚴重的安全風險;formaction屬性可以覆蓋form的action屬性,攻擊者若能對表單注入該屬性,即可操縱表單提交的地址,并且由于不是腳本注入,所以無法受到CSP的保護,甚至不受注入位置的限制[9].Preibusch等人[10]針對Web表單中的許多特性進行了安全性研究.另外,一些標簽屬性的使用還能夠對客戶端造成拒絕服務,如〈inputonblur=focus()autofocus〉,focus()是獲取焦點的函數[11].
HTML5新標簽的豐富性導致其帶來的安全問題也是多種多樣的,它既提供給攻擊者手段繞過現有防御措施,也使開發者在使用時易帶來新的漏洞,如與原有防御機制相沖突、信息泄露、表單注入、拒絕服務等問題.目前,對新標簽的安全性問題通常難以有系統性的分析,研究以打補丁的形式進行,未來仍需研究各個新標簽潛在的安全風險,如在不同終端不同瀏覽器上的不同實現形式.
1.2 通信功能
1.2.1 postMessage API
出于安全方面的考慮,運行在同一瀏覽器中的框架、標簽頁、窗口間的通信一直都受到了嚴格的限制,然而,現實中存在一些合理的需求讓不同站點的內容能在瀏覽器內進行交互.HTML5為跨文檔消息機制提供了postMessage API,用來實現跨框架、標簽頁、窗口通信.其通過響應事件來接收消息,通過檢查消息的來源來決定是否對這條消息進行處理.
2010年,Hanna等人[12]發現了新型瀏覽器在部署postMessage技術時客戶端通信協議層面出現的安全問題.2013年,Son等人[13]發現了許多實際中origin源驗證存在的漏洞,由此攻擊者可以注入腳本、任意修改本地存儲,如www.ieee.org等知名的站點均存在該問題,表明開發者在使用新的API時非常容易出現問題.因此,李瀟宇等人[14]同年提出了一種跨文檔消息傳遞方案SafePM來幫助開發者安全使用postMessage.
1.2.2 WebSocket API
HTML5引入了WebSocket來增加異步通信和跨源通信的支持,使得開發者能更便捷地構建實時應用.但同時,該功能的引入也為攻擊者提供了構造各種惡意代碼的可能.2010年Kuppan[3]詳細講解了使用Web-Socket掃描的技術細節,并發布了一個概念驗證工具“JS-Recon”,該工具可以通過受害主機瀏覽器對內網進行掃描.2012年,Schema等人[15]分析了WebSocket在MITM、DoS、IDS、Fingerprinting、Fuzzing、使用不當等多方面的安全問題.2013年,Kulshrestha[16]回顧了WebSocket的協議和API,并討論了不同瀏覽器面對混合內容和不可靠證書時存在的安全問題.
1.2.3 XMLHttpRequest2(XHR2)
XMLHttpRequest API使得Ajax技術的實現成為了可能,作為其改進版本,XHR2主要增加了跨源和進度事件2方面的功能.其跨源支持使得CSRF成為可能,通過將XHR2對象的setRequestHeader設置為Content-type,multi-partform-data,將屬性WithCredentials設置為true,就能夠對cookie進行重放,從而實現攻擊[4,7,17].同WebSocket類似,利用狀態響應時間的不同,XHR2也能夠用來進行網絡掃描[3].
目前,各界對postMessage API和WebSocket的安全問題已經進行了較為豐富的研究,并且實際中也已經有了較為廣泛的應用.其中,對postMessage的研究主要包含了瀏覽器實現漏洞和開發者安全應用2個方面.對WebSocket安全的研究既包括了主要的通信功能,也包括了在其他安全問題下的表現和新惡意利用方式.XHR2是對原有XHR的升級改動,研究集中于其跨源新特性所帶來的新風險.通信API常常涉及到客戶端與服務端2方面的通信,研究服務端實現方面的安全問題可作為未來方向之一.
1.3 離線應用與存儲
1.3.1 本地存儲API
WebStorage是HTML新增的本地存儲解決方案之一,意圖在于解決本來不應該cookie做,卻不得不用cookie的本地存儲.相比于cookie,WebStorage減少了通信的流量,也降低了被監聽的風險.WebStorage使用簡單字符串鍵值對在本地存儲數據,方便靈活,但是對于大量結構化數據存儲力不從心.IndexedDB能夠在客戶端存儲大量的結構化數據,并且使用索引高效檢索,在2015年1月8日正式被W3C推薦,而Web SQL Database實際上已經被廢棄.
本地存儲在方便開發者在客戶端存儲數據的同時,也會遭到同cookie類似的攻擊,如XSS和CSRF等.除此之外,其還有一些其他的安全風險.如瀏覽器在早期實現WebStorage時存在缺陷,不限制站點的存儲容量,攻擊者可以借此耗盡瀏覽器的存儲空間[18].Kimak等人[19]研究了IndexedDB數據如何存儲在客戶端本地文件系統,并敘述了如何在應用程序刪除了客戶端數據庫后仍然可以獲取到數據及解決方案.Matsumoto等人[20]發現,從瀏覽器的主內存映像(main memory image)中可以取得WebStorage的值信息.Acar等人[21]在研究中發現,IndexedDB可以被用來作為用戶追蹤的新手段.
研究者還提出了對本地存儲安全性的改進方案與安全應用場景.2014年,Jemel等人[22]針對本地存儲API提出了一種安全加強方案,即瀏覽器為每個用戶分別提供安全的存儲空間.然后又從云計算應用的角度,提出了加強本地存儲數據安全的方法和不同設備同步本地存儲數據的方案[23].Kimak等人[24]對IndexedDB的發展歷程進行回顧,針對已有的安全問題提出了新的安全模型.
1.3.2 應用程序緩存
在全球互聯的時代,人們越來越依賴網絡連接,但事實上,網絡連接中斷時有發生,為此HTML5引入了應用程序緩存(application cache, AppCache).使用應用程序緩存,避免了加載應用程序時的常規網絡請求,如果緩存清單文件是最新的,瀏覽器就無需檢查其他資源是否最新.這可以節省帶寬,加快訪問速度,并減輕服務器負載.
新緩存機制的引入同時帶來了新的緩存中毒攻擊.Kuppan[3]首先提出利用應用程序緩存作為緩存中毒攻擊的新方式,比HTTP緩存中毒攻擊更加持久.2013年,Johns等人[25]發現使用AppCache緩存惡意腳本至DNS-IP映射信息過期可以繞過反DNS Rebinding機制,從而破壞瀏覽器的同源策略.2015年,Jia等人[26]研究了應用程序緩存中毒對HTTPS的影響,即使用HTTPS也難以保證安全.除此之外,由于實現時缺少安全性的考慮,它還賦予攻擊者竊取用戶隱私信息的能力.同年,Lee等人[27]發現了利用應用程序緩存的事件機制來判斷跨源資源狀態的方法,從而推斷出用戶的Web訪問習慣與認證狀態.
目前,本地存儲API的安全性吸引了眾多研究者的目光,包括其客戶端實現的缺陷、客戶端存儲數據的機密性、不同應用場景的隱私風險等.另外,研究者對于其安全性改進與安全應用場景也提出了各種不同的方案.應用程序緩存使緩存中毒攻擊方式有了新的表現形式,長時間的緩存也給已有的安全機制產生沖突,其實現上的不周也為竊取敏感信息提供了新的手段.出于安全性的考慮,正在制定的用于離線應用的Service Workers僅允許在HTTPS連接中使用[28].
1.4 多媒體
Web的功能已經逐漸從瀏覽簡單的網頁發展成為可以處理復雜媒體的應用平臺.但是,以前瀏覽器對多媒體的支持往往是通過各種插件來實現,如著名的Flash插件.現在,HTML5推出了一系列標簽和JavaScript API,使瀏覽器原生支持多媒體功能.
網絡實時通信(Web real time communication, WebRTC)主要用來讓瀏覽器實時獲取和交換視頻、音頻等數據.getUserMedia()API還允許通過JavaScript腳本分享用戶的屏幕,Tian等人[29]發現使用屏幕共享API可以在用戶無察覺的情況下竊取用戶屏幕上的信息和瀏覽歷史記錄,并繞過站點的防御進行CSRF攻擊.
可縮放矢量圖形(scalable vector graphics, SVG)使用XML格式定義圖像,曾經沒有得到瀏覽器很好的支持,但由于HTML5的到來,現可以用傳統的標簽嵌入頁面中.隨著其應用的普及,研究人員發現了許多潛在的安全風險.2011年,Heiderich等人[30]發現使用〈img〉標簽和CSS嵌入的SVG圖像可以注入并執行任意JavaScript代碼,稱之為AII攻擊,并提出相應的防范措施.Stone[31]在2013年黑帽大會上提出,使用SVG filter來進行計時攻擊(timing attack)可以獲取歷史瀏覽記錄的方法.2012年,Heiderich等人[32]指出,攻擊者使用SVG的〈set〉標簽和accessKey事件,可以記錄用戶在瀏覽器中輸入的內容,而不必使用腳本.
〈canvas〉標簽定義圖形,使用腳本來繪制圖形,與SVG以及VML之間的一個重要不同是,〈canvas〉有一個基于JavaScript的繪圖API,而SVG和VML使用一個XML文檔來描述繪圖.Mowery等人[33]提出使用〈canvas〉繪圖作為系統指紋識別的手段,因為繪圖功能直接關系到顯卡驅動和GPU,通過檢查產生的像素,會發現不同的系統產生不同的輸出.這種用戶跟蹤的手段獨立于其他方法,并且易于使用和對用戶透明.因為HTML5給予了瀏覽器更多訪問硬件的能力,所以Web現在可以基于硬件來進行設備指紋識別,而這些硬件特征更難被掩飾和更改[34].
目前,多媒體類API除了提供XSS新的攻擊向量外,其中一些事件特性還可被攻擊者惡意利用來竊取擊鍵記錄和瀏覽器記錄等私密信息.由于其與硬件設備密切相關的特性,還被挖掘出許多進行設備指紋識別的手段,威脅用戶的隱私.除瀏覽器的事件、編程接口支持外,多媒體類API的實現還需要多方面的支持,如圖形繪制、解碼庫等,其中底層支持的安全性也可作為未來研究方向之一.
1.5 性能與表現
HTML5在Web性能方面進行了優化,Web Workers使JavaScript現在可以后臺多線程執行.但同時攻擊者可以使用該特性充分利用用戶的瀏覽器隱蔽地構建僵尸網絡,進行DDoS、挖掘比特幣、進行暴力破解等[3].
除了性能方面的改進,HTML5也定義了新的API,使開發者可以更方便高效地豐富Web表現形式.比如,服務器發送事件(server-sent event, SSE)允許網頁獲得來自服務器的推送更新;History API允許Web頁面操作瀏覽器的歷史記錄;拖拽API支持用戶在瀏覽器中拖拽元素;Web Notification API可以向用戶隨時進行桌面消息推送,不局限于當前頁面.Yoon等人[11]提出,可以使用SSE作為命令通信方式的僵尸網絡,并且比Web Workers構建的僵尸網絡更難被檢測.同時,表現形式的豐富也增加了社會工程學攻擊的能力.History API使攻擊者可以加入大量的URL歷史記錄,使用戶使用瀏覽器“后退”按鈕無法回退;而修改當前顯示的URL增加了釣魚攻擊的迷惑性[35].Web Notification可以被攻擊者用來推送欺騙消息,拖拽API豐富了UI欺騙攻擊的形式.
目前對性能與表現新特性的安全研究集中于其自身功能的濫用,即攻擊者可以使用這些特性的原有功能來利用客戶端的資源或者進行社會工程學攻擊等.但是,對于惡意利用的檢測與防范研究較少,并且對該類新特性的實現安全性與其他惡意利用方式還沒有發現,這些可作為未來研究方向的重點.
1.6 設備訪問
HTML5支持用戶通過Geolocation API獲取地理位置信息,極大地豐富了Web應用形式,但不恰當的實現會導致隱私泄露的風險.2010年Doty等人[36]關注了Geolocation API的隱私機制,并提出了一種隱私框架.同年,Zalewski[37]發現Geolocation用戶提示可以通過對用戶界面進行時差攻擊進行UI欺騙,從而竊取地理位置信息.2014年,Kim等人[38]深入研究了當前瀏覽器對Geolocation API的實現,發現14種存在缺陷的漏洞和603個過高權限的站點,并提出了細粒度的權限控制和位置模型,以及對Geolocation發展的一些建議.這些研究均增強了對用戶隱私性的保護.
HTML5也提供了許多對移動設備訪問的支持,如照相機、觸摸事件等.Yoon等人[11]提出了使用震動API對移動設備拒絕服務的攻擊,這種攻擊會對用戶使用造成不良影響,迫使用戶關閉該頁面.Olejnik等人[39]發現FireFox實現的顯示電池狀態API時精確度過高,可以被用來進行設備指紋識別.
目前對于HTML5設備訪問的研究主要集中于用戶隱私的攻防,還有移動設備的特殊硬件產生安全隱私隱患.研究包含了新的惡意利用方式及API功能實現時的缺陷,但是缺少結合客戶端平臺,對API功能實現機理安全性的深入研究.
1.7 其他方面
1.7.1 XSS新挑戰
XSS是Web上最流行的攻擊之一,通過該漏洞攻擊者可以向客戶端瀏覽器注入任意可執行腳本.HTML5引入了許多能夠觸發JavaScript腳本執行的新標簽和新屬性,如audio、video、onerror、autofocus等;除標簽與表單外,SVG和CSS3也增加了攻擊向量的種類,若網站黑名單過濾沒有包含HTML5新特性,那么就會產生XSS漏洞.HTML5安全站點[40]維護了一個較為全面的XSS攻擊向量備忘錄;Dong等人[41]總結了14種由HTML5引入的XSS攻擊向量,并針對電子郵件系統開發了相應漏洞檢測工具.而且,HTML5新特性極大地增強了客戶端腳本的能力,增強了攻擊危害性.
HTML5良好的跨平臺特性,導致XSS有了新的“用武之地”.除了傳統上針對瀏覽器的XSS攻擊,2014年,Jin等人[42]發現移動終端HTML5 App同樣也存在XSS漏洞,并擁有Contact,SMS,Barcode,MP3等獨特的注入途徑.次年,Chen等人[43]又發現了針對移動終端HTML5 App,通過text box input type和document.getElementById(“TagID”).value注入腳本的新方式.2016年,Mao等人[44]提出了通過監控App的運行,建立行為狀態機來檢測HTML5 App注入行為的方法.
總之,傳統的XSS防范方法足以應對新的威脅,但是需要特別提防HTML5新引入的注入通道及其跨平臺的影響,移動端目前已經發現了較多的安全隱患.
1.7.2 補充工作
一部分研究并不局限討論HTML5某個特性的安全問題,但其主體是信息安全相關問題,并與HTML5密切相關,所以特在此節簡要說明,以保證研究的完整性.
其中有些研究側重于HTML5的應用.文獻[45-46]討論了使用HTML5特性來加強會話的方案.文獻[47]提出了可以使用HTML5的WebRTC來進行數據P2P安全傳輸的方案.文獻[48]使用Web Crypto API實現了端對端加密的社交網絡.
有些研究側重于整體安全性與安全檢測.文獻[49]采用基于行為分析的方法研究了新特性的惡意使用.文獻[7,50]設計并實現了可以檢測HTML5安全問題的漏洞掃描器.文獻[51]提出了一種針對HTML5應用的權限分離方案.
HTML5應用在移動端的實現也暴露出了新的問題,文獻[52]以Android和PhoneGap為例,研究了移動端操作系統支持HTML5應用時的訪問控制問題.HTML5新特性的出現也影響了舊有的安全問題,如文獻[53]提出了3種基于HTML5新特性的混淆技術,使Web drive-by-download惡意代碼避開現有的安全檢測系統.
目前安全界已經對HTML5安全投入了許多的研究精力,已發表的文獻主要有2種類型.第1類是針對單個特性進行深入研究,如發現了一類新的惡意利用手段、API本身實現缺陷、實際中使用時產生的漏洞等,大部分文獻屬于此類.通過統計對各新特性研究的64篇文獻,得到圖1所示的比例分布圖.

Fig. 1 Literatures distribution of new features security.圖1 新特性安全研究文獻分布比例圖
其中,通信API和離線應用與存儲得到了較多研究者的關注.這一方面是由于其特性本身的復雜性,如通信API的跨源特性、協議、事件機制,本地存儲客戶端的實現,應用程序緩存的持久特性和事件機制均引入了新的安全風險;一方面由于其應用的廣泛性,如postMessage的眾多實際應用中對源驗證存在漏洞.多媒體類特性也較為復雜,涉及到腳本接口和與硬件密切相關的特性,同樣產生了較多的安全問題.性能表現與設備訪問類特性由于其本身特點,研究主要集中于基于社會工程學的隱私泄露.標簽與表單常常引入新的注入攻擊,攻擊思路較為固定,防范方法較為成熟,已經得到了業界較多的關注.
第2類文獻概括多點HTML5安全問題,包括總體安全分析、安全使用的建議和對以往問題的總結、安全測試等.如對HTML5整體進行安全性分析的部分文獻中,文獻[7]通過對國內外研究工作的總結分析,將HTML5安全問題分為3類:HTML5安全漏洞、HTML5新型攻擊機制、HTML5新特性濫用.文獻[11]根據攻擊產生的危害,將安全問題分為數據泄露、信息控制、請求偽造、拒絕服務、社會工程學5類,注重攻擊的表現形式,將安全問題劃入現有的攻擊類型.上面的分類均不是站在漏洞產生原因的角度進行分析.
經過調研分析,為提供進一步漏洞挖掘的思路,從漏洞產生原因的角度,可以將HTML5安全的問題歸為3類.1)傳統威脅延伸,即傳統的Web攻擊思路延伸到HTML5應用之中,對原有防御機制帶來了挑戰或產生了新的表現形式;如新標簽引入的XSS對黑名單過濾產生了挑戰,移動端HTML5 App發現的XSS等.該類問題重點關注新攻擊與傳統攻擊實施思路上的相似性.2)新功能的惡意利用,即新特性在提供開發便利的同時,也給攻擊者提供了新的攻擊手段,其可以是對功能的正常使用,如利用Web Workers構建僵尸網絡;也可以是主要功能之外的其他手段,類似密碼破解中的邊信道,如使用WebSocket進行網絡掃描是利用響應時間的側信道.該類問題重點關注新特性本身帶來的風險.3)使用新特性不當產生漏洞,即開發者在使用新特性時,由于對新功能不夠熟悉,疏忽大意導致編程存在安全漏洞;如使用CORS時缺少對源的校驗和數據驗證等.該類問題產生的原因在于開發者使用不當,而非新特性本身.
按照上述分類方法,各個新特性存在的安全問題匯總如表2所示,供安全研究人員參考.表2中直接給出了關鍵短語描述,空格表示目前沒有發現此類安全問題,具體內容可參考上文對各類特性的詳細討論.注意,HTML5使得XSS攻擊更具威脅性,并且XSS是很多攻擊的前提條件,故統計時不再重復考慮,通常對新標簽的攻擊向量使用傳統方法加以完善即可防范.另外,其中有些漏洞已經隨著標準化進程修復.

Table 2 Summary of HTML5 Security Issues
HTML5標準體系目前已經基本完成,其相關安全研究也開展了多年,產生了一大批漏洞和科研成果.未來的研究方向主要包含4個方面:
1) 新特性安全性分析
雖然安全研究伴隨著HTML5整個標準化過程,但是對于其新特性本身的研究卻仍然不夠深入和全面,主要原因有2個方面:①盡管研究者已經對許多新特性進行了研究,但是隨著Web的快速發展,不斷有新的特性被提出,如2016年4月19日W3C正式推薦了Web Storage第2版,繼續推出的新特性在帶來易用性和修補安全缺陷的同時,難免還會帶來新的安全風險,需要安全研究人員不斷地跟進研究.②仍有許多特性的安全性沒有被詳盡地分析,已分析過的特性也無法避免會出現其他的惡意利用方式,如通信API的服務端實現、多媒體API的底層支持等.
各個新特性的加入使瀏覽器成為越來越復雜的應用載體,故對各個新特性潛在安全性的研究仍然是未來研究的重點方向,包括并不局限于隱私保護、與舊有安全手段沖突、新惡意利用方式、不同平臺實現差異等.本文提出的分類方法給發現新的安全問題提供了參考思路.
2) 新特性惡意利用檢測
目前大部分研究局限于發現一個問題,解決一個問題,部分研究關注現有漏洞的檢測,均缺少對普遍HTML5惡意利用的檢測和防御方案.具體可以考慮惡意行為建模分析、特征提取,機器學習等手段,參考入侵檢測系統的常用方法.
3) 跨平臺安全性
W3C致力于統一各個平臺的Web標準,以方便開發出功能更加豐富的Web應用程序.然而不同平臺、不同終端對標準的實現卻不盡相同,這就留下了出現安全問題的隱患.移動互聯網和物聯網的蓬勃發展使得HTML5應用日益廣泛.Web已經不單單是傳統PC的應用,許多智能設備都在使用Web技術[54],物聯萬維網(Web of Things,WoT)正被提上議題[55].眾多的智能終端無疑會存在更多的安全風險,如設備訪問API在不同硬件特性的平臺上會帶來不同的隱患.目前,安卓平臺HTML5 App已經發現存在XSS攻擊,其他類型的Web攻擊也同樣可能影響各個平臺.所以不同平臺HTML5應用的安全性研究也是未來的方向之一,如HTML5在移動終端、Web TV等平臺的安全、隱私保護、可達性及恢復力等.
4) 新安全應用形式
HTML5是新一代的Web標準,瀏覽器對其進行了充分的支持,對HTML5新的應用形式也在不斷探索之中.比如可以考慮利用HTML5來更加高效地解決如盜鏈等傳統問題,結合多因素構建Web認證支付系統,設計瀏覽器加密通信系統,加強權限控制會話安全.故利用HTML5技術結合具體應用場景需求來構建安全應用也是未來的研究方向之一.
Web技術已經深入人們日常生活的方方面面,其中對HTML5安全性的研究具有重要的現實意義.本文首先對國內外研究現狀進行了總結,然后根據功能的差異,討論了HTML5各類新特性的安全問題.并將已有HTML5安全問題歸納為3類:傳統威脅延伸、新惡意利用方式、使用和實現時的漏洞,為進一步發現新的安全問題提供了思路.最后,討論了值得進一步深入研究的安全問題,包括新特性安全性、跨平臺應用、新安全應用形式3個方向.
[1]W3C. HTML5[EB/OL]. [2016-03-19]. https://www.w3.org/TR/html5/
[2]Leenheer N. How well does your browser support HTML5[EB/OL]. (2016-06) [2016-08-08]. http://html5test.com
[3]Kuppan L. Attacking with HTML5[EB/OL]. Blackhat 2010. (2010-10-08) [2016-08-08]. https://media.blackhat.com/bh-ad-10/Kuppan/Blackhat-AD-2010-Kuppan-Attacking-with-HTML5-wp.pdf
[4]Shah S. HTML5 Top 10 Threats Stealth Attacks and Silent Exploits[EB/OL]. Blackhat 2012. [2016-08-08] http://media.blackhat.com/bh-eu-12/shah/bh-eu-12-Shah_HTML5_Top_10-WP.pdf
[5]OWASP. HTML5 Security Cheat Sheet[EB/OL]. [2016-03-20] https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet
[6]Wu Hanqing. White Hat to Talk about Web Security[M]. Chinese Edition. Beijing: Publishing House of Electronics Industry, 2012 (in Chinese)(吳瀚清. 白帽子講Web安全[M]. 北京: 電子工業出版社, 2012)
[7]Sun Songbai, Ali Abbasi, Zhuge Jianwei, et al. Reseach on HTML5 security[J]. Computer Applications and Software, 2013, 30(3): 1-6 (in Chinese)(孫松柏, Ali Abbasi, 諸葛建偉, 等. HTML5安全研究[J]. 計算機應用與軟件, 2013, 30(3): 1-6)
[8]andlabs. POC for Stealing Auto-Complete Suggestions from Google Chrome[EB/OL]. [2016-08-08] http://www.andlabs.org/hacks/steal_autofill.html
[9]De Ryck P, Desmet L, Piessens F, et al. A security analysis of emerging Web standards-Extended version, CW622[R/OL]. Belgium: Department of Computer Science, KU Leuven, 2012 [2016-08-08]. https://lirias.kuleuven.be/bitstream/123456789/349398/1/CW622.pdf
[10]Preibusch S, Krol K, Beresford A R. The privacy economics of voluntary over-disclosure in Web forms[G] //The Economics of Information Security and Privacy. Berlin: Springer, 2013: 183-209
[11]Yoon S, Jung J H, Kim H K. Attacks on Web browsers with HTML5[C] //Proc of the 10th Int Conf for Internet Technology and Secured Trans (ICITST). Piscataway, NJ: IEEE, 2015: 193-197
[12]Hanna S, Chul E, Shin R, et al. The Emperor’s new APIs: On the (In)secure usage of new client-side primitives [C/OL] //Proc of W2SP’10. Piscataway, NJ: IEEE, 2010 [2016-06-15]. http://www.ieee-security.org/TC/W2SP/2010/papers/p03.pdf
[13]Son S, Shmatikov V. The postman always rings twice: Attacking and defending postMessage in HTML5 Websites[C] //Proc of NDSS’13. Rosten, VA, USA: Internet Society, 2013: 1-14
[14]Li Xiaoyu, Zhang Yuqing, Liu Qixu, et al. Secure cross document messaging scheme based on HTML5[J]. Journal of Graduate University of Chinese Academy of Sciences, 2013, 30(1): 124-130 (in Chinese)(李瀟宇, 張玉清, 劉奇旭, 等. 一種基于HTML5的安全跨文檔消息傳遞方案[J]. 中國科學院大學學報, 2013, 30(1): 124-130)
[15]Schema M, Shekyan S, Toukharian V. Hacking with WebSockets[EB/OL]. [2016-08-08] BlackHat USA 2012. http://www.hakim.ws/BHUSA12/materials/Briefings/Shekyan/BH_US_12_Shekyan_Toukharian_Hacking_Websocket_Slides.pdf
[16]Kulshrestha A. An empirical study of HTML5 Websockets and their cross browser behavior for mixed content and untrusted certificates[J]. International Journal of Computer Applications, 2013, 82(6): 13-18
[17]Wang Xiaoqiang. Research of Csrf Attack and Defense Techniques Based on HTML5[D]. Chengdu: University of Electronic Science and Technology of China, 2013 (in Chinese)(王曉強. 基于HTML5的CSRF攻擊與防御技術研究[D]. 成都: 電子科技大學, 2013)
[18]Feross A. Introducing the HTML5 Hard Disk FillerTMAPI[EB/OL]. [2016-04-04]. http://feross.org/fill-disk/
[19]Kimak S, Ellman J, Laing C. Some potential issues with the security of HTML5 indexedDB[C] //Proc of System Safety and Cyber Security. Piscataway, NJ: IEEE, 2014: 495-502
[20]Matsumoto S, Sakurai K. Acquisition of evidence of Web storage in HTML5 Web browsers from memory image[C] //Proc of the 9th Asia Joint Conf on Information Security. Piscataway, NJ: IEEE, 2014: 148-155
[21]Acar G, Eubank C, Englehardt S, et al. The Web never forgets: Persistent tracking mechanisms in the wild [C] //Proc of ACM Conf on Computer and Communications Security. New York: ACM, 2014: 674-689
[22]Jemel M, Serhrouchni A. Security enhancement of HTML5 Local Data Storage[C] //Proc of 2014 Int Conf and Workshop on the Network of the Future (NOF). Piscataway, NJ: IEEE, 2015. Doi:10.1109/NOF.2014.7119784
[23]Jemel M, Serhrouchni A. Content protection and secure synchronization of HTML5 local storage data [C] //Proc of the 11th Consumer Communications and Networking Conf (CCNC). Piscataway, NJ: IEEE, 2014: 539-540
[24]Kimak S, Ellman J. The role of HTML5 IndexedDB, the past, present and future[C] //Proc of the 10th Int Conf for Internet Technology and Secured Trans. Piscataway, NJ: IEEE, 2015: 379-383
[25]Johns M, Lekies S, Stock B: Eradicating DNS rebinding with the extended same-origin policy[C] //Proc of the 22nd Usenix Conf on Security. Berkeley, CA: Usenix, 2013: 621-636
[26]Jia Y, Chen Y, Dong X, et al. Man-in-the-browser-cache: Persisting HTTPS attacks via browser cache poisoning[J]. Computers & Security, 2015, 55: 62-80
[27]Lee S, Kim H, Kim J. Identifying cross-origin resource status using application cache[C/OL] //Proc of NDSS’15. San Diego, CA: Internet Society, 2015 [2016-06-15]. http://www.internetsociety.org/sites/default/files/01_1_2.pdf
[28]W3C. Service Workers W3C Working Draft 25 June 2015[EB/OL]. [2016-07-27]. https://www.w3.org/TR/service-workers/
[29]Tian Y, Liu Y C, Bhosale A, et al. All your screens are belong to us: Attacks exploiting the HTML5 screen sharing API[C] //Proc of the 2014 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2014: 34-48
[30]Heiderich M, Frosch T, Jensen M, et al. Crouching tiger-hidden payload: Security risks of scalable vectors graphics[C] //Proc of the 18th ACM Conf on Computer and Communications Security. New York: ACM, 2011: 239-250
[31]Stone P. Pixel perfect timing attacks with HTML5[EB/OL]. Blackhat, 2013.[2016-03-20]. http://media.blackhat.com/us-13/US-13-Stone-Pixel-Perfect-Timing-Attacks-with-HTML5-WP.pdf
[32]Heiderich M, Niemietz M, Schuster F, et al. Scriptless attacks: Stealing more pie without touching the sill[C] //Proc of the ACM Conf on Computer and Communications Security. New York: ACM, 2012: 760-771
[33]Mowery K, Shacham H. Pixel perfect: Fingerprinting canvas in HTML5[C/OL] //Proc of W2SP’12. Piscataway, NJ: IEEE, 2012 [2016-06-15]. http://www.ieee-security.org/TC/W2SP/2012/papers/w2sp12-final4.pdf
[34]Nakibly G, Shelef G, Yudilevich S. Hardware fingerprinting using HTML5[DB/OL]. ArXiv e-prints, 2015. [2016-08-08]. http://xueshu.baidu.com/s?wd=paperuri%3A%280758be07676e75354f70444de749a4e6%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Farxiv.org%2Fabs%2F1503.01408&ie=utf-8&sc_us=18386508993366793230
[35]TrandLabs. HTML5 Overview[EB/OL]. [2016-04-16]. http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/reports/rpt_html5-attack-scenarios.pdf
[36]Doty N, Mulligan D K, Wilde E. Privacy issues of the W3C Geolocation API[DB/OL]. ArXiv e-prints, 2010. [2016-08-08]. http://xueshu.baidu.com/s?wd=paperuri%3A%286143a2a92f4fbaa43397ca8e34d3bf0b%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Farxiv.org%2Fabs%2F1003.1775&ie=utf-8&sc_us=9799738829075159532
[37]Zalewski M. Geolocation spoofing and other UI woes[EB/OL]. (2010-08-17)[2016-03-20]. http://seclists.org/bugtraq/2010/Aug/201
[38]Kim H, Lee S, Kim J. Exploring and mitigating privacy threats of HTML5 geolocation API[C] //Proc of the 30th Annual Computer Security Applications Conf (ACSAC’14). New York: ACM, 2014: 306-315
[39]Diaz C, Olejnik L, Acar G, et al. The leaking battery: A privacy analysis of the HTML5 Battery Status API[J]. IACR Cryptology ePrint Archive, 2015: 616
[40]cure53. HTML5 Security Cheatsheet[EB/OL]. [2016-04-04]. http://html5sec.org/
[41]Dong G, Zhang Y, Wang X, et al. Detecting cross site scripting vulnerabilities introduced by HTML5[C] //Proc of the 11th Int Joint Conf on Computer Science and Software Engineering (JCSSE). Piscataway, NJ: IEEE, 2014: 319-323
[42]Jin X, Hu X, Ying K, et al. Code injection attacks on HTML5-based mobile Apps: Characterization, detection and mitigation[C] //Proc of the ACM Conf on Computer and Communications Security. New York: ACM, 2014: 66-77
[43]Chen Y L, Lee H M, Jeng A B. DroidCIA: A novel detection method of code injection attacks on HTML5-based mobile Apps [C] //Proc of the 2015 IEEE Trustcom/BigDataSE/ISPA. Piscataway, NJ: IEEE, 2015: 1014-1021
[44]Mao Jian, Wang Ruilong, Chen Yue, et al. Detecting injected behaviors in HTML5-based Android applications[J]. Journal of High Speed Networks, 2016, 22(1): 15-34
[45]Kumar V. Three Tier Verification Technique to foil session sidejacking attempts[C] //Proc of Asian Himalayas Int Conf on Internet. Piscataway, NJ: IEEE, 2011: 1-4
[46]Unger T, Mulazzani M, Hwirt D, et al. SHPF: Enhancing HTTP(S) session security with browser fingerprinting[C] //Proc of the 2013 Int Conf on Availability, Reliability and Security. Piscataway, NJ: IEEE, 2013: 255-261
[47]Farina J, Scanlon M, Kohlmann S, et al. HTML5 zero configuration covert channels: Security risks and challenges [C] //Proc of the 10th ADFSL Conf on Digital Forensics. Security and Law (ADFSL 2015). Florida: ADFSL, 2015: 135-150
[48]Barenghi A, Beretta M, Federico A D, et al. Snake: An end-to-end encrypted online social network[C] //Proc of IEEE Int Conf on High PERFORMANCE Computing and Communications. Piscataway, NJ: IEEE, 2014: 763-770
[49]Choo H L, Oh S, Jung J, et al. The Behavior-Based Analysis Techniques for HTML5 Malicious Features[C] //Proc of the Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS). Piscataway, NJ: IEEE, 2015: 436-440
[50]Wu Q, Liu X. Research and design on Web application vulnerability scanning service[C] //Proc of the 5th IEEE Int Conf on Software Engineering and Service Science (ICSESS). Piscataway, NJ: IEEE, 2014: 671-674
[51]Akhawe D, Saxena P, Song D. Privilege separation in HTML5 applications[C] //Proc of the 21st USENIX Conf on Security Symp. Berkeley, CA: USENIX, 2012: 23-23
[52]Jin X, Wang L, Luo T, et al. Fine-grained access control for HTML5-based mobile applications in Android[G] //LNCS 7807. Berlin: Springer, 2015: 309-318
[53]Santis A D, Maio G D, Petrillo U F. Using HTML5 to prevent detection of drive-by-download Web malware[J]. Security & Communication Networks, 2015, 8(7): 1237-1255
[54]Dujlovic I, Duric Z. Cross-platform Web based real-time communication in Web TV and video on demand systems[C] //Proc of the 57th Int Symp ELMAR. Piscataway, NJ: IEEE, 2015: 65-68
[55]W3C. Web of Things at Industry of Things World[EB/OL]. (2016-03-08)[2016-04-23]. https://www.w3.org/blog/2016/03/w3c-web-of-things-at-industry-of-things-world/

Zhang Yuqing, born in 1966. PhD. Professor in the University of Chinese Academy of Sciences. His research interests include network and information system security.

Jia Yan, born in 1992. PhD candidate in Xidian University. His research interests include network and system security.

Lei Kenan, born in 1992. Master candidate in Xidian University. Her main research interests include network and information security.

Lü Shaoqing, born in 1987. PhD and assistant professor. His main research interests include social networks security and data mining.

Yue Hongzhou, born in 1987. PhD candidate in Xidian University, accepting joint training in National Computer Network Intrusion Protection Center, University of Chinese Academy of Sciences. His main research interests include network and information security.
Survey of HTML5 New Features Security
Zhang Yuqing1,2, Jia Yan1, Lei Kenan1, Lü Shaoqing3, and Yue Hongzhou1
1(StateKeyLaboratoryofIntegratedServicesNetworks(XidianUniversity),Xi’an710071)2(NationalComputerNetworkIntrusionProtectionCenter,UniversityofChineseAcademyofSciences,Beijing101408)3(ShaanxiKeyLaboratoryofInformationCommunicationNetworkandSecurity(Xi’anUniversityofPostsandTelecommunications),Xi’an710121)
HTML5 is the latest standard of building Web applications. It introduces many new features to browsers, but also brings new security issues. The security of new features is the essence of HTML5 security. According to the differences in function, we analyze and summarize the security of new features including new label and form, communication, offline and storage, multimedia, performance, device access. The security problems and possible prevention methods are pointed out. Then we summarize existing researches, and classify HTML5 security problems into three categories: extending traditional threats, malicious use and improper use, to provide a new thought for the further study of HTML5 security. At last, four directions of the future work are pointed out: the security of new features, detection of malicious use, cross platform security and new security applications.
Web security; HTML5; literature review; postMessage; WebSocket; AppCache; WebStorage
2016-08-18;
2016-09-20
國家自然科學基金項目(61272481,61572460);國家發改委信息安全專項[(2012)1424];國家重點研發計劃項目(2016YFB0800703);國家111項目(B16037);教育部-中國移動科研基金項目(MCM20130431)
TP393.08
This work was supported by the National Natural Science Foundation of China (61272481,61572460), the National Information Security Special Projects of National Development and Reform Commission of China [(2012)1424], the National Key Research and Development Project (2016YFB0800703), China 111 Project (B16037), and the Research Fund of Ministry of Education-China Mobile (MCM20130431).