一種基於貝葉斯學習理論的惡意HTTP請求判定方法與流程
2023-10-27 21:14:37
本發明屬於網絡安全技術領域,具體涉及一種基於貝葉斯學習理論的惡意HTTP請求判定方法。
背景技術:
由於HTTP協議的標準性和適用性,除了普通的web網站類服務外,很多新興的各種行動應用程式APP也開始使用HTTP協議來進行數據通訊。有很多應用都通過偷偷駐留後臺的方式,自動向服務端發送HTTP請求消息傳輸數據。如果是惡意應用,這些HTTP請求會涉及到竊取用戶隱私,殭屍木馬消息傳播等惡意行為。
HTTP請求是從用戶測向服務端測發起的消息,一般使用HTTP GET方式或者HTTP POST方式。對於HTTP GET方法,請求消息如下所示:
「/domain-name/demo_form.jsp?name1=value1&name2=value2」
對於POST方法,請求消息如下所示:
「POST/test/demo_form.jsp HTTP/1.1,Host:w3schools.com
name1=value1&name2=value2」。
從以上可得知,不管是HTTP GET請求,還是HTTP POST請求,請求中都含有類似「name=value」欄位,這些欄位是應用程式自己添加的欄位,應用程式正是通過這些欄位來傳送用戶側的內容。該欄位是判斷HTTP請求是否是惡意行為的關鍵所在。
如何去判定從用戶側發出的HTTP請求時正常的還是惡意的,是一個需要解決的技術難題,本發明提出了一種基於貝葉斯理論的方法,能夠對HTTP請 求是否是惡意行為進行自動預測和判定。該方法主要基於貝葉斯學習分類理論,該理論已經被應用於垃圾郵件過濾等應用。貝葉斯原理是概率學的一種基本原理,根據條件概率理論和全概率理論,用先驗概率來判斷後驗概率。
技術實現要素:
有鑑於此,本發明提供了一種基於貝葉斯學習理論的惡意HTTP請求判定方法,能夠判斷從用戶終端側發起的HTTP請求時惡意的請求還是正常的請求。
為了達到上述目的,本發明的技術方案為:一種基於貝葉斯學習理論的惡意HTTP請求判定方法,該方法包括步驟如下:
S1、收集設定數量的正常HTTP請求和惡意HTTP請求。
S2、將收集的正常HTTP請求和惡意HTTP請求分別進行如下S2.1~S2.4的處理,以此獲得樣本集,具體為:
S2.1、對收集到的HTTP請求進行人工標籤分類,如果是正常的HTTP請求,則打上標籤0,如果是惡意的HTTP請求,則打上標籤1。
S2.2、對所有收集到的HTTP請求,提取其中的「name=value」欄位中的「value」字符值信息,以樣本集中所有HTTP請求中出現過的「value」字符作為特徵空間。
S2.3、將每一條HTTP請求作為一個樣本,形成樣本集,樣本包括樣本類別和樣本特徵空間:
樣本的類別為S2.1中已經人工標記好的標籤,為0或者1。
樣本特徵空間為S2.2中的特徵空間,並將樣本特徵空間中對應該樣本中出現過的所有「value」字符值的欄位標記為1,否則記為0。
S3、將步驟S2中的樣本集合作為訓練集輸入,利用貝葉斯分類學習算法,學習獲得一個二次分類器。
S4、對待判定的HTTP請求,提取判定特徵,判定特徵提取過程如下:建立與S2.2中的特徵空間一致的判定特徵空間,其中所有欄位均初始標記為0,然後將待判定的HTTP請求中出現過的所有「value」字符值對應欄位更新為1,其他保持為0不變。
S5、將S4中的待判定的HTTP請求放到S3中的二次分類器中進行預測,判定是惡意的HTTP請求還是正常的HTTP請求,並以判定結果為待判定的HTTP請求添加標籤,由此獲得判定結果。
進一步地,在S5中,獲得判定結果之後,將判定結果中添加了標籤的待判定的HTTP請求,作為新的樣本加入到訓練集中,重複步驟S2和S3,更新二次分類器,直到分類器穩定。
有益效果:
該方法基於貝葉斯學習分類理論,根據已知分類HTTP請求中「name=value」欄位出現的概率學習是否是惡意HTTP請求,然後提取未分類HTTP請求中的「name=value」欄位信息,來判斷該HTTP請求是否惡意的請求,該方法能夠快速並準確地判斷HTTP請求是否惡意。
具體實施方式
下面舉實施例,對本發明進行詳細描述。
本發明提出了一種基於貝葉斯理論的方法,能夠對HTTP請求是否是惡意行為進行自動預測和判定。該方法主要基於貝葉斯學習分類理論,該理論已經被應用於垃圾郵件過濾等應用。貝葉斯原理是概率學的一種基本原理,根據條件概率理論和全概率理論,用先驗概率來判斷後驗概率。根據已知分類HTTP請求中「name=value」欄位出現的概率學習是否是惡意HTTP請求,然後提取未分類HTTP請求中的「name=value」欄位信息,來判斷該HTTP請求是否惡意的 請求。該方法包括步驟如下:
S1.首先收集一定數量的正常HTTP請求和惡意HTTP請求;
S2.對收集的HTTP請求進行打標籤和提取特徵,作為訓練集輸入;
其中,S2還包括如下步驟:
S2.1首先對收集到的HTTP請求進行人工標籤分類,如果是正常的HTTP請求,則打上標籤0,如果是惡意的HTTP請求,則打上標籤1;
S2.2對所有收集到的HTTP請求,提取其中的「name=value」欄位中的「value」字符值信息,將所有出現過的「value」字符作為特徵空間;
S2.3將每一條HTTP請求作為一個樣本,樣本的類別為S2.1中已經人工標記好的標籤,為0或者1;樣本的特徵空間為S2.2中的特徵空間:如果在該樣本中某個「value」字符值出現過,則將該特徵欄位標記為1,否則記為0;
S2.4將每一個收集的HTTP請求樣本作為訓練集進行輸入;
S3.將步驟S2中的樣本集合作為訓練集輸入,利用貝葉斯分類學習算法,學習到一個二次分類器;
S4.對需要進行判定的HTTP請求,首先提取和計算特徵,作為一個樣本準備開始預測。特徵計算過程如下:將S2.2中的特徵空間作為特徵空間,全部標記為0,提取該HTTP請求中出現過的所有「name=value」中的「value」字符值,將這些「value」字符值對應的特徵更新為1,其他保持為0不變;
S5.將S4中的待預測樣本放到S3中學習到的二次分類器中進行預測,判定是否是惡意的HTTP請求還是正常的HTTP請求;
S6.將S5中預測的樣本,有選擇性進行人工判定確認後,作為新的樣本加入到訓練集中,重複步驟S2,S3的內容,強化分類器學習,直到分類器穩定。
綜上,以上僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均 應包含在本發明的保護範圍之內。