專利名稱:利用編碼轉化實現基于序列比對的攻擊特征提取的方法
技術領域:
本發明涉及計算機網絡領域攻擊特征提取方法,尤其涉及對多個攻擊字符序列共同具有的攻擊特征的自動提取方法。
背景技術:
網絡攻擊和螺蟲仍然是當今Internet上的普遍現象,姆年造成數以億計的損失。入侵檢測技術是對抗網絡攻擊和蠕蟲的最主要手段,入侵檢測系統(IDS)和防火墻等系統相互結合、相互補充構筑了計算機網絡系統的基本安全屏障。根據分析方法的異同,入侵檢測可分為誤用入侵檢測(misuse detection)和異常入侵檢測(anomaly detection)。誤用入侵檢測也稱基于知識或基于特征(Signature)的入侵檢測;它提取各類攻擊的模式特征,形成已知攻擊特征庫;檢測時將新獲取的特征和已知攻擊特征庫中的模 式相比較,從而確定入侵行為。因為誤用入侵檢測相對簡單、高效和準確,而且可以實時エ作,所以目前廣泛使用的入侵檢測系統絕大部分是誤用入侵檢測系統,如Symantec公司的Network Security、ISS 公司的 RealSecure Network、Snort 和 Bro 等。當前,攻擊特征主要依靠安全專家以事后分析的方式人工提取,主要有下面兩個缺點第一,人工提取攻擊特征過程長、速度慢,往往是新攻擊出現幾天甚至幾周后相應的特征才被發布。第二,人工提取攻擊特征的質量難以很好地保證。最后,攻擊變形技術使得特征提取的難度大大增加。近年來,ー些蠕蟲傳播特征自動提取方法被相繼提出,這些方法通過分析蠕蟲傳播數據(可能包括噪聲)自動生成蠕蟲傳播特征,它們可被劃分為下列類別基于LCSdongest common substring)、基于固定長度負載出現頻率、基于可變長度負載出現頻率、基于有限狀態自動機、基于序列比對等。基于序列比對的方法借鑒了生物"[目息的算法和工具,在特征提取的準確性上要優于其它方法。但是,由于生物信息學中的序列比對算法和工具只能處理生物學相關的數據,以Gibson T. , Thompson J. , Higgins D.開發的CLUSTALff (http: //www. clustal. org/)為例,其所能處理的序列類型為氨基酸序列和核酸序列,所能接受的輸入文件的格式類型有NBRF/PIR, EMBL/Swissprot, Pearson〈Fasta>,⑶E,Clustal,GCG/MSF,RSF這7種,不能直接應用于攻擊特征提取。基于序列比對的攻擊特征提取方法在不斷地被提出,現有的方法主要分為如下兩種方式,第一種是重新實現了標準的序列比對算法,第二種是對序列比對算法做了ー些小的改進,這些算法都存在下列問題第一,這兩類方法都不能保證他們的攻擊特征提取的效果會比現有的生物信息學中最新的序列比對算法更好;第二,由于實現工作量巨大,不便于編寫多種不同算法的攻擊特征提取程序對算法進行比較,以彌補單ー算法在攻擊特征提取上的某些缺陷。因此,如何能夠提高程序的可擴展性,不斷引入新的序列比對算法,以提高基于序列的攻擊特征提取的準確性和時效性是本領域技術人員特別關注并致カ于解決的熱點問題。
發明內容
本發明要解決的技術問題是提出ー種利用編碼轉化實現基于序列比對的攻擊特征提取的方法,解決現有多序列比對算法不能及時運用于攻擊特征提取的問題。通過本發明的可擴展性,能夠隨著引入的新的多序列算法的改進,提高攻擊特征提取的準確性和時效性。本發明以實現對多個攻擊字符序列的攻擊特征自動提取為目的,選取生物信息學中現行的多種多序列比對軟件作為提取工具。但是,考慮到這些多序列比對軟件在處理輸入序列上的局限性(只能處理特定格式的氨基酸序列或核酸序列),故采用編碼轉化的方法將攻擊字符序列轉化為氨基酸序列或核酸序列,用于進行多序列比對。為解決上述具體技術問題,技術方案包括以下步驟第一歩,設計基于編碼轉化技術的多序列比對攻擊特征提取軟件。 多序列比對攻擊特征提取軟件由編碼轉化映射表List、編碼轉化模塊、標準多序列比對程序和編碼逆轉化模塊組成。編碼轉化映射表List為ー個字符數組,數組中每個元素的內容為氨基酸字符或核酸字符,但ー個List中不能同時具有氨基酸字符和核酸字符,List中元素的內容沒有重復,且List中元素個數大于等于2,List中每個元素都有對應的唯一的下標(一個下標表明ー個元素在List中的位置)。編碼轉化模塊接收用戶提供的用于攻擊特征提取的多個攻擊字符序列,根據編碼轉化映射表List,采用映射關系f :X — Ym將多個攻擊字符序列轉化為多個氨基酸序列或核酸序列,將多個氨基酸序列或核酸序列傳輸給標準多序列比對程序為一位攻擊字符所對應氨基酸字符或核酸字符的位數,集合X為攻擊字符序列中的所有可能出現的字符的集合,集合Y為編碼轉化映射表List中所有單個氨基酸字符或核酸字符的下標的集合,根據下標可以在List中找到對應的氨基酸字符或核酸字符,映射關系f :X — Ym必須為単射,即對每ー值域Ym內的yiy2. . . ym,存在至多ー個定義域X內的X使得f(x) =yiy2...yni。標準多序列比對程序是指生物信息學中現有的用于對多個氨基酸序列或核酸序列進行序列比對的應用程序,標準多序列比對程序對轉化后的氨基酸序列或核酸序列進行多序列比對,并將多序列比對結果傳輸給編碼逆轉化模塊;編碼逆轉化模塊接收標準多序列比對程序的比對結果,提取比對結果中多個氨基酸序列或核酸序列所共有的序列片段(簡稱為共同序列),并根據編碼轉化映射表List將共同序列通過f :X — Ym的逆映射進行編碼逆轉化,將共同序列的內容還原為攻擊字符序列中相應的字符,即為多個攻擊字符序列所具有的攻擊特征。第二歩,編碼轉化模塊對多個攻擊字符序列進行編碼轉化,生成標準多序列比對程序可以處理的多個氨基酸序列或核酸序列。方法是2. I根據用戶輸入的文件存儲路徑查找到需要進行編碼轉化的攻擊字符序列,攻擊字符序列個數為N,N > 2 ;2. 2對編碼轉化模塊進行初始化,設需要進行編碼轉化的攻擊字符序列為S0,S1. . .Si, ... Sn_i,n = N,Si為當前需要進行編碼轉化的攻擊字符序列,i的初始值為0,0彡i彡n-l,@Si中當前需要進行編碼轉化的攻擊字符為第j個,j的初始值為0,0 ^ j ^ Li, Li為序列Si的長度,即Si中的字符個數;2. 3對攻擊字符序列Si進行命名,命名方法是N個攻擊字符序列都具有不同的序列名(如采用原攻擊字符序列名),并將Si的序列名寫入編碼轉化結果文件中文件格式要求的位置,編碼轉化結果文件格式是指標準氨基酸多序列比對程序可以處理的文件格式;2. 4讀取當前序列第j個字符,判斷字符內容是否為結束符,若是則轉2. 7,若否則轉 2. 5 ;2. 5根據得到的字符內容,通過映射關系f :X — Ym分別得到m個氨基酸字符或核酸字符在List中對應的下標,通過下標依次找到List中的m位氨基酸字符或核酸字符,并將m位氨基酸字符或核酸字符寫入編碼轉化結果文件中。2. 6令Si中當前字符位置向后移動一位,即j = j+1,轉2. 4 ;2. 7令當前需要進行編碼轉化的攻擊字符序列為下ー攻擊字符序列,即i = i+1,判斷i是否大于等于n,若是,表示對所有攻擊字符序列已轉化完,得到用于進行多序列比對的N個氨基酸序列或核酸序列,轉第三步,若否,轉2. 3 ;第三歩,選擇標準多序列比對程序對N個氨基酸序列或核酸序列進行多序列比對,得到N個氨基酸序列或核酸序列的比對結果,比對結果由N個參與比對的氨基酸序列或核酸序列及一個標記序列構成,標記序列中將N個參與比對的氨基酸序列或核酸序列所具有的共同序列字符所在的位置用標記字符標記(標記序列為標準多序列比對程序自動添カロ,標記序列中的標記字符一般為不在氨基酸序列或核酸序列中出現的字符),并將多序列比對結果傳輸給編碼逆轉化模塊。標準多序列比對程序可以根據對精度和序列比對時間開銷的需要選擇,例如ClustalW,T-Coffee, MUSCLE等生物信息學中比較常用的程序。第四步,編碼逆轉化模塊將比對結果中標記的共同序列提取出來,并根據編碼轉化映射表List映射回攻擊序列字符,得到多個攻擊字符序列的共同部分,即攻擊特征。方法是4. I在比對結果中選取ー個氨基酸序列或核酸序列作為基序列,基序列要求第一位字符不為間隔標記,間隔標記是標準多序列比對程序用于將多個氨基酸序列或核酸序列中共同序列部分位置對齊而在多個氨基酸序列或核酸序列中插入的字符,該字符與氨基酸序列或核酸序列中其他所有的字符不重復,常用的標準多序列比對程序多采用”-”作為間隔字符;4. 2查找每一序列的內容中是否具有標記字符找到比對結果中的標記序列;4. 3確定標記序列中標記字符存在于序列中的位置,不妨設標記字符存在于標記序列的第J1位,第j2位,第j3位…第js位,I < js < Li,從基序列第一個字符開始遍歷基序列,若為第J1位,第j2位,第j3位…第js位,則提取出氨基酸字符或核酸字符,寫入中間結果中,中間結果只用于記錄提取出來的共同序列,可以采用字符串數組、文件等多種格式,否則將間隔標記寫入中間結果的序列中,直至基序列遍歷完畢;4. 4以表示一位攻擊字符所需氨基酸字符或核酸字符的位數m位為單位讀取中間結果中的序列內容;4. 5檢查當前讀取的m位中間結果的序列內容中是否有結束符,若是則轉4. 9,若否則轉4. 6 ;4. 6檢查當前讀取的m位中間結果的序列內容中是否有間隔標記,若是則寫入一個間隔標記到攻擊特征,攻擊特征為一個字符串序列,可以采用字符串數組、文件等多種結構,轉4. 8,若否則轉4. 7 ;、
4. 7根據當前讀取的m位氨基酸字符或核酸字符的內容,根據編碼轉化映射表List找到m位氨基酸字符或核酸字符在List中對應的下標,通過f :X — Ym的逆映射g Ym — X,得到當前m位氨基酸字符或核酸字符表示的攻擊字符內容,將相應攻擊字符內容寫入攻擊特征,映射關系g :Ym — X滿足對于W Si有g(f (X)) = x,即對于任意的攻擊字符內容X,在通過映射關系f轉化為yj2... ym后,能夠通過映射關系g將Ij2... ym轉化得到原來攻擊字符內容X ;4.8向后讀取m位中間結果中序列的內容,轉4. 5 ;4. 9編碼逆轉化完成,得到所選的多個攻擊字符序列的共同部分,即攻擊特征。采用本發明可以達到以下有益效果I.本發明具有可擴展性,在第三步中可以通過調用不斷發展的生物信息學中的多序列比對軟件,將新的多序列比對軟件即時運用于攻擊特征提取技木。通過新的多序列比 對軟件的引入,可以提高本發明在攻擊特征提取上的準確性和時效性。由于生物信息學中氨基酸序列或核酸序列本身就具有多祥性,這些多序列比對軟件在處理攻擊字符序列轉化得到的氨基酸序列或核酸序列吋,也可以有效識別出某些移位,變化或者重復的特征序列,從而能夠保證得到的攻擊特征的準確度滿足基本的攻擊特征提取的要求。2.通過第二步的編碼轉化,得到多種標準多序列比對程序都可以處理的包含有N個氨基酸序列或核酸序列的文件,在第三步對攻擊字符序列采用不同算法的多序列比對程序進行攻擊特征自動提取時,就不再需要根據不同的算法重新編寫程序,節約開發成本。更進ー步來說,還可以利用ー些提供多序列比對服務的網站對轉化后得到的氨基酸序列或核酸序列進行處理,既節約了實驗中軟件開發的成本,還可以節約用于實驗的硬件成本。3.本發明便于對多種不同的多序列比對算法進行比較。一方面,不同算法的多序列比對軟件在提取共同序列吋,對某些序列片段是否為共同序列可能會由于權值問題而有所差異,另一方面,彌補不同算法的多序列比對軟件在提取共同序列時由于自身算法的問題而可能忽略掉個別較短氨基酸序列或核酸序列片段的問題,這個問題是由于不同的算法對于共同序列中連續的字符序列片段給予的權值不同,而某些較短的氨基酸序列或核酸序列片段會由于權值較低而不被認為是共同序列所導致的。4.在第二步中通過編碼轉化得到氨基酸序列或核酸序列,不僅可以用于本發明中的多序列比對,還可以運用其他的生物信息學軟件對序列進行其他方面的分析,如分析多個攻擊字符序列之間的相似度,建立多個攻擊字符序列之間的親緣關系等。
圖I是本發明總體流程圖。圖2是本發明第二步編碼轉化模塊對攻擊字符序列進行編碼轉化的流程圖。圖3(a)是本發明第四步編碼逆轉化模塊提取共同序列得到中間結果的流程圖。圖3(b)是本發明第四步編碼逆轉化模塊中間結果編碼逆轉化的流程圖。圖4是本發明的ー個具體實施例。
具體實施例方式圖I是本發明總體流程圖,本發明包括以下四歩。
第一歩,設計基于編碼轉化技術的多序列比對攻擊特征提取軟件,多序列比對攻擊特征提取軟件由編碼轉化映射表、編碼轉化模塊、標準多序列比對程序和編碼逆轉化模塊組成。第二歩,編碼轉化模塊對N個攻擊字符序列進行編碼轉化,生成標準多序列比對程序可以處理的N個氨基酸序列或核酸序列。第三歩,選擇標準多序列比對程序對N個氨基酸序列或核酸序列進行多序列比對,得到對N個氨基酸序列或核酸序列的共同序列進行標記的比對結果。第四步,編碼逆轉化模塊將比對結果中標記的共同序列提取出來,并根據編碼轉化映射表List映射回攻擊序列字符,得到多個攻擊字符序列的共同部分,即攻擊特征。圖2是本發明第二步編碼轉化模塊對N個攻擊序列進行編碼轉化的流程圖。編碼
轉化模塊對N個攻擊字符序列進行編碼轉化,生成標準多序列比對程序可以處理的N個氨基酸序列或核酸序列。方法是(I)根據用戶輸入的文件存儲路徑查找到需要進行編碼轉化的攻擊字符序列,攻擊字符序列個數N,N彡2 ;(2)對編碼轉化模塊進行初始化,設需要進行編碼轉化的攻擊字符序列為S0, S11--Si,... Sn+ n = N,Si為當前需要進行編碼轉化的攻擊字符序列,i的初始值為0,0彡i彡n-ld^Si中當前需要進行編碼轉化的攻擊字符為第j個,j的初始值為0,0 ^ j ^ Li, Li為序列Si的長度;(3)對攻擊字符序列Si進行命名,命名方法是N個攻擊字符序列都具有不同的的序列名(如采用原攻擊字符序列名),并將Si的序列名寫入編碼轉化結果文件中文件格式要求的位置;(4)讀取當前序列第j個字符,判斷字符內容是否為結束符,若是則轉(7),若否則轉(5);(5)根據得到的字符內容,通過映射關系f:X —Ym,分別得到m個氨基酸字符或核酸字符在List中對應的下標,通過下標依次找到List中的m位氨基酸字符或核酸字符并寫入編碼轉化結果文件中。(6)令Si中當前字符位置向后移動一位,即j = j+1,轉⑷;(7)令當前需要進行編碼轉化的攻擊字符序列為下ー攻擊字符序列,即i = i+1,判斷i是否大于等于n,若是,表示對所有攻擊字符序列已轉化完,得到用于進行多序列比對的N個氨基酸序列或核酸序列,轉第三步,若否,轉(3);圖3(a)為第四步編碼逆轉化模塊中提取共同序列得到中間結果的流程圖,圖3 (b)為第四步編碼逆轉化模塊中中間結果編碼逆轉化的流程圖。編碼逆轉化模塊將標準多序列比對程序的比對結果中標記的共同序列提取出來,并根據編碼轉化映射表List映射回攻擊序列字符,得到多個攻擊字符序列的共同部分,即攻擊特征。方法是(I)在比對結果中選取ー個氨基酸序列或核酸序列作為基序列,基序列要求第一位字符不為間隔標記,間隔標記是標準多序列比對程序用于將多個氨基酸序列或核酸序列中共同序列部分位置對齊而在多個氨基酸序列或核酸序列中插入的字符,該字符與氨基酸序列或核酸序列中其他所有的字符不重復;(2)查找每一序列的內容中是否具有標記字符找到比對結果中的標記序列;
(3)確定標記序列中標記字符存在于序列中的位置,不妨設標記字符存在于標記序列的第J1位,第j2位,第j3位…第js位,I < K Li,從基序列第一個字符開始遍歷基序列,若為第J1位,第j2位,第j3位…第js位,則提取出氨基酸字符或核酸字符,寫入中間結果中,否則將間隔標記寫入中間結果的序列中,直至基序列遍歷完畢;(I)至(3)步如圖3(a)所示。(4)以表示一位攻擊字符所需氨基酸字符或核酸字符的位數m位為單位讀取中間結果中的序列內容;(5)檢查當前讀取的m位中間結果的序列內容中是否有結束符,若是則轉(9),若否則轉⑶;(6)檢查當前讀取的m位中間結果的序列內容中是否有間隔標記,若是則寫入一個間隔標記到攻擊特征,轉(8),若否則轉(7);(7)根據當前讀取的m位氨基酸字符或核酸字符的內容,根據映射關系g =Ym — X,得到當前m位氨基酸字符或核酸字符表示的攻擊字符內容,將相應攻擊字符內容寫入攻擊特征;(8)向后讀取m位中間結果中序列的內容,轉(5);(9)編碼逆轉化完成,得到所選的多個攻擊字符序列的共同部分,即攻擊特征。(4)至(9)步如圖3(b)所示。圖4是采用本發明對ー組攻擊字符序列進行攻擊特征提取的一個實施例。第一歩,構建基于編碼轉化技術的多序列比對攻擊特征提取軟件多序列比對攻擊特征提取軟件由編碼轉化映射表、編碼轉化模塊、標準多序列比對程序和編碼逆轉化模塊組成。在本實施例中,編碼轉化映射表List采用16位氨基酸字符構成的數組,數組內容為“ACGHIKLMNPRSTVWY”,“A”在數組中的下標為0,“C”在數組中的下標為1,依此類推,“Y”在數組中的下標為15,即根據字母順序選取前16個可用于表示氨基酸的字符。標準多序列比對程序選取ClustalW2,因為ClustalW2是目前最為常用的生物信息學多序列比對程序,在對氨基酸序列或核酸序列比對的精確度上相比MUSCLE要高,而在時間開銷上比T-Coffee要少。編碼轉化模塊的轉化方式選取為將I位攻擊字符轉化為2位氨基酸字符,采取的映射關系為f :X — Y2,編碼轉化模塊的輸出選取為ClustalW2程序可以接受的FASTA格式輸入文件,因為FASTA格式的文件格式要求簡單,并且適用于生物信息學的多種軟件。編碼逆轉化模塊的轉化方式為將2位氨基酸字符轉化為I位攻擊字符,采取的映射關系為g =Y2 — X。編碼逆轉化模塊的輸入選取為ClustalW2的Clustal格式的比對結果文件,因為Clustal格式的文件內容結構整齊,便于讀取,輸出為采用原攻擊字符表不的攻擊特征,設米用”表不攻擊特征間隔的TXT格式文本文件。第二歩,編碼轉化模塊對多個攻擊字符序列進行編碼轉化,生成標準多序列比對程序可以處理的多個氨基酸序列。2. I根據存儲路徑查找到需要進行編碼轉化的攻擊字符序列S0、SI、S2、S3,設攻擊字符序列個數n,n = 4,設測試攻擊字符序列的內容如下SO SeqOIsZeroSI :SeqlIsOneS2 :Seq2IsTwo
S3 Seq3IsThree ;2. 2對編碼轉化模塊進行初始化,設需要進行編碼轉化的攻擊字符序列為S0,S1. . .Si, ... Sn_i,n = N,Si為當前需要進行編碼轉化的攻擊字符序列,i的初始值為0,0彡i彡n-l,@Si中當前需要進行編碼轉化的攻擊字符為第j個,j的初始值為0,0 ^ j ^ Li, Li為序列Si的長度;2. 3將Si作為攻擊字符序列Si的序列名寫入編碼轉化結果中序列名的位置;2. 4讀取當前序列第j位字符,判斷字符內容是否為結束符,若是則轉2. 7,若否則轉 2. 5 ;2. 5根據得到的字符內容,采用2位氨基酸字符表示當前字符內容,根據上述映射關系f :X — Y2的要求,不妨采用如下公式 Y1 = x% 16 公式一. =ミ 16公式ニ(其中X為該攻擊字符的ASCII碼值,yi和y2分別為兩位氨基酸字符在List中的下標,^結果取整數)分別得到List中對應于yi和y2下標的2位氨基酸字符,并將2位氨基酸字符依次寫入FASTA格式文件中。2. 6令Si中當前字符位置向后移動一位,即j = j+1,轉2. 4 ;2. 7令當前需要進行編碼轉化的攻擊字符序列為下ー攻擊字符序列,即i = i+1,檢測所有攻擊字符序列是否進行編碼轉化完畢,即判斷i是否大于等于4,若否,轉2. 3,若是,表示對所有攻擊字符序列已轉化完,得到用于進行多序列比對的4個氨基酸序列,轉第三步,其中氨基酸序列內容如下SO HLKMCGAKPVHIRVKMGHYCSIHLKMCGCLPVHIYHWAKMS2 HLKMCGGMPVHIIMMNYCS3 :HLKMCGHNPVHnMNRGHKMKM第三步,調用多序列比對程序ClustalW2對4個氨基酸序列進行多序列比對,得到對4個氨基酸序列的共同序列進行標記的比對結果,比對結果內容如下SO :HLKMCGAKPVHIRVKMG—HYCSI HLKMCGGMPVHI-IMM—NYCS2 HLKMCGHNPVHIIMNRGHKMKMS3 HLKMCGCLPVHIYHWA——KM氺氺氺氺氺氺氺氺氺氺第四步,編碼逆轉化模塊將ClustalW2程序的比對結果中標記的共同序列提取出來,并根據編碼轉化映射表List與映射關系g :Y2 — X映射回攻擊序列字符,得到多個攻擊字符序列的共同部分,即攻擊特征。4. I在比對結果中選取SO作為基序列;4. 2查找每一序列的內容中是否具有標記字符找到比對結果中用于標記共同序列的標記序列;4. 3確定標記序列中標記字符存在于序列中的位置,不妨設標記字符存在于標記序列的第J1位,第j2位,第j2位…第js位,從基序列第一個字符開始遍歷基序列,若為第J1位,第j2位,第j3位…第js位,則提取出氨基酸字符(或核酸字符),寫入中間結果文件的序列中,否則將間隔標記寫入中間結果文件的序列中,直至序列遍歷完畢,中間結果文件中序列內容為“HLKMCG——PVHI--------” ;4. 4以2位字符為單位讀取中間結果文件中的序列內容;4. 5檢查當前讀取的2位中間結果的序列內容中是否有文件結束符,若是則轉4. 9,,若否則轉4. 6 ;4. 6檢查當前讀取的2位中間結果的序列內容中是否有間隔標記若是則寫入ー個間隔標記”到攻擊特征,轉4. 8,若否則轉4.7 ;4. 7根據當前讀取的2位氨基酸字符的內容,利用公式一、公式ニ和編碼轉化映射表List,采用映射關系g =Y2 — X,具體公式為X = (Xy1I2) % 16) X 16+y2 公式三得到當前2位氨基酸字符表示的攻擊字符內容的ASCII碼,將相應攻擊字符內容寫入攻擊特征;4.8向后讀取2位中間結果中序列的內容,轉4. 5 ;4. 9編碼逆轉化完成,得到所選的多個攻擊字符序列的共同部分,即攻擊特征最終提取出來的攻擊特征為“Seq. Is….”以下是本發明對 apache_host, athttps, athttps. A, athttps.B, athttps.し,bindTSib,codered. A, codered.B, codered. C, codered.D, codered.E, coaered. F,IISprinte等攻擊字符序列樣本的實驗結果,順序依次為基于CLUSTALW、MUSCLE、T-Coffee程序的實驗結果和通過對現有算法完善(CSR-Needleman-Wunsch雙序列比對技術+T-COFFEE多序列比對技術)而重新實現得到的PolyTree程序(唐勇;基于網絡的攻擊特征自動提取技術研究[D];國防科學技術大學;2008年)的參考實驗結果。表I攻擊樣本分析比對數據
權利要求
1.一種利用編碼轉化實現基于序列比對的攻擊特征提取的方法,其特征在于包括以下步驟 第一步,設計基于編碼轉化技術的多序列比對攻擊特征提取軟件,多序列比對攻擊特征提取軟件由編碼轉化映射表List、編碼轉化模塊、標準多序列比對程序和編碼逆轉化模塊組成;編碼轉化映射表List為一個字符數組,數組中每個元素的內容為氨基酸字符或核酸字符,一個List中不同時具有氨基酸字符和核酸字符,List中元素的內容沒有重復,且List中元素個數大于等于2,List中每個元素都有對應的唯一的下標;編碼轉化模塊接收用戶提供的用于攻擊特征提取的多個攻擊字符序列,根據編碼轉化映射表List,采用映射關系f :X — Ym將多個攻擊字符序列轉化為多個氨基酸序列或核酸序列,將多個氨基酸序列或核酸序列傳輸給標準多序列比對程序;m為一位攻擊字符所對應氨基酸字符或核酸字符的位數,集合X為攻擊字符序列中的所有可能出現的字符的集合,集合Y為編碼轉化映射表中所有單個氨基酸字符或核酸字符的下標的集合,映射關系f :X — Y"1必須為單射,即對每一值域Ym內的I1I2. ■ ■ ym,存在至多一個定義域X內的X使得f (X) = Iii2- ■ ■ ym° ;標準多序列比對程序是指生物信息學中現有的用于對多個氨基酸序列或核酸序列進行序列比對的應用程序,標準多序列比對程序對轉化后的氨基酸序列或核酸序列進行多序列比對,并將多序列比對結果傳輸給編碼逆轉化模塊;編碼逆轉化模塊接收標準多序列比對程序的比對結果,提取比對結果中多個氨基酸序列或核酸序列所共有的序列片段即共同序列,并根據編碼轉化映射表List將共同序列通過f :x — Γ的逆映射進行編碼逆轉化,將共同序列的內容還原為攻擊字符序列中相應的字符,即為多個攻擊字符序列所具有的攻擊特征; 第二步,編碼轉化模塊對多個攻擊字符序列進行編碼轉化,生成標準多序列比對程序可以處理的多個氨基酸序列或核酸序列,方法是 .2.1根據用戶輸入的文件存儲路徑查找到需要進行編碼轉化的攻擊字符序列,攻擊字符序列個數為N,N > 2 ; .2. 2對編碼轉化模塊進行初始化,設需要進行編碼轉化的攻擊字符序列為Stl,S1.. .Si, ... Sn^1, η = N, Si為當前需要進行編碼轉化的攻擊字符序列,i的初始值為O, Ii-LSSi中當前需要進行編碼轉化的攻擊字符為第j個,j的初始值為0,O Li, Li為序列Si的長度,即Si中的字符個數; . 2. 3對攻擊字符序列Si進行命名,命名方法是N個攻擊字符序列都具有不同的序列名,并將Si的序列名寫入編碼轉化結果文件中文件格式要求的位置,編碼轉化結果文件格式是指標準氨基酸多序列比對程序可以處理的文件格式; . 2.4讀取當前序列第j個字符,判斷字符內容是否為結束符,若是則轉2. 7,若否則轉.2.5 ; .2.5根據得到的字符內容,通過映射關系f :X — Ym,分別得到m個氨基酸字符或核酸字符在List中對應的下標,通過下標依次找到List中的m位氨基酸字符或核酸字符并寫入編碼轉化結果文件中; . 2.6令Si中當前字符位置向后移動一位,即j = j+1,轉2. 4 ; .2.7令當前需要進行編碼轉化的攻擊字符序列為下一攻擊字符序列,即i = i+Ι,判斷i是否大于等于n,若是,表示對所有攻擊字符序列已轉化完,得到用于進行多序列比對的N個氨基酸序列或核酸序列,轉第三步,若否,轉2. 3 ;第三步,選擇標準多序列比對程序對N個氨基酸序列或核酸序列進行多序列比對,得到N個氨基酸序列或核酸序列的比對結果,比對結果由N個參與比對的氨基酸序列或核酸序列及一個標記序列構成,標記序列中將N個參與比對的氨基酸序列或核酸序列所具有的共同序列字符所在的位置用標記字符標記,并將多序列比對結果傳輸給編碼逆轉化模塊;第四步,編碼逆轉化模塊將比對結果中標記的共同序列提取出來,并根據編碼轉化映射表List映射回攻擊序列字符,得到多個攻擊字符序列的共同部分,即攻擊特征,方法是 .4.I在比對結果中選取一個氨基酸序列或核酸序列作為基序列,基序列要求第一位字符不為間隔標記,間隔標記是標準多序列比對程序用于將多個氨基酸序列或核酸序列中共同序列部分位置對齊而在多個氨基酸序列或核酸序列中插入的字符,該字符與氨基酸序列或核酸序列中其他所有的字符不重復; .4.2查找每一序列的內容中是否具有標記字符找到比對結果中的標記序列; .4.3確定標記序列中標記字符存在于序列中的位置,設標記字符存在于標記序列的第J1位,第j2位,第j3位…第js位,I ≤ js≤Li,從基序列第一個字符開始遍歷基序列,若為第么位’第上位’第j3位…第」3位,則提取出氨基酸字符或核酸字符,寫入中間結果中,否則將間隔標記寫入中間結果的序列中,直至基序列遍歷完畢; .4.4以表示一位攻擊字符所需氨基酸字符或核酸字符的位數m位為單位讀取中間結果中的序列內容; .4.5檢查當前讀取的m位中間結果的序列內容中是否有結束符,若是則轉4. 9,若否則轉 4.6 ; .4.6檢查當前讀取的m位中間結果的序列內容中是否有間隔標記,若是則寫入一個間隔標記到攻擊特征,轉4. 8,若否則轉4. 7 ; . 4.7根據當前讀取的m位氨基酸字符或核酸字符的內容,根據編碼轉化映射表List找到m位氨基酸字符或核酸字符在List中對應的下標,通過f :X — Ym的逆映射g =Ym — X,得到當前m位氨基酸字符或核酸字符表示的攻擊字符內容,將相應攻擊字符內容寫入攻擊特征,映射關系g :
2.如權利要求I所述的利用編碼轉化實現基于序列比對的攻擊特征提取的方法,其特征在于所述標準多序列比對程序根據對精度和序列比對時間開銷的需要選擇。
3.如權利要求I所述的利用編碼轉化實現基于序列比對的攻擊特征提取的方法,其特征在于所述中間結果是用于記錄提取出來的共同序列的字符串數組或文件。
全文摘要
本發明公開了一種利用編碼轉化實現基于序列比對的攻擊特征提取的方法,目的是解決現有攻擊特征提取的準確性和時效性不高的問題。其特征在于先設計由編碼轉化映射表List、編碼轉化模塊、標準多序列比對程序和編碼逆轉化模塊組成的多序列比對攻擊特征提取軟件,然后由編碼轉化模塊對多個攻擊字符序列進行編碼轉化,生成標準多序列比對程序可以處理的多個氨基酸序列或核酸序列,再選擇多序列比對程序對氨基酸序列或核酸序列進行多序列比對,得到比對結果,最后由編碼逆轉化模塊將比對結果中標記的共同序列提取出來,并根據List映射回攻擊序列字符,得到攻擊特征。采用本發明可以及時運用多序列比對軟件,提高攻擊特征提取的準確性和時效性。
文檔編號G06F21/00GK102663287SQ20121007735
公開日2012年9月12日 申請日期2012年3月22日 優先權日2012年3月22日
發明者唐勇, 張博鋒, 王勇軍, 趙越 申請人:中國人民解放軍國防科學技術大學