TWI482083B - 二階段式正規表示式比對處理方法及系統 - Google Patents
二階段式正規表示式比對處理方法及系統 Download PDFInfo
- Publication number
- TWI482083B TWI482083B TW097148701A TW97148701A TWI482083B TW I482083 B TWI482083 B TW I482083B TW 097148701 A TW097148701 A TW 097148701A TW 97148701 A TW97148701 A TW 97148701A TW I482083 B TWI482083 B TW I482083B
- Authority
- TW
- Taiwan
- Prior art keywords
- string
- comparison
- regular expression
- stage
- preamble
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關於一種電腦資訊技術,特別是有關於一種二階段式正規表示式比對處理方法及系統,其可應用於整合至一資訊處理系統,例如為防火牆(firewall)或網路入侵偵測系統(network intrusion detection system,NIDS),用以利用正規表示式(regular expression)來比對一特定類型的字碼序列(例如為網路資料封包)的組態是否屬於一特定之樣式。
於電腦網路系統的應用上,如何防止駭客或惡意程式的入侵為目前電腦網路資訊業界中的一項重要的研究課題。目前業界所廣泛採用的技術例如包括防火牆(firewall)和網路入侵偵測系統(network intrusion detection system,NIDS),其基本作法為掃瞄及比對網路系統所接收到及外傳之各個網路資料封包的字碼組態是否包含有一已知之惡意攻擊程式的字碼組態;若是,則即可判別出該資料封包為駭客所發出而拒絕其進入網路系統。
於具體實施上,目前的網路系統大都是採用正規表示式(regular expression)來比對網路資料封包的字碼序列是否屬於一已知之特定樣式(即已知之惡意攻擊程式的字碼組態)。此種正規表示式比對處理方法目前基本上係採用確定性有限狀態機(deterministic finite-state
automata,DFA)來設定比對用之樣式。
為了增加處理效能,目前之正規表示式比對處理方法係採用一種單次比對掃瞄方法(one-pass scan)來處理輸入之字碼序列。此單次比對掃瞄方法係於各個正規表示式之前加入一個2字碼的樣式[.*],以藉由此樣式來於實際進行比對過程中可於每次讀入一個字碼之後均可轉移至一個具有確定性的接續狀態,以藉此避免重複造成相同之狀態而產生不確定性之處理結果。
然而於實際應用上,前述之單次比對掃瞄方法的一項缺點在於其不適合用來處理樣式為"ABC.*{n}T"的正規表示式。這是由於此種樣式中的上限次數定義項{n}會致使狀態的總數呈現指數變化關係,因此使得狀態資料極為龐大(可能超過數十億個位元組)而導致記憶體不足容納的問題。
鑒於以上所述先前技術之缺點,本發明之主要目的便是在於提供一種二階段式正規表示式比對處理方法及系統,其可用來處理樣式為"ABC.*{n}T"的正規表示式的比對,但不會令狀態資料過於龐大而造成記憶體不足容納的問題。
於實際應用上,本發明之二階段式正規表示式比對處理系統係設計來應用於整合至一資訊處理系統,例如為電腦平台、防火牆(firewall)、網路入侵偵測系統(network intrusion detection system,NIDS)、或核苷酸序列分
析系統,用以利用正規表示式(regular expression)來比對一特定類型的字碼序列的組態是否屬於一特定之樣式;其中該特定類型的字碼序列例如可為電腦資料字串、網路資料封包、或核苷酸序列。
於實體構造上,本發明之二階段式正規表示式比對處理系統至少包含:(A)一第一階段比對單元;以及(B)一第二階段比對單元;其中該第一階段比對單元至少包括:(A1)一循序掃瞄式前序字串讀取模組;以及(A2)一前序字串比對模組;而該第二階段比對單元則至少包括:(B1)一後置字串讀取模組;以及(B2)一後置字串比對模組。
於實際操作時,本發明之二階段式正規表示式比對處理系統可執行一種2階段之比對程序,其中第1階段之比對程序係用以比對輸入之字碼序列的前序字串,而第2階段之比對程序則係用以比對輸入之字碼序列的後置字串。此作法即可用來處理樣式為"ABC.*{n}T"的正規表示式的比對,但不會令狀態資料過於龐大而造成記憶體不足容納的問題。
以下即配合所附之圖式,詳細揭露說明本發明之二階段式正規表示式比對處理方法及系統之實施例。
第1圖即顯示本發明之二階段式正規表示式比對處理系統(如標號30所指之模組)的應用方式。如圖所示,本發明之二階段式正規表示式比對處理系統30於實際應
用上可用來整合至一資訊處理系統10,例如為電腦平台、防火牆(firewall)、網路入侵偵測系統(network intrusion detection system,NIDS)、或核苷酸序列分析系統,用以對該資訊處理系統10提供一種2階段式之正規表示式比對處理功能。
第2圖即顯示本發明之二階段式正規表示式比對處理系統30的輸入輸出功能模型(input/output functional model)。如圖所示,本發明之二階段式正規表示式比對處理系統30係應用於處理該資訊處理系統10所接收到之一種特定類型的字碼序列41,用以比對該字碼序列41的組態是否符合一正規表示式資料庫20中所預設之一組正規表示式所描述之樣式;並將其處理結果輸出成一比對結果訊息42;其中該比對結果訊息42的內容為顯示該字碼序列41的組態是否符合該正規表示式資料庫20所預設某個正規表示式所描述之樣式,並於是的情況下進而顯示其所符合之正規表示式所對應之規則編號。
上述之比對結果訊息42即可接著回傳給資訊處理系統10,令該資訊處理系統10可依據此比對結果訊息42所告知之規則編號來對字碼序列41進行一對應之處理動作,例如為於該字碼序列41為一駭客所發出之網路資料封包的情況下將該資料封包封鎖。
於實際應用上,前述之字碼序列41可例如為電腦資料字串、網路資料封包、或核苷酸序列。舉例來說,於電腦平台的應用上,本發明可例如用來判定一登入訊息之資
料字串是否屬於一合法的使用者;於防火牆和網路入侵偵測系統的應用上,本發明可例如用來判定一外來之網路資料封包是否來自一駭客;於核苷酸序列分析系統的應用上,本發明可例如用來檢驗核苷酸序列的類型。
基本上,本發明所處理之字碼序列41為一種特殊類型的字碼序列,其樣式可通則性地用下列之正規表示式(regular expression)來描述:α.{n}β
其中α 代表一個字串(以下稱為"前序字串");.代表任何一個字元;{n}代表一個字串,其內容為前方之字元連續重複出現n次;β 代表一個字串或一個正規表示式(以下稱為"後端字串")。
於實際應用上,應用工程師可將符合上述之型式的正規表示式預設至該正規表示式資料庫20。第3圖即顯示此正規表示式資料庫20的基本資料結構,其中預設有N個正規表示式:REG_EXP(1)、REG_EXP(2)、.....,REG_EXP(N)及此N個正規表示式所對應之規則編號。此外,每一個正規表示式可進而分成2個區段:一前序字串和一後置字串;例如REG_EXP(1)可分成2個區段PREFIX(1)和POSTFIX(1)。
舉例來說,此正規表示式資料庫20所預設之正規表
示式可例如包括"LOGIN[ˆ\x0a]{100}"和"ABC[ˆ\n]{10}T";其中正規表示式"LOGIN[ˆ\x0a]{100}"的前序字串為"LOGIC",且其後置字串為"[ˆ\x0a]{100}";而正規表示式"ABC[ˆ\n]{10}T"的前序字串為"ABC",且其後置字串為"[ˆ\n]{10}T"。
如第4圖所示,於實體構造上,本發明之二階段式正規表示式比對處理系統30可建基於一模組化之系統架構,其至少包含:(A)一第一階段比對單元100;以及(B)一第二階段比對單元200;其中該第一階段比對單元100至少包括:(A1)一循序掃瞄式前序字串讀取模組110;以及(A2)一前序字串比對模組120;而該第二階段比對單元200則至少包括:(B1)一後置字串讀取模組210;以及(B2)一後置字串比對模組220。以下即首先分別說明此些系統構件的個別屬性及功能。
(A1)循序掃瞄式前序字串讀取模組110
循序掃瞄式前序字串讀取模組110可對輸入之字碼序列41執行一讀取程序,用以讀取字碼序列41的前序字串(以下表示為PREFIX_DATA)。
於具體實施上,此循序掃瞄式前序字串讀取模組110係以一預定之字串長度L及一循序掃瞄方式來從輸入之字碼序列41的前端開始循序掃瞄而讀取出其前端之字串來作為一索引,並將此索引傳送給前序字串比對模組120來進行一比對程序。於實際應用上,此預定之字串長度L
可任選為2至LMAX
之間的一個整數;其中LMAX
為正規表示式資料庫20中的所有的正規表示式的前序字串中的最長者的長度。舉例來說,假設正規表示式資料庫20中最長的前序字串為"LOGIN",則由於"LOGIN"的字串長度為5,L的值即可設定為5。
舉例來說,於L預設為5且輸入之字碼序列41的值為"abcLOGIN000....000"("abcLOGIN"後接100個"0")的情況下,此循序掃瞄式前序字串讀取模組110即會首先從輸入之字碼序列41中讀取出其最前端之5個字元,即"abcLO",並將其傳送給前序字串比對模組120作比對處理。若前序字串比對模組120所執行之比對處理為不符合,則此循序掃瞄式前序字串讀取模組110即接著循序右移來讀取出下一組之5個字元,即"bcLOG",並將其傳送給前序字串比對模組120作比對處理;若比對結果又為不符合,則再次執行前述之處理程序,直至所讀取出之字串為"LOGIN"而使得比對結果為符合為止。
(A2)前序字串比對模組120
前序字串比對模組120包括一依據正規表示式資料庫20所預建之前序字串比對資料結構121;且其於實際操作時可透過此前序字串比對資料結構121來比對上述之循序掃瞄式前序字串讀取模組110所循序讀取出之字串是否符合至正規表示式資料庫20中的某一正規表示式的前序字串;若是,則令第二階段比對單元200執行第2階段之後置字串比對程序。
於具體實施上,前述之前序字串比對資料結構121可例如採用雜湊表(hash table)或二元搜尋樹(binary search tree)來實現。但由於二元搜尋樹所提供之處理速度較差,因此以採用雜湊表為最佳之實施方式。
舉例來說,於採用雜湊表來實施的情況下,若正規表示式資料庫20所預設之一個惡意攻擊之網路資料封包的樣式為"ABC[ˆ\n]{10}T",則此樣式中的前序字串"ABC"即可預先藉由一雜湊函數(hash function)來產生一雜湊值,並將此雜湊值設定為對應至前序字串"ABC"。由於雜湊表為電腦資訊業界所習用及熟知之搜尋比對技術,因此於此說明書中將不對其細節作進一步詳細之說明。
(B1)後置字串讀取模組210
後置字串讀取模組210可對輸入之字碼序列41執行一後置字串讀取程序,用以讀取字碼序列41中除去其前序字串之外的所有剩餘之字碼(此些字碼以下稱為後置字串,且表示為POSTFIX_DATA);並將此後置字串傳送給後置字串比對模組220作比對處理。
(B2)後置字串比對模組220
後置字串比對模組220可於上述之前序字串比對模組120成功地比對出輸入之字碼序列41的前序字串為符合的情況下,接著負責對字碼序列41的後置字串執行一比對程序,藉以比對字碼序列41的後置字串是否進而符合前序字串比對模組120所查詢出之正規表示式的後置字串;若否,則輸出一比對結果訊息42,其內容為顯示
無符合之正規表示式;反之若是,則所輸出之比對結果訊息42的內容即顯示符合之正規表示式所對應之規則編號。
於具體實施上,如第6圖和第7圖所示,此後置字串比對模組220可例如採用一習知之確定性有限狀態機(deterministic finite-state automat,DFA)的邏輯電路架構來實現。如第6圖所示,此DFA的邏輯電路架構包括一陣列之N個狀態轉移處理單元DFA(1)、DFA(2)、.....、DFA(N),分別用以設定該正規表示式資料庫20中之N個正規表示式的後置字串,即POSTFIX(1)、POSTFIX(2)、.....、POSTFIX(N)。
舉例來說,如第7圖所示,若有一個狀態轉移處理單元DFA(k)所設定之字串的樣式為"abc",則其內部之邏輯電路架構即如第7圖所示般地具有3個狀態單元:STATE(a)、STATE(b)、STATE(c),其中第1個狀態單元STATE(a)的輸入端若接收到字元"a",則其輸出端即會輸出一邏輯高電位信號來致能第2個狀態單元STATE(b);而第2個狀態單元於被致能之後,若其輸入端接收到字元"b",則其輸出端即會輸出一邏輯高電位信號來致能第3個狀態單元STATE(c);而第3個狀態單元STATE(c)於被致能之後,若其輸入端接收到字元"c",則其輸出端即會輸出一邏輯高電位信號來代表比對結果為符合,反之則保持為邏輯低電位信號來代表比對結果不符合。由於此確定性有限狀態機為電腦資訊業界所熟知之習
用技術,因此於此不再對其細節作進一步詳細之說明。
以下即利用一應用實例來說明本發明之二階段式正規表示式比對處理系統30於實際應用時的運作方式。於實際應用上,本發明之二階段式正規表示式比對處理系統30係與傳統之比對處理模組搭配使用而構成一混合式之正規表示式比對處理系統,亦即若待比對之字碼序列41屬於前述之α.{n}β的樣式,則採用本發明之二階段式正規表示式比對處理系統30來對其執行比對處理;反之,則採用傳統之比對處理模組來執行比對處理。於具體實施上,此混合式之正規表示式比對處理系統的最佳實施方式為將本發明之二階段式正規表示式比對處理系統30與傳統之比對處理模組建構成一平行處理架構,令待比對的網路封包同時通過此2個引擎的比對而求得可靠及安全的比對結果。
於以下之應用實例中,假設正規表示式資料庫20設定有一正規表示式"LOGIN[ˆ\x0a]{100}",代表一可合法登入至資訊處理系統10的登入訊息的字串樣式;且假設資訊處理系統10接收到一網路資料封包,其內容為"abcLOGIN00000.....000"(於"LOGIN"之後接續100個字元"0"),並將此網路資料封包作為輸入之字碼序列41來傳送給本發明之二階段式正規表示式比對處理系統30進行比對處理。
於事前之預處理上,前述之正規表示式的前序字串
"LOGIN"即會被設定至前序字串比對資料結構121(於此實施例中為一雜湊表),而後置字串"00000...000"則被設定至後置字串比對模組220(於此實施例中為一確定性有限狀態機)中的一個狀態單元,例如為第(j)個狀態單元DFA(j)。
於實際操作時,本發明之二階段式正規表示式比對處理系統30即可對該字碼序列41執行一2階段式之正規表示式比對處理。
(M1)第1階段比對程序
於開始操作時,本發明之二階段式正規表示式比對處理系統30會首先令循序掃瞄式前序字串讀取模組110對輸入之字碼序列41執行一前序字串讀取程序;其為例如以5個字元為單位來從字碼序列41的前端開始讀取其最前端之5個字元"abcLO",並令前序字串比對模組120將此5個字元的字串"abcLO"作為一索引來查詢前序字串比對資料結構121(於此實施中為一雜湊表)中是否存在有此字串"abcLO"的樣式。
由於前序字串比對資料結構121並無存在有字串樣式"abcLO",因此前序字串比對模組120即令循序掃瞄式前序字串讀取模組110接著循序讀取出下一組5字元的字串"bcLOG",再將此字串"bcLOG"作為一索引來進行查詢比對工作。此前序字串讀取及查詢比對過程係循序重複執行,直至循序掃瞄式前序字串讀取模組110讀取到字串"LOGIN"而令前序字串比對模組120所執行之查詢比對程
序的結果為有符合為止。若無符合,則直接發出一無符合之比對結果訊息42;反之若有符合,則令第二階段比對單元200開始執行第2階段之比對程序。
(M2)第2階段比對程序
第2階段之比對程序係首先令後置字串讀取模組210讀取字碼序列41之剩餘之後置字串"00000...000"(100個連續之字元"0"),並將其傳送給後置字串比對模組220來進行比對程序。由於後置字串比對模組220中的第(j)個狀態轉移處理單元DFA(j)所設定之狀態樣式為"00000...000"(100個連續之字元"0"),因此第(j)個狀態轉移處理單元DFA(j)的輸出端OUT(j)即會輸出一邏輯高電位信號,代表比對結果為符合至正規表示式資料庫20中的第(j)個正規表示式所對應之規則,即第(j)個規則;並將此比對結果輸出成一比對結果訊息42。
本發明之二階段式正規表示式比對處理系統30接著即可將比對結果訊息42傳送給資訊處理系統10,令資訊處理系統10依據第(j)個規則所指定之處理程序來處理其所接收到之網路資料封包"abcLOGIN00000.....000"。
此外,為了增加整體之處理效能,本發明亦可於第1階段之比對程序完成而開始執行第2階段之比對程序時,即令第一階段比對單元100開始處理下一個輸入之字碼序列41。
相較於先前技術,本發明的優點在於可用來處理樣式
為"α.{n}β"的正規表示式的比對,但不會令狀態資料過於龐大而造成記憶體不足容納的問題。本發明因此較先前技術具有更佳之進步性及實用性。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之實質技術內容的範圍。本發明之實質技術內容係廣義地定義於下述之申請專利範圍中。若任何他人所完成之技術實體或方法與下述之申請專利範圍所定義者為完全相同、或是為一種等效之變更,均將被視為概括於本發明之申請專利範圍之中。
10‧‧‧資訊處理系統
20‧‧‧正規表示式資料庫
30‧‧‧本發明之二階段式正規表示式比對處理系統
41‧‧‧輸入之字碼序列
42‧‧‧輸出之比對結果訊息
100‧‧‧第一階段比對單元
110‧‧‧循序掃瞄式前序字串讀取模組
120‧‧‧前序字串比對模組
121‧‧‧前序字串比對資料結構
200‧‧‧第二階段比對單元
210‧‧‧後置字串讀取模組
220‧‧‧後置字串比對模組
第1圖為一應用示意圖,用以顯示本發明之二階段式正規表示式比對處理系統的應用方式;第2圖為一功能示意圖,用以顯示本發明之二階段式正規表示式比對處理系統的輸入/輸出功能模型;第3圖為一資料結構示意圖,用以顯示本發明所相關之正規表示式資料庫的基本資料結構型態;第4圖為一架構示意圖,用以顯示本發明之二階段式正規表示式比對處理系統的模組化基本架構;第5圖為一資料結構示意圖,用以顯示本發明所採用之雜湊表的基本資料結構型態;第6圖為一架構示意圖,用以顯示本發明用來實現後置字串比對模組所採用之確定性有限狀態機的邏輯電路架構;第7圖為一架構示意圖,用以顯示第6圖所示之確定
性有限狀態機中的單一個狀態轉移處理單元的內部架構的一個實例。
30‧‧‧本發明之二階段式正規表示式比對處理系統
41‧‧‧輸入之字碼序列
42‧‧‧輸出之比對結果訊息
100‧‧‧第一階段比對單元
110‧‧‧循序掃瞄式前序字串讀取模組
120‧‧‧前序字串比對模組
121‧‧‧前序字串比對資料結構
200‧‧‧第二階段比對單元
210‧‧‧後置字串讀取模組
220‧‧‧後置字串比對模組
Claims (10)
- 一種二階段式正規表示式比對處理方法,其可應用於一資訊處理系統,用以依據正規表式來比對該資訊處理系統所處理之一特定型式之字碼序列是否符合一預設之樣式;其中該預設之樣式包括一前序字串和一後置字串,且該預設之樣式的後置字串包括一連串之重複之字元;此二階段式正規表示式比對處理方法至少包含以下之處理動作:執行一第1階段比對程序;其係首先以一循序掃瞄方式來讀取該字碼序列的前序字串;並將各個循序掃瞄讀取出之前序字串作為一索引,以依據該正規表式來從一預建之前序字串比對資料結構中查詢出是否有符合之前序字串,其中該前序字串比對資料結構為預建來儲放該預設之樣式的前序字串;若無符合,則發出一無符合之比對結果訊息;若有符合,則執行一第2階段比對程序;其係首先讀取該字碼序列的後置字串,以依據該正規表式將該字碼序列的後置字串與該預設之樣式的後置字串作一比對,並將比對結果輸出成一比對結果訊息,且依據該比對結果訊息顯示該正規表示式之規則編號,進而依據該規則編號進行對應之處理。
- 如申請專利範圍第1項所述之二階段式正規表示式比對處理方法,其中該資訊處理系統為一電腦平台、一 防火牆、一網路入侵偵測系統或一核苷酸序列分析系統。
- 如申請專利範圍第1項所述之二階段式正規表示式比對處理方法,其中該前序字串比對資料結構為一雜湊表(hash table)或一二元搜尋樹(binary search tree)。
- 如申請專利範圍第1項所述之二階段式正規表示式比對處理方法,其中該第2階段比對程序係利用一確定性有限狀態機(deterministic finite-state automata,DFA)來對該字碼序列的後置字串進行比對工作。
- 一種二階段式正規表示式比對處理系統,其可整合至一資訊處理系統,用以依據正規表式來比對該資訊處理系統所處理之一特定型式之字碼序列是否符合一預設之樣式;其中該預設之樣式包括一前序字串和一後置字串,且該預設之樣式的後置字串包括一連串之重複之字元;此二階段式正規表示式比對處理系統至少包含:一第一階段比對單元和一第二階段比對單元;其中該第一階段比對單元至少包括:一循序掃瞄式前序字串讀取模組,其可執行一循序掃瞄式之前序字串讀取程序,用以讀取該字碼序列的前序字串;以及 一前序字串比對模組,其包括一預建之前序字串比對資料結構;其中該前序字串比對資料結構為預建來儲放該預設之樣式的前序字串;且於實際操作時,可將該循序掃瞄式前序字串讀取模組所讀取之前序字串作為一索引,以依據該正規表式來從該前序字串比對資料結構中查詢出是否有符合之前序字串;且其中該第二階段比對單元至少包括:一後置字串讀取模組,其可執行一後置字串讀取程序,用以讀取該字碼序列的後置字串;以及一後置字串比對模組,其係將該預設之樣式的後置字串預設為一比對樣式;且於實際操作時,可接收該後置字串讀取模組所讀取出之後置字串,以依據該正規表式將所讀取出之後置字串與該預設之樣式的後置字串作一比對,並將比對結果輸出成一比對結果訊息,且依據該比對結果訊息顯示該正規表示式之規則編號,進而依據該規則編號進行對應之處理。
- 如申請專利範圍第5項所述之二階段式正規表示式比對處理系統,其中該資訊處理系統為一電腦平台、一防火牆、一網路入侵偵測系統或一核苷酸序列分析系統。
- 如申請專利範圍第5項所述之二階段式正規表示式比對處理系統,其中該前序字串比對資料結構為一雜湊表(hash table)或一二元搜尋樹(binary search tree)。
- 如申請專利範圍第5項所述之二階段式正規表示式比對處理系統,其中該後置字串比對模組為一確定性有限狀態機(deterministic finite-state automata,DFA)。
- 一種二階段式正規表示式比對處理系統,其可整合至一資訊處理系統,用以依據正規表式來比對該資訊處理系統所處理之一特定型式之字碼序列是否符合一預設之樣式;其中該預設之樣式包括一前序字串和一後置字串,且該預設之樣式的後置字串包括一連串之重複之字元;此二階段式正規表示式比對處理系統至少包含:一第一階段比對單元和一第二階段比對單元;其中該第一階段比對單元至少包括:一循序掃瞄式前序字串讀取模組,其可執行一循序掃瞄式之前序字串讀取程序,用以讀取該字碼序列的前序字串;以及一前序字串比對模組,其包括一預建之雜湊表資料結構;其中該雜湊表資料結構為預建來儲放該預設之樣式的前序字串;且於實際操作時,可將該循序掃瞄式前序字串讀取模組所讀取之前序字串作為一索引,以依據該正規表式來從該雜湊表資料結構中查詢出是否有符合之前序字串; 且其中該第二階段比對單元至少包括:一後置字串讀取模組,其可執行一後置字串讀取程序,用以讀取該字碼序列的後置字串;以及一確定性有限狀態機式之後置字串比對模組,其係將該預設之樣式的後置字串預設為一比對樣式;且於實際操作時,可接收該後置字串讀取模組所讀取出之後置字串,以依據該正規表式將所讀取出之後置字串與該預設之樣式的後置字串作一比對,並將比對結果輸出成一比對結果訊息,且依據該比對結果訊息顯示該正規表示式之規則編號,進而依據該規則編號進行對應之處理。
- 如申請專利範圍第9項所述之二階段式正規表示式比對處理系統,其中該資訊處理系統為一網路入侵偵測系統或一核苷酸序列分析系統。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097148701A TWI482083B (zh) | 2008-12-15 | 2008-12-15 | 二階段式正規表示式比對處理方法及系統 |
US12/398,484 US20100153420A1 (en) | 2008-12-15 | 2009-03-05 | Dual-stage regular expression pattern matching method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097148701A TWI482083B (zh) | 2008-12-15 | 2008-12-15 | 二階段式正規表示式比對處理方法及系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201023029A TW201023029A (en) | 2010-06-16 |
TWI482083B true TWI482083B (zh) | 2015-04-21 |
Family
ID=42241788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097148701A TWI482083B (zh) | 2008-12-15 | 2008-12-15 | 二階段式正規表示式比對處理方法及系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100153420A1 (zh) |
TW (1) | TWI482083B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5224953B2 (ja) * | 2008-07-17 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、情報処理方法およびプログラム |
US8566344B2 (en) * | 2009-10-17 | 2013-10-22 | Polytechnic Institute Of New York University | Determining whether an input string matches at least one regular expression using lookahead finite automata based regular expression detection |
US9398033B2 (en) | 2011-02-25 | 2016-07-19 | Cavium, Inc. | Regular expression processing automaton |
US8650170B2 (en) * | 2011-06-22 | 2014-02-11 | Verisign, Inc. | Systems and methods for inter-object pattern matching |
US9596222B2 (en) | 2011-08-02 | 2017-03-14 | Cavium, Inc. | Method and apparatus encoding a rule for a lookup request in a processor |
US9203805B2 (en) * | 2011-11-23 | 2015-12-01 | Cavium, Inc. | Reverse NFA generation and processing |
CN102523219B (zh) * | 2011-12-16 | 2015-01-14 | 清华大学 | 正则表达式匹配系统及匹配方法 |
CN103294735B (zh) * | 2012-02-28 | 2016-08-03 | 中国科学技术大学 | 基于tcam的确定性有穷状态自动机dfa的匹配方法和装置 |
CN103294734B (zh) * | 2012-02-28 | 2016-11-16 | 中国科学技术大学 | 基于tcam的确定性有穷状态自动机dfa的匹配方法和装置 |
WO2013137864A1 (en) * | 2012-03-13 | 2013-09-19 | Hewlett-Packard Development Company, L.P. | Submatch extraction |
US9146248B2 (en) | 2013-03-14 | 2015-09-29 | Intelligent Bio-Systems, Inc. | Apparatus and methods for purging flow cells in nucleic acid sequencing instruments |
US9591268B2 (en) | 2013-03-15 | 2017-03-07 | Qiagen Waltham, Inc. | Flow cell alignment methods and systems |
US20140289264A1 (en) * | 2013-03-21 | 2014-09-25 | Hewlett-Packard Development Company, L.P. | One pass submatch extraction |
EP3014482B1 (en) * | 2013-06-28 | 2018-03-07 | Khalifa University of Science, Technology and Research | Method and system for searching and storing data |
US9715525B2 (en) | 2013-06-28 | 2017-07-25 | Khalifa University Of Science, Technology And Research | Method and system for searching and storing data |
US9426165B2 (en) | 2013-08-30 | 2016-08-23 | Cavium, Inc. | Method and apparatus for compilation of finite automata |
US9426166B2 (en) | 2013-08-30 | 2016-08-23 | Cavium, Inc. | Method and apparatus for processing finite automata |
US9563399B2 (en) | 2013-08-30 | 2017-02-07 | Cavium, Inc. | Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features |
US9419943B2 (en) | 2013-12-30 | 2016-08-16 | Cavium, Inc. | Method and apparatus for processing of finite automata |
US9544402B2 (en) | 2013-12-31 | 2017-01-10 | Cavium, Inc. | Multi-rule approach to encoding a group of rules |
US9275336B2 (en) | 2013-12-31 | 2016-03-01 | Cavium, Inc. | Method and system for skipping over group(s) of rules based on skip group rule |
US9667446B2 (en) | 2014-01-08 | 2017-05-30 | Cavium, Inc. | Condition code approach for comparing rule and packet data that are provided in portions |
US9602532B2 (en) | 2014-01-31 | 2017-03-21 | Cavium, Inc. | Method and apparatus for optimizing finite automata processing |
US9904630B2 (en) | 2014-01-31 | 2018-02-27 | Cavium, Inc. | Finite automata processing based on a top of stack (TOS) memory |
US10002326B2 (en) | 2014-04-14 | 2018-06-19 | Cavium, Inc. | Compilation of finite automata based on memory hierarchy |
US9438561B2 (en) | 2014-04-14 | 2016-09-06 | Cavium, Inc. | Processing of finite automata based on a node cache |
US10110558B2 (en) | 2014-04-14 | 2018-10-23 | Cavium, Inc. | Processing of finite automata based on memory hierarchy |
CN106959962B (zh) * | 2016-01-12 | 2019-10-15 | 中国移动通信集团青海有限公司 | 一种多模式字符串匹配方法和装置 |
US11727112B2 (en) | 2018-06-29 | 2023-08-15 | Crowdstrike, Inc. | Byte n-gram embedding model |
CN111026929B (zh) * | 2019-12-27 | 2023-07-21 | 咪咕文化科技有限公司 | 文本审批方法、装置及存储介质 |
US12105751B2 (en) | 2022-05-19 | 2024-10-01 | Crowdstrike, Inc. | File format identification system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199057A1 (en) * | 2001-06-26 | 2002-12-26 | Schroeder Jacob J. | Implementing semaphores in a content addressable memory |
US20040002816A1 (en) * | 2002-02-27 | 2004-01-01 | Aleksandar Milosavljevic | Positional hashing method for performing DNA sequence similarity search |
US20080071783A1 (en) * | 2006-07-03 | 2008-03-20 | Benjamin Langmead | System, Apparatus, And Methods For Pattern Matching |
US20080086488A1 (en) * | 2006-10-05 | 2008-04-10 | Yahoo! Inc. | System and method for enhanced text matching |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR900702450A (ko) * | 1988-11-04 | 1990-12-07 | 원본미기재 | 미니컴퓨터용 병렬 스트링 프로세서 및 방법 |
WO2006124760A2 (en) * | 2005-05-16 | 2006-11-23 | Panvia Future Technologies, Inc. | Associative memory and data searching system and method |
-
2008
- 2008-12-15 TW TW097148701A patent/TWI482083B/zh not_active IP Right Cessation
-
2009
- 2009-03-05 US US12/398,484 patent/US20100153420A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199057A1 (en) * | 2001-06-26 | 2002-12-26 | Schroeder Jacob J. | Implementing semaphores in a content addressable memory |
US20040002816A1 (en) * | 2002-02-27 | 2004-01-01 | Aleksandar Milosavljevic | Positional hashing method for performing DNA sequence similarity search |
US20080071783A1 (en) * | 2006-07-03 | 2008-03-20 | Benjamin Langmead | System, Apparatus, And Methods For Pattern Matching |
US20080086488A1 (en) * | 2006-10-05 | 2008-04-10 | Yahoo! Inc. | System and method for enhanced text matching |
Also Published As
Publication number | Publication date |
---|---|
TW201023029A (en) | 2010-06-16 |
US20100153420A1 (en) | 2010-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI482083B (zh) | 二階段式正規表示式比對處理方法及系統 | |
Dharmapurikar et al. | Fast and scalable pattern matching for content filtering | |
TWI465945B (zh) | 用於型樣辨識處理器中降低電力消耗之方法及裝置 | |
Lin et al. | Using string matching for deep packet inspection | |
US9990583B2 (en) | Match engine for detection of multi-pattern rules | |
Le et al. | A memory-efficient and modular approach for large-scale string pattern matching | |
Lu et al. | A memory-efficient parallel string matching architecture for high-speed intrusion detection | |
JP2015505399A (ja) | 状態機械格子におけるカウンタ動作 | |
JP2005524149A (ja) | コンテンツ・サーチ・エンジン | |
CN102437937B (zh) | 一种深度包检测方法 | |
US8756312B2 (en) | Multi-tier message correlation | |
Najam et al. | Speculative parallel pattern matching using stride-k DFA for deep packet inspection | |
Caputo et al. | Mixing time of PageRank surfers on sparse random digraphs | |
CN102546293B (zh) | 基于哈希比特串复用的高速网络流量网络地址测量方法 | |
Breslauer et al. | Simple real-time constant-space string matching | |
US8463988B2 (en) | System and method for matching patterns | |
CN113783701B (zh) | 一种强物理不可克隆函数结构 | |
CN108304467B (zh) | 用于文本间匹配的方法 | |
KR101276796B1 (ko) | 패턴 매칭 장치 및 방법 | |
CN112187935B (zh) | 信息识别方法与只读内存 | |
CN103957131A (zh) | 一种基于有限自动机的深度报文检测方法 | |
Zhang et al. | TG-SPSR: A systematic targeted password attacking model | |
WO2016101552A1 (zh) | 报文检测方法及装置、存储介质 | |
Kastil et al. | Methodology for fast pattern matching by deterministic finite automaton with perfect hashing | |
Zhang et al. | RUPA: A high performance, energy efficient accelerator for rule-based password generation in heterogenous password recovery system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |