一種基於腳本特徵的網頁聚類方法
2023-12-08 16:29:56 2
專利名稱:一種基於腳本特徵的網頁聚類方法
技術領域:
本發明涉及網頁聚類,尤其涉及一種基於網頁包含的腳本程序片段的特徵進行相似頁 面聚類的方法,屬於計算機安全技術領域。技術背景目前網際網路已經成了傳播惡意程序的重要途徑。近兩年來,木馬病毒已經成為惡意代 碼發展的主要方向。通過在網頁上掛馬,利用瀏覽器及其插件的漏洞,獲得執行權限,進 而劫持瀏覽器,植入木馬病毒,是當前木馬病毒傳播的主要途徑。目前檢測網頁掛馬的檢測方法很多,其中包括靜態和動態的方法,但要準確的判斷網 頁中是否存在掛馬行為,需要針對網頁進行大量的運算。但目前互聯上網頁數量呈爆*'卜工 增長的趨勢,根據中國網際網路信息中心(CNNIC)2008年1月發布的《中國網際網路發展 狀況統計報告》,我國網際網路資源正在迅猛增長,域名、網站、網頁的年增長率都超過60%, 2008年統計的域名總數為1193萬個,網站數量達150萬個,網頁數量達84.7億個,其中 大部分論壇的網頁數量過萬,部分大規模網站如新浪網等,其頁面數量已超過千萬幀。互 聯網上如此海量的頁面,對網馬檢測工作來說,是個巨大的挑戰。在實際掛馬場景中,攻擊者常會劫持同一個網站的一大批網頁,如果要分析一個網站 的全部頁面,分析量會很大,但如果隨便選擇某站點的部分URL分析,卻又可能會造成 遺漏。考慮到掛馬網頁主要利用系統或瀏覽器的漏洞,或下載可執行文件等,除了直接用 object和xml漏洞攻擊以外,大部分網頁掛馬,都需要利用到script腳本的功能來協助計算 或運行,所以,網頁中腳本語言片段的存在是網頁掛馬的關鍵。如果能找出這些腳本片段 之間的相似性,則可以預先對大批網頁進行相似性聚類,對聚類後的同一類網頁部分抽樣 做詳細的檢測,可以節省大量檢測資源。發明內容本發明的目的在於提出一種基於腳本特徵的網頁聚類方法。本方法根據網頁中的腳本片段進行標識,將相似的網頁聚為一類。該方法可應用到掛 馬網頁檢測分析的預處理過程,用於將同一網站頁面分類,對於同一集合的網頁,只需選擇一部分抽樣進行檢測,從而可以節省大量檢測資源。本發明的主要思想是將網頁中script標籤內的代碼片斷提取出來,將頁面的控制部分與 內容部分分離,對於具有相同控制部分的頁面,可認為網頁具有相同的動態行為,從向,f 以聚為一類。對於根據本發明方法所聚類到同一類的網頁,只需抽樣檢測便可確定這一類 網頁的動態特性,如是否被掛馬等。為了便於說明,本發明定義如下概念1. 腳本片段(scriptfrag):網頁代碼中包含在同一對script標籤內的腳本代碼段,每個 代碼段定義為一個腳本片段;2. 腳本片段標識(script frag id):對腳本片段作規格化處理後,進行hash計算得到的 值,用這個值來標識一個腳本片段;3. 網頁標識(uriid):對整個網頁文件及其各級連結頁面中所有的腳本片段標識進行排 序處理後得到的序列進行hash計算得到的值,用這個值來標識網頁。具體來說,本發明方法以多個網頁作為聚類對象,包括a) 獲得網頁中的腳本片段及其各級連結頁面中的腳本片段;b) 對腳本片段作規格化處理後計算其特徵值作為腳本片段標識;c) 將各個腳本片段標識排序後計算該序列的特徵值作為網頁標識;d) 將網頁標識相同的網頁聚為一類。在本發明方法中,所述多個網頁可以是通過爬蟲等技術獲得的某個網站的所有頁面。 在本發明方法中,^驟a具體可通過下述方法實現i. 創建一URL隊列,將當前頁面的URL加入所述隊列中;ii. 從所述隊列POP出一個URL,獲取該URL的頁面內容並進行處理iii. 當遇到〈frame〉或〈iframe〉標籤時,如該標籤存在src屬性,則將屬性值加入所述 隊列;iv. 當遇到々cript〉標籤時,獲取該標籤內部的腳本片段;如該標籤存在src屬性, 則獲取src屬性對象的script文件內容,並將該文件內容作為一個原始的腳本片段。在本發明方法中,歩驟b所述規格化處理的目的在於防止script中的參數被隨機化從 而產生大量形式不同但實質相同的腳本片段。針對不同的聚類策略,可以採用或松或嚴的 規格化方案。常用的方式是將腳本片段中所有的參數列表和變量賦值替換為設定的字符。在本發明方法中,歩驟b和步驟c所述特徵值可以是hash值,兩步驟中的hash值可 通過相同或不同的hash算法(如MD5、 SHA512等)計算得到。在本發明方法中,當網頁多次連結至某個url時,需要對該url指向的網頁作多次分析, 而這樣的多次分析並不必要。因此,在步驟a中,當所述各級連結頁面中的多個頁面的鏈 接地址相同時,僅獲得其中一個連結頁面中的腳本片段,以減少不必要的分析。網頁不僅可能多次引用同一網頁,也有可能多次引用同一腳本代碼,對於同一腳本代 碼,作一次分析就可以。因此,在步驟c中,優選按照各個腳本片段標識由小到大的順序 排列,當出現標識相同的腳本片段時,僅保留其中一個,用於後續計算。和現有技術相比,本發明具有以下積極意義1. 在面向從未分析檢測過的網頁時,相對於網頁掛馬檢測的運算時間,計算網頁中 的腳本片斷標識的運算量要少很多,在進行詳細深入的檢測之前,先使用腳本片斷標識對 網頁進行預處理,可從大量的網頁中聚類相似頁面,提高檢測效率;特別是對於論壇網站、 新聞網站等含有大量類似網頁的站點,該方法具有非常好的效果;2. 當需要為某個站點是否掛馬提供實時監測時,通過本發明方法可以判斷此站點的 網頁是否存在腳本更新,若該站點未修改其中的腳本片段,可以認為該站點的頁面未添如 新的動態內容,通過這種方法可有效的判斷是否需要重新檢測該站點的頁面,從而極大的 提高監測服務的能力。
具體實施方式
下面通過具體實施例對本發明作進一步說明。 本實施例通過下述方法實現網頁聚類1. 通過爬蟲等技術獲得一個站點需要檢測的所有網頁的URL並存儲到資料庫中;;2. 針對該站點中的每個網頁,進行如下步驟的處理i. 創建一URL隊列,將當前頁面的URL加入所述隊列中;ii. 從所述隊列POP出一個URL,獲取該URL的頁面內容並進行處理iii. 當遇到《rame〉或〈iframe〉標籤時,如該標籤存在src屬性,則將屬性值加入所述隊列;iv. 當遇到〈scrip^標籤時,獲取該標籤內部的腳本片段;如該標籤存在src屬性,則 通過網絡獲取該script文件內容,並將該文件內容作為一個原始的腳本片段。舉例來說,假設當前頁面的html代碼為Uli current-5contentl </script〉 當前頁面中的各個連結頁面分別為urll:content2url2:content3 ,content4url3:content4 content5則當前網頁中的腳本片段及其各級連結頁面中的腳本片段依次包括contentl; content2; content3; content4; content4; content5; content4; content5。若在上述分析過程中考慮當前頁面的各級連結中出現了兩個指向url3的連結的情況, 而對url3的第二次引用不作處理,則最終得到的腳本片段包括:contentl; content2;content3; content4; content4; content5,以下例證內容以此為基礎。3.對上述腳本片段中的每個均作下列處理將所有的參數列表替換為"LvaU",同時將所有的賦值語句"=..."替換為"=—val」'。例如,假設contentl的內容包括 function MMJumpMenu(targ,selObj,restore){ 〃v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+'""); if (restore) selObj.selectedIndex=0;則經過上述規格化後,contentl變成function—MMJ umpMen(val」{〃v3.0;
if(_val_JselObj. selectedlndex=_val」
};
對每個腳本片段作上述規格化後,計算每個規格化後的腳本片段的md5值作為腳本片段標識,假設idl, id2, id3, id4, id5, id6依次表示上述腳本片段的標識。
4. 按照上述五個腳本片段標識的大小排序,排序過程中,由於id54d4,則僅保留id4,假設排序得到的序列是id6, idl, id3, id4, id2,計算這一序列的md5值作為當前頁面的標識。
5. 得到所有網頁的標識後將標識相同的網頁聚為一類。
在上述聚類結果的基礎上,從每一類中任選10個網頁進行詳細檢測以確定該類網頁是否被掛馬,即可確定該網站是否被掛馬。
本發明發明人將本發明方法用於北京大學信息安全工程中心掛馬網頁檢測平臺,取得了良好的效果,對於每個待檢測站點,有效的將需要檢測的網頁規模縮小至1/30-1/50,實現了本發明的目的,並取得了很好的實用性和推廣應用前景。
權利要求
1.一種基於腳本特徵的網頁聚類方法,以多個網頁作為聚類對象,其步驟包括a)獲得網頁中的腳本片段及其各級內嵌連結頁面中的腳本片段;b)對腳本片段作規格化處理後計算其特徵值作為腳本片段標識;c)將各個腳本片段標識排序後計算該序列的特徵值作為網頁標識;d)將網頁標識相同的網頁聚為一類。
2. 如權利要求1所述的網頁聚類方法,其特徵在於,所述多個網頁是一個網站的所有頁 面。
3. 如權利要求1所述的網頁聚類方法,其特徵在於,步驟a通過下列方法實現i. 創建一URL隊列,將當前頁面的URL加入所述隊列中;ii. 從所述隊列POP出一個URL,獲取該URL的頁面內容並進行處理; 當遇到〈frame〉或〈iframe〉標籤時,如該標籤存在src屬性,則將屬性值加入所述隊列;iv. 當遇到〈script〉標籤時,獲取該標籤內部的腳本片段;如該標籤存在src屬性, 則獲取src屬性對象的script文件內容,並將該文件內容作為一個原始的腳本片段。
4. 如權利要求l所述的網頁聚類方法,其特徵在於,步驟b所述規格化處理是 將腳本片段中所有的參數列表和變量賦值替換為設定的字符。
5. 如權利要求1所述的網頁聚類方法,其特徵在於,步驟b和步驟c所述特徵值均為hash 值,hash值可通過相同或不同的hash算法計算得到。
6. 如權利要求5所述的網頁聚類方法,其特徵在於,所述hash值通過MD5或SHA512算法計算得到。
7. 如權利要求1所述的網頁聚類方法,其特徵在於,在步驟a中,當所述各級連結頁面 中的多個頁面的連結地址相同時,僅獲得其中一個連結頁面中的腳本片段。
8. 如權利要求1所述的網頁聚類方法,其特徵在於,歩驟c按照各個腳本片段標識由小 到大的順序排列,當出現標識相同的腳本片段時,僅保留其中一個。
全文摘要
本發明公開了一種基於腳本特徵的網頁聚類方法,屬於計算機安全技術領域。本發明方法以多個網頁作為聚類對象,包括a)獲得網頁中的腳本片段及其各級內嵌連結頁面中的腳本片段;b)對腳本片段作規格化處理後計算其特徵值作為腳本片段標識;c)將各個腳本片段標識排序後計算該序列的特徵值作為網頁標識;d)將網頁標識相同的網頁聚為一類。本發明方法可用於掛馬網頁檢測分析的預處理過程,用於將同一網站頁面分類,對於同一集合的網頁,只需選擇一部分抽樣進行檢測,從而可以節省大量檢測資源。
文檔編號G06F17/30GK101630325SQ20091009133
公開日2010年1月20日 申請日期2009年8月18日 優先權日2009年8月18日
發明者梁知音, 韜 韋, 龔曉銳 申請人:北京大學