本公開涉及網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及異常流量檢測方法和裝置。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,工業(yè)控制系統(tǒng)逐步具有開放、互聯(lián)和通用的特性。很多工業(yè)控制協(xié)議逐漸運行于工業(yè)以太網(wǎng)上,而在工業(yè)以太網(wǎng)上,針對工業(yè)控制系統(tǒng)的攻擊也更加普遍。因此,需要提供一種能夠在網(wǎng)絡(luò)中檢測異常流量的技術(shù)方案。
相關(guān)技術(shù)中,在網(wǎng)絡(luò)中檢測異常流量的技術(shù)方案包括兩種方式:白名單檢測和黑名單檢測。在白名單檢測中,根據(jù)協(xié)議標準規(guī)范生成白名單作為行為標準,然后根據(jù)協(xié)議格式對網(wǎng)絡(luò)流量進行解析,將解析結(jié)果與白名單進行比對,如果不命中白名單則認為是異常流量。白名單方法依賴于協(xié)議標準規(guī)范,比較適用于公開的協(xié)議,但對于私有協(xié)議不適用。在黑名單檢測中,通過網(wǎng)絡(luò)安全人員分析正在使用設(shè)備的安全漏洞,形成黑名單,然后將網(wǎng)絡(luò)流量與黑名單進行比對,如果命中黑名單則認為是異常流量。黑名單方法依賴于人工分析,投入人力巨大,另外,黑名單檢測無法對未知的異常流量攻擊形成有效防范。因此,需要提供一種能夠高效并且普遍適用多種場景的異常流量檢測方法和裝置。
技術(shù)實現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本公開提供一種異常流量檢測方法和裝置。
根據(jù)本公開實施例的第一方面,提供異常流量檢測方法,包括:提取待檢測數(shù)據(jù)流的特征值;根據(jù)所述特征值生成與所述待檢測數(shù)據(jù)流對應(yīng)的待檢測向量;計算所述待檢測向量與基準向量集合中的各個基準向量間的相似度,所述基準向量對應(yīng)于正常數(shù)據(jù)流;根據(jù)所述待檢測向量與所述基準向量集合中各個基準向量間的所述相似度確定所述待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流。
可選地,所述計算所述待檢測向量與基準向量集合中的各個基準向量間的相似度包括:通過詞頻反文檔頻率tf-idf算法和向量距離算法計算所述待檢測向量與所述基準向量集合中各個基準向量間的相似度。
可選地,所述通過詞頻反文檔頻率算法和向量距離算法計算所述待檢測向量與所述基準向量集合中各個基準向量間的相似度包括:以待檢測向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算所述待檢測向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的待檢測向量;針對每個基準向量,以所述基準向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算所述基準向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的基準向量;利用向量距離算法計算tf-idf處理后的待檢測向量與tf-idf處理后的各個基準向量間距離,以所述距離作為待檢測向量與各個基準向量間相似度。
可選地,所述根據(jù)所述待檢測向量與所述基準向量集合中各個基準向量間的所述相似度確定所述待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流包括:將所述待檢測向量與所述基準向量集合中各個基準向量間的所述相似度分別與第一閾值比較;在所述待檢測向量與所述基準向量集合中的各個基準向量間的所述相似度都小于第一閾值時,確定所述待檢測數(shù)據(jù)流為異常數(shù)據(jù)流。
可選地,所述方法還包括:根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定是否將所述待添加向量作為新的基準向量添加到所述基準向量集合中。
可選地,所述根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定是否將所述待添加向量作為新的基準向量添加到所述基準向量集合中包括:利用tf-idf算法和向量距離算法計算所述待添加向量與基準向量集合中各個基準向量間的相似度;根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定所述待添加向量是否為重復(fù)向量;當所述待添加向量不為重復(fù)向量時,將所述待添加向量作為新的基準向量添加到所述基準向量集合中。
可選地,所述根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定所述待添加向量是否為重復(fù)向量包括:將待添加向量與基準向量集合中各個基準向量間的相似度分別與第二閾值比較;當待添加向量與基準向量集合中各個基準向量間的相似度都小于第二閾值時,確定所述待添加向量不為重復(fù)向量。
根據(jù)本公開實施例的第二方面,提供一種異常流量檢測裝置,包括:特征值提取模塊,用于提取待檢測數(shù)據(jù)流的特征值;向量生成模塊,用于根據(jù)所述特征值生成與所述待檢測數(shù)據(jù)流對應(yīng)的待檢測向量;相似度計算模塊,用于計算所述待檢測向量與基準向量集合中的各個基準向量間的相似度,所述基準向量對應(yīng)于正常數(shù)據(jù)流;異常判斷模塊,用于根據(jù)所述待檢測向量與所述基準向量集合中各個基準向量間的所述相似度確定所述待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流。
可選地,所述相似度計算模塊用于通過詞頻反文檔頻率tf-idf算法和向量距離算法計算所述待檢測向量與所述基準向量集合中各個基準向量間的相似度。
可選地,所述裝置還包括:基準向量添加模塊,用于根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定是否將所述待添加向量作為新的基準向量添加到所述基準向量集合中。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:通過計算待檢測向量與基準向量集合中的各個基準向量間的相似度來進行異常流量檢測,本發(fā)明中技術(shù)方案無需依賴于協(xié)議標準規(guī),能夠適用于公開協(xié)議和私有協(xié)議,并且本發(fā)明中技術(shù)方案能夠由設(shè)備自動執(zhí)行無需人員參與分析,提高了運行效率,節(jié)約了運行成本。
應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種異常流量檢測方法的流程圖。
圖2是根據(jù)一示例性實施例示出的計算相似度的過程的流程圖;
圖3是根據(jù)一示例性實施例示出的根據(jù)相似度確定異常數(shù)據(jù)流的過程的流程圖;
圖4是根據(jù)一示例性實施例示出的一種添加基準向量的過程的流程圖。
圖5是根據(jù)一示例性實施例示出的一種異常流量檢測方法的流程圖。
圖6是根據(jù)一示例性實施例示出的一種異常流量檢測裝置的結(jié)構(gòu)框圖。
圖7是根據(jù)一示例性實施例示出的一種異常流量檢測裝置的結(jié)構(gòu)框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種異常流量檢測方法的流程圖,如圖1所示,異常流量檢測方法可包括以下步驟。
在步驟s11中,提取待檢測數(shù)據(jù)流的特征值。
舉例而言,可以根據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流特點設(shè)置特征值,例如將源mac地址、源ip地址、目的mac地址、目的ip地址、傳輸協(xié)議、目的端口、應(yīng)用數(shù)據(jù)中的一者或多者設(shè)置為特征值。對于輸入的待檢測數(shù)據(jù)流提取設(shè)置的特征值。
在步驟s12中,根據(jù)特征值生成與待檢測數(shù)據(jù)流對應(yīng)的待檢測向量。
舉例而言,將提取的待檢測數(shù)據(jù)流的特征值組合成向量,生成與待檢測數(shù)據(jù)流對應(yīng)的待檢測向量。
在步驟s13中,計算待檢測向量與基準向量集合中的各個基準向量間的相似度。其中,基準向量對應(yīng)于正常數(shù)據(jù)流。
舉例而言,可以從安全網(wǎng)絡(luò)中采集正常數(shù)據(jù)流,對采集的正常數(shù)據(jù)流提取特征值,組成基準向量。對各個基準向量進行去重處理后,將相互間沒有重復(fù)關(guān)系的基準向量加入基準向量集合中。例如,可以通過計算基準向量間的相似度的方式來對基準向量進行去重。除了通過采集正常數(shù)據(jù)流的方式獲得基準向量集合外,也可以采用其他方式獲得基準向量集合,例如配置的基準向量集合等,本發(fā)明對此沒有特別限制。
針對基準向量集合中的每個基準向量,計算待檢測向量與該基準向量的相似度??梢圆捎帽绢I(lǐng)域所屬技術(shù)人員認為合適的任何方法來計算待檢測向量與該基準向量的相似度,本發(fā)明對此沒有特別限制。
在步驟s14中,根據(jù)待檢測向量與基準向量集合中各個基準向量間的相似度確定待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流。
舉例而言,可以依據(jù)待檢測向量與基準向量集合中各個基準向量間的相似度確定待檢測向量與基準向量是否相似。基準向量對應(yīng)于正常數(shù)據(jù)流,當待檢測向量與基準向量集合中至少一個基準向量間相似時,則可以確定待檢測數(shù)據(jù)流與至少一個正常數(shù)據(jù)流相似,因此判定待檢測數(shù)據(jù)流為正常數(shù)據(jù)流;如果待檢測向量與基準向量集合中所有基準向量間都不相似時,則可以確定待檢測數(shù)據(jù)流為正常數(shù)據(jù)流都不相似,因此判定待檢測數(shù)據(jù)流為異常數(shù)據(jù)流。
通過采用上述技術(shù)方案,無需依賴于協(xié)議標準規(guī)便可進行異常流量檢測,能夠適用于公開協(xié)議和私有協(xié)議,并且上述技術(shù)方案能夠由設(shè)備自動執(zhí)行無需人員參與分析,提高了運行效率,節(jié)約了運行成本。
在一實施例中,所述計算待檢測向量與基準向量集合中的各個基準向量間的相似度包括:通過tf-idf(termfrequency–inversedocumentfrequency,詞頻反文檔頻率)算法和向量距離算法計算待檢測向量與基準向量集合中各個基準向量間的相似度。
其中,tf-idf算法是一種統(tǒng)計方法,用以評估一字詞對于一個語料庫中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。需評估的詞在文件中出現(xiàn)的頻率被稱為詞頻(termfrequency,tf),反文檔頻率(inversedocumentfrequency,idf)含義為:如果語料庫中包含該字詞的文檔越少,idf越大,則說明該字詞具有較好的類別區(qū)分能力。
在本實施例中采用tf-idf算法對待檢測向量與基準向量集合中的各個基準向量進行tf-idf處理,將待檢測向量與各個基準向量分別轉(zhuǎn)換為tf-idf處理后的向量。
此外,用于計算相似度的向量距離算法可包括:余弦距離算法、歐式距離算法和馬氏距離算法中至少一種。
如圖2所示,所述通過tf-idf算法和向量距離算法計算待檢測向量與基準向量集合中各個基準向量間的相似度可包括如下步驟。
在步驟s21中,以待檢測向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算待檢測向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的待檢測向量。
在步驟s22中,針對每個基準向量,以基準向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算基準向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的基準向量。
在步驟s23中,利用向量距離算法計算tf-idf處理后的待檢測向量與tf-idf處理后的各個基準向量間距離,以該距離作為待檢測向量與各個基準向量間相似度。
在本實施例中,采用tf-idf算法對待檢測向量和基準向量進行處理,能夠?qū)⒏魈卣髦翟诜诸愡^程中的重要性做量化區(qū)分,使得重要性高的特征值在相似度計算中所占權(quán)重更大,進而增加了相似度計算的準確性。
在一實施例中,如圖3所示,所述根據(jù)待檢測向量與基準向量集合中各個基準向量間的相似度確定待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流可包括如下步驟。
在步驟s31中,將待檢測向量與基準向量集合中各個基準向量間的相似度分別與第一閾值比較。
在步驟s32中,在待檢測向量與基準向量集合中的各個基準向量間的相似度都小于第一閾值時,確定待檢測數(shù)據(jù)流為異常數(shù)據(jù)流。
在本實施例中,以第一閾值為是否相似的判別標準,當待檢測向量與基準向量集合中的各個基準向量間的相似度都小于第一閾值時,表示待檢測數(shù)據(jù)流為正常數(shù)據(jù)流都不相似,因此判定待檢測數(shù)據(jù)流為異常數(shù)據(jù)流。
在一實施例中,所述方法還可包括根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定是否將所述待添加向量作為新的基準向量添加到所述基準向量集合中。
進一步地,如圖4所示,所述根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定是否將所述待添加向量作為新的基準向量添加到所述基準向量集合中可包括如下步驟。
在步驟s41中,利用tf-idf算法和向量距離算法計算待添加向量與基準向量集合中各個基準向量間的相似度。
舉例而言,可以以待添加向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算待添加向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的待添加向量。采用類似的方式,使用tf-idf算法計算基準向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的基準向量。利用向量距離算法計算tf-idf處理后的待添加向量與tf-idf處理后的各個基準向量間距離,以該距離作為待添加向量與各個基準向量間相似度。計算相似度所需的向量距離算法可包括:余弦距離算法、歐式距離算法和馬氏距離算法中至少一種。
在步驟s42中,根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定待添加向量是否為重復(fù)向量。
其中,所述根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定待添加向量是否為重復(fù)向量可包括:將待添加向量與基準向量集合中各個基準向量間的相似度分別與第二閾值比較;當待添加向量與基準向量集合中各個基準向量間的相似度都小于第二閾值時,確定待添加向量不為重復(fù)向量。
在此,以第二閾值為判別是否重復(fù)的標準,當相似度小于第二閾值時,表示待添加向量與基準向量之間不重復(fù)。如果待添加向量與基準向量集合中各個基準向量都不重復(fù),則可以確定待添加向量不為重復(fù)向量。第二閾值可與前述用于判斷待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流時所用的第一閾值相同或不同,在此沒有特別限制。
在步驟s43中,當待添加向量不為重復(fù)向量時,將待添加向量作為新的基準向量添加到基準向量集合中。
如此,在本實施例中可以實現(xiàn)對基準向量集合的更新,并且在添加基準向量時進行重復(fù)性檢測,避免在基準向量集合中添加重復(fù)的基準向量,保證異常流量的判斷的高效性,減少運行時間。
以下以網(wǎng)絡(luò)中采集的數(shù)據(jù)流為待檢測數(shù)據(jù)流為例對本發(fā)明中方法進行說明。如圖5所示,該方法可包括如下步驟。
在步驟s502中,利用tf-idf算法和向量距離算法計算待添加向量與基準向量集合中各個基準向量間的相似度。
待添加向量
其中包括m個特征值,分別為:
d1=源mac地址
d2=源ip地址
d3=目的ip地址
d4=目的mac地址
d5=傳輸協(xié)議
d6=目的端口
d7…dm-1分別為各個應(yīng)用層數(shù)據(jù)
dm=應(yīng)用層數(shù)據(jù)長度,即d7…dm-1的個數(shù)
基準向量集合
其中,n為基準特征向量集合中基準向量的個數(shù)。
最終,
待添加向量
針對基準向量集合中的各個基準向量
按如下余弦距離計算公式,計算向量
在步驟s504中,將待添加向量與基準向量集合中各個基準向量間的相似度分別與閾值k比較。
在步驟s506中,當待添加向量與基準向量集合中各個基準向量間的相似度都小于閾值k時,將待添加向量作為新的基準向量添加到基準向量集合中。
在步驟s508中,提取待檢測數(shù)據(jù)流的特征值。
其中,特征值可包括:源mac地址、源ip地址、目的ip地址、目的mac地址、傳輸協(xié)議、目的端口和多個應(yīng)用層數(shù)據(jù),以及應(yīng)用層數(shù)據(jù)長度。
在步驟s504中,根據(jù)特征值生成與待檢測數(shù)據(jù)流對應(yīng)的待檢測向量。
例如,根據(jù)特征值生成待檢測向量
其中,
d1=源mac地址
d2=源ip地址
d3=目的ip地址
d4=目的mac地址
d5=傳輸協(xié)議
d6=目的端口
d7…dm-1分別為各個應(yīng)用層數(shù)據(jù)
dm=應(yīng)用層數(shù)據(jù)長度,即d7…dm-1的個數(shù)
在步驟s510中,通過tf-idf算法和向量距離算法計算待檢測向量與基準向量集合中各個基準向量間的相似度。
與前述對待添加向量
其中,
n為基準特征向量集合中基準向量的個數(shù)。
按余弦距離算法計算tf-idf處理后的待檢測向量
在步驟s512中,將待檢測向量與基準向量集合中各個基準向量間的相似度分別與閾值k比較。
在步驟s514中,在待檢測向量與基準向量集合中的各個基準向量間的相似度都小于閾值k時,確定待檢測數(shù)據(jù)流為異常數(shù)據(jù)流。
在確定待檢測數(shù)據(jù)流為異常數(shù)據(jù)流后,可以進行報警等處理。上述計算向量間距離的方式不限于余弦計算方式,還可以使用歐式距離、馬氏距離等計算方式。上述實施例僅用于對本發(fā)明中技術(shù)方案進行示例性說明,不用于限制本發(fā)明的保護范圍。
圖6是根據(jù)一示例性實施例示出的一種異常流量檢測裝置結(jié)構(gòu)框圖。參照圖6,該裝置包括特征值提取模塊621,向量生成模塊622、相似度計算模塊623和異常判斷模塊624。
特征值提取模塊621,用于提取待檢測數(shù)據(jù)流的特征值;
向量生成模塊622,用于根據(jù)所述特征值生成與所述待檢測數(shù)據(jù)流對應(yīng)的待檢測向量;
相似度計算模塊623,用于計算所述待檢測向量與基準向量集合中的各個基準向量間的相似度,所述基準向量對應(yīng)于正常數(shù)據(jù)流;
異常判斷模塊624,用于根據(jù)所述待檢測向量與所述基準向量集合中各個基準向量間的所述相似度確定所述待檢測數(shù)據(jù)流是否為異常數(shù)據(jù)流。
在一實施例中,相似度計算模塊623用于通過詞頻反文檔頻率tf-idf算法和向量距離算法計算所述待檢測向量與所述基準向量集合中各個基準向量間的相似度。
進一步地,相似度計算模塊623用于以待檢測向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算所述待檢測向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的待檢測向量;針對每個基準向量,以所述基準向量中各個特征值作為需評估的詞,以基準向量集合作為語料庫,使用tf-idf算法計算所述基準向量中各個特征值對應(yīng)的tf-idf評估值,生成tf-idf處理后的基準向量;利用向量距離算法計算tf-idf處理后的待檢測向量與tf-idf處理后的各個基準向量間距離,以所述距離作為待檢測向量與各個基準向量間相似度。
在一實施例中,異常判斷模塊624用于將所述待檢測向量與所述基準向量集合中各個基準向量間的所述相似度分別與第一閾值比較;在所述待檢測向量與所述基準向量集合中的各個基準向量間的所述相似度都小于第一閾值時,確定所述待檢測數(shù)據(jù)流為異常數(shù)據(jù)流。
在一實施例中,如圖7所示,所述裝置還包括:基準向量添加模塊721,用于根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定是否將所述待添加向量作為新的基準向量添加到所述基準向量集合中。
進一步地,基準向量添加模塊721用于利用tf-idf算法和向量距離算法計算所述待添加向量與基準向量集合中各個基準向量間的相似度;根據(jù)待添加向量與基準向量集合中各個基準向量間的相似度確定所述待添加向量是否為重復(fù)向量;當所述待添加向量不為重復(fù)向量時,將所述待添加向量作為新的基準向量添加到所述基準向量集合中。
進一步地,基準向量添加模塊721用于將待添加向量與基準向量集合中各個基準向量間的相似度分別與第二閾值比較;當待添加向量與基準向量集合中各個基準向量間的相似度都小于第二閾值時,確定所述待添加向量不為重復(fù)向量。
上述裝置與前述方法相對應(yīng),具體實施方式可參見前述方法中詳細描述,在此不再贅述。
關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。