999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種針對大規模URL關鍵字的多模匹配算法

2011-01-01 00:00:00李倫李東田志宏
智能計算機與應用 2011年3期

摘要: 針對網絡信息安全中大規模URL關鍵字匹配過程中自動機內存占用過大問題,提出一種基于分類思想的多模匹配算法,將URL關鍵字按照模式長度和匹配要求進行分類,分別使用Wu-Mamber算法和自動機類多模匹配增效算法GFAM進行匹配。實驗結果表明,經過分類后,大規模配置(>10w)情況下,算法能夠將占用內存降低為只使用GFAM算法的內存的5%以內。

關鍵詞:

中圖分類號: TP301.6 文獻標識碼:A 文章編號:2095-2163(2011)01-0020-04

0引言

字符串匹配問題是計算機科學中的一個經典研究領域。信息安全領域中,URL關鍵字匹配是入侵檢測系統、防火墻系統、反釣魚防御系統等的最基礎也是最核心的部分。然而隨著URL域名數量的不斷增長,網絡安全威脅不斷升級,尤其是數據規模驚人增長的情況下,大規模URL關鍵字多模匹配算法的性能已經成為系統的瓶頸,同時針對URL關鍵字的匹配不再是簡單的精確匹配,還包含了如“與”表達式匹配、模糊匹配等多種匹配需求。傳統的字符串匹配算法已經不能適用于大規模URL關鍵字的匹配,可以說提高大規模URL關鍵字匹配的效率,降低URL關鍵字匹配部分的系統開銷,提高算法的適應性和健壯性將對消除系統瓶頸起到至關重要的作用。

1研究現狀

從多模匹配算法的特點來說,可以將多模匹配算法分為基于前綴搜索的匹配算法、基于后綴搜索的匹配算法、基于子串搜索的匹配算法、基于位并行的匹配算法以及基于硬件的匹配算法。目前在字符串匹配領域的研究工作主要集中在對經典算法的改進上,由于基于位并行的匹配算法和基于硬件的匹配算法不適用于大規模URL關鍵字匹配,以下主要介紹其他三類中最具代表性的算法。

(1)基于前綴搜索的AC[1]算法。AC算法是經典的多模匹配算法,至今大部分的多模匹配算法都是針對AC算法進行改進。AC算法對所有關鍵字建立有限自動機,利用該自動機對輸入文本進行掃描。自動機建立過程建立三個函數:狀態跳轉函數goto,輸出函數output,失效函數failure。

匹配過程是從零狀態出發,每次掃描文本中的一個字符,在當前狀態情況下,查看掃描到的字符,利用goto函數、failure函數跳轉到下一個狀態。如果跳轉到的狀態的output函數不為空,表示命中了某個關鍵字,輸出該關鍵字。

(2)基于后綴搜索的Wu-Mamber算法[2]。Wu-Mamber算法基于單模匹配中BM[3]算法的壞字符跳轉思想,維護一個固定長度的掃描窗口,能夠實現對文本的跳躍式掃描。算法初始化階段首先確定所有規則的最短長度m,并建立三個表,分別是跳轉表Shift、后綴哈希表Hash、前綴表Prefix。通過Shift表確定掃描窗口內后綴的跳轉距離;Hash表存儲的是指針,指針指向具有相同后綴哈希值的所有模式串組成的鏈表,同時指向具有相同后綴哈希值的模式串的前綴鏈表;Prefix表存儲了模式串的前綴哈希值,以提高匹配速度。

(3)基于子串搜索的SBOM算法[4]。SBOM算法采用一種稱為Factor Oracle[5]自動機的數據結構,可以識別模式串集合的超集,利用自動機,在長度為lmin的文本窗口內,從后向前逐個識別字符。

AC算法具有與關鍵字特征無關,匹配速度穩定的優勢,但內存消耗高,初始化時間長。SBOM算法的匹配速度快,但效率不夠穩定,并且對最短串長度敏感,內存和預處理時間與AC基本相同。Wu-Mamber算法的預處理時間短,內存消耗少,且模式串規模越大,預處理時間和內存優勢越明顯,但匹配速度不穩定,對最短串長度敏感。

AC算法以其匹配效率穩定,適應性強的優勢成為目前大多數信息安全系統的首選算法,如SNORT系統使用的基于AC的改進算法AC_BM。但隨著URL關鍵字規模的持續高速增長,AC算法內存消耗過高,自動機啟動時間過長的問題逐漸突顯,已經成為系統瓶頸,必須進行優化。

2基于分類思想的多模匹配算法PMUC

2.1大規模URL關鍵字的特征

針對目前一般的信息安全系統普遍使用的特征庫中URL配置(不少于10萬條)的統計,URL關鍵字長度分布在4~256之間,平均長度為40個字節左右。長度在4~10的關鍵字較少,而長度在11~50之間的關鍵字占到接近所有關鍵字的85%左右。另外由于URL配置由數據庫進行維護,數據庫對URL關鍵字長度有一定的限制,因此存在“與”表達式匹配的需求,即將較長的URL關鍵字分割成多個小關鍵字,對每個小關鍵字添加一個“&”屬性,借此表示該關鍵字具有“與”表達式匹配需求,而只有當所有“與”表達式關鍵字均命中,才能報告整體關鍵字的命中。從對配置文件的統計結果來看,“與”表達式最多被“&”分割成4段,具有“與”表達式匹配要求的關鍵字較少,只占到總規則條數的1.25%左右。

2.2PMUC算法的理論基礎

2.2.1Wu-Mamber算法的思想

假設模式串集合P中最短的模式長度為m,Wu-Mamber算法在后面僅考慮所有模式的前m個字符組成的模式串。預處理階段將建立三個表格:

(1)移動表(Shift表):該表用來決定掃描文本的過程中,可以跳過多少個字符。存在兩種情況。其中,x為URL關鍵字字符串,i為每B個字符映射成的哈希值。

① X和任何模式中的子串都不匹配,這種情況下,可以移動文本的m-B+1個字符。記錄移動表SHIFT[i]的值為m-B+1。

② X出現在一些模式中,找出X在所有模式中的最右出現。假設X在模式Pj的位置q處結束,并且X并不結束在任何其他模式中比q大的位置,記錄SHIFT[i]的值為m-q。

(2)哈希表(Hash表):指向后綴hash值相同的模式鏈表和前綴表。表項與shift表有相同的哈希值。

(3)前綴表(Prefix表):存放字符串的前綴哈希值,提高匹配效率。

例如,假設模式集合為?邀from, front, boomed?妖,最短串的長度是4,設字符塊大小B為2。為該模式集合建立的Shift表如表1所示。

Wu-Mamber算法的匹配過程:

(1)計算所有模式中最短串的長度;

(2)掃描模式集合,建立三個表;

(3)如果Shift表對應表項的值不為0,按照shift值向后移動窗口,繼續執行步驟(3),為零時轉步驟(4);

(4)查找Hash表,找出shift值為零的B個字符在模式集合中出現的位置以及每個位置上的模式,執行步驟(5);全部掃描結束,轉步驟(3)繼續掃描剩余文本;

(5)查找該模式的前綴表項,與當前窗口中的文本前綴值比較,相等則逐個比較,如果全部匹配,報告一個成功匹配,否則轉下一個位置,繼續執行步驟(5)。

2.2.2GFAM算法的思想

CFAM 算法[6]是對AC算法的改進,采用字頻映射技術分類壓縮列,采用位圖檢索技術[7]提高檢索效率。在匹配過程中,根據映射規則轉換輸入字符,高頻字符在保留列中查找跳轉狀態;低頻字符利用位圖信息獲得跳轉狀態。根據輸入字符c 計算轉移狀態的偽碼如下:

if F(c) == 0

return 0;

else if F(c) > 0

return the data in uncompressed array (F(c), c);

else

if CHECK_BIT(c, pbitmap) == 0

return 0;

else

return the data in compressed array with index computed by bitmap;

2.3PMUC算法

2.3.1基本思想

從對大規模(不低于10萬條配置)URL關鍵字的統計結果來看,長度較長的關鍵字占多數,較為適合Wu-Mamber算法,而通過長度過濾后,其余短關鍵字適合自動機類算法。算法專門針對大規模URL關鍵字匹配進行性能優化,命名為PMUC算法(Multi-pattern Matching Algorithm for URL based on Classification)。

PMUC算法利用Wu-Mamber算法來匹配長度較長的URL關鍵字,長度范圍在10以上的關鍵字占總關鍵字條數的90%以上,并且命中率較低,實際匹配過程中命中率在10%以下,這部分關鍵字非常適用于Wu-Mamber類算法,產生較大跳躍距離的同時,大大節省了內存空間。

PMUC算法同時采用了基于字頻特征和位圖壓縮GFAM,該算法對AC算法進行了改進。長度較短的關鍵字以及具有“與”表達式匹配需求的關鍵字使用GFAM算法進行匹配,經過Wu-Mamber算法對長關鍵字以及具有“與”表達式需求的關鍵字進行過濾后,利用GFAM算法進行匹配的關鍵字只占很小一部分,且相比于AC算法來說,GFAM算法能夠進一步壓縮自動機占用的內存。

PMUC算法結合這兩個改進算法,將URL關鍵字按照關鍵字特征進行分類匹配,在保證匹配效率的基礎上,達到了明顯的內存優化效果。實驗表明,PMUC算法占用的內存可壓縮為原只使用AC算法的5%以下,并且關鍵字規模越大,優化效果越明顯。同時初始化時間有了明顯降低,這對于經常進行配置更新的信息安全系統來說,將明顯提高系統的啟動速度。圖3所示的偽代碼表明了PMUC算法的初始化與匹配過程。其中S表示分類條件。

2.3.2算法匹配條件

目前,URL關鍵字匹配規模在10w條以上,且未來規模將越來越大。每條關鍵字的長度一般在4~1 024之間變化,其中長度大于10的關鍵字占總關鍵字比例的90%以上。另外在入侵檢測中,存在一種稱為“與”表達式匹配的匹配規則,只有當規則中的所有模式都匹配到的情況才宣告匹配成功。

根據以上URL關鍵字匹配特點,將關鍵字按照如下條件分類。其中,關鍵字的長度用L表示,臨界長度用m表示,為關鍵字添加屬性bds,關鍵字的bds=1時,說明該關鍵字是一條“與”表達式規則的關鍵字。

Wu-Mamber算法的匹配條件:

pattern.L>=m&&pattern.bds=0;

GFAM算法的匹配條件:

pattern.L<m||pattern.bds=1。

2.3.3參數對算法性能的影響

m:Wu-Mamber算法對所有模式的最短串長度敏感,因此使用Wu-Mamber算法進行匹配的模式的最短長度不能太短,m表示所有模式的最短串長度。文獻[2]給出了Wu-Mamber算法的時間復雜度為O(BN/m),在模式較為隨機的情況下,m越大,跳躍距離越大,匹配速度越快。但對于PMUC算法來說,m增大也就意味著模式中使用GFAM算法進行匹配的模式增多,因此將導致內存的增大。

D:GFAM算法在自動機的前D層仍然用二維數組來記錄跳轉狀態,且層數越低,出度越大,保證了高頻字符的查找速度。而層數大于D后,跳轉狀態使用鏈表來實現,由于此時D層后的字符出現頻率較低,出度較小,因此在盡可能保證查找速度的條件下,壓縮了內存空間。由于所有關鍵字中長度大于m的關鍵字已經使用Wu-Mamber進行匹配,因此,D的設置應當小于m。一般來說,D越小,越節省內存,但匹配速度有所下降。

3實驗結果與分析

3.1測試環境與數據

實驗的測試環境為8核CPU,主頻為2.6Hz,操作系統采用GreatTurbo EnterpriseServer10,內存總量為16GB。文本集采用離線網絡數據包,分別包含100萬條http包、200萬條、300萬條、400萬條。關鍵字采用真實URL中提取的部分連續字符串作為測試集合。

3.2實驗結果與分析

首先測試調整參與“與”匹配時間的關系,分別選取含有100w、200w、300w,400w包的cap包,使用GFAM算法和PMUC進行匹配,記錄精確到us的匹配時間。測試匹配時間時,選用14萬條的配置規模,實驗結果如圖4所示。

圖4中,橫坐標表示m和D的不同值組合。其中,m初始值設置為11,D設置為8,m初始測試值根據對規則長度的統計結果進行設置。可以看出,整體的匹配時間是呈現下降趨勢的,小范圍內有波動。最左側的時間也比較短, 而在 右側的曲線內,m=8,D=6的點以及m=7,D=4的點匹配時間較短。如果考慮內存因素,那么必然是選擇m=7,D=4比較好。

圖5說明了調整參數m和D對內存的影響。從內存占用情況來看,D值相同的情況下,m>=9時,m每減小1,內存減小1Mb左右;而當m<9時,m值的減小對內存占用基本沒有影響。但是在固定m的情況下,D每減小1,內存相應減小約10Mb,因此,在選定m的情況下,如果匹配時間沒有明顯的變短,那么D可以盡可能減小,以節省內存。

圖6給出了兩者內存對比情況,結果表明與GFAM相比,PMUC的內存占用明顯較低,此時選取的參數是D=4,m=7,則PMUC將獲得更好的內存性能。

圖7表明,模式規模越大,PMUC的內存優化的效果越明顯。

4結束語

本文針對信息安全領域中URL配置量不斷加大,內存消耗巨大,造成系統產生瓶頸的問題,提出使用分類思想的多模匹配算法PMUC,通過調整分類參數使得PMUC算法達到速度與內存的最佳結合點,從而在匹配速度可接受的情況下,大幅降低自動機匹配部分的消耗。實驗表明,PMUC算法占用的內存,可降低為原只使用GFAM算法時的5%以下,這為今后系統的高效穩定運行提供了有力的保證,并為未來應用于不斷增長的數據留下了更大的空間,使得系統的可擴展性提升。同時,針對特定匹配,選擇合適的算法進行分類匹配的思想,也為研究高效的串匹配算法提供了開闊思路。

參考文獻:

[1] AHO A V,CORASICK M J. Efficient string matching:an aidto biologigraphic search. Communications of the ACM,1975,18 (6):333-340.

[2] WU S,MANBER U. A fast algorithm for multi-pattern search- ing. Report TR-94-17,Department of Computer Science,Univ- ersity of Arizona,Tucson,AZ,1994.

[3] BOYER R S,MOORE J S. A Fast String Searching Algorithm [J]. Communications of the ACM,1977,10(10):762-772.

[4] CROCHEMORE C A M,RAFFINOT M. Factor Oracle: A New Structure for Pattern Matching[R]. Institute Gaspard-Monge, U- niversite de Marne-la-Vallee,1999.

[5] ALLAUZEN C,RAFFINOT M. Factor Oracle of a Set of Wor- ds[R]. Technical Report 99-11,Institute Gaspard-Monge,Univ- ersite de Marne-la-Vallee,1999.

[6] 李超,張宏莉,楚國鋒. 基于字頻特征的自動機多模匹配增效 算法[J]. 微計算機信息,2009,29(3):206-208.

[7] 張元競,張偉哲. 一種基于位圖的多模匹配算法[J]. 哈爾濱工 業大學學報,2008,36(6):110-114.

主站蜘蛛池模板: 国产一级α片| 久久大香伊蕉在人线观看热2| 久久久久人妻精品一区三寸蜜桃| 日韩欧美色综合| 伊人网址在线| 亚洲无码在线午夜电影| 超碰aⅴ人人做人人爽欧美| 免费xxxxx在线观看网站| 国产网站免费看| 极品国产一区二区三区| 国产浮力第一页永久地址| AV片亚洲国产男人的天堂| 在线观看免费AV网| 久久精品国产在热久久2019| 亚洲国语自产一区第二页| 精品国产www| 日本人真淫视频一区二区三区| 欧美三級片黃色三級片黃色1| 亚洲天堂网在线播放| 国产精品手机视频| 亚洲AV无码精品无码久久蜜桃| 亚洲欧州色色免费AV| 71pao成人国产永久免费视频| 国产亚洲视频在线观看| 91精品最新国内在线播放| 亚洲国产av无码综合原创国产| 青青热久麻豆精品视频在线观看| 亚洲永久免费网站| 美女内射视频WWW网站午夜| 99热这里只有精品在线观看| av在线手机播放| 91在线播放免费不卡无毒| 亚洲成人网在线播放| 高潮毛片无遮挡高清视频播放| 在线中文字幕网| 99ri国产在线| 美美女高清毛片视频免费观看| 国产精品免费入口视频| 亚洲综合18p| 亚洲成人动漫在线| 亚洲精品无码抽插日韩| 老熟妇喷水一区二区三区| 波多野衣结在线精品二区| 国产日韩AV高潮在线| 日韩在线播放中文字幕| 91欧美在线| 精品一区二区无码av| 亚洲婷婷在线视频| www.亚洲一区二区三区| 国产99视频精品免费观看9e| 91网在线| 亚洲经典在线中文字幕| 久久综合九色综合97网| 五月婷婷导航| 99re精彩视频| 久久久黄色片| 亚洲免费黄色网| 亚洲成人福利网站| 国产丝袜啪啪| 国产杨幂丝袜av在线播放| 22sihu国产精品视频影视资讯| 四虎在线观看视频高清无码| 亚洲成人高清无码| 亚洲欧美不卡视频| 久久精品无码中文字幕| 亚洲欧美日韩中文字幕一区二区三区 | 国产1区2区在线观看| 最新亚洲人成网站在线观看| 免费毛片a| 日韩欧美国产区| 欧美精品在线看| 日韩人妻精品一区| 亚洲欧美成人在线视频| 国产成人av一区二区三区| 一级毛片中文字幕| 久久婷婷综合色一区二区| 福利片91| 久热精品免费| 国产成人精彩在线视频50| 四虎在线高清无码| 久久无码高潮喷水| 日韩精品一区二区三区视频免费看|