李 璐 山東省聊城市公安局網絡安全保衛支隊助理工程師
劉洪偉 山東省聊城市公安局網絡安全保衛支隊助理工程師
戴 芬 山東省聊城市公安局網絡安全保衛支隊助理工程師
崔媛媛 中國信息通信研究院高級工程師
移動Web安全分析
李璐山東省聊城市公安局網絡安全保衛支隊助理工程師
劉洪偉山東省聊城市公安局網絡安全保衛支隊助理工程師
戴芬山東省聊城市公安局網絡安全保衛支隊助理工程師
崔媛媛中國信息通信研究院高級工程師
在HTML5以及HTTP2.0發展的基礎上,移動Web技術得到了全新的發展。在移動Web技術發展的同時,也帶來了一些新的安全問題。本文首先分析了移動Web可能存在的安全問題,然后梳理了目前一些業界的移動Web安全技術進展。根據移動Web安全問題及安全研究現狀,提出了對移動Web安全的想法,拓寬了電子數據取證工作的新思路。
移動Web;HTML5安全;電子數據取證
移動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。
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.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會定期檢查更新,以確保更新永遠為最新版本。
根據前文對移動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輸入形式不應為可拼接的字符串,保證參數的輸入符合設定的類型。
根據前文所述,由于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)