999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

瀏覽器中攔截Web攻擊的研究

2015-07-21 14:19:57王麗錢文祥

王麗++錢文祥

摘要:瀏覽器是互聯網的重要入口,其脆弱性直接影響到用戶數據和財產的安全。本文在分析跨站腳本攻擊、跨站請求攻擊以及點擊劫持的攻擊方法和成因的基礎上,提出相應的動態檢測和攔截方式,從而加強瀏覽器的安全性。通過使用WebBrowser控件實現自定義瀏覽器,載入網頁腳本預過濾等相關模塊,實現防御功能。相關實驗證明,本方案將有效提升瀏覽器安全性,減少網絡風險。

關鍵詞:攻擊識別;瀏覽器安全;動態檢測

中圖分類號:TP391文獻標志碼:A

文章編號:1672-1098(2015)01-0060-04

微軟推出Internet Explorer 3之時便同時開放了WebBrowser給開發者使用,開發者可以在自己的程序中使用WebBrowser控件以實現與瀏覽器類似的功能。

截至2014年,服役13年之久的Internet Explorer 6由于安全性不足引發了人們的關注。微軟也多次勸告用戶升級至更高版本的瀏覽器。在版本6之后的瀏覽器中,Internet Explorer一直在增添新的安全功能。Internet Explorer 8中,微軟加入了基于請求字串的XSS檢測功能和對反點擊劫持的HTTP頭的支持;之后,Internet Explorer 9、10、11幾個版本加入了進程層面的安全特性,例如加入硬件執行保護、代碼地址隨機化、安全異常處理鏈以及瀏覽器的64位化。但是瀏覽器作為腳本宿主,針對腳本攻擊卻沒有更多的安全提升。因此,為了用戶的數據安全,有必要為其定制安全功能。

1攻擊檢測

由于網頁中代碼和數據的界限不明,導致了很多注入類的攻擊手段,針對腳本注入的跨站腳本請求攻擊(Cross Site Scripting,XSS,由于和層疊樣式表縮寫一樣,被改稱為XSS)。而瀏覽器自身的實現,將導致表示層的攻擊,利用視覺欺騙的攻擊點擊劫持則是這類攻擊。而網站自身實現的不完善,則將導致其他針對網站的攻擊,例如瀏覽器中可以實現的跨域請求偽造(Cross Site Request Forgery,CSRF)。

而超文本標記語言是一個語法寬松的語言,在HTML標簽的“屬性=值”對中,有很多字符會被瀏覽器丟棄,即使加入了也不影響執行。Internet Explorer支持的VBScript和Javascript中,存在更多的編碼方式。由于對腳本的支持,字符和函數還可以通過Javascript的重載和庫函數、系統事件、對象強制轉換等方式獲得。

1.1XSS的動態檢測

由于XSS屬于腳本注入,而且由于瀏覽器支持信息的多樣化,攻擊者注入的腳本采用普通字符比對方式將難以檢測。因此,將采用正則表達式,在用戶發出請求時進行動態檢測并修正。

程序將在Internet Explorer自帶的檢查之外再次做額外的檢查。主要檢測方式是針對請求字串在正文寫入的位置進行判斷,對非文本節點通過Boost庫的TR1正則表達式引擎對請求內容進行正則匹配,實現掃描。通過導出mshtml.dll中的字符串組,可以得到Internet Explorer自帶的庫,對其自帶的庫進行判斷分析之后,可以知道其無法防御的攻擊方法,接著,針對這些內容完善補充正則表達式即可防御攻擊者的防御。

使用時,如果用戶訪問的請求匹配到了正則表達式,那么提示用戶可以選擇過濾或是繼續訪問。如果用戶選擇過濾,程序將動態刪除攻擊向量,達到動態清除攻擊向量的作用。新增的正則表達式如表1所示。

表1新增的正則表達式

正則表達式作用

(j|&[#()\[\].]x{0,1}0*(74|4a|106|6a);?)[\t]*(a|&[#()\[\].]x{0,1}0*(65|41|97|61);?)[\t]*(v|&[#()\[\].]x{0,1}0*(86|56|118|76);?)[\t]*(a|&[#()\[\].]x{0,1}0*(65|41|97|61);?)[\t]*(s|&[#()\[\].]x{0,1}0*(83|53|115|73);?)[\t]*(c|&[#()\[\].]x{0,1}0*(67|43|99|63);?)[\t]*(r|&[#()\[\].]x{0,1}0*(82|52|114|72);?)[\t]*(i|&[#()\[\].]x{0,1}0*(73|49|105|69);?)[\t]*(p|&[#()\[\].]x{0,1}0*(80|50|112|70);?)[\t]*(t|&[#()\[\].]x{0,1}0*(84|54|116|74);?)[\t]*(:|(&[#()\[\].]x?0*((58)|(3A));?)).

過濾所有javascript:開頭的腳本和它的一切變形形式,包括八進制、十六進制和HTML實體編碼的轉※。

(v|&[#()\[\].]x{0,1}0*(86|56|118|76);?)[\t]*(b|&[#()\[\].]x{0,1}0*(66|42|98|62);?)[\t]*(s|&[#()\[\].]x{0,1}0*(83|53|115|73);?)[\t]*(c|&[#()\[\].]x{0,1}0*(67|43|99|63);?)[\t]*(r|&[#()\[\].]x{0,1}0*(82|52|114|72);?)[\t]*(i|&[#()\[\].]x{0,1}0*(73|49|105|69);?)[\t]*(p|&[#()\[\].]x{0,1}0*(80|50|112|70);?)[\t]*(t|&[#()\[\].]x{0,1}0*(84|54|116|74);?)[\t]*(:|(&[#()\[\].]x?0*((58)|(3A));?)).endprint

過濾所有vbscript:開頭的腳本和它的一切變形形式,包括八進制、十六進制和HTML實體編碼的轉※。

[\S\s]*?<[-\{\}\[\]:;?/a-zA-Z0-9=+ \t\"\'`\n]+?[ /]{1}style[ \t]*=[ \t]*[\"'`]*[\S\s]+?[\n\t]*:[ \\t]*(e|E|\\(0)*45|\\(0)*65)+?[ \\\t\n]*(x|X|\\(0)*58|\\(0)*78)+?[ \\\t\n]*(p|P|\\(0)*50|\\(0)*70)+?[ \\\t\n]*(r|R|\\(0)*52|\\(0)*72)+?[ \\\t\n]*(e|E|\\(0)*45|\\(0)*65)+?[ \\\t\n]*(s|S|\\(0)*53|\\(0)*73)+?[ \\\t\n]*(s|S|\\(0)*53|\\(0)*73)+?[ \\\t\n]*(i|I|\\(0)*49|\\(0)*69)+?[ \\\t\n]*(o|O|\\(0)*4F|\\(0)*6F)+?[ \\\t\n]*(n|N|\\(0)*4E|\\(0)*6E)+?[ \\\t\n]*(\()+?.*\).*[\S\s]+?>[\S\s]*?過濾帶有style屬性而且style中有expression表達式的標簽。同時過濾expression和它的一切變形形式,包括IE兼容的所有樣式表轉義符以及空格、縮進符號等。

1.2CSRF的動態檢測

CSRF屬于網站側的實現缺陷,因此,瀏覽器只能協助減少危害,而并不能保證消除所有危害。CSRF攻擊主要依靠同源準則來檢測,程序不僅會應用較為嚴格的同源策略,還會對請求實體進行XSS檢查,使用的XSS判斷方式如上節所述。之所以加上這類檢測是因為IE自帶的XSS過濾器其實只會對GET請求進行檢查,而POST XSS在某種程度上也是一個危害較大的攻擊方式,尤其是配合上CSRF,一樣可以達到同樣的危害。所以,如果瀏覽器的POST請求中發現了XSS攻擊代碼,瀏覽器將同樣會對POST的實體部分進行凈化,然后詢問用戶是將POST轉換為GET請求,還是將POST丟棄。軟件的同源判斷邏輯如表2所述。

表2軟件的同源判斷邏輯

規則例子級別

一級域名相同其他不同均可http://1.MYSITE.com/https://2.MYSITE.com:81/在此模式下認為同源寬松模式

一級域名相同協議相同端口相同其他不同均可http://1.MYSITE.com/http://2.MYSITE.com/在此模式下認為同源普通模式

域名相同協議相同端口相同(互聯網標準的同源判定)http://A.MYSITE.com/1http://A.MYSITE.com/2在此模式下認為同源嚴格模式

1.3點擊劫持的動態檢測

在瀏覽器中有一個特性,即如果樣式表中存在opacity屬性,那么元素在瀏覽器中顯示的順序將不會再以其z-index大小來判定,而是使用一個特殊的判斷邏輯:誰的opacity大,誰顯示的時候排在前面。

但是,同一個位置的元素的事件接受函數將依然使用z-index來判斷,如果一個位置上有多個元素,而這個位置上發生了某個事件,那么這個位置上的元素中誰的z-index大,誰就會接收到這個事件。

因此,要實施點擊劫持攻擊,攻擊者最容易的是只通過iframe框架的方式來加載被害網站,而且通常是設置iframe全透明或者透明度非常大,以至于幾乎無法看見,通常是0%~1%的情況比較多。然后,在iframe上方覆蓋一層虛假頁面,例如“點擊某處開始游戲”的頁面,而要求用戶點擊的地方實際上覆蓋在下方iframe中一些敏感位置,例如微博的“關注”按鈕等位置。

因此,攻擊者攻擊時,只需要指定下方iframe的樣式為高z-index和低opacity,給自己偽造的內容的樣式指定為低z-index和高opacity,那么就可以創建一個點擊劫持頁面。

點擊劫持頁面的特性也正是檢測的突破口所在。通過遍歷元素的樣式表,找到存在opacity屬性的iframe,并對其進行邏輯檢查,從而以最小的報警次數獲得較為準確的判定結果,發現攻擊后,程序將刪除元素的透明元素,從而將真實頁面內容展現給用戶。

2程序效率和分析

用系統函數可以得到較為精準的時間量,測試中選用CPU時間/CPU時鐘頻率來獲取經過時間。據此可以得出算法從開始處理數據到處理結束(不包括對話框彈出的等待時間)額外消耗的時間。試驗3次,取平均值,得出耗時數據如表3所示。

表3基準耗時測試結果

模塊時間1/ms時間2/ms時間3/ms平均時間測試網站頁面完全載入時間/s占頁面載入時間比例/%

XSS檢測835.7×10-31.019994.8×10-3949.8×10-3

CSRF檢測24.5 19.524.222.7

Clickjacking檢測351.5×10-3298.4×10-3354.1×10-3334.7×10-3百度新聞1.761

0.000 541.290.000 19

需要注意的是,頁面完全載入時間指頁面完全下載的時間,不包括DOM樹渲染的時間。網絡時間采用IE的開發人員工具。

安全模塊對用戶瀏覽時產生的可感知的影響極小,也即用戶幾乎無法感知到模塊加載前后瀏覽時間上的差異,從而不會產生由于用戶覺得安全模塊過于拖慢顯示速度從而關閉安全模塊的事情。安全模塊的執行效率也會因此直接影響用戶瀏覽網頁時的安全性。

而需要大量操作元素的Clickjacking模塊,事實上并不會對用戶瀏覽造成影響。因為攻擊者攻擊瀏覽器時產生的頁面元素通常都非常少,否則將不利于攻擊代碼的傳播,因此過濾時大部分都將僅對大約20個左右的元素進行操作。endprint

而IE瀏覽器在實現直接通過IHTMLDOMNode接口操作瀏覽器元素的方法時,其做的具體操作是,將對應的DOM節點從IE的節點二叉伸展樹上移除,然后將元素對應的類從內存中刪除。這一操作具體實現起來資源開銷是十分少的。

以下測試結果是在程序冷啟動(開機后第一次運行)下,開啟對應標簽后5秒時的資源情況。每個標簽的占用數據均包括標簽和主程序,用后者減去前者除以標簽差量得出單個標簽的占用,最終全部加起來除以總標簽差量得到平均每個標簽的占用。后單頁內存消耗方法與此相同,內存增量測試結果如表4所示。

表4內存占用增量測試結果KB

模塊1標簽程序占用內存總量3標簽程序占用內存總量5標簽程序占用內存總量平均每個標簽的占用測試網站單頁內存消耗相對內存增量

XSS檢測15,78427,94038,6365,715

CSRF檢測16,29630,00837,9165,405

Clickjacking檢測16,64430,10839,2725,657百度首頁5,313

+398+92+344

標簽內占用的內存大部分是由IE窗口導致的,而相對內存增量則是保護模塊和IE自身共同作用帶來的增量,這可以部分反應模塊對瀏覽時內存增加所帶來的貢獻。

瀏覽器自身就是一個資源密集型程序,如果模塊貢獻了過多的內存增量,那么對用戶使用來說將是不利的。但是上述測試可以發現安全模塊并沒有貢獻出過多的內存占用。

在日常使用過程中內存占用是有一定波動的,在實際測試和理論驗證中內存增量并不會太多。事實證明這還是一個簡單易行而且對用戶機器資源消耗較少的方法。

控制內存增加的主要辦法是,盡量多利用棧上內存,必要時才在堆中分配,因為棧上內存結構簡單,不像堆中各個堆塊數據都有不少字節用于維護堆表信息。而這兩種內存都將在函數函數結束時及時釋放,所以對用戶來說,內存只是一個短期的增長。而一段時間后內存不斷增長主要還是因為IE自身的實現機制,與模塊并無多大聯系。因此本保護模塊可以實現使用少量內存占用實現安全功能。

3 結語

瀏覽器中添加安全模塊是一種自由、可定制的輕便服務形式。同時,采用模塊化的防護函數可以保證在現今產品主程序迭代較慢的情況下達到產品的迅速迭代性,進而可以及時防御互聯網攻擊,具有十分重要的現實性意義,這是目前產品開發所流行推崇的研究開發方向。

對互聯網上存在的攻擊,在瀏覽器層面給用戶添加一層額外的保障,可以讓用戶在瀏覽互聯網時更加安心、省心。同時,人性化的設計也可以照顧到各個層次的互聯網使用者,瀏覽器可以在安全和易用性上可以做到一個好的平衡點。隨著互聯網的進步和技術水平的提高,在未來,可以預見的是將有更多的互聯網威脅,同時也會有更多的安全保護措施的誕生,安全防護意在提升黑客攻擊的門檻,同時給予用戶更好的互聯網瀏覽體驗,從而推動整個行業的發展。

參考文獻:

[1]CHRISTIAN KANAMUGIRE.A Client-Side Solution Against Session Hijacking Through Xss Attacks[D].長沙:中南大學,2012.

[2]溫凱,郭帆,余敏. 自適應的Web攻擊異常檢測方法[J].計算機應用,2012(7):2 003-2 006.

[3]徐少培,姚崎. 基于操作劫持模式的Web攻擊與防御技術研究[J].信息安全與通信保密,2011(1):86-89.

[4]張偉,吳灝,鄒郢路. 針對基于編碼的跨站腳本攻擊分析及防范方法[J].小型微型計算機系統,2013(7):1 615-1 619.

[5]WADE ALCORN, CHRISTIAN FRICHOT,MICHELE ORR.The Browser Hackers Handbook[M] .America:John Wiley & Sons, Inc.,2014.

[6]MICHAL ZALEWSKI.Web之困——現代Web應用安全指南[M] .北京:機械工業出版社,2014.

[7]MICHAEL SUTTON,ADAM GREENE, PEDRAM AMINI.模糊測試——強制性安全漏洞發掘[M]. 北京:機械工業出版社,2009.

[8]PACO HOPE,BEN WALTBER.Web Security Testing Cookbook[M] .America:OReilly Media, 2008.

[9]王文君,李建榮.Web應用安全威脅與防治-基于OWASP Top 10與ESAPI[M] .北京:電子工業出版社, 2009.

(責任編輯:李麗)endprint

主站蜘蛛池模板: 精品无码视频在线观看| 色婷婷色丁香| 国产视频大全| 国产高清在线丝袜精品一区| 国产一区二区色淫影院| 欧美无遮挡国产欧美另类| 久操线在视频在线观看| 亚洲欧美色中文字幕| 亚洲人成日本在线观看| 亚洲国产清纯| 国产剧情无码视频在线观看| 久久精品国产一区二区小说| 国产91久久久久久| 久久香蕉国产线| 午夜精品久久久久久久2023| 国产精品九九视频| 无码综合天天久久综合网| 亚洲中文在线视频| 欧美精品二区| 不卡的在线视频免费观看| a天堂视频| 成人夜夜嗨| 国产特级毛片aaaaaa| 视频二区中文无码| 国产无码制服丝袜| 国产丰满成熟女性性满足视频| 国产精品第5页| 日本不卡在线视频| 国产区在线观看视频| 国产亚洲欧美另类一区二区| 亚洲中文在线看视频一区| 亚洲免费人成影院| 久草网视频在线| 精品久久777| 久久先锋资源| 免费a在线观看播放| 亚洲成AV人手机在线观看网站| 国产高清不卡视频| 欧美成人影院亚洲综合图| av一区二区三区高清久久| 白浆视频在线观看| 美女免费精品高清毛片在线视| 国产亚洲精品91| 亚洲精品成人片在线观看| 九色91在线视频| a级毛片毛片免费观看久潮| 国产成人8x视频一区二区| 国产不卡在线看| 中国一级特黄大片在线观看| 国产视频你懂得| 欧美精品在线看| 国产微拍一区二区三区四区| 久青草免费在线视频| 国产精品自在自线免费观看| 91亚洲视频下载| 夜精品a一区二区三区| 亚洲热线99精品视频| 久久6免费视频| 欧美日韩一区二区三区四区在线观看 | 欧美第一页在线| 国产成人免费高清AⅤ| 无码日韩人妻精品久久蜜桃| 国产成人高清精品免费5388| 欧美亚洲一区二区三区在线| 成年片色大黄全免费网站久久| 她的性爱视频| 亚洲男人在线天堂| 69国产精品视频免费| 成人在线不卡| 久久五月视频| 91精品国产综合久久香蕉922| 99热6这里只有精品| 日韩欧美中文字幕在线韩免费| 欧美成人免费一区在线播放| 高清不卡一区二区三区香蕉| 中文字幕一区二区人妻电影| a级毛片一区二区免费视频| 亚洲精品成人片在线观看| 国产大片喷水在线在线视频| 中国毛片网| 色综合成人| 亚洲女同一区二区|