李航 單洪 陳志文
摘要:在大規(guī)模網(wǎng)絡(luò)環(huán)境中,核查大量異構(gòu)網(wǎng)絡(luò)設(shè)備配置的正確性與合規(guī)性一直是網(wǎng)絡(luò)系統(tǒng)維護(hù)人員的難點(diǎn)。提出了一種無(wú)代理的設(shè)備配置自動(dòng)采集技術(shù),在采集的基礎(chǔ)上,方案采用ANTLR生成網(wǎng)絡(luò)設(shè)備配置的詞法、語(yǔ)法分析器,自動(dòng)生成設(shè)備配置的抽象語(yǔ)法樹和樹的遍歷器,通過(guò)語(yǔ)法樹分析的監(jiān)聽器機(jī)制實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)設(shè)備配置翻譯成統(tǒng)一描述結(jié)構(gòu)的配置信息,基于統(tǒng)一結(jié)構(gòu)的設(shè)備配置信息可以為配置核查算法屏蔽異構(gòu)設(shè)備的差異性。
關(guān)鍵詞:異構(gòu);網(wǎng)絡(luò);配置;核查;語(yǔ)法分析
中圖分類號(hào):TP391? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)25-0025-02
Abstract: In large-scale networks, how to verify the correctness and compliance of a large number of heterogeneous configurations of network devices is difficult. An agentless device configuration acquisition technology is proposed. ANTLR is used to generate the lexical and syntax analysis module of network device configuration. The abstract syntax tree of the device configuration and the traversal module of the tree are automatically generated. The translation of the heterogeneous configuration is realized through syntax tree analysis. The configuration information of the unified structure is described, and the device configuration information based on the unified structure shields the difference of the heterogeneous device configuration verification algorithm.
Key words:Heterogeneous; network; configuration; verification; syntax analysis
1 引言
為了驗(yàn)證信息系統(tǒng)中網(wǎng)絡(luò)設(shè)備的配置是否滿足安全管理要求,需要對(duì)網(wǎng)絡(luò)設(shè)備的配置進(jìn)行核查[1]。核查[2],目的是及時(shí)發(fā)現(xiàn)不滿足安全要求的策略配置。配置核查的輸入是配置和配置安全基線,安全基線是指用戶依據(jù)安全防護(hù)目標(biāo)、法規(guī)遵從等設(shè)定的配置應(yīng)該滿足的最低安全標(biāo)準(zhǔn),不論配置狀態(tài)如何變化,都應(yīng)該滿足安全基線的要求[3]。在大規(guī)模網(wǎng)絡(luò)環(huán)境下,面對(duì)上萬(wàn)行的異構(gòu)網(wǎng)絡(luò)設(shè)備配置,人工已經(jīng)難以進(jìn)行有效的配置核查[4]- [5],因此需要采用信息化的技術(shù)手段實(shí)現(xiàn)配置的自動(dòng)化核查。配置核查自動(dòng)化的關(guān)鍵技術(shù)是網(wǎng)絡(luò)設(shè)備配置的自動(dòng)采集以及將文本描述的配置翻譯成統(tǒng)一描述的結(jié)構(gòu)化配置項(xiàng)數(shù)據(jù)。
2 網(wǎng)絡(luò)設(shè)備配置采集技術(shù)
配置核查首先需要解決如何獲取設(shè)備配置信息的問(wèn)題,多數(shù)交換機(jī)、路由器、防火墻支持ssh遠(yuǎn)程執(zhí)行命令獲取全部配置信息,或通過(guò)snmp也可以獲取部分信息,一些設(shè)備無(wú)法通過(guò)通用ssh或snmp獲取配置信息,則需要獲得廠家的支持,通過(guò)廠家提供的專用接口獲取配置信息。本系統(tǒng)當(dāng)前主要針對(duì)支持ssh登錄的目標(biāo)設(shè)備。
基于ssh命令行接口的異構(gòu)設(shè)備配置采集只是執(zhí)行的命令不一樣,執(zhí)行配置采集的操作具有相同的模式“ssh登錄->執(zhí)行腳本驗(yàn)證設(shè)備類型、版本->執(zhí)行配置采集腳本->獲取腳本回顯(原始配置)”,因此,可以通過(guò)維護(hù)設(shè)備類型識(shí)別知識(shí)和配置采集知識(shí),使得系統(tǒng)通過(guò)配置而不是軟件更新就可以適應(yīng)不同版本設(shè)備的原始配置采集,用戶通過(guò)自定義設(shè)備類型識(shí)別知識(shí)和配置采集知識(shí)就可以不斷擴(kuò)充支持的設(shè)備類型的配置采集?;谥R(shí)的配置自動(dòng)化采集流程如圖1所示。
設(shè)備類型識(shí)別知識(shí)由規(guī)則集組成,規(guī)則的基本屬性包括:規(guī)則標(biāo)識(shí)、設(shè)備類型、操作系統(tǒng)名稱、操作系統(tǒng)版本、系統(tǒng)類型采集腳本、系統(tǒng)名稱匹配規(guī)則、系統(tǒng)版本匹配規(guī)則、更新時(shí)間、備注。
配置采集知識(shí)也是由規(guī)則集組成,規(guī)則的基本屬性包括:規(guī)則標(biāo)識(shí)、設(shè)備類型、操作系統(tǒng)名稱、適用版本、采集腳本、更新時(shí)間、備注。
3 網(wǎng)絡(luò)設(shè)備配置解析技術(shù)
配置自動(dòng)化核查系統(tǒng)的一個(gè)主要技術(shù)難點(diǎn)是不同廠商、不同型號(hào)的設(shè)備配置語(yǔ)法語(yǔ)義經(jīng)常不統(tǒng)一,如果直接針對(duì)原始配置的文本進(jìn)行核查算法設(shè)計(jì),算法實(shí)現(xiàn)需要花費(fèi)大量精力進(jìn)行各種文本信息的處理,導(dǎo)致開發(fā)效率低下、容易出錯(cuò)、兼容性差。由于網(wǎng)絡(luò)設(shè)備提供給用戶訪問(wèn)的配置都是按照廠商定義的語(yǔ)法進(jìn)行描述的文本,因此可以利用成熟的詞法、語(yǔ)法分析技術(shù),將配置的文本分析交給基于語(yǔ)法分析的配置解析與翻譯模塊,將配置翻譯成統(tǒng)一描述的結(jié)構(gòu)信息,基于結(jié)構(gòu)化的配置信息簡(jiǎn)化配置核查算法的實(shí)現(xiàn),提高算法的設(shè)備兼容性和開發(fā)效率。
3.1 配置解析與翻譯技術(shù)方案
系統(tǒng)采用ANTLR(Another Tool for Language Recognition)實(shí)現(xiàn)配置的解析。ANTLR是一種開源的詞法、語(yǔ)法分析器自動(dòng)生成工具,當(dāng)前主版本號(hào)是4。與同樣廣泛使用的Lex/Yacc(對(duì)應(yīng)GNU Linux的Flex/Bison)比較, ANTLR 4最大的優(yōu)點(diǎn)是能過(guò)自動(dòng)生成抽象語(yǔ)法樹(AST,Abstract Syntax Tree)和樹的遍歷器,并且ANTLR 4在ANTLR 3的基礎(chǔ)上提供了監(jiān)聽器和訪問(wèn)器兩種機(jī)制實(shí)現(xiàn)語(yǔ)法分析的應(yīng)用邏輯代碼與文法描述規(guī)則解耦,這些特點(diǎn)極大地提高了語(yǔ)言識(shí)別解析程序的開發(fā)效率[6]。
基于ANTLR 4的配置解析與翻譯的技術(shù)方案如圖2所示。采用ANTLR的監(jiān)聽器機(jī)制使得語(yǔ)法翻譯程序模塊的開發(fā)分解為一組松耦合的樹節(jié)點(diǎn)訪問(wèn)事件的監(jiān)聽模塊,在遍歷到AST相應(yīng)的節(jié)點(diǎn)(非葉子節(jié)點(diǎn))時(shí)自動(dòng)觸發(fā)相應(yīng)的語(yǔ)法翻譯邏輯,極大地簡(jiǎn)化了代碼的復(fù)雜性。
3.2 設(shè)備配置文法描述與語(yǔ)法翻譯模塊開發(fā)
(1)文法描述文件開發(fā)
文法包括詞法和語(yǔ)法,基于ANTLR的文法描述開發(fā)就是采用擴(kuò)展BNF (Extended Backus-Naur-Format)表達(dá)式描述具體設(shè)備的配置定義的詞法、語(yǔ)法。分析處理人工編寫的語(yǔ)言需要判斷、處理文法錯(cuò)誤,需要大量的詞法、語(yǔ)法規(guī)則對(duì)輸入進(jìn)行約束。但是配置核查系統(tǒng)從具體設(shè)備上獲取的配置都是經(jīng)過(guò)目標(biāo)設(shè)備系統(tǒng)的語(yǔ)法分析器校驗(yàn)過(guò)的,因此,我們可以假設(shè)獲取的配置都是符合目標(biāo)系統(tǒng)定義的詞法、語(yǔ)法規(guī)則的,基于這個(gè)假設(shè),極大地簡(jiǎn)化了文法規(guī)則編寫,除了關(guān)鍵詞,大部分詞法都可以用字符串詞法替代,由于假設(shè)不存在詞法錯(cuò)誤問(wèn)題,語(yǔ)法翻譯模塊獲取字符串參數(shù)值可以直接按目標(biāo)數(shù)據(jù)類型直接翻譯。某型號(hào)防火墻配置的語(yǔ)法分析生成的AST的一個(gè)子集,用ANTLR的圖像化顯示工具如圖3所示。
(2) 語(yǔ)法翻譯模塊
開發(fā)好文法描述文件,利用ANTLR工具自動(dòng)生成詞法分析器、語(yǔ)法分析器、語(yǔ)法樹監(jiān)聽器的代碼,生成的目標(biāo)代碼支持C++、C#、java、go等語(yǔ)言。以java為例,針對(duì)某防火墻配置語(yǔ)法開發(fā)的名為FW_HS4000.g4的文法描述文件,經(jīng)過(guò)ANTLR處理后,自動(dòng)生成FW_HS4000Lexer.java(詞法分析器代碼)、FW_HS4000Parser.java(語(yǔ)法分析器代碼) 、FW_HS4000Listener.java(監(jiān)聽器接口定義代碼) 、 FW_HS4000BaseListener.java(監(jiān)聽器接口默認(rèn)實(shí)現(xiàn)代碼)。Java 的class FW_HS4000BaseListener為語(yǔ)法樹的每個(gè)非葉子節(jié)點(diǎn)定義了默認(rèn)的兩個(gè)事件處理函數(shù),函數(shù)名分別為進(jìn)入節(jié)點(diǎn)的“enter+節(jié)點(diǎn)名稱”和退出節(jié)點(diǎn)的“exit+節(jié)點(diǎn)名稱”,每個(gè)節(jié)點(diǎn)名稱就是我們定義的語(yǔ)法規(guī)則名,可讀性強(qiáng)。語(yǔ)法翻譯模塊只需要簡(jiǎn)單繼承默認(rèn)實(shí)現(xiàn)的監(jiān)聽器,重寫事件處理函數(shù),按照統(tǒng)一定義的配置類別的結(jié)構(gòu)定義進(jìn)行轉(zhuǎn)換即可。
4 結(jié)束語(yǔ)
由于不同人員知識(shí)水平有差異,把握核查標(biāo)準(zhǔn)尺度不統(tǒng)一,容易導(dǎo)致核查結(jié)果不一致,手動(dòng)核查方式難以滿足對(duì)配置進(jìn)行高效、客觀評(píng)價(jià)的需求,因此,有必要通過(guò)將核查知識(shí)轉(zhuǎn)化成可重復(fù)利用的知識(shí),由軟件實(shí)現(xiàn)配置自動(dòng)化核查。本文針對(duì)配置核查自動(dòng)化面臨的異構(gòu)配置問(wèn)題,提出了無(wú)代理的自動(dòng)化采集技術(shù)和基于自動(dòng)化語(yǔ)法分析的方法,實(shí)現(xiàn)配置解析與配置核查算法的解耦,提高了核查算法模塊的分析能力和設(shè)備兼容性。
參考文獻(xiàn):
[1] 陳軍,饒婕,陳虹等.基于SCAP 的自動(dòng)化安全基線核查研究[J].計(jì)算機(jī)時(shí)代,2016(4).
[2] 王嘯天.基于基線化管理的計(jì)算機(jī)配置核查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)科學(xué)院大學(xué).
[3] Reijo M. Savola. Quality of security metrics and measurements. Computers & Security[J], 2013, 37: 78-90.
[4] W Stallings, L Brown, Computer Security: Principles and Practice, 3rd Edition[M].Prentice Hall, 2014.
[5] 唐煉,王小龍.基于模式匹配的無(wú)線網(wǎng)絡(luò)安全配置核查工具[J].計(jì)算機(jī)與現(xiàn)代化,2015(10).
[6] Terence Parr. ANTLR 4權(quán)威指南[M].張博,等.機(jī)械工業(yè)出版社,2017.
【通聯(lián)編輯:代影】