一種流量檢測規則的生成方法及裝置與流程
2023-06-10 12:33:57 1

本發明涉及網際網路技術領域,特別是涉及一種流量檢測規則的生成方法及裝置。
背景技術:
隨著網際網路技術的普及,各種網絡應用層出不窮,安全威脅和網絡濫用也隨之與日俱增,這對快速、可靠地識別出各種流量提出了要求。
目前,一般採用DPI(Deep Packet Inspection,深層數據包檢測技術)對流量進行檢測,深層數據包檢測技術檢測流量的規則由以下方式生成:人工對攻擊流量的負載進行特徵提取,將提取到的特徵輸入檢測引擎中,檢測引擎依據自身規則語法,由提取的特徵生成流量檢測規則。
根據上述方法生成流量檢測規則時,提取到的特徵越多,流量檢測結果越準確,為了提高檢測結果的準確度,需要人工提取大量的特徵,這使得流量檢測規則的生成耗費大量的時間。
技術實現要素:
本發明實施例的目的在於提供一種流量檢測規則的生成方法及裝置,以減少流量檢測規則生成耗費的時間。具體技術方案如下:
一方面,本發明實施例公開了一種流量檢測規則的生成方法,應用於電子設備,所述方法包括:
獲取針對預設漏洞的至少兩條攻擊流量的流量文件;所述流量文件至少包括攻擊流量中的負載數據;
根據所述攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方;
從所有所述流量文件中提取所有請求方的第一負載數據;
將所有所述第一負載數據作為第一輸入源,計算得到所有所述第一負載數據的第一最長公共子序列;
將所述第一最長公共子序列合併為第一字節串;
將所述第一字節串分別與各個所述第一負載數據作為第二輸入源,計算得到所有所述第一負載數據的第一最長公共子序列集合;
將所述第一最長公共子序列集合確定為第一特徵;
根據所述第一特徵,生成第一流量檢測規則。
另一方面,本發明實施例還公開了一種流量檢測規則的生成裝置,應用於電子設備,所述裝置包括:
獲取單元,用於獲取針對預設漏洞的至少兩條攻擊流量的流量文件;所述流量文件至少包括攻擊流量中的負載數據;
第一確定單元,用於根據所述攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方;
提取單元,用於從所有所述流量文件中提取所有請求方的第一負載數據;
第一計算單元,用於將所有所述第一負載數據作為第一輸入源,計算得到所有所述第一負載數據的第一最長公共子序列;
合併單元,用於將所述第一最長公共子序列合併為第一字節串;
第二計算單元,用於將所述第一字節串分別與各個所述第一負載數據作為第二輸入源,計算得到所有所述第一負載數據的第一最長公共子序列集合;
第二確定單元,用於將所述第一最長公共子序列集合確定為第一特徵;
第一生成單元,用於根據所述第一特徵,生成第一流量檢測規則。
本發明實施例提供了一種流量檢測規則的生成方法及裝置,電子設備獲取針對預設漏洞的至少兩條攻擊流量的流量文件,該流量文件包括攻擊流量中的負載數據,根據攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方,從所有流量文件中提取所有請求方的第一負載數據;將所有第一負載數據作為第一輸入源,計算得到第一負載數據的第一最長公共子序列;將第一最長公共子序列合併為第一字節串,將第一字節串分別與各個第一負載數據作為第二輸入源,計算得到第一負載數據的第一最長公共子序列集合;將第一最長公共子序列集合確定為第一特徵;根據第一特徵,生成第一流量檢測規則。可見,本發明實施例中,生成流量檢測規則時,特徵的提取無需人工參與,而是由電子設備提取特徵,減少了流量檢測規則生成耗費的時間。當然,實施本發明的任一產品或方法必不一定需要同時達到以上所述的所有優點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種流量檢測規則的生成方法的一種流程示意圖;
圖2為本發明實施例提供的一種流量檢測規則的生成方法的另一種流程示意圖;
圖3為基於圖2所示實施例的一種流量檢測規則的生成方法的部分流程示意圖;
圖4為本發明實施例提供的一種流量檢測規則的生成裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
下面通過具體實施例,對本發明進行詳細說明。
參考圖1,圖1本發明實施例提供的一種流量檢測規則的生成方法的一種流程示意圖,應用於電子設備,該方法包括:
S101:獲取針對預設漏洞的至少兩條攻擊流量的流量文件;所述流量文件至少包括攻擊流量中的負載數據;
上述預設漏洞為已知漏洞,流量文件可以為pcap文件。當需要生成針對某一已知漏洞的攻擊流量的流量檢測規則時,可以將該已知漏洞確定為預設漏洞,多次運行該預設漏洞的利用程序,獲得至少兩條攻擊流量,進而生成pcap文件。現有技術中,在獲取到攻擊流量後,可以默認的生成pcap文件,此處不再贅述。
當然,針對預設漏洞的攻擊流量可能已經事先獲得了,也就是,已經事先生成了針對預設漏洞的至少兩條攻擊流量的pcap文件,此時,用戶可以直接對已獲得的攻擊流量的pcap文件進行分類,獲得至少兩條攻擊流量的pcap文件就可以了。
另外,為了保證生成的流量檢測規則合理可靠,獲得的至少兩條攻擊流量的流量文件可以為不同時間的攻擊流量的流量文件。
S102:根據所述攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方;
為了便於分析攻擊流量中的負載數據,需要確定每一攻擊流量的請求方和應答方。
一般的,對於每一攻擊流量,當該攻擊流量對應的協議為TCP(Transmission Control Protocol,傳輸控制協議)時,可以確定該攻擊流量中發送第一個握手報文的一方為請求方,另一方為應答方;當該攻擊流量對應的協議為UDP(User Datagram Protocol,用戶數據報協議)時,確定該攻擊流量中發送第一個報文的一方為請求方,另一方為應答方。
S103:從所有所述流量文件中提取所有請求方的第一負載數據;
S104:將所有所述第一負載數據作為第一輸入源,計算得到所有所述第一負載數據的第一最長公共子序列;
S105:將所述第一最長公共子序列合併為第一字節串;
這裡,字節串為連續的字節,最長公共子序列為:一個數列,如果字節串分別是兩個或多個已知序列的連續子字節串,所有子字節串組成一個數列,且所有符合此條件的數列中最長的,稱為已知序列的最長公共子串。例如,當前有3個已知序列,分別為:ABCED、ABFCDH、ABGCFD;其中,這3個已知序列的連續子字節串有:AB、C、D,這些連續子字節串組成一個數列AB、C、D,可以確定這3個已知序列的最長公共子序列為[AB,C,D],合併最長公共子序列,得到字節串為ABCD。
需要說明的是,最長公共子序列的求解過程與現有技術相同,此處不再贅述。另外,第一最長公共子序列為請求方的負載數據的共同特徵。
例如,當前有3個流量文件,分別為1.pcap、2.pcap和3.pcap,從這3個流量文件提取出請求方的第一負載數據有:req_data.1、req_data.2和req_data.3,將req_data.1、req_data.2和req_data.3合成為一個集合,例如req_set={req_data.1,req_data.2,req_data.3},將req_set作為第一輸入源,計算得到第一負載數據的第一最長公共子序列,合併第一最長公共子序列得到第一字節串LCS1。
S106:將所述第一字節串分別與各個所述第一負載數據作為第二輸入源,計算得到所有所述第一負載數據的第一最長公共子序列集合;
仍以S105中的例子進行說明,第一字節串為LCS1,則可以以[LCS1,req_data.1]、[LCS1,req_data.2]和[LCS1,req_data.3]作為第二輸入源,計算得到所有第一負載數據的最長公共子序列,此時不對得到的最長公共子序列進行合併,可以理解為得到的是第一最長公共子序列集合。
S107:將所述第一最長公共子序列集合確定為第一特徵;
在本發明的一個實施例中,為了提高流量檢查規則生成的速度,提高根據流量檢測規則檢測流量的準確性,可以去除第一最長公共子序列集合中不能在所有第一負載數據中查找到的元素。例如,第一最長公共子序列集合中包括:{AB,C,DEF,GH,IK},第一負載數據有:{ABDEFGCHIK,ABCDEFIKGH},此時,第一最長公共子序列集合中的元素GH在第一負載數據ABDEFGCH無法獲得,因此將元素GH從第一最長公共子序列集合中去除,獲得第一最長公共子序列集合為:{AB,C,DEF,IK}。
另外,為了提高流量檢查規則生成的速度,提高根據流量檢測規則檢測流量的準確性,考慮到長度過長的元素可能為無效的元素,長度過短的元素對最終的結果影響較小,可以預先設置一個針對元素長度的範圍,去除第一最長公共子序列集合中長度不在預設範圍內的元素。仍以上面的例子進行說明,將元素GH從第一最長公共子序列集合中去除後,獲得第一最長公共子序列集合為:{AB,C,DEF,IK},若預設範圍為:元素長度大於1且元素長度小於3,則可以去除第一最長公共子序列集合中的為元素C和元素DEF,獲得第一最長公共子序列集合為:{AB,IK}。
在去除了最長公共子序列集合中不能在所有負載數據中查找到的元素和最長公共子序列集合中長度不在預設範圍內的元素後,可以確定最終第一最長公共子序列,進而將最終第一最長公共子序列集合確定為第一特徵。如上面舉例,可以將第一最長公共子序列集合{AB,IK}確定為最終第一最長公共子序列集合,進而將{AB,IK}確定為第一特徵。
S108:根據所述第一特徵,生成第一流量檢測規則。
在確定了第一特徵後,可以將第一特徵輸入到檢測引擎中,檢測引擎依據自身的規則語法,由第一特徵生成針對預設漏洞的第一流量檢測規則。該第一流量檢測規則為針對請求方的負載數據的流量檢測規則,可以對一條流量中的負載數據進行檢測,以確定該流量是否為攻擊流量。
為了準確的檢測流量是否為攻擊流量,還可以生成針對應答方的負載數據的流量檢測規則。在本發明的其他實施例中還提供了針對應答方的負載數據的流量檢測規則的生成方法,可參考圖2,在圖1的基礎上,確定每一攻擊流量的請求方和應答方之後,上述流量檢測規則的生成方法還可以包括:
S201:從所有所述流量文件中提取所有應答方的第二負載數據;
S202:將所有所述第二負載數據作為第三輸入源,計算得到所有所述第二負載數據的第二最長公共子序列;
這裡,第二最長公共子序列為應答方的負載數據的共同特徵。
S203:將所述第二最長公共子序列合併為第二字節串;
仍以S105中的例子進行說明,從3個流量文件提取出應答方的第二負載數據有:res_data.1、res_data.2和res_data.3,將res_data.1、res_data.2和res_data.3合成為一個集合,例如res_set={res_data.1,res_data.2,res_data.3},將res_set作為第三輸入源,計算得到第二負載數據的第二最長公共子序列,合併第二最長公共子序列得到第二字節串LSC2。
S204:將所述第二字節串分別與各個所述第二負載數據作為第四輸入源,計算得到所有所述第二負載數據的第二最長公共子序列集合;
以S203中的例子進行說明,第二字節串為LCS2,分別以[LCS2,res_data.1]、[LCS2,res_data.2]和[LCS2,res_data.3]作為第四輸入源,計算得到所有第二負載數據的最長公共子序列,此時不對得到的最長公共子序列進行合併,可以理解為得到的是第二最長公共子序列集合。
S205:將所述第二最長公共子序列集合確定為第二特徵;
在本發明的一個實施例中,為了提高流量檢查規則生成的速度,提高根據流量檢測規則檢測流量的準確性,可以去除第二最長公共子序列集合中不能在所有第二負載數據中查找到的元素。另外,考慮到長度過長的元素可能為無效的元素,長度過短的元素對最終的結果影響較小,還可以預先設置一個針對元素長度的範圍,去除第二最長公共子序列集合中長度不在預設範圍內的元素。
在去除了最長公共子序列集合中不能在所有負載數據中查找到的元素和最長公共子序列集合中長度不在預設範圍內的元素後,可以確定最終第二最長公共子序列,進而將最終第二最長公共子序列集合確定為第二特徵。
這種情況下,S108可以為:根據所述第一特徵生成第一流量檢測規則,並根據所述第二特徵生成二流量檢測規則。
一般的,分別將第一特徵和第二特徵輸入到檢測引擎中,檢測引擎依據自身的規則語法,由第一特徵生成針對預設漏洞的第一流量檢測規則,由第二特徵生成針對預設漏洞的第二流量檢測規則。
需要說明的是,在生成第一流量檢測規則和第二流量檢測規則後,可以同時採用這兩個流量檢測規則對流量進行檢測,以保證準確地檢測出攻擊流量;另外,也可以從這兩個流量檢測規則選擇一個較為準確的流量檢測規則,對流量進行檢測,以提高檢測的速度。這裡,可以根據生成流量檢測規則的特徵,確定出較為準確地流量檢測規則,例如:第一流量檢測規則根據3個特徵生成,第二流量檢測規則根據2個特徵生成,3>2,則可以確定第一流量檢測規則較為準確;再如,生成第一流量檢測規則的第一特徵長度為10,生成第二流量檢測規則的第二特徵長度為8,10>8,則可以確定第一流量檢測規則較為準確。當然,也可以採用其他方式確定較為準確地流量檢測規則,本發明實施例對此不進行限定。
為了提高根據流量檢測規則檢測流量的準確性,可以提取更多的特徵,在本發明的其他實施例中,參考圖3,在圖2的基礎上,確定每一攻擊流量的請求方和應答方之後,上述流量檢測規則的生成方法還可以包括:
S301:從所有所述流量文件中提取請求方和應答方發送的報文的源埠、目的埠和應用層協議,分別生成請求方和應答方的源埠集合、目的埠集合和應用層協議集合;
一般的,可以從所有流量文件中提取請求方發送的報文的源埠、目的埠和應用層協議,確定請求方的源埠集合、目的埠集合和應用層協議集合;從所有流量文件中提取應答方發送的報文的源埠、目的埠和應用層協議,確定應答方的源埠集合、目的埠集合和應用層協議集合。
仍以S105中的例子進行說明,從3個流量文件中提取請求方發送的報文的源埠:req_src_port1、req_src_port2、req_src_port3;從3個流量文件中提取請求方發送的報文的目的埠:req_dst_port1、req_dst_port2、req_dst_port3;從3個流量文件中提取請求方發送的報文的應用層協議:req_proto1、req_proto2、req_proto3;此時可以確定請求方的源埠集合為req_src_port_set={req_src_port1,req_src_port2,req_src_port3},請求方的目的埠集合為req_dst_port_set={req_dst_port1,req_dst_port2,req_dst_port3},請求方的應用層協議集合為req_proto_set={req_proto1,req_proto2,req_proto3};
從3個流量文件中提取應答方發送的報文的源埠:res_src_port1、res_src_port2、res_src_port3;從3個流量文件中提取應答方發送的報文的目的埠:res_dst_port1、res_dst_port2、res_dst_port3;從3個流量文件中提取應答方發送的報文的應用層協議:res_proto1、res_proto2、res_proto3;此時可以確定應答方的源埠集合為res_src_port_set={res_src_port1,res_src_port2,res_src_port3},應答方的目的埠集合為res_dst_port_set={res_dst_port1,res_dst_port2,res_dst_port3},應答方的應用層協議集合為res_proto_set={res_proto1,res_proto2,res_proto3}。
S302:分別判斷請求方的源埠集合中所有的源埠、目的埠集合中所有的目的埠和應用層協議集合中所有的應用層協議是否相同;如果有集合中的所有信息都相同的,將所有信息都相同的集合中的信息添加至請求方的報文信息中;如果有集合中的所有信息不都相同的,將所有信息不都相同的集合刪除;
若一個集合中所有的信息都相同,則可以確定該集合中的信息可以作為生成流量檢測規則的一個特徵。
以S301中的例子進行說明,若req_src_port_set={req_src_port1,req_src_port2,req_src_port3}中req_src_port1、req_src_port2、req_src_port3都相同,則可以將req_src_port1、req_src_port2、req_src_port3中任一值添加至請求方的報文信息中;若req_src_port1、req_src_port2、req_src_port3不都相同,可以刪除req_src_port_set;
若req_dst_port_set={req_dst_port1,req_dst_port2,req_dst_port3}中req_dst_port1、req_dst_port2、req_dst_port3都相同,則可以將req_dst_port1、req_dst_port2、req_dst_port3中任一值添加至請求方的報文信息中;若req_dst_port1、req_dst_port2、req_dst_port3不都相同,可以刪除req_dst_port_set;
若req_proto_set={req_proto1,req_proto2,req_proto3}中req_proto1、req_proto2、req_proto3都相同,則可以將req_proto1、req_proto2、req_proto3中任一值添加至請求方的報文信息中;若req_proto1,req_proto2,req_proto3不都相同,可以刪除req_proto_set。
S303:分別判斷應答方的源埠集合中所有的源埠、目的埠集合中所有的目的埠和應用層協議集合中所有的應用層協議是否相同;如果有集合中的所有信息都相同的,將所有信息都相同的集合中的信息添加至應答方的報文信息中;如果有集合中的所有信息不都相同的,將所有信息不都相同的集合刪除;
以S301中的例子進行說明,若res_src_port_set={res_src_port1,res_src_port2,res_src_port3}中res_src_port1、res_src_port2、res_src_port3都相同,則可以將res_src_port1、res_src_port2、res_src_port3中任一值添加至應答方的報文信息中;若res_src_port1、res_src_port2、res_src_port3不都相同,可以刪除res_src_port_set;
若res_dst_port_set={res_dst_port1,res_dst_port2,res_dst_port3}中res_dst_port1、res_dst_port2、res_dst_port3都相同,則可以將res_dst_port1、res_dst_port2、res_dst_port3中任一值添加至應答方的報文信息中;若res_dst_port1、res_dst_port2、res_dst_port3不都相同,可以刪除res_dst_port_set;
若res_proto_set={res_proto1,res_proto2,res_proto3}中res_proto1、res_proto2、res_proto3都相同,則可以將res_proto1、res_proto2、res_proto3中任一值添加至應答方的報文信息中;若res_proto1,res_proto2,res_proto3不都相同,可以刪除res_proto_set。
需要說明的是,S304可以在S303之前的執行,也可以在S303之後執行,也可以與S303同時執行,本發明實施例對此不進行限定。
S304:將請求方的報文信息確定為第三特徵,將應答方的報文信息確定為第四特徵;
例如,應答方的報文信息中包括:res_src_port1、res_dst_port1、res_proto1,則將res_src_port1、res_dst_port1、res_proto1確定為第四特徵。
這種情況下,S108可以為:
根據所述第一特徵和所述第三特徵生成第一流量檢測規則,並根據所述第二特徵和所述第四特徵生成第二流量檢測規則。
一般的,將第一特徵和第三特徵輸入到檢測引擎中,檢測引擎依據自身的規則語法,由第一特徵和第三特徵生成針對預設漏洞的第一流量檢測規則;將第二特徵和第四特徵輸入到檢測引擎中,檢測引擎依據自身的規則語法,由第二特徵和第四特徵生成針對預設漏洞的第二流量檢測規則。
應用上述實施例,電子設備獲取針對預設漏洞的至少兩條攻擊流量的流量文件,該流量文件包括攻擊流量中的負載數據,根據攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方,從所有流量文件中提取所有請求方的第一負載數據;將所有第一負載數據作為第一輸入源,計算得到第一負載數據的第一最長公共子序列;將第一最長公共子序列合併為第一字節串,將第一字節串分別與各個第一負載數據作為第二輸入源,計算得到第一負載數據的第一最長公共子序列集合;將第一最長公共子序列集合確定為第一特徵;根據第一特徵,生成第一流量檢測規則。可見,本發明實施例中,生成流量檢測規則時,特徵的提取無需人工參與,而是由電子設備提取特徵,減少了流量檢測規則生成耗費的時間。
參考圖4,圖4為本發明實施例提供的一種流量檢測規則的生成裝置的結構示意圖,應用於電子設備,該裝置包括:
獲取單元401,用於獲取針對預設漏洞的至少兩條攻擊流量的流量文件;所述流量文件至少包括攻擊流量中的負載數據;
第一確定單元402,用於根據所述攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方;
提取單元403,用於從所有所述流量文件中提取所有請求方的第一負載數據;
第一計算單元404,用於將所有所述第一負載數據作為第一輸入源,計算得到所有所述第一負載數據的第一最長公共子序列;
合併單元405,用於將所述第一最長公共子序列合併為第一字節串;
第二計算單元406,用於將所述第一字節串分別與各個所述第一負載數據作為第二輸入源,計算得到所有所述第一負載數據的第一最長公共子序列集合;
第二確定單元407,用於將所述第一最長公共子序列集合確定為第一特徵;
第一生成單元408,用於根據所述第一特徵,生成第一流量檢測規則。
在本發明的其他實施例中,所述獲取單元401,具體可以用於:
運行預設漏洞的利用程序,獲取至少兩條攻擊流量;生成針對每一攻擊流量的流量文件。
在本發明的其他實施例中,所述第一確定單402元,具體可以用於:
對於每一攻擊流量,當該攻擊流量對應的協議為傳輸控制協議TCP時,確定發送第一個握手報文的一方為請求方,另一方為應答方;當該攻擊流量對應的協議為用戶數據報協議UDP時,確定發送第一個報文的一方為請求方,另一方為應答方。
在本發明的其他實施例中,所述提取單元403,還可以用於從所有所述流量文件中提取所有應答方的第二負載數據;
所述第一計算單元404,還可以用於將所有所述第二負載數據作為第三輸入源,計算得到所有所述第二負載數據的第二最長公共子序列;
所述合併單元405,還可以用於將所述第二最長公共子序列合併為第二字節串;
所述第二計算單元406,還可以用於將所述第二字節串分別與各個所述第二負載數據作為第四輸入源,計算得到所有所述第二負載數據的第二最長公共子序列集合;
所述第二確定單元407,還可以用於將所述第二最長公共子序列集合確定為第二特徵;
所述第一生成單元408,具體可以用於:
根據所述第一特徵生成第一流量檢測規則,並根據所述第二特徵生成二流量檢測規則。
在本發明的其他實施例中,所述第二確定單元407,具體可以用於:
去除所述第一最長公共子序列集合中不能在所有所述第一負載數據中查找到的元素,以及所述第一最長公共子序列集合中長度不在預設範圍內的元素,確定最終第一最長公共子序列集合,將所述最終第一最長公共子序列集合確定為第一特徵;
去除所述第二最長公共子序列集合中不能在所有所述第二負載數據中查找到的元素,以及所述第二最長公共子序列集合中長度不在預設範圍內的元素,確定最終第二最長公共子序列集合,將所述最終第二最長公共子序列集合確定為第二特徵。
在本發明的其他實施例中,所述流量文件中還可以包括:攻擊流量中的請求方和應答方發送的報文的源埠、目的埠、應用層協議;
這種情況下,所述裝置還可以包括:
第二生成單元(圖4中未示出),用於在根據所述攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方之後,從所有所述流量文件中提取請求方和應答方發送的報文的源埠、目的埠和應用層協議,分別生成請求方和應答方的源埠集合、目的埠集合和應用層協議集合;
第三確定單元(圖4中未示出),用於分別判斷請求方的源埠集合中所有的源埠、目的埠集合中所有的目的埠和應用層協議集合中所有的應用層協議是否相同;如果有集合中的所有信息都相同的,將所有信息都相同的集合中的信息添加至請求方的報文信息中;如果有集合中的所有信息不都相同的,將所有信息不都相同的集合刪除;
第四確定單元(圖4中未示出),用於分別判斷應答方的源埠集合中所有的源埠、目的埠集合中所有的目的埠和應用層協議集合中所有的應用層協議是否相同;如果有集合中的所有信息都相同的,將所有信息都相同的集合中的信息添加至應答方的報文信息中;如果有集合中的所有信息不都相同的,將所有信息不都相同的集合刪除;
所述第二確定單元407,還可以用於將請求方的報文信息確定為第三特徵,將應答方的報文信息確定為第四特徵;
所述第一生成單元408,具體可以用於:
根據所述第一特徵和所述第三特徵生成第一流量檢測規則,並根據所述第二特徵和所述第四特徵生成第二流量檢測規則。
應用上述實施例,電子設備獲取針對預設漏洞的至少兩條攻擊流量的流量文件,該流量文件包括攻擊流量中的負載數據,根據攻擊流量的協議類型,確定每一攻擊流量的請求方和應答方,從所有流量文件中提取所有請求方的第一負載數據;將所有第一負載數據作為第一輸入源,計算得到第一負載數據的第一最長公共子序列;將第一最長公共子序列合併為第一字節串,將第一字節串分別與各個第一負載數據作為第二輸入源,計算得到第一負載數據的第一最長公共子序列集合;將第一最長公共子序列集合確定為第一特徵;根據第一特徵,生成第一流量檢測規則。可見,本發明實施例中,生成流量檢測規則時,特徵的提取無需人工參與,而是由電子設備提取特徵,減少了流量檢測規則生成耗費的時間。
對於裝置實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均採用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護範圍內。