亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        跨站腳本攻擊客戶端防御技術(shù)研究

        2015-06-28 14:52:27鮑澤民王根英
        鐵路計算機應用 2015年7期
        關(guān)鍵詞:污點信息流腳本

        鮑澤民,王根英,李 娟

        (1.北京交通大學 通信與信息系統(tǒng)北京市重點實驗室,北京 100044;2.中國信息安全測評中心,北京 100085)

        跨站腳本攻擊客戶端防御技術(shù)研究

        鮑澤民1,王根英1,李 娟2

        (1.北京交通大學 通信與信息系統(tǒng)北京市重點實驗室,北京 100044;2.中國信息安全測評中心,北京 100085)

        跨站腳本攻擊是當今Web應用領(lǐng)域危害最嚴重、最常見的威脅之一,本文設(shè)計了全新的跨站攻擊防御方法,該方法以動態(tài)污點追蹤為主,輔以靜態(tài)污點分析,可有效阻止客戶端敏感信息的泄露,實現(xiàn)了對跨站攻擊的有效攔截。并通過對Javascript引擎Spidermonkey的擴展,在開源的Firefox上實現(xiàn)了基于該方法的插件xssCleaner,驗證了防御方法的有效性。

        跨站腳本攻擊;瀏覽器安全;動態(tài)污點追蹤;靜態(tài)分析

        跨站腳本攻擊是一種針對Web客戶端的重量級攻擊。XSS漏洞廣泛存在于PHP、Java、.NET等語言編寫的、未嚴格過濾用戶輸入的Web應用程序中[1]。攻擊者利用該服務器端漏洞,在客戶端瀏覽器從服務器端得到的HTML響應頁面中“注入”惡意Javascript腳本。惡意腳本在客戶端瀏覽器執(zhí)行,避開同源策略限制,實施惡意操作??缯灸_本攻擊根源于Web應用安全機制的薄弱環(huán)節(jié):對用戶輸入缺乏足夠的過濾處理。雖然在服務器端修復Web應用中的跨站漏洞可以根本性解決該問題,由于安全補丁的更新速度慢,系統(tǒng)運維人員的安全意識薄弱等各種原因,仍有很多Web應用不能及時修復漏洞,導致用戶在使用這些應用時處于遭受跨站攻擊的風險下。為了提高用戶面對跨站腳本攻擊的主動防御能力,研究客戶端的跨站攻擊防御措施顯得很有必要。

        自2000年開始著手研究跨站攻擊的防御機制,安全專家們已經(jīng)提出多種不同的客戶端防御機制。文獻[2]提出的客戶端惡意腳本檢測系統(tǒng)由一個處理審計日志的入侵檢測系統(tǒng)和一個瀏覽器內(nèi)嵌的腳本審計器構(gòu)成,通過對比審計日志和已知惡意腳本行為來發(fā)現(xiàn)攻擊,并阻止惡意腳本執(zhí)行。該系統(tǒng)不僅可以檢測跨站攻擊,同時可以發(fā)現(xiàn)其他攻擊。不足之處是,該系統(tǒng)不能防御未知行為特征的新型攻擊。文獻[3]可以不受必須已知攻擊行為特征的限制,通過在客戶端部署個人Web防火墻,依據(jù)訪問規(guī)則對惡意的URL進行阻止。合理訪問規(guī)則的設(shè)置對用戶要求較高,而且發(fā)現(xiàn)攻擊后需要用戶干預方可解決。

        1 新型跨站腳本防御方法

        本文提出的跨站腳本防御方法是一種新型的純客戶端的XSS防御方法,可以在客戶端形成一道應對跨站攻擊的有效屏障,增強了客戶端的主動防御能力。它以動態(tài)污點追蹤為主,輔以靜態(tài)污點追蹤,綜合了動態(tài)標記的高效性和靜態(tài)分析的精確性的特點。防御方法整體框架如圖1所示。

        圖1 防御方法整體框架

        Javascript代碼的一般處理流程:源代碼通過詞法、語法分析生成抽象語法樹(AST,abstract syntax tree),抽象語法樹再編譯為字節(jié)碼,字節(jié)碼隨后交由解釋器翻譯執(zhí)行。本文的防御方法會對客戶端Javascript引擎進行擴展后,語法分析階段,會添加對敏感信息源(即源污點)的污點標記,通過基于信息流的污點傳播分析,實時追蹤、監(jiān)測污點的傳播。必要時在抽象語法樹階段調(diào)用靜態(tài)污點分析,本文引入約束分析方法用于靜態(tài)分析。

        2 關(guān)鍵技術(shù)實現(xiàn)

        2.1 動態(tài)追蹤

        為了追蹤監(jiān)測Javascript程序?qū)γ舾行畔⒌氖褂?,需要擴展Javascript引擎的功能,具體表現(xiàn)在擴展字節(jié)碼指令的語義,污點信息可以有效擴散。Javascript字節(jié)碼指令可分為4種操作:賦值操作、算數(shù)和邏輯操作(+,-)、控制和循環(huán)語句(if,while,switch)、函數(shù)調(diào)用和eval。當一條指令被執(zhí)行時,它的操作數(shù)可能是污點數(shù)據(jù)。因而需要定義規(guī)則,規(guī)定針對不同的操作指令,其指令結(jié)果是否應被標記為污點數(shù)據(jù),確保污點數(shù)據(jù)的有效傳遞與擴散。

        以賦值操作為例。賦值操作就是把一個常量或表達式的值賦給一個左值(等號左邊的數(shù)值,左值為變量)。如果該常量或表達式的值(即右值)已被標記為污點數(shù)據(jù),則左值在賦值操作結(jié)束后也會被標記為污點數(shù)據(jù)。Javascript引擎對單個變量、函數(shù)變量、數(shù)據(jù)、數(shù)組元素和對象屬性的賦值分別分配了不同指令。需要注意的是,個別情況下,當污點數(shù)據(jù)賦值給一個變量后,除了該變量需要被污點標記,該變量的其它相關(guān)屬性也需做污點標記。比如,為了確保對數(shù)組整體上的操作的函數(shù)或方法(如arr. length)的返回值為污點數(shù)據(jù),必須規(guī)定當一個數(shù)組array中的一個元素被標記為污點數(shù)據(jù)后,整個數(shù)組的元素都應被標記為污點數(shù)據(jù)。通過圖2的例子可以說明該規(guī)則的必要性。

        圖2 數(shù)組元素賦值

        如圖2,在第1行,一個初始長度為0的數(shù)組被建立;當cookie的第一個字符為字符“a”時,數(shù)組的第一個元素會被賦值為數(shù)值“1”;第5行,當數(shù)組的長度arr.length為“1”時,變量y會賦值為“a”。同樣的方法測試所有可能的字符(eg,“a”~“z”,“A”~“Z”,“0”~“9”),攻擊者可將cookie的首字符賦值給一個新的變量。如果在第3行的賦值操作后,僅僅對數(shù)組的第一個元素進行污點標記,則第5行的新變量便會避開污點追蹤,從而在用戶不知情的情況下泄露cookie信息。采用本節(jié)提出的規(guī)則,不僅數(shù)組的第一個元素被標記為污點數(shù)據(jù),數(shù)組的屬性(包括arr.length)也會被污點標記。第5行的變量“y”會在賦值后標記為污點數(shù)據(jù),因而敏感信息可被追蹤。

        2.2 靜態(tài)分析

        動態(tài)污點追蹤可以有效監(jiān)測數(shù)據(jù)依賴關(guān)系和直接控制依賴關(guān)系,從而高效地追蹤敏感信息流。但是動態(tài)污點追蹤技術(shù)并不能處理所有的控制依賴關(guān)系[4]。作為動態(tài)追蹤的補充,靜態(tài)分析可以解決這個問題。當動態(tài)追蹤不能有效監(jiān)測,信息流有泄露敏感信息的風險時,靜態(tài)分析方法被調(diào)用。動態(tài)污點追蹤具有高效的特點,但是無法監(jiān)測所有類型的控制依賴關(guān)系;靜態(tài)分析使防御更加完善、可靠,然而會帶來更多的資源消耗。二者的綜合利用充分發(fā)揮各自的優(yōu)勢,使用戶遠離跨站腳本攻擊的侵擾。本文應用了約束分析方法[5],在信息流模型(Information flow model)基礎(chǔ)上,設(shè)計實現(xiàn)了Javascript腳本的約束系統(tǒng),通過約束分析,實現(xiàn)污點擴散。約束分析方法包含約束系統(tǒng)建立和約束系統(tǒng)求解兩個步驟。

        2.2.1 約束分析系統(tǒng)建立

        本文的約束分析系統(tǒng)是建立在信息流模型基礎(chǔ)上的。信息流模型[6]中,數(shù)據(jù)被保存在相互獨立的、按照安全級別定義的分隔區(qū)間上。Bell-Lapadula模型是用于提供機密性的信息流模型,關(guān)心不同安全級別間的數(shù)據(jù)流動問題。借鑒Bell-Lapadula和Biba經(jīng)典的安全模型[7],本文建立如下污點規(guī)則:

        機密性F-NR:污點信息不被泄露(x,?);

        完整性F-NW:污點信息不能被篡改(?,x);

        需要說明的是,(x,y)表示x的值流向y, y=x。(x,?)就是說任何非可信數(shù)據(jù)都不能讀取x。本文中非可信數(shù)據(jù)部分指的是從不同源的域中加載的腳本。

        建立約束分析系統(tǒng)的具體過程是在Javascript的抽象語法樹階段,根據(jù)約束分析規(guī)則遍歷抽象語法樹上的每一個語法元素。Javascript的語法元素分為語句和表達式。多個表達式e可以組成一個語句s,設(shè)xe為表達式e的約束變量。

        其中,k為當前上下文對象的標示符;e為當前接受約束分析的表達式; xi表示當前表達式e接收到的間接信息流。不同語法元素的具體約束分析規(guī)則不同,如控制語句的分析規(guī)則如下:

        多個語句順序執(zhí)行時,依次對每個語句進行約束分析,如式2所示。條件控制語句、循環(huán)控制語句的約束分析規(guī)則分別是式(3)和式(4)。

        2.2.2 約束求解

        污點規(guī)則對其求解,以實現(xiàn)污點監(jiān)測。若污點信息x?F-NR,調(diào)用NR(x)可以從約束系統(tǒng)得到x的相關(guān)信息流x1→xn,且x1→xn上的信息節(jié)點均被標記為污點信息,即 xi?F-NR(1≤i≤n ),同理,若x?F-NW,則求解的 xi?F-NW(1≤i≤n ),從而實現(xiàn)污點擴散。

        3 驗證

        為測試本文提出的防御方法的有效性,本文依據(jù)新型的跨站腳本防御方法對開源的Spidermonkey進行擴展,完成了跨站腳本攻擊客戶端防御工具xssCleaner的開發(fā)。xssCleaner作為Firefox的插件,具有部署快速、跨平臺等特點。本文搭建了一個博客網(wǎng)站系統(tǒng)用于演示xssCleaner對跨站攻擊的有效防御。攻擊者在博客網(wǎng)站的登陸界面嵌入惡意腳本,惡意腳本在客戶端瀏覽器執(zhí)行后,會將用戶名及密碼等敏感信息發(fā)送給攻擊者??蛻舳瞬渴饃ssCleaner插件后,xssCleaner插件攔截該腳本的執(zhí)行,并向用戶發(fā)出跨站攻擊警告,如圖3所示。為方便用戶,同時提高效率,插件提供了黑白名單機制,白名單中的腳本將被定為可信任域,黑名單中的腳本將始終被禁止執(zhí)行。

        圖3 xssCleaner對跨站腳本攔截

        為了驗證xssCleaner的檢測準確率,收集了19種網(wǎng)上常見的跨站攻擊腳本,并搭建了存在跨站漏洞并且訪問敏感信息的網(wǎng)站。為了驗證誤報率,通過網(wǎng)上下載大量網(wǎng)頁測試,并對插件xssCleaner檢測結(jié)果進行人工分析。針對這些網(wǎng)站的正確的檢測率和誤報率如表1所示。

        表1 xssCleaner檢測率和誤報率

        由上表可知,擴展后的瀏覽器可以有效檢測出所有跨站攻擊,然而應用中xssCleaner也會發(fā)出誤報。

        4 結(jié)束語

        本文提出了一種新型的跨站腳本防御方法,介紹該新型防御方法的框架,該方法以動態(tài)污點追蹤為主,輔以靜態(tài)污點分析,兼顧了效率和精確性。分別闡述了動態(tài)、靜態(tài)追蹤的詳細實現(xiàn)策略,二者實質(zhì)都是實現(xiàn)污點的有效擴散,在靜態(tài)污點追蹤中應用了約束分析算法。為驗證方法的有效性,開發(fā)了基于該方法的Firefox插件xssCleaner,其核心是對Javascript引擎Spidermonkey的擴展。經(jīng)驗證,xssCleaner可有效防御跨站腳本攻擊。

        [1]Seixas N, Fonseca J, Vieira M, et al. Looking at web security vulnerabilities from the programming language perspective: a field study[C]. Software Reliability Engineering, 2009. ISSRE'09. 20th International Symposium on. IEEE, 2009: 129-135.

        [2]Hallaraker O, Vigna G. Detecting malicious javascript code in mozilla[C]. Engineering of Complex Computer Systems, 2005. ICECCS 2005. Proceedings. 10th IEEE International Conference on. IEEE, 2005: 85-94.

        [3]Kirda E, Kruegel C, Vigna G, et al. Noxes: a client-side solution for mitigating cross-site scripting attacks[C]. Proceedings of the 2006 ACM symposium on Applied computing. ACM, 2006: 330-337.

        [4]Denning D E. A lattice model of secure information flow[J]. Communications of the ACM, 1976, 19(5): 236-243.

        [5]Kodumal J, Aiken A. Banshee: A scalable constraint-based analysis toolkit[M]. Static Analysis. Springer Berlin Heidelberg, 2005: 218-234.

        [6]Huang Y W, Yu F, Hang C, et al. Securing web application code by static analysis and runtime protection[C]. Proceedings of the 13th international conference on World Wide Web. ACM, 2004: 40-52.

        [7]Shon Harris. CISSP All-in-One Exam Guide, Fifth Edition[M]. McGraw-Hill Osborne Media, 2010.

        責任編輯 徐侃春

        Client-side defense techniques of cross-site scripting attack

        BAO Zemin1, WANG Genying1, LI Juan2
        ( 1.Key Laboratory of Communication & Information System, Beijing Municipal Commission of Education, Beijing Jiaotong University, Beijing 100044, China; 2.China Information Technology Security Evaluation Center, Beijing 100085, China )

        Cross-site scripting(XSS) attack was the most serious and common threat in Web applications today. This paper proposed a novel client-side approach, which combined the dynamic taint tracking with static analysis, to prevent XSS attacks. Based on this method, through extending Spidermonkey of Javascript, the plugin xssCleaner was implemented in open-source Firefox.

        cross-site scripting attack; browser security; dynamic taint tracking; static analysis

        U29∶TP39

        A

        1005-8451(2015)07-0017-04

        2014-11-28

        鮑澤民,在讀碩士研究生;王根英,副教授。

        猜你喜歡
        污點信息流腳本
        酒駕
        基于代碼重寫的動態(tài)污點分析
        安奇奇與小cool 龍(第二回)
        基于信息流的作戰(zhàn)體系網(wǎng)絡(luò)效能仿真與優(yōu)化
        基于信息流的RBC系統(tǒng)外部通信網(wǎng)絡(luò)故障分析
        戰(zhàn)區(qū)聯(lián)合作戰(zhàn)指揮信息流評價模型
        數(shù)據(jù)庫系統(tǒng)shell腳本應用
        電子測試(2018年14期)2018-09-26 06:04:24
        快樂假期
        中學生(2017年19期)2017-09-03 10:39:07
        使用Lightroom污點去除工具清理照片中的瑕疵
        基于任務空間的體系作戰(zhàn)信息流圖構(gòu)建方法
        亚洲人成网站在线播放观看| 亚洲人成网站18禁止| 国产成人综合亚洲看片| 午夜无码片在线观看影院| 精品亚洲成a人7777在线观看| 欧美在线播放一区二区| 一区二区三区国产偷拍| 精品女同一区二区三区免费战| 亚洲第一狼人天堂网亚洲av| 亚洲一本到无码av中文字幕| 国产精品亚洲专区在线播放| 国产自拍在线视频观看| 一区二区三区无码高清视频| 狠狠色噜噜狠狠狠888米奇视频 | 久久欧美与黑人双交男男| 亚洲精品乱码久久久久99| 日韩精品极视频在线观看免费| 偷国产乱人伦偷精品视频| 女人与牲口性恔配视频免费 | 蓝蓝的天空,白白的云| 亚洲av无码电影在线播放| 亚洲日韩乱码中文无码蜜桃臀| 国产亚洲高清在线精品不卡| 日韩av一区二区不卡| 国产乱码精品一区二区三区四川人| 日日碰狠狠丁香久燥| 国产高清一级毛片在线看| 青青草手机免费播放视频| 奇米影视第四色首页| 亚洲AV无码精品蜜桃| av在线网站一区二区| 精品香蕉99久久久久网站| 台湾佬娱乐中文22vvvv| 超碰性爱| 亚洲av日韩一卡二卡| 无码毛片视频一区二区本码| 久久中文字幕日韩无码视频| 干出白浆视频在线观看| 亚洲av无码久久精品色欲| 黄视频国产| 国产一区二区在线观看我不卡|