Xss防禦系統的製作方法
2023-04-28 05:07:51 1
專利名稱:Xss防禦系統的製作方法
技術領域:
本發明涉及一種XSS防禦系統,尤指一種基於行為認證的XSS防禦系統。
背景技術:
當今,網絡正成為現實生活中各種服務的一個新的平臺和載體。為了提高用戶體驗,腳本語言(大多數為JavaScript)在網絡應用中被大量使用。不幸的是,這個趨勢讓XSS (跨站腳本攻擊)成為了目前網際網路最為嚴重的安全問題之一。XSS (跨站腳本攻擊)又稱為CSS (Cross Site Script),指的是惡意攻擊者往Web頁面裡插入惡意腳本程序代碼,當用戶瀏覽該頁面時,嵌入其中Web裡面的腳本代碼會被執行,從而達到惡意攻擊用戶的特殊目的。「跨站腳本攻擊」名稱的由來起源於這類攻擊方法最初的「跨站」的特點,如今XSS已不再局限於「跨站」攻擊的方式,而成為利用惡意腳本發動的注入式攻擊的總稱。XSS攻 擊往往會產生比較嚴重的後果如洩露用戶隱私、使客戶端電腦感染病毒、控制企業數據、盜竊企業重要的具有商業價值的資料、非法轉帳、強制發送電子郵件、網站掛馬以及控制受害者機器向其它網站發起攻擊等。一些著名的社交網站,如Facebook,MySpace和Twitter都曾被XSS攻擊。XSS具有自傳播、傳播速度快、實施簡單等特性,使其受到越來越多的關注。XSS大都發生在有數據交互的頁面,比如某個顯示用戶評論的頁面或者需要參數傳遞的頁面。當這些數據包含惡意代碼,被瀏覽器Javascript解釋器認為是Javascript代碼而被解釋執行。值得注意的是,網頁程式語言HTML和Javascript雖然有一個國際標準,但在解釋器的具體實現上,每個瀏覽器都對標準進行了增減,並沒有完全按照標準執行,這導致對HTML和Javascript解釋的不嚴格,有些寫法在瀏覽器A可以執行,在瀏覽器B就不能執行,有些寫法標準上沒有但有的瀏覽器卻支持。瀏覽器語法解釋上的不嚴格是XSS能夠發生且難於徹底防範的根本原因之一。傳統的腳本安全執行機制如沙盒機制和同源策略等對於XSS不起作用,這也是造成XSS在網絡軟體安全問題中所佔比例逐年提高的重要原因。當前主要的針對XSS的防禦方法包括內容過濾方法和瀏覽器協作方法。內容過濾方法是通過字符(串)過濾避免非法腳本程序的注入,但該方法的缺點很明顯首先是功能受到限制,因為XSS中所用到的字符也是用戶合法輸入所用到的字符;其次是難度大、不徹底,由於不同瀏覽器在語法解釋上的差異以及轉義字符的使用,要實現正確和完全的內容過濾很難甚至是不大可能的,如此,只能亡羊補牢而不能實現防患於未然。而瀏覽器協作方法是通過客戶端的瀏覽器與伺服器協作的方式將合法和非法的腳本區別對待,該方法的一個典型例子如BEEP方法先設計一個伺服器-瀏覽器協作協議用於傳遞合法腳本,然後修改瀏覽器使其採用該協議並禁止非法腳本的執行。缺點主要包括需要在各種各樣的瀏覽器上進行部署,難以實現和普及;方法的成功率依賴於對非法腳本的識別率;有可能會對瀏覽速度造成影響。以上這些方法都只從XSS攻擊點著手,沒有抓住導致XSS攻擊能夠發生以及產生危害的本質原因,因此只能說是治標不治本,難以根本杜絕XSS攻擊的發生。
綜上所述,現有的針對XSS攻擊的防禦方法在健壯性和可用性方面還是存在明顯的局限性。同時,現實中許多網站都是在管理者不知情的情況下受到了XSS攻擊,此時採用上述方法實現對瀏覽這些網站的用戶客戶端進行保護基本上是不大可能的。因此,有必要提出一種健壯的XSS防禦系統,即使在伺服器已遭受XSS攻擊的情況下也能夠對客戶端進行有效保護,且相應的XSS防禦系統可以在普通瀏覽器進行部署,具有良好的可用性,便成為目前業界急待克服的課題。
發明內容
鑑於上述現有技術的缺點,本發明所要解決的技術問題是從XSS攻擊可能發生的環節上有效地杜絕XSS攻擊行為的發生,即使在網站伺服器已經遭受XSS攻擊的情況下也能對用戶客戶端提供安全保障。 為達到上述目的及其他目的,本發明所提供的XSS防禦系統,搭建在連接有網絡系統的客戶端中,且所述客戶端利用所述網絡系統通過一瀏覽器實現對網站提供商提供的網站進行訪問,該XSS防禦系統包括建模模塊,其用以通過所述網絡系統獲取網站提供商所提供的網站的源碼,並對所獲取的網站的源碼進行分析,以建立網站行為模型;解析模塊,其用以將建模模塊所建立的網站行為模型轉換成XML文件,並予以存儲;檢測模塊,其用以檢測客戶端是否通過瀏覽器瀏覽所述網站提供商提供的網站,若是,則捕捉相應的瀏覽行為,並產生一觸發信號,以觸發解析模塊將所存儲的XML文件恢復為網站行為模型;運行模塊,其用於當接收到檢測模塊所產生的觸發信號時,依據解析模塊所恢復的網站行為模型,創建一網站行為模型實例並加以運行,以得到合法行為;以及認證模塊,其用以依據運行模塊所得到的合法行為,對由檢測模塊所捕捉到的瀏覽行為進行認證,判斷所述瀏覽行為是否符合所述合法行為,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,而阻止此瀏覽行為的發生並發出警報。具體而言,建模模塊包括分析單元,其用以通過所述網絡系統獲取網站提供商所提供的網站的源碼,並從中提取網站的HTML代碼,且基於網站的HTML代碼進行分析處理,以得到該網站的邏輯結構和用戶允許的操作序列;以及建模單元,其用以依據所述分析單元所得到的分析結果,通過行為序列的方法建立網站行為模型,並予以存儲。其中,網站提供商可例如為網站開發者或網站運營商(ISP)。此外,該合法行為包括符合網站行為模型的多個行為序列以及符合網站行為模型的多個行為特徵,而該瀏覽行為包括行為序列以及行為特徵。相應地,認證模塊還包括用以依據運行模塊所得到的合法行為,首先判斷由檢測模塊所捕捉到的瀏覽行為的行為序列是否與所述合法行為的多個行為序列中的其中一個相符,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,若是,則進一步判斷所述瀏覽行為的行為特徵是否與所述合法行為的多個行為特徵的其中一個相符,若是,則允許所述瀏覽行為在瀏覽器中執行,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,而阻止此瀏覽行為的發生並發出警報。以下結合上述技術方案,說明本發明的有益技術效果。相比於現有技術,本發明主要涉及一種基於行為認證的XSS防禦方法,通過對網站邏輯結構以及用戶瀏覽行為的分析,基於網站邏輯和用戶預期行為實現對網站的建模,基於所得出的網站行為模型實現對用戶瀏覽行為的認證,從XSS攻擊可能發生的環節上杜絕XSS攻擊行為的發生,即使在網站伺服器已經遭受XSS攻擊的情況下也能對用戶客戶端提供安全保障。
圖I為本發明的XSS防禦系統的方塊示意圖。主要元件符號說明I 網絡系統2 客戶端21 建模模塊211 分析單元 213 建模單元23 解析模塊25 檢測模塊27 運行模塊29 認證模塊
具體實施例方式以下通過特定的具體實例說明本發明的實施方式,所屬領域的普通技術人員可由本說明書所揭示的內容輕易地了解本發明的其他優點與功效。本發明亦可通過其他不同的具體實例加以施行或應用,本說明書中的各項細節亦可基於不同觀點與應用,在不背離本發明的精神下進行各種修飾與變更。請參閱圖1,其為顯示本發明的XSS防禦系統的方塊示意圖。如圖所示,本發明的XSS防禦系統搭建在連接有網絡系統I的客戶端2中,且所述客戶端2利用所述網絡系統I通過一瀏覽器實現對網站提供商3提供的網站進行訪問。其中,所述網站提供商3可以為網站開發者或網站運營商(ISP)。如圖I所示,本發明的XSS防禦系統包括建模模塊21、解析模塊23、檢測模塊25、運行模塊27以及認證模塊29。以下即詳細說明本發明的XSS防禦系統的上述各部件建模模塊21是用以通過所述網絡系統I獲取網站提供商3所提供的網站的源碼,並對所獲取的網站的源碼進行分析,以建立網站行為模型。更詳而言之,該建模模塊21包括分析單元211以及建模單元213,其中,分析單元211是用以通過所述網絡系統I獲取網站提供商3所提供的網站的源碼,並從中提取網站的HTML代碼,且基於網站的HTML代碼進行分析處理,以得到該網站的邏輯結構和用戶允許的操作序列;而建模單元213是用以依據所述分析單元211所得到的分析結果,通過行為序列的方法建立網站行為模型,並予以存儲,換而言之,該建模單元213通過行為序列的方式對網站的邏輯結構以及所允許的用戶操作行為進行描述和刻畫,網站的行為序列的集合最終構成網站的行為模型。假設網頁的狀態標記為S,則用戶在瀏覽網站過程中與網站的交互過程通常可表示為網頁_>用戶操作_>相應結果_>網頁,可用行為序列的方式表示為S->{0,I}' ->{N,D,P}'
表示閉包),其中,O表示用戶對各類網頁元素操作的事件(例如點擊超連結、點擊按鈕等);I表示用戶輸入的事件#表示頁面產生導航事件;D表示文件下載事件#表示數據傳輸相關的Post或Get事件。採用行為序列表示的常見的瀏覽過程包括①在主頁(狀態)_>用戶點擊超連結(行為)_>網頁發生跳轉導航(行為)_>新頁面(狀態)在主頁(狀態)_>用戶在表單中輸入(行為)_>用戶點擊「提交」按鈕(行為)_>網頁發生跳轉導航(行為)_>用戶輸入的信息被Post (行為)_>新頁面(狀態)。上述兩種序列上網站中常見的行為序列。解析模塊23是用以將建模模塊21所建立的網站行為模型轉換成XML文件,並予以存儲,並在檢測模塊25檢測到客戶端通過瀏覽器瀏覽網絡提供商3所提供的網站(即在進行行為認證需要使用網站行為模型的時候)時,將XML文件恢復為網站行為模型。此處需予以說明的是,該解析模塊23以XML文件的形式存儲網站行為模型,是出於數據交互以及跨平臺的考慮。檢測模塊25是用以檢測客戶端2是否通過瀏覽器瀏覽所述網站提供商3提供的網站,若是,則捕捉相應的瀏覽行為,並產生一觸發信號,以觸發解析模塊23將所存儲的 XML文件恢復為網站行為模型。在本實施例中,該瀏覽行為包括行為序列以及行為特徵。運行模塊27是用於當接收到檢測模塊25所產生的觸發信號時,依據解析模塊23所恢復的網站行為模型,創建一網站行為模型實例並加以運行,以得到合法行為。合法行為包括符合網站行為模型的多個行為序列以及符合網站行為模型的多個行為特徵。認證模塊29是用以依據運行模塊27所得到的合法行為,對由檢測模塊25所捕捉到的瀏覽行為進行認證,判斷所述瀏覽行為是否符合所述合法行為,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,而阻止此瀏覽行為的發生並發出警報,通過這樣的方法對網站用戶的客戶端安全提供保障。具體而言,該認證模塊29是依據運行模塊27所得到的合法行為,首先判斷由檢測模塊25所捕捉到的瀏覽行為的行為序列是否與所述合法行為的多個行為序列中的其中一個相符,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,若是,則進一步判斷所述瀏覽行為的行為特徵是否與所述合法行為的多個行為特徵的其中一個相符,若是,則允許所述瀏覽行為在瀏覽器中執行,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,而阻止此瀏覽行為的發生並發出警報。假設當前由檢測模塊25檢測到的瀏覽行為(通過事件)為a,在網站行為模型中,網站當前狀態為si,其中包括該狀態下所有行為的集合actions以及各行為的類型type,則基於網站行為模型的瀏覽器行為認證過程如下步驟I :進行行為序列的匹配。在網站行為模型實例中遍歷當前狀態Si下所有actions,尋找存在type與當前所發生的瀏覽行為a相同的行為集。如果沒有發現,則認為此瀏覽行為此時出現是不合法的,給予終止;如果發現存在,則繼續執行步驟2。步驟2 :進行行為特徵的匹配。對步驟I所得的行為集,進行進一步的特徵匹配,在網站行為模型實例中查找與當前所發生的瀏覽行為a特徵完全相符的行為。如果沒找至IJ,則認為此瀏覽行為為非法行為,給予終止;如果找到,則表示該行為合法,網站行為模型實例遷移到相應狀態,即保持與瀏覽器中實際網站的狀態同步,並允許相應瀏覽行為在瀏覽器中執行。在進行行為特徵匹配的時候,針對XSS攻擊的特點,需要檢測的關鍵行為(即行為序列中某一個行為)及其行為特徵如表I所示。關鍵行為的特徵用於在行為認證過程中判斷一個行為是否合法,是通過瀏覽器事件(即瀏覽行為)檢測獲得的重要信息之一。表I需檢測的關鍵行為及其特徵
權利要求
1.一種XSS防禦系統,其搭建在連接有網絡系統的客戶端中,且所述客戶端利用所述網絡系統通過一瀏覽器實現對網站提供商提供的網站進行訪問,所述XSS防禦系統包括 建模模塊,其用以通過所述網絡系統獲取網站提供商所提供的網站的源碼,並對所獲取的網站的源碼進行分析,以建立網站行為模型; 解析模塊,其用以將建模模塊所建立的網站行為模型轉換成XML文件,並予以存儲; 檢測模塊,其用以檢測客戶端是否通過瀏覽器瀏覽所述網站提供商提供的網站,若是,則捕捉相應的瀏覽行為,並產生一觸發信號,以觸發解析模塊將所存儲的XML文件恢復為網站行為模型; 運行模塊,其用於當接收到檢測模塊所產生的觸發信號時,依據解析模塊所恢復的網站行為模型,創建一網站行為模型實例並加以運行,以得到合法行為;以及 認證模塊,其用以依據運行模塊所得到的合法行為,對由檢測模塊所捕捉到的瀏覽行為進行認證,判斷所述瀏覽行為是否符合所述合法行為,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,而阻止此瀏覽行為的發生並發出警報。
2.根據權利要求I所述的XSS防禦系統,其特徵在於,建模模塊包括 分析單元,其用以通過所述網絡系統獲取網站提供商所提供的網站的源碼,並從中提取網站的HTML代碼,且基於網站的HTML代碼進行分析處理,以得到所述網站的邏輯結構和用戶允許的操作序列;以及 建模單元,其用以依據所述分析單元所得到的分析結果,通過行為序列的方法建立網站行為模型,並予以存儲。
3.根據權利要求2所述的XSS防禦系統,其特徵在於,所述網站提供商為網站開發者或網站運營商。
4.根據權利要求I所述的XSS防禦系統,其特徵在於,所述合法行為包括符合網站行為模型的多個行為序列以及符合網站行為模型的多個行為特徵,而所述瀏覽行為包括行為序列以及行為特徵。
5.根據權利要求4所述的XSS防禦系統,其特徵在於,認證模塊還包括用以依據運行模塊所得到的合法行為,首先判斷由檢測模塊所捕捉到的瀏覽行為的行為序列是否與所述合法行為的多個行為序列中的其中一個相符,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,若是,則進一步判斷所述瀏覽行為的行為特徵是否與所述合法行為的多個行為特徵的其中一個相符,若是,則允許所述瀏覽行為在瀏覽器中執行,若否,則斷定當前的瀏覽行為包含由XSS攻擊引發的非法行為,而阻止此瀏覽行為的發生並發出警報。
全文摘要
一種XSS防禦系統,主要是通過建模模塊預先建立欲瀏覽的網站的網站行為模型,並由檢測模塊檢測對該網站的瀏覽行為,然後,通過認證模塊使用相應的網站行為模型對用戶的瀏覽行為進行認證,只有網站的行為模型中存在定義的行為才能通過認證並允許執行,而未通過認證的瀏覽行為就作為非法行為加以阻止與報警,從而避免潛在XSS攻擊對客戶端造成的危害。
文檔編號H04L29/06GK102780684SQ201110121999
公開日2012年11月14日 申請日期2011年5月12日 優先權日2011年5月12日
發明者丁志軍, 壽辰, 蔣昌俊, 許華傑, 閆春鋼, 陳閎中 申請人:同濟大學