一种网络安全设备命令行的解析方法和装置与流程

文档序号:12786163阅读:325来源:国知局
一种网络安全设备命令行的解析方法和装置与流程

本发明涉及互联网技术领域,尤指一种网络安全设备命令行的解析方法和装置。



背景技术:

目前,命令行是通过输入命令来实现对网络安全设备的管理和监控,一般是通过串口或安全外壳协议(Secure Shell,简称:SSH)连接到设备,使用网络产品界面设计(Website User Interface,简称:WEB UI)的方式来管理和监控设备,因此,命令行方式依然是各种网络安全设备最基础,最强大的管理方式,尤其在某些特殊场景下命令行仍是不可或缺的,同时也是最难掌握的。

现有技术中,随着网络安全设备的功能特性不断增多,提供的命令行也不断增多,复杂度也不断提高,一直以来在命令行开发过程中,基本上都是手动编写命令行解析流程,并执行相关操作逻辑。

但是,采用现有技术,手动编写命令行解析流程工作量较大,且很多都是重复劳动,导致容易出错,且难于调试和维护。



技术实现要素:

为了解决上述技术问题,本发明提供了一种网络安全设备命令行的解析方法和装置,能够根据命令格式串自动构建命令解析树,自动完成相关逻辑解析,无需手动编写命令行来解析流程,从而可以使得命令行解析过程更加简单,高效,准确。

第一方面,本发明实施例提供一种网络安全设备命令行的解析方法,该方法包括:

加载命令链表中按照预定的命令格式规范设置的命令格式串;

对加载的命令格式串进行词法分析,并根据词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,生成所述命令链表的命令解析树和位图特征码矩阵;

使用命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作。

第二方面,本发明实施例提供一种网络安全设备命令行的解析装置,该装置包括:加载模块、解析模块和匹配模块;

加载模块,用于加载命令链表中按照预定的命令格式规范设置的命令格式串;

解析模块,用于对加载后的命令格式串进行词法分析,并对词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,生成所述命令链表的命令解析树和位图特征码矩阵;

匹配模块,用于使用命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作。

本发明实施例提供的一种网络安全设备命令行的解析方法和装置,包括加载模块、解析模块、匹配模块,通过加载命令链表中按照预定的命令格式规范设置的命令格式串,对加载后的命令格式串进行词法分析,并对词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,从而生成该命令链表的命令解析树和位图特征码矩阵,由命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作,这样根据命令格式串自动构建命令解析树,自动完成输入的命令字符串的相关逻辑解析,从而无需手动编写命令行的解析流程,进而使得命令行解析的过程更加简单,高效,准确。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获 得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明提供的一种网络安全设备命令行的解析方法实施例一的流程示意图;

图2为本发明提供的一种网络安全设备命令行的解析方法实施例二的命令行语法分析图;

图3为本发明提供的一种网络安全设备命令行的解析方法实施例三的左向规约图;

图4为本发明提供的一种网络安全设备命令行的解析方法实施例四的右向规约图;

图5为本发明提供的一种网络安全设备命令行的解析装置实施例一的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明实施例涉及的方法可以应用于网络安全设备,例如:路由器、防火墙、IDS/IPS、SSL、负载均衡、VPN(ssl vpn/ipsec vpn)、UTM、防病毒网关、抗DDOS设备、NAC、网闸、IPAM等,但并不以此为限。

本发明实施例涉及的方法,旨在解决现有技术中的手动编写命令行解析流程工作量较大,且很多都是重复劳动,导致容易出错,且难于调试和维护 的技术问题。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本发明提供的一种网络安全设备命令行的解析方法实施例一的流程示意图,本实施例涉及的是自动解析命令来执行相关操作的具体过程。如图1所示,该方法包括:

S101、命令格式规范加载命令链表中按照预定的命令格式规范设置的命令格式串。

具体的,所述命令链表包括所有按照预定的命令格式规范设置的命令格式串,所述命令格式串为能够被正确解析并执行的格式串,具体格式根据每个命令功能的不同而不同,依次加载该命令链表中的每一条命令格式串,对每一条命令格式串进行词法分析和语法分析,直至该命令链表中的命令格式串加载至空为止。

S102、加载的命令格式串进行词法分析,并根据词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,生成所述命令链表的命令解析树和位图特征码矩阵。

具体的,对加载后的命令格式串进行词法分析,分析出该命令格式串的命令名和命令参数,其中,该命令名为命令格式串中第一个关键字,该命令参数为命令格式串中除命令名之外的关键字。根据词法分析出该命令行的命令名和命令参数再按照预定的语法规则进行语法分析,该语法规则是采用巴克斯范式语言进行描述的,从而可以生成该命令链表的命令解析树和位图特征码矩阵以便后续根据输入的命令字符串查询对应的命令格式来执行对应的命令操作。

S103、使用命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作。

当在终端设备输入命令字符串时,使用命令解析树对输入的命令字符串 进行解析,生成该命令字符串的位图特征码,其中,该命令字符串是终端输入的一行文本字符串,通过解析获取到该命令字符串的位图特征码,并将该命令字符窜的位图特征码与位图特征码矩阵进行匹配,找到所属的命令格式串串,执行对应的命令操作。

本发明实施例提供的一种网络安全设备命令行的解析方法,该方法通过加载命令链表中按照预定的命令格式规范设置的命令格式串,对加载后的命令格式串进行词法分析,并对词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,从而生成该命令链表的命令解析树和位图特征码矩阵,由命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作,这样根据命令格式串自动构建命令解析树,自动完成输入的命令字符串的相关逻辑解析,从而无需手动编写命令行的解析流程,进而使得命令行解析的过程更加简单,高效,准确。

进一步地,在上述实施例的基础上,上述步骤101中预定的命令格式规范,包括:

命令格式串中关于“顺序排列”、“或”、“可选”和“优先”关系的命令格式,其中,所述命令格式串包括命令名及一个或多个按预定顺序排列的命令参数;

所述“顺序排列”关系的命令格式是连续将多个命令参数进行顺序排列;

所述“或”关系的命令格式是使用分隔号将多个命令参数分隔起来;

所述“可选”关系的命令格式是使用中括号将至少一个命令参数括起来;

所述“优选”关系的命令格式是使用大括号将至少一个命令参数括起来。

具体的,根据上述预定的命令格式规范,举例说明如下:“user add name<name>”为user命令的命令格式串,其中user为命令名,add和name为固定式参数,<name>为格式化参数,在输入命令字符串时必须满足<name>的格式的合法性要求,命令才能正确执行,但并不以此为限。

具体的,对于可选命令参数,继续举例说明如下:“user add name<name>[phone<phone>]”的user命令的命令格式串,其中“[phone<phone>]”为可选命令参数,如果输入的命令字符串参数<name>的后边不包含phone<phone> 格式的字符串时,设备会默认phone为空进行配置下发,但并不限于此。

具体的,对于优先组合命令参数及多个命令参数的或的关系,继续举例说明如下:“user add name<name>[phone<phone>]status{on|off}”的user命令的命令格式串,这种情况下输入命令字符串中status后面可以是on和off其中一个,但并不限于此。

通过上述预定的命令格式规范,可以自动按照该命令格式串解析命令字符串,检查相对应的命令格式,执行对应的命令操作,从而大幅减少由于编写解析流程而产生的工作量,减少了代码冗余,降低了解析过程中出错的概率,提高了命令行开发的效率,节省了项目资源,缩短了项目周期。

进一步地,在上述实施例的基础上,上述步骤102中所述采用巴克斯范式语言描述的预定语法规则包括:

其中,符号ROOT在所述命令解析树中代表根节点,符号SEQUENCE在所述命令解析树中代表所述“顺序排列”关系的命令格式的节点,符号OR在所述命令解析树中代表所所述“或”关系的命令格式的节点,符号OPTION在所述命令解析树中代表“可选”关系的命令格式的节点,符号MERGE在所述命令解析树中代表“优先”关系的命令格式的节点。

具体的,图2为本发明提供的一种网络安全设备命令行的解析方法实施例二的命令行语法分析图,根据上述预定的巴克斯范式对词法分析的结果进行语法分析,举例说明如下:如“user add name<name>[phone<phone>]status{on|off}”user命令的命令格式串经过语法分析后,生成的命令解析树如图2所示,但并不限于此。

通过上述采用巴克斯范式语言描述的语法规则对命令格式串进行语法分析,从而可以自动构建命令解析树,大幅减少由于编写解析流程而产生的工作量,减少了代码冗余,降低了解析过程中出错的概率,提高了命令行开发的效率,节省了项目资源,缩短了项目周期。

进一步地,在上述实施例的基础上,上述步骤102中所述命令解析树按照向左规约和向右规约进行合并。

具体的,所述命令解析树是一个二叉树,所述二叉树的左右两侧可以分别对应一个子树、一个节点或者一个命令参数,为简化命令解析树的大小,在生成命令解析树后,都需要进行规约处理,其中该规约分为两种,一种是 左向规约,另一种是右向规约,但并不限于此。

进一步地,在上述实施例的基础上,上述左向规约包括:

当节点OR的左右子树的第一命令参数和第二命令参数相同时,则用相同的命令参数来表示。

在所述命令解析树有符号OR代表的第一节点中,若所述第一节点的右子树和左子树的命令格式有部分相同,则将所述符号OR代表的第一节点替换成符号SEQUENCE代表的第二节点,其中,将部分相同的命令格式提取出放置在所述第二节点的左子树,若所述第一节点的右子树和左子树的命令格式全部相同,则将所述符号OR代表的第一节点替换成全部相同的命令格式。

具体的,图3为本发明提供的一种网络安全设备命令行的解析方法实施例三的左向规约图,如图3所示,所述左向规约主要是针对命令解析树中有符号OR代表的节点的情况,一共有四种情况,在此一一举例说明如下:

当节点OR的左右子树相同时,则按照图3中(A)情况进行转换,在所述命令格式规范中相当于“a|a”,则可以转化为“a”;

当节点OR的右子树为SEQUENCE类型节点,且节点OR的左子树与SEQUENCE节点的左子树相同时,则按照图3中(B)情况进行转换,在所述命令格式规范中相当于“a|a b”,则可以转化为“a[b]”;

当节点OR的左子树为SEQUENCE类型节点,且节点OR的右子树与SEQUENCE节点的左子树相同时,则按照图3中(C)情况进行转换,在所述命令格式规范中相当于“a b|a”,则可以转化为“a[b]”;

当节点OR的左子树和右子树都为SEQUENCE类型节点,且节点OR左子树的SEQUENCE节点的左子树与OR右子树的SEQUENCE节点的左子树相同时,则按照图3中(D)情况进行转换,在所述命令格式规范中相当于“a b|a c”,则可以转化为“a{b|c}。”

上述举例中的a、b、c是命令格式的表示符号,其在命令解析树中可以是一个子树,也可以是一个节点,还可以是一个命令参数,但并不以此为限。

进一步地,在上述实施例的基础上,上述右向规约包括:

在所述命令解析树有符号OR代表的第三节点中,若所述第三节点的左子树和右子树的命令格式有部分相同,则将所述符号OR代表的第三节点替 换成符号SEQUENCE代表的第四节点,其中,将部分相同的命令格式提取出放置在所述第四节点的右子树,若所述第三节点的左子树和右子树的命令格式全部相同,则将所述符号OR代表的第三节点替换成全部相同的命令格式。

具体的,图4为本发明提供的一种网络安全设备命令行的解析方法实施例四的右向规约图,如图4所示,所述右向规约主要是针对命令解析树中有符号OR代表的节点的情况,一共有四种情况,在此一一举例说明如下::

当节点OR的左右子树相同时,则按照图4中(A)情况进行转换,在所述命令格式规范中相当于“a|a”,则可以转化为“a”的形式。

当节点OR的左子树为SEQUENCE类型节点,且节点OR的右子树与SEQUENCE节点的右子树相同时,则按照图4中(B)情况进行转换,在所述命令格式规范中相当于“b|a b”,则可以转化为“b[a]”。

当节点OR的右子树为SEQUENCE类型节点,且节点OR的左子树与SEQUENCE节点的右子树相同时,则按照图4中(C)情况进行转换,在所述命令格式规范中相当于“b a|b”,则可以转化为“b[a]”。

当节点OR的左子树和右子树都为SEQUENCE类型节点,且节点OR左子树的SEQUENCE节点的右子树与OR右子树的SEQUENCE节点的右子树相同时,则按照图4中(D)情况进行转换,在所述命令格式规范中相当于“a b|c b”,则可以转化为“b{a|c}。”

上述举例中的a、b、c是命令格式的表示符号,其在命令解析树中可以是一个子树,也可以是一个节点,还可以是一个命令参数,但并不以此为限。

通过上述左向规约和右向规约,能够反向输出转换后的命令格式串,减少了代码冗余,降低了解析过程中出错的概率,提高了命令行开发的效率,节省了项目资源,缩短了项目周期。

进一步地,在上述实施例的基础上,所述位图特征码为命令解析树中各节点的有序位图映射。

具体的,位图特征码本质上是命令解析树中各节点的有序位图映射,而命令链表中的多个命令格式串会组成一个位图特征码矩阵。其中,位图特征码是在语法分析每个命令格式串的同时,生成的该命令格式串的位图特征码,从而构建成位图特征码矩阵,以便后续用来将设备终端输入的命令字符串的 位图特征码与位图特征码矩阵进行匹配,从而找到所对应的命令格式串,执行对应的命令操作。

进一步地,图5为本发明提供的一种网络安全设备命令行的解析装置实施例一的结构示意图,如图5所示,该装置包括:加载模块10、解析模块20和匹配模块30;

所述加载模块10,用于加载命令链表中按照预定的命令格式规范设置的命令格式串;

所述解析模块20,用于对加载的命令格式串进行词法分析,并根据词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,生成所述命令链表的命令解析树和位图特征码矩阵;

所述匹配模块30,用于使用命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作。

本发明实施例提供的一种网络安全设备命令行的解析装置,包括加载模块、解析模块和匹配模块,通过加载命令链表中按照预定的命令格式规范设置的命令格式串,对加载后的命令格式串进行词法分析,并对词法分析的结果按照采用巴克斯范式语言描述的预定语法规则进行语法分析,从而生成该命令链表的命令解析树和位图特征码矩阵,由命令解析树对输入的命令字符串进行解析获取位图特征码,并将解析后的位图特征码与位图特征码矩阵进行匹配,执行匹配成功后所对应的命令操作,这样根据命令格式串自动构建命令解析树,自动完成输入的命令字符串的相关逻辑解析,从而无需手动编写命令行的解析流程,进而使得命令行解析的过程更加简单,高效,准确。

进一步地,在上述实施例的基础上,所述预定的命令格式规范,包括:

命令格式串中关于“顺序排列”、“或”、“可选”和“优先”关系的命令格式,其中,所述命令格式串包括命令名及一个或多个按预定顺序排列的命令参数;

所述“顺序排列”关系的命令格式是连续将多个命令参数进行顺序排列;

所述“或”关系的命令格式是使用分隔号将多个命令参数分隔起来;

所述“可选”关系的命令格式是使用中括号将至少一个命令参数括起来;

所述“优选”关系的命令格式是使用大括号将至少一个命令参数括起来。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

进一步地,在上述实施例的基础上,所述采用巴克斯范式语言描述的预定语法规则包括:

其中,符号ROOT在所述命令解析树中代表根节点,符号SEQUENCE在所述命令解析树中代表所述“顺序排列”关系的命令格式的节点,符号OR在所述命令解析树中代表所所述“或”关系的命令格式的节点,符号OPTION在所述命令解析树中代表“可选”关系的命令格式的节点,符号MERGE在所述命令解析树中代表“优先”关系的命令格式的节点。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

进一步地,在上述实施例的基础上,所述命令解析树按照向左规约和向右规约进行合并。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

进一步地,在上述实施例的基础上,所述左向规约包括:

在所述命令解析树有符号OR代表的第一节点中,若所述第一节点的右子树和左子树的命令格式有部分相同,则将所述符号OR代表的第一节点替换成符号SEQUENCE代表的第二节点,其中,将部分相同的命令格式提取出放置在所述第二节点的左子树,若所述第一节点的右子树和左子树的命令格式全部相同,则将所述符号OR代表的第一节点替换成全部相同的命令格式。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

进一步地,在上述实施例的基础上,所述右向规约包括:

在所述命令解析树有符号OR代表的第三节点中,若所述第三节点的左子树和右子树的命令格式有部分相同,则将所述符号OR代表的第三节点替换成符号SEQUENCE代表的第四节点,其中,将部分相同的命令格式提取 出放置在所述第四节点的右子树,若所述第三节点的左子树和右子树的命令格式全部相同,则将所述符号OR代表的第三节点替换成全部相同的命令格式。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

进一步地,在上述实施例的基础上,所述位图特征码为命令解析树中各节点的有序位图映射。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1