網(wǎng)絡(luò)攻擊抓包方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及攻擊防范技術(shù)領(lǐng)域,尤其涉及網(wǎng)絡(luò)攻擊抓包方法及裝置。
【背景技術(shù)】
[0002] 如何快速準(zhǔn)確地處理用戶上報的IPS(Intrusion Prevention System,入侵防御 系統(tǒng))、IDS (Intrusion Detection System,入侵檢測系統(tǒng))等安全設(shè)備檢測出的攻擊事件 (或者叫攻擊日志)一直是個困擾各個安全廠商的難題。因為雖然這些安全設(shè)備一般都帶 有抓包功能,可以配置在檢測到特定攻擊時進(jìn)行抓包,但是客戶在使用過程中由于缺乏經(jīng) 驗或者出于性能的考慮沒有開啟抓包功能,或者只針對部分攻擊開啟了抓包功能,這將導(dǎo) 致檢測到的大量攻擊事件沒有實時抓取到相關(guān)數(shù)據(jù)包。當(dāng)客戶對某些攻擊事件或者攻擊日 志有疑問需要廠商詳細(xì)說明或者分析時,廠商安全研究人員往往由于缺少實時數(shù)據(jù)包而很 難處理。
[0003] 現(xiàn)有的安全設(shè)備抓包技術(shù)主要是基于設(shè)備檢測的規(guī)則庫提供統(tǒng)一的抓包功能,并 由客戶自行配置。例如目前設(shè)備上使用的規(guī)則庫一共有1000條攻擊規(guī)則,用戶針對這1000 條規(guī)則分別配置在規(guī)則命中時是否實時進(jìn)行抓包。
[0004] 現(xiàn)有技術(shù)主要存在兩個問題:
[0005] 第一,開啟實時抓包時對設(shè)備性能有一定影響,尤其是一些頻繁命中的規(guī)則開啟 實時抓包后設(shè)備會進(jìn)行大量的抓包,這將給設(shè)備性能造成較大的影響。而如果只配置針對 部分規(guī)則開啟抓包,則會導(dǎo)致未開啟抓包功能的規(guī)則無法實時抓包,一旦客戶對該規(guī)則的 命中事件有疑問需要確認(rèn)是否是攻擊時廠商會很難處理。
[0006] 第二,現(xiàn)有的抓包功能比較粗礦,一旦開啟抓包除非客戶人為關(guān)閉抓包功能,否則 一旦有開啟了抓包功能的規(guī)則被命中,設(shè)備就會進(jìn)行無條件抓包。這樣極可能會有大量重 復(fù)抓包,既給設(shè)備在性能上帶來了影響,也給數(shù)據(jù)包分析人員帶來了諸多不便。比如將所有 SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)注入或者掃描探測的規(guī)則開啟抓包功 能,此時如果有一個惡意攻擊者采用相關(guān)攻擊或者掃描工具對服務(wù)器進(jìn)行了掃描,則設(shè)備 可能會抓取到幾千甚至上萬個SQL注入或者掃描探測的報文。這將對分析攻擊報文造成不 便。
【發(fā)明內(nèi)容】
[0007] 本申請實施例提供網(wǎng)絡(luò)攻擊抓包方法及裝置。
[0008] 本申請的技術(shù)方案是這樣實現(xiàn)的:
[0009] -種網(wǎng)絡(luò)攻擊抓包方法,該方法包括:
[0010] 當(dāng)設(shè)備確定數(shù)據(jù)流命中攻擊規(guī)則時,判斷該攻擊規(guī)則是否配置了抓包策略且該抓 包策略開啟,若是,則根據(jù)該抓包策略判斷第一階段是否需要抓包,若需要,則對該數(shù)據(jù)流 進(jìn)行連續(xù)抓包,當(dāng)連續(xù)抓包次數(shù)達(dá)到預(yù)設(shè)第一閾值時,根據(jù)該抓包策略,判斷是否需要進(jìn)行 第二階段抓包,若需要進(jìn)行,則繼續(xù)對該數(shù)據(jù)流進(jìn)行間斷性抓包。
[0011] -種網(wǎng)絡(luò)攻擊抓包裝置,該裝置包括:
[0012] 命中檢測模塊:當(dāng)接收到數(shù)據(jù)流時,檢測數(shù)據(jù)流是否命中攻擊規(guī)則;
[0013] 抓包模塊:當(dāng)命中檢測模塊檢測到數(shù)據(jù)流命中攻擊規(guī)則時,判斷該攻擊規(guī)則是否 配置了抓包策略且該抓包策略開啟,若是,則根據(jù)該抓包策略判斷第一階段是否需要抓包, 若需要,則對該數(shù)據(jù)流進(jìn)行連續(xù)抓包,當(dāng)連續(xù)抓包次數(shù)達(dá)到預(yù)設(shè)第一閾值時,根據(jù)該抓包策 略,判斷是否需要進(jìn)行第二階段抓包,若需要進(jìn)行,則繼續(xù)對該數(shù)據(jù)流進(jìn)行間斷性抓包。
[0014] 可見,本申請實施例中,當(dāng)設(shè)備確定數(shù)據(jù)流命中攻擊規(guī)則時,若該攻擊規(guī)則配置了 抓包策略且該抓包策略開啟,則根據(jù)該抓包策略判斷第一階段是否需要抓包,若需要,則對 該數(shù)據(jù)流進(jìn)行連續(xù)抓包,當(dāng)連續(xù)抓包次數(shù)達(dá)到預(yù)設(shè)第一閾值時,根據(jù)該抓包策略,判斷是否 需要進(jìn)行第二階段抓包,若需要進(jìn)行,則繼續(xù)對該數(shù)據(jù)流進(jìn)行間斷性抓包,從而既實現(xiàn)了 有選擇性地抓包,減少了對設(shè)備資源的消耗,且控制了抓包數(shù)量,提高了抓取到的包的可讀 性。
【附圖說明】
[0015] 圖1為本申請一實施例提供的網(wǎng)絡(luò)攻擊抓包方法流程圖;
[0016] 圖2為本申請另一實施例提供的網(wǎng)絡(luò)攻擊抓包方法流程圖;
[0017] 圖3為本申請實施例提供的網(wǎng)絡(luò)攻擊抓包裝置的組成示意圖。
【具體實施方式】
[0018] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對 本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0019] 圖1為本申請一實施例提供的網(wǎng)絡(luò)攻擊抓包方法流程圖,其具體步驟如下:
[0020] 步驟101 :設(shè)備接收數(shù)據(jù)流。
[0021] 步驟102 :當(dāng)設(shè)備確定數(shù)據(jù)流命中攻擊規(guī)則時,判斷該攻擊規(guī)則是否配置了抓包 策略且該抓包策略開啟,若是,則根據(jù)該抓包策略判斷第一階段是否需要抓包,若需要,則 對該數(shù)據(jù)流進(jìn)行連續(xù)抓包,當(dāng)連續(xù)抓包次數(shù)達(dá)到預(yù)設(shè)第一閾值時,根據(jù)該抓包策略,判斷是 否需要進(jìn)行第二階段抓包,若需要進(jìn)行,則繼續(xù)對該數(shù)據(jù)流進(jìn)行間斷性抓包。
[0022] 一種實施例中,對該數(shù)據(jù)流進(jìn)行間斷性抓包包括:
[0023] 當(dāng)數(shù)據(jù)流命中攻擊規(guī)則次數(shù)達(dá)到預(yù)設(shè)第二閾值a后,抓取命中的第X個包,其中X 滿足以下條件:
[0024] a+nb<X a+nb+c
[0025] 其中,b為預(yù)設(shè)的第一命中次數(shù)閾值,c為預(yù)設(shè)的第一抓包數(shù)量,η為大于0的正整 數(shù),且nc < d,d為預(yù)設(shè)的第一抓包總數(shù);
[0026] 或者,在第一預(yù)設(shè)時間與第二預(yù)設(shè)時間之間,抓取命中的第Y個包,其中Y滿足以 下條件:
[0027] e+mf<Y e+mf+g
[0028] 其中,e為到達(dá)所述第一預(yù)設(shè)時間時所述數(shù)據(jù)流已命中攻擊規(guī)則的次數(shù),f為預(yù)設(shè) 的第二命中次數(shù)閾值,g為預(yù)設(shè)的第二抓包數(shù)量,m為大于0的正整數(shù),且mg < h,h為預(yù)設(shè) 的第二抓包總數(shù)。
[0029] 圖2為本申請另一實施例提供的網(wǎng)絡(luò)攻擊抓包方法流程圖,其具體步驟如下:
[0030] 步驟200 :預(yù)先為設(shè)備上的攻擊規(guī)則配置抓包策略。
[0031] 具體地,管理員可根據(jù)需要選擇需要為哪些攻擊規(guī)則配置抓包策略以及配置哪種 抓包策略。為不同的攻擊規(guī)則可以配置不同的抓包策略,也可以配置相同的抓包策略。
[0032] 本實施例中,抓包策略中包括:第一階段抓包策略和第二階段抓包策略,在配置 時,可以根據(jù)需要,配置只開啟第一階段抓包策略,或者只開啟第二階段抓包策略,或者同 時開啟第一、二階段抓包策略,或者同時關(guān)閉第一、二階段抓包策略。其中:
[0033] 第一階段抓包策略的內(nèi)容為:命中攻擊規(guī)則后,連續(xù)抓包預(yù)設(shè)第一閾值次;
[0034] 第二階段抓包策略的內(nèi)容為:根據(jù)預(yù)設(shè)抓包算法進(jìn)行間隔性抓包,且滿足抓包結(jié) 束條件時停止抓包,其中:
[0035] 抓包算法可為如下兩種之一:
[0036] 1)抓包算法一
[0037] 當(dāng)數(shù)據(jù)流命中攻擊規(guī)則次數(shù)達(dá)到預(yù)設(shè)第二閾值a后,抓取命中的第X個包,其中X 滿足以下條件:
[0038] a+nb<X a+nb+c
[0039] 其中,b為預(yù)設(shè)的第一命中次數(shù)閾值,c為預(yù)設(shè)的第一抓包數(shù)量,η為大于0的正整 數(shù),且nc < d,d為預(yù)設(shè)的第一抓包總數(shù);
[0040] 2)抓包算法二
[0041] 在第一預(yù)設(shè)時間tl與第二預(yù)設(shè)時間t2之間,抓取命中的第Y個包,其中Y滿足以 下條件:
[0042] e+mf<Y e+mf+g
[0043] 其中,e為到達(dá)第一預(yù)設(shè)時間tl時該數(shù)據(jù)流已命中攻擊規(guī)則的次數(shù),f為預(yù)設(shè)的第 二命中次數(shù)閾值,g為預(yù)設(shè)的第二抓包數(shù)量,m為大于0的正整數(shù),且mg < h,h為預(yù)設(shè)的第 二抓包總數(shù)。
[0044] 步驟201 :設(shè)備維護(hù)兩張表:抓包策略表和抓包明細(xì)表。
[0045] 抓包策略表的格式如下表1所示,主要包括:抓包策略ID、該抓包策略對應(yīng)的攻擊 規(guī)則ID、該抓包策略是否開啟標(biāo)志、該抓包策略的第一階段抓包次數(shù)閾值(第一閾值),該 抓包策略的第二階段抓包算法、累計抓包數(shù)量、累計抓包IP數(shù)量。
[0047] 表1
[0048] 抓包明細(xì)表的格式如表2所示,主要包括:序號、抓包策略ID、源IP地址、第一階 段是否需要抓包標(biāo)志、第一階段抓包計數(shù)、第二階段抓包計數(shù)、最后一次抓包時間、累計命 中次數(shù)。
[0051] 表 2
[0052] 步驟202 :設(shè)備檢測到有數(shù)據(jù)流的一數(shù)據(jù)包命中一攻擊規(guī)則,則判斷該攻擊規(guī)則 是否配置了抓包策略,若是,執(zhí)行步驟203 ;否則,結(jié)束本流程。
[0053] 步驟203 :設(shè)備判斷該攻擊規(guī)則的該抓包策略是否開啟,若是,執(zhí)行步驟204 ;否 貝1J,結(jié)束本流程。
[0054] 步驟204 :設(shè)備讀取該攻擊規(guī)則的抓包策略并獲取該數(shù)據(jù)包的源IP地址,判斷抓 包明細(xì)表(表2)中是否已包含該抓包策略和該源IP地址對應(yīng)的表項,若是,執(zhí)行步驟207 ; 否則,執(zhí)行步驟205。
[0055] 步驟205 :設(shè)備在抓包明細(xì)表(表2)中添加一條新表項,并設(shè)置新表項中的各個 參數(shù)的值,之后,執(zhí)行步驟206。
[0056] 具體地,設(shè)置新表項中的各個參數(shù)的值為:
[0057] 1)將"策略ID"設(shè)置為該攻擊規(guī)則的抓包策略ID ;
[0058] 2)將"源IP地址"設(shè)置為該數(shù)據(jù)包的源IP地址;
[0059] 3)根據(jù)該攻擊規(guī)則對應(yīng)的抓包策略,若該抓包策略中的第一階段抓包策略開啟, 則將"第一階段是否需要抓包標(biāo)志"設(shè)置為"是",否則,設(shè)置為"否";
[0060] 4)將"第一階段抓包計數(shù)"設(shè)置為初始值"0" ;
[0061] 5)將"第二階段抓包計數(shù)"設(shè)置為初始值"0" ;
[0062] 6)將"最后一次抓包時間"設(shè)置為默認(rèn)值,如:00:00:00 ;
[0063] 7)將"累計命中次數(shù)"設(shè)置為" 1"。
[0064] 步驟206 :若該攻擊規(guī)則的抓包策略的第一階段抓包策略開啟,則設(shè)備抓取該數(shù) 據(jù)包并保存,然后更新抓包明細(xì)表(表2)中對應(yīng)表項中的"第一階段抓包計數(shù)"為"1",更 新抓包明細(xì)表(表2)中對應(yīng)表項中的"最后一次抓包時間"為當(dāng)前時間,將抓包策略表(表 1)中對應(yīng)表項中的"累計抓包數(shù)量"和"累計抓包IP數(shù)量"分別加1,結(jié)束本流程。
[0065] 步驟207 :設(shè)備將抓包明細(xì)表(表2)中該抓包策略和該源IP地址對應(yīng)的表項中 的"累計命中次數(shù)"加 I,判斷表2對應(yīng)表項中的"第一階段是否需要抓包標(biāo)志"為"是"還 是"否",若為"是",執(zhí)行步驟208 ;若為"否",執(zhí)行步驟209。
[0066] 步驟208 :設(shè)備抓取該數(shù)據(jù)包并保存,并更新表2中對應(yīng)表項的"第一階段抓包計 數(shù)"和"最后一次抓包時間"以及表1中對應(yīng)表項的"累計抓包數(shù)量",結(jié)束本流程。
[0067] 且,在設(shè)備更新表2中對應(yīng)表項的"第一階段抓包計數(shù)"后,要判斷"第一階段抓包 計數(shù)"的值是否等于表1中對應(yīng)表項的"第一