1.一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法,其特征在于,所述方法包括:
加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串;
對(duì)加載的命令格式串進(jìn)行詞法分析,并根據(jù)詞法分析的結(jié)果按照采用巴克斯范式語(yǔ)言描述的預(yù)定語(yǔ)法規(guī)則進(jìn)行語(yǔ)法分析,生成所述命令鏈表的命令解析樹(shù)和位圖特征碼矩陣;
使用命令解析樹(shù)對(duì)輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對(duì)應(yīng)的命令操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)定的命令格式規(guī)范,包括:
命令格式串中關(guān)于“順序排列”、“或”、“可選”和“優(yōu)先”關(guān)系的命令格式,其中,所述命令格式串包括命令名及一個(gè)或多個(gè)按預(yù)定順序排列的命令參數(shù);
所述“順序排列”關(guān)系的命令格式是連續(xù)將多個(gè)命令參數(shù)進(jìn)行順序排列;
所述“或”關(guān)系的命令格式是使用分隔號(hào)將多個(gè)命令參數(shù)分隔起來(lái);
所述“可選”關(guān)系的命令格式是使用中括號(hào)將至少一個(gè)命令參數(shù)括起來(lái);
所述“優(yōu)選”關(guān)系的命令格式是使用大括號(hào)將至少一個(gè)命令參數(shù)括起來(lái)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用巴克斯范式語(yǔ)言描述的預(yù)定語(yǔ)法規(guī)則,包括:
ROOT::=KEYWORD
|KEYWORD SEQUENCE
SEQUENCE::=STABLE
|UNSTABLE
|STABLE UNSTABLE
|SEQUENCE STABLE
|SEQUENCE STABLE UNSTABLE
STABLE::=KEYWORD
|MERGE
UNSTABLE::=OPTION
|OPTIONS
OR::=SEQUENCE“|”SEQUENCE
|OR“|”SEQUENCE
MERGE::=“{”O(jiān)R“}”
|“{”SEQUENCE“}”
OPTIONS::=DOPTION
|OPTIONS OPTION
DOPTION::=OPTION OPTION
OPTION::=“[”O(jiān)R“]”
|“[”SEQUENCE“]”
其中,符號(hào)ROOT在所述命令解析樹(shù)中代表根節(jié)點(diǎn),符號(hào)SEQUENCE在所述命令解析樹(shù)中代表所述“順序排列”關(guān)系的命令格式的節(jié)點(diǎn),符號(hào)OR在所述命令解析樹(shù)中代表所述“或”關(guān)系的命令格式的節(jié)點(diǎn),符號(hào)OPTION在所述命令解析樹(shù)中代表“可選”關(guān)系的命令格式的節(jié)點(diǎn),符號(hào)MERGE在所述命令解析樹(shù)中代表“優(yōu)先”關(guān)系的命令格式的節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述命令解析樹(shù)按照向左規(guī)約和向右規(guī)約進(jìn)行合并。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述左向規(guī)約包括:
在所述命令解析樹(shù)有符號(hào)OR代表的第一節(jié)點(diǎn)中,若所述第一節(jié)點(diǎn)的右子樹(shù)和左子樹(shù)的命令格式有部分相同,則將所述符號(hào)OR代表的第一節(jié)點(diǎn)替換成符號(hào)SEQUENCE代表的第二節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置 在所述第二節(jié)點(diǎn)的左子樹(shù),若所述第一節(jié)點(diǎn)的右子樹(shù)和左子樹(shù)的命令格式全部相同,則將所述符號(hào)OR代表的第一節(jié)點(diǎn)替換成全部相同的命令格式。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述右向規(guī)約包括:
在所述命令解析樹(shù)有符號(hào)OR代表的第三節(jié)點(diǎn)中,若所述第三節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)的命令格式有部分相同,則將所述符號(hào)OR代表的第三節(jié)點(diǎn)替換成符號(hào)SEQUENCE代表的第四節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置在所述第四節(jié)點(diǎn)的右子樹(shù),若所述第三節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)的命令格式全部相同,則將所述符號(hào)OR代表的第三節(jié)點(diǎn)替換成全部相同的命令格式。
7.根據(jù)權(quán)利要求4-6任一項(xiàng)所述的方法,其特征在于,所述位圖特征碼為命令解析樹(shù)中各節(jié)點(diǎn)的有序位圖映射。
8.一種網(wǎng)絡(luò)安全設(shè)備命令行的解析裝置,其特征在于,所述裝置包括:加載模塊、解析模塊和匹配模塊;
加載模塊,用于加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串;
解析模塊,用于對(duì)加載后的命令格式串進(jìn)行詞法分析,并對(duì)詞法分析的結(jié)果按照采用巴克斯范式語(yǔ)言描述的預(yù)定語(yǔ)法規(guī)則進(jìn)行語(yǔ)法分析,生成所述命令鏈表的命令解析樹(shù)和位圖特征碼矩陣;
匹配模塊,用于使用命令解析樹(shù)對(duì)輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對(duì)應(yīng)的命令操作。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述預(yù)定的命令格式規(guī)范,包括:
命令格式串中關(guān)于“順序排列”、“或”、“可選”和“優(yōu)先”關(guān)系的命令格式,其中,所述命令格式串包括命令名及一個(gè)或多個(gè)按預(yù)定順序排列的命令參數(shù);
所述“順序排列”關(guān)系的命令格式是連續(xù)將多個(gè)命令參數(shù)進(jìn)行順序排列;
所述“或”關(guān)系的命令格式是使用分隔號(hào)將多個(gè)命令參數(shù)分隔起來(lái);
所述“可選”關(guān)系的命令格式是使用中括號(hào)將至少一個(gè)命令參數(shù)括起來(lái);
所述“優(yōu)選”關(guān)系的命令格式是使用大括號(hào)將至少一個(gè)命令參數(shù)括起來(lái)。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述采用巴克斯范式語(yǔ)言描述的預(yù)定語(yǔ)法規(guī)則,包括:
ROOT::=KEYWORD
|KEYWORD SEQUENCE
SEQUENCE::=STABLE
|UNSTABLE
|STABLE UNSTABLE
|SEQUENCE STABLE
|SEQUENCE STABLE UNSTABLE
STABLE::=KEYWORD
|MERGE
UNSTABLE::=OPTION
|OPTIONS
OR::=SEQUENCE“|”SEQUENCE
|OR“|”SEQUENCE
MERGE::=“{”O(jiān)R“}”
|“{”SEQUENCE“}”
OPTIONS::=DOPTION
|OPTIONS OPTION
DOPTION::=OPTION OPTION
OPTION::=“[”O(jiān)R“]”
|“[”SEQUENCE“]”
其中,符號(hào)ROOT在所述命令解析樹(shù)中代表根節(jié)點(diǎn),符號(hào)SEQUENCE在所述命令解析樹(shù)中代表所述“順序排列”關(guān)系的命令格式的節(jié)點(diǎn),符號(hào)OR在所述命令解析樹(shù)中代表所所述“或”關(guān)系的命令格式的節(jié)點(diǎn),符號(hào)OPTION在所述命令解析樹(shù)中代表“可選”關(guān)系的命令格式的節(jié)點(diǎn),符號(hào)MERGE在所述命令解析樹(shù)中代表“優(yōu)先”關(guān)系的命令格式的節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述命令解析樹(shù)按照向左規(guī)約和向右規(guī)約進(jìn)行合并。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述左向規(guī)約包括:
在所述命令解析樹(shù)有符號(hào)OR代表的第一節(jié)點(diǎn)中,若所述第一節(jié)點(diǎn)的右子樹(shù)和左子樹(shù)的命令格式有部分相同,則將所述符號(hào)OR代表的第一節(jié)點(diǎn)替換成符號(hào)SEQUENCE代表的第二節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置在所述第二節(jié)點(diǎn)的左子樹(shù),若所述第一節(jié)點(diǎn)的右子樹(shù)和左子樹(shù)的命令格式全部相同,則將所述符號(hào)OR代表的第一節(jié)點(diǎn)替換成全部相同的命令格式。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述右向規(guī)約包括:
在所述命令解析樹(shù)有符號(hào)OR代表的第三節(jié)點(diǎn)中,若所述第三節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)的命令格式有部分相同,則將所述符號(hào)OR代表的第三節(jié)點(diǎn)替換成符號(hào)SEQUENCE代表的第四節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置在所述第四節(jié)點(diǎn)的右子樹(shù),若所述第三節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)的命令格式全部相同,則將所述符號(hào)OR代表的第三節(jié)點(diǎn)替換成全部相同的命令格式。
14.根據(jù)權(quán)利要求11-13任一項(xiàng)所述的裝置,其特征在于,所述位圖特征碼為命令解析樹(shù)中各節(jié)點(diǎn)的有序位圖映射。