本公開涉及協(xié)議解析領(lǐng)域,具體地,涉及一種數(shù)據(jù)匹配方法和裝置、協(xié)議數(shù)據(jù)分析方法、裝置和系統(tǒng)。
背景技術(shù):
應(yīng)用層網(wǎng)絡(luò)防護(hù),通常要先對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行協(xié)議分析,得到協(xié)議的各個(gè)字段,每個(gè)字段對(duì)應(yīng)一段連續(xù)的數(shù)據(jù)區(qū)域,再將某些協(xié)議的字段提交給各個(gè)安全功能檢測(cè)模塊,以進(jìn)行例如入侵防御、入侵檢測(cè)、反垃圾郵件、防病毒等網(wǎng)絡(luò)安全功能檢測(cè)。
現(xiàn)有技術(shù)中一般將協(xié)議分析和之后的多個(gè)安全檢測(cè)功能劃分成不同子系統(tǒng),同一段數(shù)據(jù)或者數(shù)據(jù)的檢測(cè)結(jié)果在各個(gè)子系統(tǒng)之間應(yīng)用,例如,在應(yīng)用層協(xié)議解析之后分別將控制信道數(shù)據(jù)和數(shù)據(jù)信道數(shù)據(jù)分別提交給入侵檢測(cè)系統(tǒng)和病毒檢測(cè)單元。在現(xiàn)有技術(shù)中,協(xié)議分析會(huì)考慮后面安全檢測(cè)功能的可擴(kuò)展性,會(huì)對(duì)協(xié)議各個(gè)字段的分析盡可能詳盡,導(dǎo)致分析性能較低;協(xié)議分析之后的安全檢測(cè)的各個(gè)功能耦合度低,但同一段數(shù)據(jù)被協(xié)議分析和之后的網(wǎng)絡(luò)防護(hù)功能分析多遍,時(shí)間復(fù)雜度高,數(shù)據(jù)檢測(cè)的次數(shù)與安全功能檢測(cè)的數(shù)量線性相關(guān),導(dǎo)致系統(tǒng)的整體檢測(cè)效率較低。
技術(shù)實(shí)現(xiàn)要素:
本公開的目的是提供一種一次數(shù)據(jù)分析實(shí)現(xiàn)協(xié)議數(shù)據(jù)解析和多個(gè)安全功能的同時(shí)檢測(cè)的數(shù)據(jù)匹配方法和裝置、協(xié)議數(shù)據(jù)分析方法、裝置和系統(tǒng)。
為了實(shí)現(xiàn)上述目的,本公開提供一種數(shù)據(jù)匹配方法,應(yīng)用于詞法分析器,包括:將待匹配的協(xié)議數(shù)據(jù)與所述詞法分析器中的模式串集合進(jìn)行匹配,所 述模式串集合中的每個(gè)模式串具有對(duì)應(yīng)的匹配特征,所述匹配特征包括協(xié)議字段標(biāo)識(shí)和安全檢測(cè)標(biāo)識(shí);在滿足與所述詞法分析器對(duì)應(yīng)的匹配結(jié)束條件時(shí)終止匹配,并輸出匹配結(jié)果,其中,所述匹配結(jié)果包括:N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù);在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,保存匹配到的匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串對(duì)應(yīng)的數(shù)據(jù)匹配范圍,并且,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí)。
可選地,所述匹配結(jié)束條件包括是否匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串;以及,N=1。
可選地,所述匹配結(jié)束條件包括所述待匹配的協(xié)議數(shù)據(jù)是否全部匹配完畢;以及,N為在所述待匹配的協(xié)議數(shù)據(jù)中,匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的模式串的總數(shù)。
本公開提供一種協(xié)議數(shù)據(jù)分析方法,應(yīng)用于語法分析器,包括:接收待匹配的協(xié)議數(shù)據(jù);將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器,以由所述詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配;接收所述詞法分析器在終止匹配后返回的匹配結(jié)果,其中,所述匹配結(jié)果包括N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù),在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí);對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析;在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,確定與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào);將所述相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)所對(duì)應(yīng)的數(shù)據(jù)匹配范圍內(nèi)的數(shù)據(jù)輸入至安全管理模塊,以由所述安全管理模塊進(jìn)行安全管理。
可選地,所述詞法分析器的數(shù)量為一個(gè);所述詞法分析器在對(duì)所述待匹配的協(xié)議數(shù)據(jù)全部匹配完成后終止匹配;所述對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析,包括;按照所述N個(gè)帶謂詞的終結(jié)符號(hào)中所包括的模式串的匹配順序,對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)逐一進(jìn)行語法解析。
可選地,所述詞法分析器的數(shù)量為多個(gè),多個(gè)詞法分析器與所述語法分析器的多個(gè)狀態(tài)一一對(duì)應(yīng);在所述將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器的步驟之前,所述方法還包括:將所述協(xié)議的終結(jié)符號(hào)壓入符號(hào)棧的棧頂;所述將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器,包括:將所述待匹配的協(xié)議數(shù)據(jù)和從所述符號(hào)棧取出的當(dāng)前棧頂符號(hào)輸入至與狀態(tài)棧的當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器,以由與所述當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配,其中,所述詞法分析器在從所述待匹配的協(xié)議數(shù)據(jù)中匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串后終止匹配;所述方法還包括:在對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)完成語法解析后,判斷是否獲得協(xié)議的目標(biāo)非終結(jié)符號(hào);在未獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)的情況下,返回所述接收待匹配的協(xié)議數(shù)據(jù)的步驟,其中,再次接收的待匹配的協(xié)議數(shù)據(jù)是前次接收的待匹配的協(xié)議數(shù)據(jù)中除去前次已匹配完成的數(shù)據(jù)部分后剩余的數(shù)據(jù)部分。
可選地,所述在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,確定與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào),包括:在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,從所述詞法分析器獲取匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍;將數(shù)據(jù)匹配范圍包括匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍的帶謂詞的終結(jié)符號(hào)確定為是與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)。
本公開還提供一種數(shù)據(jù)匹配裝置,應(yīng)用于詞法分析器,包括:匹配模塊,用于將待匹配的協(xié)議數(shù)據(jù)與所述詞法分析器中的模式串集合進(jìn)行匹配,所述 模式串集合中的每個(gè)模式串具有對(duì)應(yīng)的匹配特征,所述匹配特征包括協(xié)議字段標(biāo)識(shí)和安全檢測(cè)標(biāo)識(shí);輸出模塊,用于在滿足與所述詞法分析器對(duì)應(yīng)的匹配結(jié)束條件時(shí)終止匹配,并輸出匹配結(jié)果,其中,所述匹配結(jié)果包括:N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù);保存模塊,用于在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,保存匹配到的匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串對(duì)應(yīng)的數(shù)據(jù)匹配范圍,并且,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí)。
可選地,所述匹配結(jié)束條件包括是否匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串;以及,N=1。
可選地,所述匹配結(jié)束條件包括所述待匹配的協(xié)議數(shù)據(jù)是否全部匹配完畢;以及,N為在所述待匹配的協(xié)議數(shù)據(jù)中,匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的模式串的總數(shù)。
本公開還提供一種協(xié)議數(shù)據(jù)分析裝置,應(yīng)用于語法分析器,包括:第一接收模塊,用于接收待匹配的協(xié)議數(shù)據(jù);第一輸入模塊,用于將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器,以由所述詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配;第二接收模塊,用于接收所述詞法分析器在終止匹配后返回的匹配結(jié)果,其中,所述匹配結(jié)果包括N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù),在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí);解析模塊,用于對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析;確定模塊,用于在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,確定與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符 號(hào);第二輸入模塊,用于將所述相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)所對(duì)應(yīng)的數(shù)據(jù)匹配范圍內(nèi)的數(shù)據(jù)輸入至安全管理模塊,以由所述安全管理模塊進(jìn)行安全管理。
可選地,所述詞法分析器的數(shù)量為一個(gè);所述詞法分析器在對(duì)所述待匹配的協(xié)議數(shù)據(jù)全部匹配完成后終止匹配;所述解析模塊,包括;第一解析子模塊,用于按照所述N個(gè)帶謂詞的終結(jié)符號(hào)中所包括的模式串的匹配順序,對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)逐一進(jìn)行語法解析。
可選地,所述詞法分析器的數(shù)量為多個(gè),多個(gè)詞法分析器與所述語法分析器的多個(gè)狀態(tài)一一對(duì)應(yīng);所述裝置還包括:符號(hào)壓入模塊,用于將所述協(xié)議的終結(jié)符號(hào)壓入符號(hào)棧的棧頂;所述第一輸入模塊,包括;輸入子模塊,用于將所述待匹配的協(xié)議數(shù)據(jù)和從所述符號(hào)棧取出的當(dāng)前棧頂符號(hào)輸入至與狀態(tài)棧的當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器,以由與所述當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配,其中,所述詞法分析器在從所述待匹配的協(xié)議數(shù)據(jù)中匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串后終止匹配;所述裝置還包括:判斷模塊,用于在對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)完成語法解析后,判斷是否獲得協(xié)議的目標(biāo)非終結(jié)符號(hào);在未獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)的情況下,重新觸發(fā)所述第一接收模塊接收待匹配的協(xié)議數(shù)據(jù),其中,再次接收的待匹配的協(xié)議數(shù)據(jù)是前次接收的待匹配的協(xié)議數(shù)據(jù)中除去前次已匹配完成的數(shù)據(jù)部分后剩余的數(shù)據(jù)部分。
可選地,所述確定模塊包括:獲取子模塊,用于在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,從所述詞法分析器獲取匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍;確定子模塊,用于將數(shù)據(jù)匹配范圍包括匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍的帶謂詞的終結(jié)符號(hào)確定為是與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)。
本公開提供一種協(xié)議數(shù)據(jù)解析系統(tǒng),包括:詞法分析器,包括上述的數(shù) 據(jù)匹配裝置;語法分析器,包括上述的協(xié)議數(shù)據(jù)分析裝置。
通過上述技術(shù)方案,在詞法分析器的匹配模式串集合中歸集安全檢測(cè)標(biāo)識(shí)的模式串,可以在待匹配的協(xié)議數(shù)據(jù)進(jìn)行多模匹配時(shí),將可以保存記錄協(xié)議數(shù)據(jù)中的需要進(jìn)行安全檢測(cè)功能的數(shù)據(jù)范圍,減少待匹配的協(xié)議數(shù)據(jù)的匹配次數(shù),提升檢測(cè)效率。語法分析器可以在進(jìn)行協(xié)議數(shù)據(jù)解析的同時(shí),將帶有安全檢測(cè)標(biāo)識(shí)的協(xié)議字段輸入到相應(yīng)的安全管理模塊,實(shí)現(xiàn)一次數(shù)據(jù)分析可以同時(shí)進(jìn)行協(xié)議數(shù)據(jù)解析和多個(gè)安全功能檢測(cè)。同時(shí),安全管理模塊可以獨(dú)立開發(fā),提升系統(tǒng)開發(fā)和擴(kuò)展的效率,方便系統(tǒng)維護(hù)。
本公開的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。
附圖說明
附圖是用來提供對(duì)本公開的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本公開,但并不構(gòu)成對(duì)本公開的限制。在附圖中:
圖1是根據(jù)本公開的一種實(shí)施方式提供的數(shù)據(jù)匹配方法的流程圖;
圖2是根據(jù)本公開的一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析方法的流程圖;
圖3是根據(jù)本公開的另一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析方法的流程圖;
圖4是根據(jù)本公開的另一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析方法中對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析步驟的流程圖;
圖5是根據(jù)本公開的一種實(shí)施方式提供的數(shù)據(jù)匹配裝置的框圖;
圖6是根據(jù)本公開的一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析裝置的框圖;
圖7是根據(jù)本公開的一種實(shí)施方式提供的協(xié)議狀態(tài)遷移圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本公開的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本公開,并不用于限制本公開。
本公開提供的協(xié)議數(shù)據(jù)解析系統(tǒng)分為預(yù)處理部分和檢測(cè)部分。預(yù)處理部分用帶謂詞的上下文無關(guān)文法分別定義兩類規(guī)則:協(xié)議解析規(guī)則和安全檢測(cè)規(guī)則,并通過定義不同的產(chǎn)生式語法和符號(hào)來區(qū)分規(guī)則的類型。對(duì)上述規(guī)則進(jìn)行分析并生成語法分析器和詞法分析器。
其中,語法分析器包含一個(gè)分析語法狀態(tài)的自動(dòng)機(jī),自動(dòng)機(jī)是由控制器、狀態(tài)棧和符號(hào)棧、自動(dòng)機(jī)狀態(tài)跳轉(zhuǎn)表和動(dòng)作表、輸入和輸出構(gòu)成。其中,控制器負(fù)責(zé)自動(dòng)機(jī)調(diào)度,狀態(tài)棧保存自動(dòng)機(jī)狀態(tài),符號(hào)棧保存輸入符號(hào),動(dòng)作表保存文法產(chǎn)生式的動(dòng)作,輸入的是協(xié)議終結(jié)符號(hào)和待匹配的協(xié)議數(shù)據(jù),輸出的是協(xié)議字段和安全檢測(cè)功能的處理結(jié)果,其中,該處理結(jié)果可以是安全管理模塊對(duì)相應(yīng)的協(xié)議字段進(jìn)行安全管理后生成的日志等文件。
詞法分析器歸集文法符號(hào)上謂詞的模式串,根據(jù)產(chǎn)生式類型分別對(duì)謂詞中的模式串給予協(xié)議字段標(biāo)識(shí)或者安全檢測(cè)標(biāo)識(shí),從而生成模式串集合對(duì)應(yīng)的多模匹配算法。
另外,在語法分析器的自動(dòng)機(jī)中,自動(dòng)機(jī)狀態(tài)下的輸入符號(hào)如果是帶有謂詞模式串的符號(hào),則生成一個(gè)對(duì)應(yīng)的謂詞模式串集合。其中,模式串集合既歸集該狀態(tài)下協(xié)議解析產(chǎn)生式中的符號(hào)的謂詞模式串,給予協(xié)議字段標(biāo)識(shí);也歸集安全檢測(cè)產(chǎn)生式中的特定符號(hào)的謂詞模式串,給予安全檢測(cè)標(biāo)識(shí),其中,特定符號(hào)是指與協(xié)議解析產(chǎn)生式左部的帶謂詞的終結(jié)符號(hào)語義等價(jià)的非終結(jié)符號(hào),如果非終結(jié)符號(hào)在協(xié)議解析產(chǎn)生式中是只由某帶謂詞的終結(jié)符號(hào)規(guī)約生成,則稱該非終結(jié)符號(hào)與此帶謂詞的終結(jié)符號(hào)語義等價(jià)。例如,對(duì)于協(xié)議解析產(chǎn)生式VN1:VT(p1),將模式串p1歸集到VT的謂詞模式串集合S1,給予協(xié)議字段標(biāo)識(shí);由于帶謂詞的終結(jié)符號(hào)VT(p1)與非終結(jié)符號(hào)VN1語義等價(jià),也可以歸集安全檢測(cè)產(chǎn)生式VN2→VN1(p2)中的模式串p2到VT的謂詞模式串集合S1,給予安全檢測(cè)標(biāo)識(shí)。
所有的謂詞模式串集合可以合并成一個(gè)詞法分析器,生成一個(gè)多模匹配算法;也可以對(duì)每個(gè)謂詞模式串生成一個(gè)多模匹配算法,作為一個(gè)獨(dú)立的詞法分析器,然后由語法分析器根據(jù)不同的語法狀態(tài)調(diào)度不同的詞法分析器。
協(xié)議解析規(guī)則是多功能分析的基礎(chǔ),使用帶謂詞的上下文無關(guān)文法定義。首先待匹配的協(xié)議數(shù)據(jù)定義為終結(jié)符號(hào),“終結(jié)”代表著不可再細(xì)分,是協(xié)議解析的唯一基礎(chǔ)事件。每個(gè)終結(jié)符號(hào)加上待匹配的謂詞模式串代表一個(gè)協(xié)議字段,即如果數(shù)據(jù)匹配上該謂詞,則該謂詞所對(duì)應(yīng)的數(shù)據(jù)匹配范圍的數(shù)據(jù)對(duì)應(yīng)該協(xié)議的一個(gè)協(xié)議字段。例如帶謂詞的終結(jié)符號(hào)ftp_atom_stream($1~/^STOR:.*\r\n/i)表示終結(jié)符號(hào)ftp_atom_stream的謂詞是“^STOR.*\r\n”,其數(shù)據(jù)匹配范圍代表FTP上傳命令行。
協(xié)議解析規(guī)則是用帶謂詞的上下文無關(guān)文法定義的,格式如下:
G={VT,VN,S,R,P}。
其中,VT為終結(jié)符號(hào)集,即代表待匹配的協(xié)議數(shù)據(jù)的終結(jié)符號(hào);VN為非終結(jié)符號(hào)集,即協(xié)議解析產(chǎn)生的各個(gè)協(xié)議字段對(duì)應(yīng)的抽象事件;S是目標(biāo)文法符號(hào),即協(xié)議解析的目標(biāo)非終結(jié)符號(hào),規(guī)約到S則終止協(xié)議解析;R是文法的產(chǎn)生式集,P是文法的謂詞集,定義描述各個(gè)協(xié)議字段的模式串。
一般的,協(xié)議解析規(guī)則的基礎(chǔ)產(chǎn)生式格式為:
VNm:VT(p1);
擴(kuò)展產(chǎn)生式格式為:
VNn:VN1…VNk;或者VNn:VN1…VNk|VN1…VNt;
安全檢測(cè)產(chǎn)生式格式為:
VNh→VNm(p2){Security management_fun();};
其中,基礎(chǔ)產(chǎn)生式表示一個(gè)基礎(chǔ)的待解析的協(xié)議字段的構(gòu)成;產(chǎn)生式的 左部為解析完成后代表該協(xié)議字段的非終結(jié)符號(hào);產(chǎn)生式的右部為一個(gè)帶謂詞的終結(jié)符號(hào);謂詞p1∈P,是終結(jié)符號(hào)所應(yīng)滿足的匹配條件,一般為能表達(dá)一段數(shù)據(jù)范圍的正則表達(dá)式,或是其他能夠描述起始和結(jié)束特征的精確串的表示形式。產(chǎn)生式的語義是產(chǎn)生式的左部符號(hào)是由右部符號(hào)規(guī)約而成,協(xié)議解析規(guī)則支持的規(guī)約符號(hào)是“:”,事件關(guān)系符號(hào)“|”表示邏輯或;安全檢測(cè)產(chǎn)生式的規(guī)約符號(hào)是“→”而不是“:”,表明規(guī)約之后的非終結(jié)符號(hào)不會(huì)被用于其他產(chǎn)生式,這個(gè)產(chǎn)生式是一個(gè)獨(dú)立的功能,規(guī)約之后執(zhí)行模塊Security management_fun。
為了表達(dá)多個(gè)協(xié)議字段之間的關(guān)系和更大的協(xié)議字段,協(xié)議解析規(guī)則文法中可以定義擴(kuò)展產(chǎn)生式以描述多個(gè)協(xié)議字段可以組成更大的協(xié)議字段。通過文法產(chǎn)生式,將非終結(jié)符號(hào)序列規(guī)約成抽象事件,該抽象事件由非終結(jié)符號(hào)表示,其中,“抽象”表示可以細(xì)分成多個(gè)事件,抽象事件代表更大的協(xié)議字段,即可以表示多個(gè)協(xié)議字段可以組成更大的協(xié)議字段。例如表示“FTP上傳完成”的協(xié)議字段,則可以將其定義成非終結(jié)符號(hào)FTP_Upload對(duì)應(yīng)的抽象事件,并定義產(chǎn)生式:
FTP_Upload:FTP_Upload_Cmd FTP_Upload_Reply
FTP_Upload_Cmd:ftp_atom_stream($1~/STOR.*\r\n/i)
FTP_Upload_Reply:ftp_atom_stream($1~/226Transfer complete/i)
即從FTP上傳命令(非終結(jié)符號(hào)FTP_Upload_Cmd)到FTP上傳成功響應(yīng)(非終結(jié)符號(hào)FTP_Upload_Reply)的數(shù)據(jù)都是FTP上傳過程的數(shù)據(jù),且FTP上傳完成。
擴(kuò)展產(chǎn)生式表示多個(gè)解析完成的協(xié)議字段可以抽象表示成更大描述范圍的協(xié)議字段,可以實(shí)現(xiàn)協(xié)議的分層描述,產(chǎn)生式的左部和右部都是協(xié)議的非終結(jié)符號(hào)。仍以FTP協(xié)議解析規(guī)則為例:
FTP_Target:FTP_Multi FTP_Fin;
即FTP協(xié)議的目標(biāo)非終結(jié)符號(hào)是FTP_Target,代表整個(gè)協(xié)議數(shù)據(jù)的頂層 抽象事件,是由代表若干個(gè)FTP命令應(yīng)答對(duì)的抽象事件FTP_Multi和代表FTP結(jié)束的抽象事件FTP_Fin規(guī)約而成。
FTP命令應(yīng)答對(duì)的抽象事件FTP_Multi的定義是:
FTP_Multi:FTP_One|FTP_Multi FTP_One;
FTP_One代表一個(gè)FTP命令應(yīng)答對(duì),其定義是:
且定義FTP上傳的命令:
FTP_Upload_Cmd:ftp_atom_stream($1~/^STOR.*\n/i)
|ftp_atom_stream($1~/^APPE.*\n/i)
|ftp_atom_stream($1~/^STOU.*\n/i);
FTP_Upload_Cmd是由FTP的STOR,APPE或STOU命令行構(gòu)成,ftp_atom_stream是代表FTP協(xié)議數(shù)據(jù)的終結(jié)符號(hào)。
另外,可以定義一種數(shù)據(jù)的引用方法描述跨詞法分析器的詞法匹配,即通過采用引用棧的方式以實(shí)現(xiàn)動(dòng)態(tài)存儲(chǔ)和動(dòng)態(tài)引用。
例如以MIME協(xié)議為例,郵件正文可以由多部分組成:
Content-Type:multipart/related;boundary=\"=====003_Dragon236671608472_=====\"
…...
--=====003_Dragon236671608472_=====
Content-Type:multipart/related;boundary=\"=====002_Dragon236671608472_=====\"
…...
--=====002_Dragon236671608472_=====
…...
--=====002_Dragon236671608472_=====--
--=====003_Dragon236671608472_=====
…...
--=====003_Dragon236671608472_=====--
如上所示的郵件正文是由兩部分組成,兩部分由邊界字符串分割,且邊界字符串由“boundary=”定義,然后邊界“=====002_Dragon236671608472_=====\”包圍的正文嵌套在邊界“=====003_Dragon236671608472_=====”包圍的內(nèi)容之內(nèi)。對(duì)邊界字符串的引用符合先入后出的順序,所以可以采用引用棧擴(kuò)展表達(dá)式的方式實(shí)現(xiàn)。
首先在郵件的頭部定義邊界字符串的名稱:
MIME_Header_Boundary:mime_atom_stream($1~/boundary=[“]?([^\n]+)[“]\r\n~dynref_push(“boundary”,\1)/i);
即“dynref_push”是動(dòng)態(tài)存儲(chǔ)表達(dá)式的關(guān)鍵詞,即詞法分析器匹配命中模式串第1個(gè)分組的數(shù)據(jù)被當(dāng)做邊界字符串存儲(chǔ)到引用棧的棧頂且命名為“boundary”。
郵件正文中每個(gè)部分由邊界頭和邊界尾分割,分別由動(dòng)態(tài)引用表達(dá)式定義:
MIME_Body_Boundary_Start:mime_atom_stream($1~/--([^\n]+)\r\n~dynref_top(“boundary”,\1)/i);
MIME_Body_Boundary_End:mime_atom_stream($1~/--([^\n]+)--\r\n~dynref_top(“boundary”,\1)/i)
{dynref_pop(“boundary”);…};
即“dynref_top”是動(dòng)態(tài)引用表達(dá)式的關(guān)鍵詞,即詞法分析器匹配命中模式串第1個(gè)分組的數(shù)據(jù)只能是存儲(chǔ)在引用棧棧頂且命名為“boundary”的數(shù)據(jù)。為了配合對(duì)引用棧中存儲(chǔ)數(shù)據(jù)的操作,在產(chǎn)生式的動(dòng)作部分定義可選的dynref_pop函數(shù)以實(shí)現(xiàn)引用棧的棧頂數(shù)據(jù)出棧的操作,即通過動(dòng)態(tài)存儲(chǔ)表達(dá)式和動(dòng)態(tài)引用表達(dá)式實(shí)現(xiàn)引用數(shù)據(jù)在多個(gè)產(chǎn)生式謂詞上的引用。
協(xié)議解析產(chǎn)生式的各個(gè)抽象事件,代表各個(gè)協(xié)議字段或者協(xié)議字段的組合;安全檢測(cè)規(guī)則可以定義帶謂詞的終結(jié)符號(hào),表示在某些特定的協(xié)議字段上匹配安全檢測(cè)標(biāo)識(shí),其中,安全檢測(cè)產(chǎn)生式規(guī)約的抽象事件不需要再往上層規(guī)約,因此規(guī)約符號(hào)由“:”替換成“→”以便于區(qū)分;協(xié)議數(shù)據(jù)的安全檢測(cè)模式串謂詞匹配范圍需要暫時(shí)保存,其數(shù)據(jù)范圍不代表協(xié)議字段,不對(duì)協(xié)議數(shù)據(jù)流產(chǎn)生分割;安全檢測(cè)產(chǎn)生式規(guī)約是需要執(zhí)行規(guī)約動(dòng)作,該規(guī)約動(dòng)作是指需要執(zhí)行對(duì)匹配到安全檢測(cè)標(biāo)識(shí)模式串的協(xié)議字段進(jìn)行相應(yīng)的安全管理操作。因?yàn)榘踩δ軝z測(cè)有對(duì)應(yīng)的管理操作,例如產(chǎn)生日志、報(bào)警或系統(tǒng)調(diào)度等處理。
應(yīng)用層協(xié)議可以集成安全檢測(cè)功能,例如入侵防護(hù)IPS,反垃圾郵件或病毒防護(hù)AV等功能可以定義規(guī)則,例如:
Proto_IPS→FTP_Upload_Cmd($1~/ips_regexp_filename/i){Proto_IPS_Schedule(...);}
上述文法規(guī)則表示,F(xiàn)TP上傳的文件名滿足特征“ips_regexp_filename”則調(diào)用處理函數(shù)Proto_IPS_Schedule($1),“$1”傳入的是上傳命令行上的數(shù)據(jù),其數(shù)據(jù)范圍由協(xié)議數(shù)據(jù)解析在生成FTP_Upload_Cmd時(shí)確定;且Proto_IPS規(guī)約生成后無后續(xù)的進(jìn)一步規(guī)約。
另外,在協(xié)議上可以針對(duì)同一安全檢測(cè)功能在同一協(xié)議字段上書寫多條規(guī)則,方法是:
Proto_IPS→FTP_Upload_Cmd($1~/ips_regexp1/i){Proto_IPS_Schedule(...);}
Proto_IPS→FTP_Upload_Cmd($1~/ips_regexp2/i){Proto_IPS_Schedule(...);}
……
Proto_IPS→FTP_Upload_Cmd($1~/ips_regexpn/i){Proto_IPS_Schedule(...);}
也可以在同一協(xié)議字段上書寫多個(gè)安全檢測(cè)功能的規(guī)則,如增加規(guī)則:
Proto_AV→FTP_Upload_Cmd($1~/av_regexp_filetype/i){Proto_AV_Schedule(...);}
即FTP上傳的文件類型滿足“av_regexp_filetype”則調(diào)用防病毒處理函數(shù)Proto_AV_Schedule($1)。
如上所述,由于協(xié)議解析規(guī)則和安全檢測(cè)規(guī)則中定義不同的產(chǎn)生式語法和符號(hào),協(xié)議解析和安全檢測(cè)可以有不同的處理操作,使得擴(kuò)充安全功能不會(huì)影響已開發(fā)完成的協(xié)議解析器的正確執(zhí)行,因而安全管理模塊可以獨(dú)立開發(fā)。另外,安全管理模塊也無需考慮有其他功能檢測(cè)同一塊數(shù)據(jù),系統(tǒng)會(huì)在預(yù)處理階段將相似功能自動(dòng)完成整合,可以提升系統(tǒng)開發(fā)和擴(kuò)展的效率,縮小工程化周期。
由于上述規(guī)則都是采用上下文無關(guān)文法的,因此需要生成用于詞法分析過程的詞法分類器和用于語法分析過程的語法分析器,且語法分析器包含一個(gè)使用LALR語法分析方法生成的自動(dòng)機(jī)。為了實(shí)現(xiàn)一次數(shù)據(jù)分析,用于詞法分析過程的詞法分析器需要進(jìn)行事件謂詞歸集。
以下詳細(xì)介紹檢測(cè)部分。圖1所示,為根據(jù)本公開的一種實(shí)施方式提供的數(shù)據(jù)匹配方法的流程圖。如圖1所示,該方法應(yīng)用于詞法分析器,包括:
在步驟S11中,將待匹配的協(xié)議數(shù)據(jù)與詞法分析器中的模式串集合進(jìn)行匹配,所述模式串集合中的每個(gè)模式串具有對(duì)應(yīng)的匹配特征,所述匹配特征包括協(xié)議字段標(biāo)識(shí)和安全檢測(cè)標(biāo)識(shí)。
在步驟S12中,在滿足與詞法分析器對(duì)應(yīng)的匹配結(jié)束條件時(shí)終止匹配,并輸出匹配結(jié)果,其中,所述匹配結(jié)果包括:N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù)。
在步驟S13中,在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,保存匹配到的匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串對(duì)應(yīng)的數(shù)據(jù)匹配范圍,并且,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí)。
在該實(shí)施例中,詞法分析器可以將所有的謂詞模式串合并到一個(gè)詞法分析器,生成一個(gè)多模匹配算法,并標(biāo)記每個(gè)模式串的所在的謂詞模式串集合 的名稱。在這種情況下,所述匹配結(jié)束條件可以包括所述待匹配的協(xié)議數(shù)據(jù)是否全部匹配完畢;以及,N為在所述待匹配的協(xié)議數(shù)據(jù)中,匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的模式串的總數(shù)。例如,在該詞法分析器進(jìn)行協(xié)議數(shù)據(jù)的模式串匹配時(shí),當(dāng)該詞法分析器匹配到謂詞模式串集合中的一個(gè)匹配特征為協(xié)議字段標(biāo)識(shí)的模式串時(shí),保存已匹配到的帶謂詞的終結(jié)符號(hào)和匹配范圍,繼續(xù)匹配模式串集合中的模式串,直至待匹配的協(xié)議數(shù)據(jù)全部匹配完成,詞法分析器進(jìn)行一次數(shù)據(jù)匹配輸出待匹配的協(xié)議數(shù)據(jù)中的所有的匹配結(jié)果。
詞法分析器也可以對(duì)不同的語法狀態(tài)下的謂詞模式串集合生成一個(gè)多模匹配算法,作為一個(gè)獨(dú)立的詞法分析器,然后由語法分析器根據(jù)不同的語法狀態(tài)調(diào)度不同的詞法分析器,此時(shí)可以根據(jù)字符串集合的特點(diǎn)選擇合適的多模式匹配算法或參數(shù)。在這種情況下,所述匹配結(jié)束條件可以包括是否匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串;以及,N=1。例如,該詞法分析器中的模式串包括匹配特征為協(xié)議字段標(biāo)識(shí)的謂詞模式串,即在當(dāng)前的狀態(tài)下可輸入的帶謂詞的終結(jié)符號(hào)的謂詞模式串和用于安全檢測(cè)標(biāo)識(shí)匹配的謂詞模式串。在該詞法分析器匹配到謂詞模式串集合中匹配特征為協(xié)議字段標(biāo)識(shí)的模式串時(shí),終止數(shù)據(jù)匹配,并輸出匹配結(jié)果,即該詞法分析器進(jìn)行一次數(shù)據(jù)匹配輸出一個(gè)帶有協(xié)議字段標(biāo)識(shí)的匹配結(jié)果。
在檢測(cè)過程中,詞法分析器采用多模匹配算法對(duì)數(shù)據(jù)進(jìn)行匹配,得到匹配命中的協(xié)議字段模式串和安全檢測(cè)模式串,并保存其數(shù)據(jù)匹配范圍。通過上述技術(shù)方案,在詞法分析器的匹配模式串集合中歸集安全檢測(cè)標(biāo)識(shí)的模式串,可以在待匹配的協(xié)議數(shù)據(jù)進(jìn)行多模匹配時(shí),保存并記錄協(xié)議數(shù)據(jù)中的需要進(jìn)行安全檢測(cè)的協(xié)議數(shù)據(jù),減少待匹配的協(xié)議數(shù)據(jù)的匹配次數(shù),提升檢測(cè)效率。
圖2所示,為根據(jù)本公開的一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析方法的流程圖。如圖2所示,該方法應(yīng)用于語法分析器,包括:
在步驟S21中,接收待匹配的協(xié)議數(shù)據(jù);
在步驟S22中,將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器,以由所述詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配;
在步驟S23中,接收所述詞法分析器在終止匹配后返回的匹配結(jié)果,其中,所述匹配結(jié)果包括N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù),在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí)。
其中,將所有的謂詞模式串合并到一個(gè)謂詞模式串集合的詞法分析器返回的匹配結(jié)果包括待匹配的協(xié)議數(shù)據(jù)中的所有的匹配結(jié)果;與語法分析器的不同的語法狀態(tài)一一對(duì)應(yīng)的詞法分析器的返回結(jié)果包括一個(gè)帶有協(xié)議字段標(biāo)識(shí)的匹配結(jié)果。
在步驟S24中,對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析;
在步驟S25中,在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,確定與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)。
其中,在步驟S24中,對(duì)接收到的帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析。解析完成后,對(duì)該帶謂詞的終結(jié)符號(hào)執(zhí)行規(guī)約操作得到對(duì)應(yīng)的非終結(jié)符號(hào)。步驟S25中,確定的與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)與該非終結(jié)符號(hào)語義等價(jià),且該非終結(jié)符號(hào)為安全檢測(cè)產(chǎn)生式右部的抽象事件的非終結(jié)符號(hào)。
可選地,所述在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,確定與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào),包括:
在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,從所述詞法分析器獲取匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍;
將數(shù)據(jù)匹配范圍包括匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍的帶謂詞的終結(jié)符號(hào)確定為是與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)。
安全檢測(cè)標(biāo)識(shí)對(duì)應(yīng)的模式串在同一協(xié)議字段上可以命中多個(gè),且在協(xié)議字段標(biāo)識(shí)對(duì)應(yīng)的模式串命中的數(shù)據(jù)范圍內(nèi),執(zhí)行安全檢測(cè)模式串產(chǎn)生式的管理動(dòng)作后不會(huì)再參與狀態(tài)跳轉(zhuǎn),即在語法分析器解析過程中,不參與移進(jìn)和規(guī)約的過程;協(xié)議字段標(biāo)識(shí)對(duì)應(yīng)的模式串在同一協(xié)議字段上只有一個(gè),參與狀態(tài)跳轉(zhuǎn),在語法分析器的協(xié)議字段解析過程中,需要執(zhí)行相應(yīng)的移進(jìn)、規(guī)約操作,直至獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)。
在步驟S26中,將所述相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)所對(duì)應(yīng)的數(shù)據(jù)匹配范圍內(nèi)的數(shù)據(jù)輸入至安全管理模塊,以由所述安全管理模塊進(jìn)行安全管理。
需要說明的是,該方法的執(zhí)行順序不局限于圖2所示的順序。例如,在接收到的匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,步驟S24和步驟S25可以同時(shí)執(zhí)行,即同時(shí)進(jìn)行協(xié)議字段的解析和協(xié)議字段的安全檢測(cè)。在接收到的匹配結(jié)果帶有協(xié)議字段標(biāo)識(shí)時(shí),執(zhí)行協(xié)議字段的解析過程;在接收到的匹配結(jié)果帶有安全檢測(cè)標(biāo)識(shí)時(shí),將安全檢測(cè)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)匹配范圍和其對(duì)應(yīng)的帶謂詞的終結(jié)符號(hào)的數(shù)據(jù)匹配范圍進(jìn)行比較,以判斷是否要執(zhí)行安全檢測(cè)的操作。該帶謂詞的終結(jié)符號(hào)與其對(duì)應(yīng)的協(xié)議解析產(chǎn)生式左部的非終結(jié)符號(hào)語義等價(jià),且該非終結(jié)符號(hào)為安全檢測(cè)產(chǎn)生式右部的抽象事件的非終結(jié)符號(hào)。
通過上述技術(shù)方案,語法分析器可以在進(jìn)行協(xié)議數(shù)據(jù)解析的同時(shí),將帶有安全檢測(cè)標(biāo)識(shí)的協(xié)議字段輸入相應(yīng)的安全管理模塊以執(zhí)行相應(yīng)的安全管理,實(shí)現(xiàn)一次數(shù)據(jù)分析同時(shí)完成協(xié)議數(shù)據(jù)解析和多個(gè)安全檢測(cè)功能檢測(cè)。安全管理模塊可以獨(dú)立開發(fā),提升系統(tǒng)開發(fā)和擴(kuò)展的效率,方便系統(tǒng)維護(hù)。
可選地,所述詞法分析器的數(shù)量為一個(gè);所述詞法分析器在對(duì)所述待匹配的協(xié)議數(shù)據(jù)全部匹配完成后終止匹配;
所述對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析,包括;
按照所述N個(gè)帶謂詞的終結(jié)符號(hào)中所包括的模式串的匹配順序,對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)逐一進(jìn)行語法解析。其中,對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)逐一進(jìn)行語法解析與現(xiàn)有技術(shù)相同,在此不再贅述。
其中,詞法分析器返回的N個(gè)帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的模式串的匹配順序是根據(jù)各個(gè)模式串被匹配的先后順序排列的。在該實(shí)施例中,不斷向語法分析器輸入詞法分析器返回的匹配結(jié)果序列,即按照模式串的匹配順序排列的N個(gè)帶謂詞的終結(jié)符號(hào)的序列,從而根據(jù)輸入的符號(hào)和語法分析器的跳轉(zhuǎn)表和動(dòng)作表不斷更新語法狀態(tài)并識(shí)別有效的協(xié)議字段。
可選地,所述詞法分析器的數(shù)量為多個(gè),多個(gè)詞法分析器與所述語法分析器的多個(gè)狀態(tài)一一對(duì)應(yīng)。圖3所示,為根據(jù)本公開的另一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析方法的流程圖。如圖3所示,在圖2的基礎(chǔ)上,該方法還可以包括:
在所述將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器的步驟之前,所述方法還包括:
在步驟S31中,將所述協(xié)議的終結(jié)符號(hào)壓入符號(hào)棧的棧頂;
所述將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器,包括:
在步驟S32中,將所述待匹配的協(xié)議數(shù)據(jù)和從所述符號(hào)棧取出的當(dāng)前棧頂符號(hào)輸入至與狀態(tài)棧的當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器,以由與所述當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配,其中,所述詞法分析器在從所述待匹配的協(xié)議數(shù)據(jù)中匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串后終止匹配;
在步驟S33中,在對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)完成語法解析后,判斷是否獲得協(xié)議的目標(biāo)非終結(jié)符號(hào);在未獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)的情況下,返回所述接收待匹配的協(xié)議數(shù)據(jù)的步驟,其中,再次接收的待匹配的協(xié) 議數(shù)據(jù)是前次接收的待匹配的協(xié)議數(shù)據(jù)中除去前次已匹配完成的數(shù)據(jù)部分后剩余的數(shù)據(jù)部分;在獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)時(shí),協(xié)議解析完成。
在該實(shí)施例中,多個(gè)詞法分析器與所述語法分析器的多個(gè)狀態(tài)一一對(duì)應(yīng),該語法分析器對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析步驟如圖4所示。圖4為根據(jù)本公開的另一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析方法中對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析步驟的流程圖。如圖4所示,包括:
在步驟S41中,根據(jù)狀態(tài)棧的當(dāng)前棧頂狀態(tài)和所述帶謂詞的終結(jié)符號(hào),確定產(chǎn)生規(guī)約事件或是移進(jìn)事件。
在語法分析器的輸入符號(hào)為帶謂詞的終結(jié)符號(hào)時(shí),通過查詢動(dòng)作表,可以確定產(chǎn)生規(guī)約事件或是移進(jìn)事件,該動(dòng)作表是通過在預(yù)處理階段生成語法分析器時(shí),根據(jù)系統(tǒng)開發(fā)階段編寫的協(xié)議解析規(guī)則文法生成的。
在步驟S42中,在確定產(chǎn)生移進(jìn)事件時(shí),執(zhí)行移進(jìn)操作。移進(jìn)操作包括:將根據(jù)狀態(tài)棧的當(dāng)前棧頂狀態(tài)和所述詞法分析器的返回結(jié)果確定的下一狀態(tài)壓入狀態(tài)棧的棧頂,將詞法分析器的返回結(jié)果壓入所述符號(hào)棧的棧頂;
在步驟S43中,將從符號(hào)棧取出的當(dāng)前棧頂符號(hào)輸入至與狀態(tài)棧的當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器;
在步驟S44中,接收所述詞法分析器的返回結(jié)果,該返回結(jié)果可以是帶謂詞的終結(jié)符號(hào)或是非終結(jié)符號(hào);
在步驟S45中,判斷返回結(jié)果是帶謂詞的終結(jié)符號(hào)或是非終結(jié)符號(hào),在所述返回結(jié)果為帶謂詞的終結(jié)符號(hào)時(shí),轉(zhuǎn)入步驟S41,在返回結(jié)果為非終結(jié)符號(hào)時(shí),轉(zhuǎn)入步驟S47;
在步驟S46中,在確定產(chǎn)生規(guī)約事件時(shí),執(zhí)行規(guī)約操作,其中,規(guī)約操作包括:輸出規(guī)約后產(chǎn)生的非終結(jié)符所表示的協(xié)議字段,利用該非終結(jié)符替換當(dāng)前所述符號(hào)棧中與所述規(guī)約事件有關(guān)的符號(hào),并將當(dāng)前所述狀態(tài)棧中、與所述規(guī)約事件有關(guān)的符號(hào)所對(duì)應(yīng)的狀態(tài)彈出。在執(zhí)行完移進(jìn)操作或是規(guī)約 操作后,需要將待匹配的協(xié)議數(shù)據(jù)的起始位置移動(dòng)到當(dāng)前已匹配的數(shù)據(jù)之后的位置之后執(zhí)行跳轉(zhuǎn)動(dòng)作,直至生成協(xié)議的目標(biāo)符號(hào)或者待匹配數(shù)據(jù)為空。
通過上述技術(shù)方案,由于本公開中不同的狀態(tài)對(duì)應(yīng)不同的詞法分析器,在不同狀態(tài)下,當(dāng)匹配到相同的模式串時(shí),也可以向語法分析器輸入不同的非終結(jié)符號(hào),相對(duì)獨(dú)立的詞法分析器的變化影響范圍較小,使得詞法分析器的修改和擴(kuò)充更加方便。同時(shí),減少詞法分析器中的模式串的數(shù)量,可以降低詞法分析的復(fù)雜度,使得詞法分析器可以根據(jù)模式串的特點(diǎn)選擇最適宜的模式串匹配算法,從而提高詞法分析的性能。語法分析器在接收到安全檢測(cè)標(biāo)識(shí)的返回結(jié)果時(shí),可以對(duì)相應(yīng)的協(xié)議字段輸入至安全管理模塊以執(zhí)行安全管理,實(shí)現(xiàn)一次數(shù)據(jù)分析同時(shí)完成協(xié)議數(shù)據(jù)解析和多個(gè)安全檢測(cè)功能檢測(cè)。同時(shí),詞法分析器在進(jìn)行模式串匹配時(shí),只需要匹配當(dāng)前狀態(tài)下對(duì)應(yīng)的詞法分析器中歸集的模式串,可以避免產(chǎn)生語法沖突,從而提高協(xié)議數(shù)據(jù)解析的效率和準(zhǔn)確性。
可選地,該方法還可以包括:
在步驟S47中,根據(jù)狀態(tài)棧的當(dāng)前棧頂狀態(tài)和所述非終結(jié)符號(hào),確定產(chǎn)生規(guī)約事件或是移進(jìn)事件或是接受事件。
在步驟S48中,在確定產(chǎn)生移進(jìn)事件時(shí),執(zhí)行移進(jìn)操作。該移進(jìn)操作與前文所述的移進(jìn)操作相同,在此不再贅述。在語法分析器的輸入符號(hào)為非終結(jié)符號(hào)時(shí),通過查詢跳轉(zhuǎn)表確定下一狀態(tài),該跳轉(zhuǎn)表是通過在預(yù)處理階段生成語法分析器時(shí),根據(jù)系統(tǒng)開發(fā)階段編寫的協(xié)議解析規(guī)則文法生成的。
在步驟S49中,根據(jù)狀態(tài)棧的當(dāng)前棧頂狀態(tài)和所述非終結(jié)符號(hào),判斷能否繼續(xù)產(chǎn)生規(guī)約事件,在判定能繼續(xù)產(chǎn)生規(guī)約事件時(shí),轉(zhuǎn)入步驟S43,否則,在判定不能繼續(xù)產(chǎn)生規(guī)約事件時(shí),接收待匹配的協(xié)議數(shù)據(jù),將協(xié)議的終結(jié)符號(hào)壓入符號(hào)棧的棧頂,其中,再次接收的待匹配的協(xié)議數(shù)據(jù)是前次接收的待匹配的協(xié)議數(shù)據(jù)中除去前次已匹配完成的數(shù)據(jù)部分后剩余的數(shù)據(jù)部分。
在該實(shí)施例中,在詞法分析器的返回結(jié)果為非終結(jié)符號(hào)時(shí),在執(zhí)行完相應(yīng)的操作后,要根據(jù)狀態(tài)棧的當(dāng)前棧頂狀態(tài)和符號(hào)棧判斷下一步要執(zhí)行的操作,從而判斷下一步要跳轉(zhuǎn)的步驟。通過上述技術(shù)方案,在輸入符號(hào)為非終結(jié)符號(hào)時(shí),對(duì)下一步要執(zhí)行的操作進(jìn)行預(yù)判,可以準(zhǔn)確地判定下一步跳轉(zhuǎn)的步驟,可以提高協(xié)議解析的效率和準(zhǔn)確性。
在步驟S40中,在確定產(chǎn)生規(guī)約事件時(shí),進(jìn)行規(guī)約操作,并返回所述根據(jù)狀態(tài)棧的當(dāng)前棧頂狀態(tài)和所述非終結(jié)符號(hào),判斷能否繼續(xù)產(chǎn)生規(guī)約事件的步驟S49。其中,該規(guī)約操作的步驟與上述規(guī)約操作相同,在此不再贅述。另外,在執(zhí)行完移進(jìn)操作或是規(guī)約操作后,需要將待匹配的協(xié)議數(shù)據(jù)的起始位置移動(dòng)到當(dāng)前已匹配的數(shù)據(jù)之后的位置之后執(zhí)行跳轉(zhuǎn)動(dòng)作,直至生成協(xié)議的目標(biāo)符號(hào)或者待匹配數(shù)據(jù)為空。
在步驟S50中,在確定產(chǎn)生接受事件時(shí),獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)。
可選地,所述詞法分析器匹配到的模式串是所述詞法分析器自身自帶的模式串集合中的一者,或者是所述詞法分析器根據(jù)引用標(biāo)識(shí)從引用棧獲取到的模式串,其中,所述引用棧中存儲(chǔ)有至少一個(gè)模式串,所述引用棧能夠被其他詞法分析器訪問。
在該實(shí)施例中,該詞法分析器中匹配到的模式串可以是根據(jù)自動(dòng)機(jī)的狀態(tài)歸集的該狀態(tài)下的所有模式串的集合,也可以包括從引用棧獲取的模式串。其中,如上所述,在系統(tǒng)開發(fā)階段的協(xié)議解析規(guī)則文法中,對(duì)產(chǎn)生式詞法展開方式構(gòu)造的產(chǎn)生式要編寫特征引用規(guī)則和引用匹配規(guī)則,為每一組引用關(guān)系命名,其中特征引用規(guī)則用來動(dòng)態(tài)提取新的分詞特征,引用匹配規(guī)則使用新的分詞特征進(jìn)行分詞匹配。在系統(tǒng)運(yùn)行階段的預(yù)處理步驟中,詞法分析器對(duì)特征引用規(guī)則的分詞特征建立動(dòng)態(tài)存儲(chǔ)標(biāo)識(shí),對(duì)引用匹配規(guī)則的分詞特征建立動(dòng)態(tài)引用標(biāo)識(shí),每組引用關(guān)系使用給定棧名的引用棧,由規(guī)則編寫者根據(jù)協(xié)議特性指定棧名,通過棧名查找相應(yīng)的引用棧。在協(xié)議解析步驟中, 詞法分析器中帶有動(dòng)態(tài)存儲(chǔ)標(biāo)識(shí)的分詞特征匹配到某一段數(shù)據(jù),則將匹配的數(shù)據(jù)存儲(chǔ)到相應(yīng)的引用棧中。詞法分析器中對(duì)于帶有動(dòng)態(tài)引用標(biāo)識(shí)的分詞特征,取得引用棧棧頂?shù)臄?shù)據(jù)替換該分詞特征,參與后續(xù)的分詞匹配過程。
在上述技術(shù)方案中,通過采用引用棧存儲(chǔ)模式串的方式,可以通過動(dòng)態(tài)存儲(chǔ)標(biāo)識(shí)和動(dòng)態(tài)引用標(biāo)識(shí)實(shí)現(xiàn)數(shù)據(jù)引用在多個(gè)產(chǎn)生式謂詞上的引用,實(shí)現(xiàn)跨詞法分析器的模式串匹配,從而可以對(duì)文法產(chǎn)生式進(jìn)行擴(kuò)展,簡(jiǎn)化復(fù)雜模式串的匹配方式,節(jié)省資源。
本公開提供一種數(shù)據(jù)匹配裝置。圖5為根據(jù)本公開的一種實(shí)施方式提供的數(shù)據(jù)匹配裝置的框圖。如圖5所示,該裝置10應(yīng)用于詞法分析器,包括:
匹配模塊101,用于將待匹配的協(xié)議數(shù)據(jù)與所述詞法分析器中的模式串集合進(jìn)行匹配,所述模式串集合中的每個(gè)模式串具有對(duì)應(yīng)的匹配特征,所述匹配特征包括協(xié)議字段標(biāo)識(shí)和安全檢測(cè)標(biāo)識(shí)。
輸出模塊102,用于在滿足與所述詞法分析器對(duì)應(yīng)的匹配結(jié)束條件時(shí)終止匹配,并輸出匹配結(jié)果,其中,所述匹配結(jié)果包括:N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù)。
可選地,所述匹配結(jié)束條件包括是否匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串;以及,N=1。
可選地,所述匹配結(jié)束條件包括所述待匹配的協(xié)議數(shù)據(jù)是否全部匹配完畢;以及,N為在所述待匹配的協(xié)議數(shù)據(jù)中,匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的模式串的總數(shù)。
保存模塊103,用于在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,保存匹配到的匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串對(duì)應(yīng)的數(shù)據(jù)匹配范圍,并且,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí)。
本公開提供一種協(xié)議數(shù)據(jù)解析裝置。圖6所示,為根據(jù)本公開的一種實(shí)施方式提供的協(xié)議數(shù)據(jù)分析裝置的框圖。如圖6所示,該裝置20應(yīng)用于語法分析器,包括:
第一接收模塊201,用于接收待匹配的協(xié)議數(shù)據(jù);
第一輸入模塊202,用于將所述待匹配的協(xié)議數(shù)據(jù)輸入至詞法分析器,以由所述詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配;
第二接收模塊203,用于接收所述詞法分析器在終止匹配后返回的匹配結(jié)果,其中,所述匹配結(jié)果包括N個(gè)帶謂詞的終結(jié)符號(hào)和每個(gè)所述帶謂詞的終結(jié)符號(hào)對(duì)應(yīng)的數(shù)據(jù)匹配范圍,其中,每個(gè)所述帶謂詞的終結(jié)符號(hào)包括協(xié)議的終結(jié)符號(hào)、和匹配到的匹配特征為協(xié)議字段標(biāo)識(shí)的相應(yīng)模式串,N為大于或等于1的自然數(shù),在匹配到匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串的情況下,所述匹配結(jié)果還包括所述安全檢測(cè)標(biāo)識(shí);
解析模塊204,用于對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)進(jìn)行語法解析;
確定模塊205,用于在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,確定與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào);
第二輸入模塊206,用于將所述相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)所對(duì)應(yīng)的數(shù)據(jù)匹配范圍內(nèi)的數(shù)據(jù)輸入至安全管理模塊,以由所述安全管理模塊進(jìn)行安全管理。
可選地,所述詞法分析器的數(shù)量為一個(gè);所述詞法分析器在對(duì)所述待匹配的協(xié)議數(shù)據(jù)全部匹配完成后終止匹配;
所述解析模塊204,包括;
第一解析子模塊,用于按照所述N個(gè)帶謂詞的終結(jié)符號(hào)中所包括的模式串的匹配順序,對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)逐一進(jìn)行語法解析。
可選地,所述詞法分析器的數(shù)量為多個(gè),多個(gè)詞法分析器與所述語法分析器的多個(gè)狀態(tài)一一對(duì)應(yīng);
所述裝置20還包括:
符號(hào)壓入模塊,用于將所述協(xié)議的終結(jié)符號(hào)壓入符號(hào)棧的棧頂;
所述第一輸入模塊202,包括;
輸入子模塊,用于將所述待匹配的協(xié)議數(shù)據(jù)和從所述符號(hào)棧取出的當(dāng)前棧頂符號(hào)輸入至與狀態(tài)棧的當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器,以由與所述當(dāng)前棧頂狀態(tài)相對(duì)應(yīng)的詞法分析器對(duì)所述待匹配的協(xié)議數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配,其中,所述詞法分析器在從所述待匹配的協(xié)議數(shù)據(jù)中匹配到匹配特征為協(xié)議字段標(biāo)識(shí)的模式串后終止匹配;
所述裝置20還包括:
判斷模塊,用于在對(duì)所述N個(gè)帶謂詞的終結(jié)符號(hào)完成語法解析后,判斷是否獲得協(xié)議的目標(biāo)非終結(jié)符號(hào);在獲得協(xié)議的目標(biāo)非終結(jié)符號(hào)的情況下,重新觸發(fā)所述第一接收模塊接收待匹配的協(xié)議數(shù)據(jù),其中,再次接收的待匹配的協(xié)議數(shù)據(jù)是前次接收的待匹配的協(xié)議數(shù)據(jù)中除去前次已匹配完成的數(shù)據(jù)部分后剩余的數(shù)據(jù)部分。
可選地,確定模塊205可以包括:
獲取子模塊,用于在所述匹配結(jié)果包括安全檢測(cè)標(biāo)識(shí)的情況下,從所述詞法分析器獲取匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍;
確定子模塊,用于將數(shù)據(jù)匹配范圍包括匹配特征為所述安全檢測(cè)標(biāo)識(shí)的模式串所對(duì)應(yīng)的數(shù)據(jù)匹配范圍的帶謂詞的終結(jié)符號(hào)確定為是與所述安全檢測(cè)標(biāo)識(shí)相關(guān)聯(lián)的帶謂詞的終結(jié)符號(hào)。
本公開提供一種協(xié)議數(shù)據(jù)解析系統(tǒng),包括:
詞法分析器,包括上述的數(shù)據(jù)匹配裝置10;
語法分析器,包括上述的協(xié)議數(shù)據(jù)分析裝置20。
以下仍以FTP的規(guī)則為例,詳細(xì)介紹上述解析過程。其中,圖7所示,為根據(jù)本公開的一種實(shí)施方式提供的協(xié)議狀態(tài)遷移圖。如圖7所示,包括輸 入符號(hào)的狀態(tài)轉(zhuǎn)換圖,以及每個(gè)狀態(tài)下的謂詞模式串的生成。其中,每個(gè)自動(dòng)機(jī)狀態(tài)下產(chǎn)生式中的“*”之后的事件是跳轉(zhuǎn)到下一個(gè)狀態(tài)的可輸入事件,如果自動(dòng)機(jī)狀態(tài)中的可輸入事件帶有謂詞,則建立一個(gè)謂詞模式串集合,其命名可采用“pred_StateId_EventId”的方法。
對(duì)于多個(gè)安全功能檢測(cè)的規(guī)則,例如規(guī)約到Porto_IPS、Proto_AV的規(guī)則,由于其可輸入的抽象事件與對(duì)應(yīng)的帶謂詞的終結(jié)符號(hào)的規(guī)約而成的非終結(jié)符號(hào)的事件完全等價(jià),可以將安全功能檢測(cè)的規(guī)則特征與該狀態(tài)下產(chǎn)生式帶謂詞的終結(jié)符號(hào)的規(guī)則特征一起歸集。
例如圖7中的謂詞模式串“pred_0_1”,其內(nèi)部結(jié)構(gòu)如下:
其中:“1”表示規(guī)則編號(hào);“Proto_Match”是協(xié)議字段標(biāo)識(shí)的模式串的匹配特征,表明該模式串用于協(xié)議字段的解析;“^STOR.*\n”表示模式串匹配規(guī)則;“Porto_IPS”和“Proto_AV”是安全檢測(cè)標(biāo)識(shí)的模式串的匹配特征,該匹配特征的安全檢測(cè)所處理的數(shù)據(jù)范圍與協(xié)議字段標(biāo)識(shí)特征的數(shù)據(jù)匹配范圍相同。
在該實(shí)施例中,以多個(gè)詞法分析器對(duì)應(yīng)于語法分析器的多個(gè)語法狀態(tài)的協(xié)議數(shù)據(jù)解析系統(tǒng)為例,詳細(xì)介紹協(xié)議數(shù)據(jù)的解析過程。
待匹配的協(xié)議數(shù)據(jù)被輸入到本系統(tǒng)后,待檢測(cè)的協(xié)議數(shù)據(jù)為數(shù)據(jù)包中所有數(shù)據(jù),語法分析器中自動(dòng)機(jī)初始狀態(tài)為S0,解析步驟如下:
控制器接收輸入事件。待匹配的協(xié)議數(shù)據(jù)被提交給系統(tǒng)控制器,控制器將協(xié)議的終結(jié)符號(hào)作為輸入符號(hào),并壓入符號(hào)棧的棧頂,終結(jié)符號(hào)的待匹配 的協(xié)議數(shù)據(jù)為所有的待匹配的協(xié)議數(shù)據(jù)。
詞法分析器匹配。將待匹配的協(xié)議數(shù)據(jù)與詞法分析器中的模式串集合用多模匹配算法進(jìn)行匹配,若匹配命中匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串,例如“IPS_Match”或“AV_Match”等標(biāo)識(shí),保存匹配特征和數(shù)據(jù)匹配范圍;若匹配命中匹配特征為協(xié)議字段標(biāo)識(shí)的模式串,例如“Proto_Match”標(biāo)識(shí),保存帶謂詞的終結(jié)符號(hào)和數(shù)據(jù)匹配范圍,并終止匹配。
語法分析器分析。將帶有協(xié)議字段標(biāo)識(shí)的模式串送入語法分析器的自動(dòng)機(jī),分析得到當(dāng)前語法狀態(tài)下有效的協(xié)議字段,輸出已解析的協(xié)議字段,如果匹配特征為安全檢測(cè)標(biāo)識(shí)的模式串與該協(xié)議字段處于同一個(gè)謂詞模式串集合,且數(shù)據(jù)匹配范圍在該協(xié)議字段的數(shù)據(jù)匹配范圍之內(nèi),則將該協(xié)議字段輸入安全管理模塊以執(zhí)行相應(yīng)的安全檢測(cè)功能的處理操作。然后對(duì)已解析的協(xié)議字段查詢動(dòng)作表或跳轉(zhuǎn)表,根據(jù)狀態(tài)棧和符號(hào)棧得到自動(dòng)機(jī)跳轉(zhuǎn)的下一個(gè)狀態(tài),待匹配的協(xié)議數(shù)據(jù)變更為當(dāng)前已匹配數(shù)據(jù)范圍之后的協(xié)議數(shù)據(jù),并再次調(diào)用詞法分析器。
在上述解析過程中,不僅可以實(shí)現(xiàn)協(xié)議字段的解析過程,還可以在協(xié)議數(shù)據(jù)解析的過程中,對(duì)要執(zhí)行安全檢測(cè)的協(xié)議字段進(jìn)行安全檢測(cè)相應(yīng)的處理操作,以達(dá)到一次數(shù)據(jù)分析實(shí)現(xiàn)協(xié)議數(shù)據(jù)解析和多個(gè)安全功能檢測(cè)的目的。
以上結(jié)合附圖詳細(xì)描述了本公開的優(yōu)選實(shí)施方式,但是,本公開并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本公開的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本公開的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本公開的保護(hù)范圍。
另外需要說明的是,在上述具體實(shí)施方式中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合,為了避免不必要的重復(fù),本公開對(duì)各種可能的組合方式不再另行說明。
此外,本公開的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本公開的思想,其同樣應(yīng)當(dāng)視為本公開所公開的內(nèi)容。