[發明專利]基于詞頻統計和樸素貝葉斯融合模型的漏洞自動分類方法有效
| 申請號: | 201710495331.0 | 申請日: | 2017-06-26 |
| 公開(公告)號: | CN107273752B | 公開(公告)日: | 2020-12-11 |
| 發明(設計)人: | 胡昌振;呂坤;張皓 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06K9/62;G06F40/216;G06F40/284;H04L29/06 |
| 代理公司: | 北京理工大學專利中心 11120 | 代理人: | 仇蕾安 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 詞頻 統計 樸素 貝葉斯 融合 模型 漏洞 自動 分類 方法 | ||
1.一種基于詞頻-逆向文件頻率和樸素貝葉斯融合模型的漏洞自動分類方法,具體操作為:
步驟一、構建一個漏洞數據庫,收集漏洞記錄;
選取國家漏洞數據庫NVD作為數據源,構建一個漏洞數據庫;
所述漏洞數據庫包括:通用漏洞CVE編號、通用漏洞評分系統CVSS評分、是否需要網絡、獲取容易程度、是否需要認證、機密性影響、完整性影響、可用性影響、漏洞描述、前提特權集、結果特權集;
其中,通用漏洞CVE編號、通用漏洞評分系統CVSS評分、是否需要網絡、獲取容易程度、是否需要認證、機密性影響、完整性影響、可用性影響、漏洞描述字段是通過國家漏洞數據庫直接獲取的;前提特權集和結果特權集為空;
所述漏洞描述字段是用自然語言描述漏洞的特征,“漏洞描述”字段為“…users/attackers to…by/via…”格式;
步驟二、確定特權集類別;
特權集類別包括:超級系統管理員特權集、普通系統管理員特權集、普通用戶特權集、訪問者特權集、受限訪問者特權集;
所述超級系統管理員特權集包含系統管理員所擁有的所有權限;超級系統管理員為擁有系統最高權限的用戶帳號,超級系統管理員的權限為:管理系統設備、系統文件和系統進程,讀寫任意文件內容;攻擊者利用超級系統管理員特權集造成的危害有:植入系統級木馬,以虛假身份欺騙或直接追加、修改、刪除、創建文件內容,造成系統不可恢復性崩潰;
所述普通系統管理員特權集包含系統管理員所擁有的部分權限;普通系統管理員的權限為:管理部分系統設備、系統文件和系統進程,讀寫部分系統文件內容;攻擊者利用普通系統管理員特權集造成的危害有:通過追加、修改、刪除、創建某些系統文件內容或系統進程內存空間的數據結構,造成系統某些文件看起來不可用、系統當機或拒絕服務;
所述普通用戶特權集包含普通用戶所擁有的所有權限;普通用戶所擁有的權限為:在自己獨立私有的資源空間內追加、修改、刪除、創建個人文件;攻擊者利用普通用戶特權集造成的危害有:植入用戶級木馬,修改普通用戶的所有文件或進程空間的內容,導致用戶崩潰或不可用;
所述訪問者特權集包含受信任的系統遠程訪問者所擁有的所有權限;受信任的系統遠程訪問者所擁有的權限有:與系統交互數據、掃描系統信息;攻擊者利用訪問者特權集造成的危害有:幫助其他受限訪問者用戶完成身份驗證或發送大量數據包造成系統內存溢出;
所述受限訪問者特權集是指除去以上四種角色之外的、被系統防火墻隔離在外的不受信任的訪問者所擁有的權限;不受信任的訪問者僅擁有證實主機有效性的權限,不具備使用該系統的任何權限;攻擊者利用受限訪問者特權集不能對系統造成危害;
漏洞的前提特權集的取值集合為{“受限訪問者特權集”,“訪問者特權集”,“普通用戶特權集”},結果特權集的取值集合為{“訪問者特權集”,“普通用戶特權集”,“普通系統管理員特權集”,“超級系統管理員特權集”};
步驟三、訓練詞頻-逆向文件頻率(Term Frequency-Inverse Document Frequency,TFIDF)分類器;
針對步驟二所述的5個特權集類別,分別訓練3個前提特權集訓練器和4個結果特權集訓練器;具體操作為:
步驟3.0:從步驟一中所述漏洞數據庫中選取一部分漏洞記錄,作為訓練數據集;然后人工標注每條漏洞記錄的前提特權集和結果特權集;
步驟3.1:從訓練數據集中選取前提特權集為普通用戶特權集的300條以上數據;
步驟3.2:對每條訓練數據中的“漏洞描述”字段進行處理;“漏洞描述”字段為“…user/attackers to…by/via…”格式;將“by/via”之后的部分截取出來,存入文件d1中,每條訓練數據占一行,文件d1的行數用符號J1表示;
步驟3.3:利用開源分詞工具對文件d1進行處理,統計每個單詞出現的數量,文件d1中出現的單詞的數量用符號I1表示;
步驟3.4:通過公式(1)計算單詞的重要性;
其中,tfi,j表示第i個單詞在第j行的重要性,i和j均為正整數,并且i∈[1,I1],j∈[1,J1];ni,j表示第i個單詞在第j行中出現的次數;
步驟3.5:通過公式(2)計算第i個單詞的逆向文件頻率,用符號idfi表示;逆向文件頻率用來度量單詞的普遍性;
其中,ti表示第i個單詞;|{j:ti∈rj}|表示文件d1包含單詞ti的行數;
步驟3.6:通過公式(3)計算單詞的權重得分;
其中,TFIDFi表示第i個單詞的權重得分;
某一行的高詞語頻率,以及該詞語在整個文件內的低行數頻率,可以產生高權重的TFIDFi;因此,TFIDFi值傾向于過濾掉常見詞語,保留重要的詞語;
步驟3.7:將文件d1中出現的單詞按照TFIDFi值降序排列,取前K個詞作為特征關鍵詞,K∈[5,12];記錄特征關鍵詞及對應的TFIDFi值;并通過公式(4)計算每個關鍵詞的AVLi值,AVLi值的作用是將權重得分映射到0-1中;
步驟3.8:經過步驟3.1至3.7的操作,得到前提特權集為普通用戶特權集對應的特征關鍵詞及對應的AVLi值;
步驟3.9:從訓練數據集中選取前提特權集為訪問者特權集的300條以上數據;重復3.2至3.7的操作,得到前提特權集為訪問者特權集對應的特征關鍵詞及對應的AVLi值;
步驟3.10:從訓練數據集中選取前提特權集為受限訪問者特權集的300條以上數據;重復3.2至3.7的操作,得到前提特權集為受限訪問者特權集對應的特征關鍵詞及對應的AVLi值;
步驟3.11:從訓練數據集中選取結果特權集為超級系統管理員特權集的300條以上數據;
步驟3.12:對每條訓練數據中的“漏洞描述”字段進行處理;“漏洞描述”字段為“…user/attackers to…by/via…”格式;將“to”到“by/via”之間的部分截取出來,存入文件d2中,每條訓練數據占一行,文件d2的行數用符號J2表示;
步驟3.13:利用開源分詞工具對文件d2進行處理,統計每個單詞出現的數量,文件d2中出現的單詞的數量用符號I2表示;
步驟3.14:通過公式(5)計算單詞的重要性;
其中,tfi′,j′表示第i′個單詞在第j′行的重要性,i′和j′均為正整數,并且i∈[1,I2],j∈[1,J2];ni′,j′表示第i′個單詞在第j′行中出現的次數;
步驟3.15:通過公式(6)計算第i′個單詞的逆向文件頻率,用符號idfi′表示;逆向文件頻率用來度量單詞的普遍性;
其中,ti′表示第i′個單詞;|{j′:ti′∈rj′}|表示文件d2包含單詞ti′的行數;
步驟3.16:通過公式(7)計算單詞的權重得分;
其中,TFIDFi′表示第i′個單詞的權重得分;
步驟3.17:將文件d2中出現的單詞按照TFIDFi′值降序排列,取前K'個詞作為特征關鍵詞,K'為取自[5,12]的設定值;記錄特征關鍵詞及對應的TFIDFi′值;然后,通過公式(8)計算每個關鍵詞的權重得分映射到0-1中,得到的結果用符號AVLi'表示;
步驟3.18:經過步驟3.11至3.17的操作,得到結果特權集為超級系統管理員特權集對應的特征關鍵詞及對應的AVLi'值;
步驟3.19:從訓練數據集中選取結果特權集為普通系統管理員特權集的300條以上數據;重復3.12至3.17的操作,得到結果特權集為普通系統管理員特權集對應的特征關鍵詞及對應的AVLi'值;
步驟3.20:從訓練數據集中選取結果特權集為普通用戶特權集的300條以上數據;重復3.12至3.17的操作,得到結果特權集為普通用戶特權集對應的特征關鍵詞及對應的AVLi'值;
步驟3.21:從訓練數據集中選取結果特權集為訪問者特權集的300條以上數據;重復3.12至3.17的操作,得到結果特權集為訪問者特權集對應的特征關鍵詞及對應的AVLi'值;
步驟四、測試詞頻-逆向文件頻率分類器分類結果和準確率;
步驟4.1:從步驟一中所述漏洞數據庫中選取一條測試數據;
步驟4.2:對測試數據中的“漏洞描述”字段進行處理;“漏洞描述”字段為“…user/attackers to…by/via…”格式;將“by/via”之后的部分截取出來,并利用開源分詞工具處理,得到若干個單詞;
步驟4.3:對于步驟4.2得到的單詞,依次查找每個單詞是否在步驟3.8得到前提特權集為普通用戶特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi值并求和,結果用符號P1表示;
步驟4.4:對于步驟4.2得到的單詞,依次查找每個單詞是否在步驟3.9得到前提特權集為訪問者特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi值并求和,結果用符號P2表示;
步驟4.5:對于步驟4.2得到的單詞,依次查找每個單詞是否在步驟3.10得到前提特權集為受限訪問者特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi值并求和,結果用符號P3表示;
步驟4.6:比較P1、P2和P3的值,選取最大值對應的特權集作為該條測試數據的前提特權集的值;
步驟4.7:對測試數據中的“漏洞描述”字段進行處理;“漏洞描述”字段為“…user/attackers to…by/via…”格式;將“to”到“by/via”之間的部分截取出來,并利用開源分詞工具處理,得到若干個單詞;
步驟4.8:對于步驟4.7得到的單詞,依次查找每個單詞是否在步驟3.18得到的結果特權集為超級系統管理員特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi'值并求和,結果用符號R1表示;
步驟4.9:對于步驟4.7得到的單詞,依次查找每個單詞是否在步驟3.19得到的結果特權集為普通系統管理員特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi'值并求和,結果用符號R2表示;
步驟4.10:對于步驟4.7得到的單詞,依次查找每個單詞是否在步驟3.20得到的結果特權集為普通用戶特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi'值并求和,結果用符號R3表示;
步驟4.11:對于步驟4.7得到的單詞,依次查找每個單詞是否在步驟3.21得到的訪問者特權集對應的特征關鍵詞中出現,如果出現,則記錄該特征關鍵詞對應的AVLi'值并求和,結果用符號R4表示;
步驟4.12:比較R1、R2、R3和R4的值,選取最大值對應的特權集作為該條測試數據的結果特權集的值;
步驟4.13:在步驟一所述的漏洞數據庫中選取100條以上前提特權集為受限訪問者特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復步驟4.2至4.6的操作,得到所述100條以上測試數據的前提特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號ARP1表示;
步驟4.14:在步驟一所述的漏洞數據庫選取100條以上前提特權集為訪問者特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復4.2至4.6的操作,得到所述100條以上測試數據前提特權集的分類結果,對比預先標注的分類結果,并將準確率記錄為ARP2;
步驟4.15:在步驟一所述的漏洞數據庫選取100條以上前提特權集為普通用戶特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復4.2至4.6的操作,得到所述100條以上測試數據前提特權集的分類結果,對比預先標注的分類結果,并將準確率記錄為ARP3;
步驟4.16:利用公式(9)計算詞頻-逆向文件頻率分類器在前提特權集分類結果的平均準確率,用符號W_PRE1表示;
W_PRE1=(ARP1+ARP2+ARP3)/3 (9)
步驟4.17:在步驟一所述的漏洞數據庫中選取100條以上結果特權集為訪問者特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復步驟4.7至4.12的操作,得到所述100條以上測試數據的結果特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號ARR1表示;
步驟4.18:在步驟一所述的漏洞數據庫中選取100條以上結果特權集為普通用戶特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復步驟4.7至4.12的操作,得到所述100條以上測試數據的結果特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號ARR2表示;
步驟4.19:在步驟一所述的漏洞數據庫中選取100條以上結果特權集為普通系統管理員特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復步驟4.7至4.12的操作,得到所述100條以上測試數據的結果特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號ARR3表示;
步驟4.20:在步驟一所述的漏洞數據庫中選取100條以上結果特權集為超級系統管理員特權集的漏洞數據,作為測試數據,然后依次對選取出來的每條測試數據重復步驟4.7至4.12的操作,得到所述100條以上測試數據的結果特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號ARR4表示;
步驟4.21:利用公式(10)計算詞頻-逆向文件頻率分類器在結果特權集分類結果的平均準確率;
W_RES1=(ARR1+ARR2+ARR3+ARR4)/4 (10)
步驟五、建立樸素貝葉斯分類器;
每一個漏洞擁有前提特權集與結果特權集,所以訓練2個樸素貝葉斯分類器,一個是前提特權集訓練器和一個是結果特權集訓練器;具體操作為:
步驟5.1:在步驟一所述的漏洞數據庫中選取一部分漏洞數據作為訓練數據,構成訓練數據集,所述訓練數據集中前提特權集分別是“受限訪問者特權集”、“訪問者特權集”、“普通用戶特權集”的數據條數相同;
用符號C表示前提特權集所有的分類集合,C={c1,c2,c3},其中,c1表示“受限訪問者特權集”,c2表示“訪問者特權集”,c3表示“普通用戶特權集”;
步驟5.2:用符號VA表示漏洞數據的屬性集合,VA={a1,a2...a7},其中,a1表示通用漏洞評分系統評分,a2表示是否需要網絡,a3表示獲取容易程度,a4表示是否需要認證,a5表示機密性影響,a6表示完整性影響,a7表示可用性影響;
步驟5.3:對于步驟5.1選取的訓練數據集,統計訓練數據的前提特權集分別在c1、c2、c3中每一個屬性ax的概率分布P(ax|cy),x∈[1,7],y∈[1,3];為了防止出現P(ax|cy)的值為0時,對結果產生不利影響,設定P(ax|cy)=0時,P(ax|cy)=1;
經過步驟5.1至步驟5.3完成前提特權集分類器的建立;
步驟5.4:在步驟一所述的漏洞數據庫中選取一部分漏洞數據作為訓練數據,構成訓練數據集,所述訓練數據集中結果特權集分別是“訪問者特權集”、“普通用戶特權集”、“普通系統管理員特權集”與“超級系統管理員特權集”的數據條數相同;
用符號C'表示結果特權集所有的分類集合,C'={c′1,c′2,c′3,c′4},其中,c'1表示“訪問者特權集”,c'2表示“普通用戶特權集”,c'3表示“普通系統管理員特權集”,c'4表示“超級系統管理員特權集”;
步驟5.5:用符號VA表示漏洞數據的屬性集合,VA={a1,a2...a7},其中,a1表示通用漏洞評分系統評分,a2表示是否需要網絡,a3表示獲取容易程度,a4表示是否需要認證,a5表示機密性影響,a6表示完整性影響,a7表示可用性影響;
步驟5.6:對于步驟5.4選取的訓練數據集,統計其結果特權集分別在c′1、c′2、c′3和c'4中每一個屬性ax′的概率分布P(ax|cy′′),x∈[1,7],y′∈[1,4];為了防止出現0值對結果產生不利影響,當P(ax|c′y′)=0時,設定P(ax|c′y′)=1;
經過步驟5.4至步驟5.6完成結果特權集分類器的建立;
步驟六、測試樸素貝葉斯分類器分類結果和準確率;
步驟6.1:步驟4.1中所述測試數據,用符號VB表示;
步驟6.2:根據貝葉斯定理,利用公式(11)來計算測試數據VB的前提特權集對應于分類cy的概率值;
其中,N表示步驟5.1中所述訓練數據集中訓練樣本的數量;P(VB|cy)P(cy)利用公式(12)計算得到;
步驟6.3:為了方便表示,把步驟6.2計算得到的概率值P(cy|VB)用符號PRE_BPy表示,y∈[1,3];然后,將PRE_BPy中最大的概率值對應的分類作為測試數據VB的前提特權集的值;
步驟6.4:根據貝葉斯定理,利用公式(13)來計算測試數據VB的結果特權集對應于分類c′j的概率值;
其中,P(VB|c′y')P(c′y')利用公式(14)計算得到;
步驟6.5:為了方便表示,把通過步驟6.4計算得到的概率值P(c′y′|VB)用符號PRE_BPy′表示,y′∈[1,4];然后,將PRE_BPy′中最大的概率值對應的分類作為測試數據VB的結果特權集的值;
步驟6.6:在步驟一提到的漏洞數據庫中選取300條以上漏洞數據,作為測試數據;其中前提特權集屬于受限訪問者特權集、訪問者特權集、普通用戶特權集的測試數據數據條數相同;
步驟6.7:依次對選取出來的每條測試數據重復步驟6.2至6.3的操作,得到所述300條以上測試數據的前提特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號W_PRE2表示;
步驟6.8:在步驟一提到的漏洞數據庫中選取400條以上已分類的漏洞數據,作為測試數據;其中結果特權集屬于訪問者特權集、普通用戶特權集、普通系統管理員特權集、超級系統管理員特權集的測試數據數據條數相同;
步驟6.9:依次對選取出來的每條測試數據重復步驟6.4至6.5的操作,得到所述400條以上測試數據的結果特權集的分類結果,對比預先標注的分類結果,計算準確率,用符號W_RES2表示;
步驟七、分類器融合;
對于測試數據VB,通過計算它在兩個分類器中前提特權集與結果特權集的分類結果,通過準確率作為得數權重將兩個結果進行融合;具體為:
步驟7.1:對于測試數據VB,通過公式(15)計算它的前提特權集的分類結果,并從3個F_PREq值中選擇最大值,并把所述最大值對應的分類作為測試數據VB的前提特權集;
F_PREq=PRE_AVLq×W_PRE1+PRE_BPq×W_PRE2 (15)
其中,q∈[1,3];
步驟7.2:對于測試數據VB,通過公式(16)計算它的結果特權集的分類結果,并從4個F_RESq'值中選擇最大值,并把所述最大值對應的分類作為測試數據VB的結果特權集;
F_RESq'=RES_AVLq'×W_RES1+RES_BPq'×W_RES2 (16)
其中,q'∈[1,4];
經過上述步驟的操作,即完成對測試數據VB的自動分類。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710495331.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于多模式匹配的安全漏洞在線發現方法
- 下一篇:一種截屏防泄漏方法及裝置





