一种基于图形化编程的网络安全扫描功能实现方法论文和设计-杨国正

全文摘要

本发明提出了一种基于图形化编程的网络安全扫描功能实现方法,所述方法包括构建基于“名称+参数”的图形化模块,实现网络安全扫描工具中的基本原子功能,每个原子功能模块的功能通过名称示意,双击原子功能模块对应的图元以弹出参数配置界面实现对参数的自定义配置;通过构造逻辑生成树使得构建的每个图形化模块编译成能够正常执行的代码逻辑序列;对图形化模块构建的结果进行自动检错处理,从而实现基于图形化编程的网络安全扫描功能。本发明的方案一方面可实现对已有扫描工具的快速生成和多样化配置;另一方面可针对新出现的安全问题和漏洞灵活定制生成新的扫描工具,提高工具的时效性。

主设计要求

1.一种基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述方法包括如下内容:(1)构建一个包括多个原子功能模块的原子功能模块库,所述原子功能模块库中的原子功能模块实现网络安全扫描的基本原子功能;(2)设计各个原子功能模块和逻辑条件的可视化展现图标,使得用户可以通过图形化界面对所述可视化展现图标进行拖拽、拼接以及参数的配置;其中,通过该原子功能模块的可视化展现图标实现对原子功能模块库中原子功能模块的调用;(3)分析自定义的网络安全扫描工具所包含的基本原子功能,确定网络安全扫描工具所包含的原子功能模块和内部逻辑关系;构造一个逻辑生成树,用于存储所述原子功能模块之间的逻辑关系,使得图形化界面中的所述可视化展现图标对应的多个原子功能模块能够编译成所述自定义的网络安全扫描工具能够正常执行的代码逻辑序列;(4)对所述逻辑生成树进行自动检错处理,生成所述自定义的网络安全扫描工具。

设计方案

1.一种基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述方法包括如下内容:

(1)构建一个包括多个原子功能模块的原子功能模块库,所述原子功能模块库中的原子功能模块实现网络安全扫描的基本原子功能;

(2)设计各个原子功能模块和逻辑条件的可视化展现图标,使得用户可以通过图形化界面对所述可视化展现图标进行拖拽、拼接以及参数的配置;

其中,通过该原子功能模块的可视化展现图标实现对原子功能模块库中原子功能模块的调用;

(3)分析自定义的网络安全扫描工具所包含的基本原子功能,确定网络安全扫描工具所包含的原子功能模块和内部逻辑关系;构造一个逻辑生成树,用于存储所述原子功能模块之间的逻辑关系,使得图形化界面中的所述可视化展现图标对应的多个原子功能模块能够编译成所述自定义的网络安全扫描工具能够正常执行的代码逻辑序列;

(4)对所述逻辑生成树进行自动检错处理,生成所述自定义的网络安全扫描工具。

2.根据权利要求1所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述原子功能模块采用基于“名称+参数”的图形化模块实现,以可视化展现图标展示在图形化界面中,该图形化模块包括逻辑判断模块,用于循环判断、条件判断。

3.根据权利要求2所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,每个原子功能模块的功能通过名称示意,双击原子功能模块对应的图形化模块以弹出参数配置界面实现对参数的自定义配置;

所述图形化模块具有相应的拼接接口,当拖拽某个图形化模块接近另一个图形化模块进行拼接时,以高亮显示可拼接部分,在确定拼接后,自动调整拼接位置,使得拼接的图形化模块能够变成一个组合图形化模块,并产生拖拽效果。

4.根据权利要求3所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述原子功能模块库包括以下原子功能类型:获取信息类、获取状态类、建立连接类、模板输出类、时间日期类、收发数据包类、数据处理类、文件访问类和协议交互类。

5.根据权利要求4所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,获取状态类原子功能包括以下原子功能:判断端口状态;

模板输出类原子功能包括以下原子功能:漏洞报告;

收发数据包类原子功能包括以下原子功能:发送数据包;

协议交互类原子功能包括以下原子功能:取HTTP端口、HTTP服务判断、打开HTTP、接收HTTP、关闭HTTP和HTTP判断。

6.根据权利要求1所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述构造一个逻辑生成树,具体包括:将每个原子功能模块作为一个节点,每个节点设置四个指针,分别指向其父节点、右边子节点、内部子节点和下边子节点,从起始原子功能模块所在的节点开始,按照先遍历右边子节点、再遍历内部子节点、最后遍历下边子节点的顺序通过递归调用的方式完成,除起始原子功能模块所在节点外,其他原子功能模块都具有父节点。

7.根据权利要求6所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,在构造逻辑生成树的遍历过程中,执行如下步骤:

3.1)初始化一棵三叉树链表结构;

3.2)加载当前节点;

3.3)判断是否出现逻辑条件,如果出现逻辑条件,则进入步骤3.4),否则进入步骤3.8);

3.4)判断是否存在右边子节点,如果存在,进入步骤3.5),否则,进入步骤3.6);

3.5)读取右边子节点并加入当前节点右链表,返回步骤3.4);

3.6)判断是否存在内部子节点,如果存在,则进入步骤3.7),否则进入步骤3.8);

3.7)读取内部子节点并加入当前节点内链表,返回步骤3.2);

3.8)判断是否存在下边子节点,如果存在,则进入步骤3.9),否则进入步骤3.10);

3.9)读取下边子节点并加入当前节点下链表,返回步骤3.2);

3.10)结束遍历过程。

8.根据权利要求1所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述对所述逻辑生成树进行自动检错处理,包括:

对当前拼装界面上所有原子功能模块是否完全组装进行验证以及根据原子功能模块的依赖关系确定检测方向。

9.根据权利要求8所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述对当前拼装界面上所有原子功能模块是否完全组装进行验证,具体包括:

在生成逻辑生成树的基础上,基于所有节点中没有父节点的节点个数检测来判断原子功能模块组装是否已经完成,如果没有完成,则给出错误提示,并跳出检测状态;如果已经完成,则判断执行逻辑生成树中相关原子功能模块的先后顺序以及依赖关系是否正确。

10.根据权利要求8所述的基于图形化编程的网络安全扫描工具生成方法,其特征在于,所述根据原子功能模块的依赖关系确定检测方向,具体包括:

4.1)根据当前节点的依赖类型,确定检测方向,当没有发现依赖原子功能模块时,给出相应错误提示;

4.2)依据上下执行环境,对每个原子功能模块的输入输出参数进行一致性检测和逻辑条件分析,当参数类型不一致时,则提示原子功能模块中的原子功能模块类型匹配错误,当逻辑条件不完全时给出合理的提示信息;

其中,所述依赖类型包括前向依赖和后向依赖。

设计说明书

技术领域

本发明属于网络安全技术领域,涉及一种基于图形化编程的网络安全扫描功能实现方法。

背景技术

图形化编程是软件编程技术经历机器码、汇编语言到发展进入高级语言编程阶段后产生的一种新的编程方式。它主要采用图形模块作为编程元素,通过简单地添加和拖动几个图形化模块进行配置,便可生成所需要的程序,从而使得用户从繁琐的代码编写中解放出来,更关注于业务功能的实现,有效提高程序的开发效率和维护水平。

由于图形化编程中界面图形模块与底层代码之间关联性强,因此,图形化编程主要应用于某些专用业务领域。最典型的图形化编程语言是LabVIEW,它主要应用于测试测量领域,可采用图形化操作的方式实现测试测量功能程序代码的生成,如图1所示。

目前,比较新颖的图形化编程项目主要有麻省理工学院开发的Sikuli项目和谷歌的Blockly项目。Sikuli项目以图像检索技术为基础,提供了一套基于Jython的脚本语言以及集成开发环境。用户只需有最基本的编程技能,即可采用屏幕截图的方式,用截出的图形元素快速组合出程序。Sikuli实现自动登录 Gmail的过程如图2所示。

Blockly项目设计了一种基于网页程序的图形化编程语言,用户通过模块拖拽和拼接的操作即可开发出满足特定需求的应用程序,目前这种语言支持40多门语言,可用于实现较为复杂的功能,其基本示例如图3所示。

上述这些方案都是针对特定应用开发了相应的图形化编程环境,由于图形化编程的模块设计、功能实现、代码生成和界面操作与具体应用密切相关,因此在网络安全领域,还没有类似图形化编程的设计方法。

发明内容

为解决上述技术问题,本发明提出了一种基于图形化编程的网络安全扫描功能实现方法,一方面可实现对已有扫描工具的快速生成和多样化配置;另一方面可针对新出现的安全问题和漏洞灵活定制生成新的扫描工具,提高工具的时效性。

根据本发明的实施例,本发明提出了一种基于图形化编程的网络安全扫描功能实现方法,所述方法包括如下内容:

(1)构建一个包括多个原子功能模块的原子功能模块库,所述原子功能模块库中的原子功能模块实现网络安全扫描的基本原子功能;

(2)设计各个原子功能模块和逻辑条件的可视化展现图标,使得用户可以通过图形化界面对所述可视化展现图标进行拖拽、拼接以及参数的配置;

其中,通过该原子功能模块的可视化展现图标实现对原子功能模块库中原子功能模块的调用;

(3)分析自定义的网络安全扫描工具所包含的基本原子功能,确定网络安全扫描工具所包含的原子功能模块和内部逻辑关系;构造一个逻辑生成树,用于存储所述原子功能模块之间的逻辑关系,使得图形化界面中的所述可视化展现图标对应的多个原子功能模块能够编译成所述自定义的网络安全扫描工具能够正常执行的代码逻辑序列;

(4)对所述逻辑生成树进行自动检错处理,生成所述自定义的网络安全扫描工具。

根据本发明的方法,优选的,所述原子功能模块采用基于“名称+参数”的图形化模块实现,以可视化展现图标展示在图形化界面中,该图形化模块包括逻辑判断模块,用于循环判断、条件判断。

根据本发明的方法,优选的,每个原子功能模块的功能通过名称示意,双击原子功能模块对应的图形化模块以弹出参数配置界面实现对参数的自定义配置;

所述图形化模块具有相应的拼接接口,当拖拽某个图形化模块接近另一个图形化模块进行拼接时,以高亮显示可拼接部分,在确定拼接后,自动调整拼接位置,使得拼接的图形化模块能够变成一个组合图形化模块,并产生拖拽效果。

根据本发明的方法,优选的,所述原子功能模块库包括以下原子功能类型:获取信息类、获取状态类、建立连接类、模板输出类、时间日期类、收发数据包类、数据处理类、文件访问类和协议交互类。

根据本发明的方法,优选的,所述获取状态类原子功能包括以下原子功能:判断端口状态;

所述模板输出类原子功能包括以下原子功能:漏洞报告;

所述收发数据包类原子功能包括以下原子功能:发送数据包;

所述协议交互类原子功能包括以下原子功能:取HTTP端口、HTTP服务判断、打开HTTP、接收HTTP、关闭HTTP和HTTP判断。

根据本发明的方法,优选的,所述构造逻辑生成树,具体包括:将每个原子功能模块作为一个节点,每个节点设置四个指针,分别指向其父节点、右边子节点、内部子节点和下边子节点,从起始原子功能模块所在的节点开始,按照先遍历右边子节点、再遍历内部子节点、最后遍历下边子节点的顺序通过递归调用的方式完成,除起始原子功能模块所在节点外,其他原子功能模块都具有父节点。

根据本发明的方法,优选的,在构造逻辑生成树的遍历过程中,执行如下步骤:

3.1)初始化一棵三叉树链表结构;

3.2)加载当前节点;

3.3)判断是否出现逻辑条件,如果出现逻辑条件,则进入步骤3.4),否则进入步骤3.8);

3.4)判断是否存在右边子节点,如果存在,进入步骤3.5),否则,进入步骤3.6);

3.5)读取右边子节点并加入当前节点右链表,返回步骤3.4);

3.6)判断是否存在内部子节点,如果存在,则进入步骤3.7),否则进入步骤3.8);

3.7)读取内部子节点并加入当前节点内链表,返回步骤3.2);

3.8)判断是否存在下边子节点,如果存在,则进入步骤3.9),否则进入步骤3.10)

3.9)读取下边子节点并加入当前节点下链表,返回步骤3.2);

3.10)结束遍历过程。

根据本发明的方法,优选的,对所述逻辑生成树进行自动检错处理,包括:对当前拼装界面上所有原子功能模块是否完全组装进行验证以及根据原子功能模块的依赖关系确定检测方向。

根据本发明的方法,优选的,所述对当前拼装界面上所有原子功能模块是否完全组装进行验证,具体包括:

在生成程序逻辑生成树的基础上,基于所有节点中没有父节点的个数检测来判断原子功能模块组装是否已经完成,如果没有完成,则给出错误提示,并跳出检测状态,如果已经完成,则判断执行逻辑生成树中相关原子功能模块的先后顺序以及依赖关系是否正确。

根据本发明的方法,优选的,所述根据原子功能模块的依赖关系确定检测方向,具体包括,首先根据当前节点的依赖类型,确定检测方向,当没有发现依赖原子功能模块时,给出相应错误提示,其次,依据上下执行环境,对每个原子功能模块的输入输出参数进行一致性检测和逻辑条件分析,当参数类型不一致时,则提示原子功能模块中的原子功能模块类型匹配错误,当逻辑条件不完全时给出合理的提示信息,其中,所述依赖类型包括前向依赖和后向依赖。

针对网络安全领域安全测试流程大致不变而测试目标环境持续变化的问题,本发明提出了一种基于图形化编程的网络安全扫描功能设计实现方法。一是可以简化已有安全扫描功能的设计实现方法,帮助初级网络安全测试人员方便实现自定义的扫描功能;二是可以快速对已有扫描工具进行适应性配置以测试环境的新变化;三是针对新出现的安全问题和漏洞,可灵活定制生成新的扫描工具,提高安全测试的时效性。

附图说明

图1为现有技术中LabVIEW示例图;

图2为现有技术中Sikuli实现登录Gmail示例图;

图3为现有技术中Blockly编程示例图;

图4为本发明的技术设计架构图;

图5为本发明的基于图形化编程的网络安全扫描功能实现方法流程图;

图6为本发明一实施例中的原子功能模块示例图;

图7为本发明一实施例中的原子功能参数配置示例图;

图8为本发明一实施例中的逻辑判断模块示例图;

图9为本发明一实施例中的循环条件多种实现方式示例图;

图10为本发明一实施例中的原子功能模块拼接示例图;

图11为本发明一实施例中逻辑条件下执行遍历流程图;

图12为本发明一实施例中生成扫描程序的错误检测流程图;

图13为本发明一实施例中程序未能完成拼装提示示意图;

图14为本发明一实施例中原子功能模块依赖关系错误提示示意图;

图15为本发明一实施例中原子功能模块逻辑语法关系错误提示示意图;

图16为本发明又一实施例中网站漏洞扫描原子功能模块程序流程图;

图17为本发明又一实施例中程序主界面图;

图18为本发明又一实施例中部分原子功能模块列表示意图;

图19为本发明又一实施例中拖原子功能模块示意图;

图20为本发明又一实施例中增加逻辑判断图元示意图;

图21为本发明又一实施例中 if-else逻辑判断图元自动调整大小示意图。

具体实施方式

以下结合附图对本发明的具体实施方式作出详细说明。

名词解释:

原子载荷:本发明中的原子载荷即指原子功能模块,程序直接是由原子载荷及逻辑关系拼装生成的。

图元\/图形化模块\/可视化展现图标:本发明中的图元、图形化模块和可视化展现图标含义相同,可以互换,均表示原子功能模块在图形化界面中的表示。

图形化编程:是指采用基本图元作为编程元素,通过添加、拖动和拼接图元的方式实现特定功能软件程序设计的过程。该编程方式得用户从繁琐的代码编写中解放出来,更关注于业务功能的实现,能够有效提高程序的开发效率和维护水平。

在网络安全领域,针对网络节点的安全扫描技术发展已经非常成熟,扫描流程相对固定,基本功能也比较完善。但由于网络环境的复杂和漏洞的层出不穷,通常针对不同的测试环境或者新漏洞的出现都需要有针对性的开发升级程序代码。这种流程功能稳定、使用变化多样的特性正可以发挥图形化编程的优势,通过将网络安全扫描过程拆分成原子功能进行重新设计,然后搭建图形化编程平台实现原子功能快速拼装,最后基于拼装结果完成程序代码的自动生成。

如图4所示,本发明基于图形化编程的网络安全扫描功能设计技术主要采用“技术模块化”的思想,将网络安全扫描的实现过程中的建立连接、获取状态、收发数据包、协议交互、数据处理、文件访问和模板输出等具体阶段进行功能模块化处理,形成种类多样实现基本功能的原子集合,基于这些原子集合构建原子功能模块库,通过设计各个原子功能模块和逻辑条件的可视化展现图标,并实现与每个原子功能模块的对应关系,使得用户可以在图形化界面通过简单的图标拖拽、拼接以及参数的配置快速生成针对新安全威胁的自定义网络安全扫描程序。技术设计架构如图4所示。

根据本发明的一个实施例,本发明提出了一种基于图形化编程的网络安全扫描功能实现方法,该方法包括了如下内容,如图5所示:

步骤一,构建一个包括多个原子功能模块的原子功能模块库,所述原子功能模块库中的原子功能模块实现网络安全扫描的基本原子功能。

本发明中,网络安全扫描工具包含的原子功能类型主要包括9类:获取信息类、获取状态类、建立连接类、模板输出类、时间日期类、收发数据包类、数据处理类、文件访问类和协议交互类。上述9种原子功能类型仅为本发明的优选实施例,本领域技术人员可以在不脱离本发明技术构思的基础上将原子功能类型数量调整为其他数量种类型。

如图17-18所示,例如获取状态类原子功能类型,包括以下原子功能(模块):检测主机存活性、获取主机打开端口、判断端口状态、判断TCP端口状态、判断UDP端口状态、添加扫描端口、设置扫描状态、获取扫描端口、是否本地主机、是否本地IP地址、获取本地主机IP地址、获取本地主机名和CGI判断。建立连接类原子功能类型包括以下原子功能(模块):端口状态监测、打开TCP、打开UDP、打开指定TCP和打开指定UDP。模板输出类原子功能类型,包括以下原子功能(模块):漏洞报告、威胁报告和屏幕打印显示。通过调用不同原子功能类型的原子功能进行逻辑组合,可以形成新的网络安全扫描工具。不同原子功能类型与原子功能模块的对应表详见表1。

原子功能模块类别组成如下:

序号:1,原子功能模块类别:获取信息类,原子功能模块描述:获取CGI目录、获取主机名称、获取IP地址等;

序号:2,原子功能模块类别:获取状态类,原子功能模块描述:检测主机存活性、判断端口状态、判断TCP端口状态、判断UDP端口状态等;

序号:3,原子功能模块类别:建立连接类,原子功能模块描述:端口状态监测、打开TCP、打开UDP、打开指定TCP和打开指定UDP等;

序号:4,原子功能模块类别:模板输出类,原子功能模块描述:漏洞报告、威胁报告和屏幕打印显示等;

序号:5,原子功能模块类别:时间日期类,原子功能模块描述:秒级延时、微秒级延时、获取本地时间、设置时间格式等;

序号:6,原子功能模块类别:收发数据包类,原子功能模块描述:IP数据包构造、TCP数据包构造、设置TCP数据包字段、UDP数据包构造、设置UDP数据包字段、发送数据包、接收数据包等;

序号:7,原子功能模块类别:数据处理类,原子功能模块描述:生成随机数、字符串匹配、转换字符串、转换为十六进制数、转换为大写、转换为小写等;

序号:8,原子功能模块类别:文件访问类,原子功能模块描述:打开文件、关闭文件、删除文件、读文件、写文件、获取文件属性等;

序号:9,原子功能模块类别:协议交互类,原子功能模块描述:取HTTP端口、HTTP服务判断、打开HTTP、接收HTTP、关闭HTTP、HTTP判断、PHP判断、ASP判断、FTP登录、TELNET访问等。

步骤二,设计各个原子功能模块和逻辑条件的可视化展现图标,使得用户可以通过图形化界面通过对所述可视化展现图标进行拖拽、拼接以及参数的配置;

其中,通过该原子功能模块的可视化展现图标实现对原子功能模块库中原子功能模块的调用。

针对网络安全扫描工具中的基本原子功能,本文采用“名称+参数”的图形化模块设计实现,如图6所示。

原子功能模块的参数配置类型主要包括IP地址类型(点分十进制)、整型(包括端口号、数量、状态码、超时值等)、字符串数据(包括协议名称、特征字段、文件名等),可以通过选择界面点击具体的原子功能模块查看。

每个原子功能模块的功能通过名称示意,通过参数进行自定义设置。对于已经拖拽至界面的原子功能模块,可以通过双击该模块,弹出对应的窗口进行具体配置,有些参数设定了默认值,如图7所示。

为了支撑原子功能模块的执行控制,需要设计相应的逻辑判断模块,主要包括循环判断、条件判断以及相应的参数图标,如图8所示。

图中方框型浅色的显示部分可以通过双击鼠标事件进行相应的配置,从而使得逻辑条件能够根据功能实现的需求灵活地修改,如循环条件,可以组装成如图9的形式。

本发明将这些类型的原子功能都设计成一个个单独的图形元素,通过拖拽实现这些图元之间的相互拼接,通过双击弹出文本框完成必要参数的输入,同时设计控制逻辑图元实现程序的业务跳转,最后根据图形拼接的结果自动生成网络安全扫描脚本代码,在专用脚本解释器中直接执行。

每种图元都有相应的拼接接口,可以实现与其他图标的组合。在设计过程中,为了保证操作的便利性,当拖动的图标接近其他图标时,将会以高亮度显示其可拼接部分,一旦确定拼接,界面会自动调整拼接位置,使拼接的图形能够变成一个组合图标,并产生组合拖拽效果,如图10所示。

步骤三,分析自定义的网络安全扫描工具所包含的基本原子功能,确定网络安全扫描工具所包含的原子功能模块和内部逻辑关系;构造一个逻辑生成树,用于存储所述原子功能模块之间的逻辑关系,使得图形化界面中的所述可视化展现图标对应的多个原子功能模块能够编译成所述自定义的网络安全扫描工具能够正常执行的代码逻辑序列。

图元在拼接过程中存在三种关系,因此对应的在生成树中会存在三种子节点,以图10为例。

图 10展示了图元的三种拼接:

(1)右拼接主要针对逻辑图元,如图10中if-else逻辑图元,其右侧会有判断条件,在生成树中该节点就会有右子节点;

(2)下拼接可以是任意原子功能图元和逻辑图元,通过下方的凸起和凹槽相接,在生成树中该节点就会有下子节点;

(3)内拼接也是针对逻辑图元,通过内部的凸起和任意原子功能图元和逻辑图元上方凹槽相接,即逻辑图元可以内拼接原子功能图元,也可以嵌套拼接逻辑图元,于是在生成树中该节点就会有下子节点。

用户可以根据需要选择相应的原子功能模块,然后利用图形化拼接的方法实现扫描流程设计,通过后台代码生成和错误自动检测实现自定义的业务功能。

图形化编程的内在关键是将界面组装的模块翻译成能够正常执行的代码逻辑序列,我们从不同组装模块的内部关联关系入手,通过构造一个逻辑生成树使得界面操作的每个模块既能进行简单的拼装组合,又能快速形成扫描功能的执行序列。

逻辑生成树设计思想如下:首先找到起始节点,从该节点开始,按照当前节点右边、内部、下边的顺序检测其是否连有其它部件,如果有则增加指向右边(内部\/下边)的边,直到循环检测完所有节点为止。具体来说,为了实现节点关系的存储,在实现过程中,将每个原子功能模块作为一个节点,每个节点设置四个指针,分别指向其父节点、右边子节点、内部子节点和下边子节点,从起始原子功能模块所在的节点开始,按照先遍历右边子节点、再遍历内部子节点、最后遍历下边子节点的顺序通过递归调用的方式完成,除起始原子功能模块所在节点外,其他原子功能模块都具有父节点。一般情况下,一个原子功能模块只有一个下边子节点,但出现逻辑条件时,可以同时具有右边子节点、内部子节点和下边子节点。

如图11所示,逻辑生成树设计,具体执行如下步骤:初始化一棵三叉树链表结构,加载当前节点所在的原子功能模块,判断是否出现逻辑条件:

(1)如果出现逻辑条件,则判断是否存在右边子节点,如果存在,则读取右边子节点并加入当前节点右链表;如果不存在,则继续判断是否存在内部子节点,如果存在,则读取内部子节点并加入当前节点内链表,如果不存在,则继续判断是否存在下边子节点,如果存在则读取下边子节点并加入当前节点下联表,如果不存在下边子节点则结束遍历过程;

(2)如果未出现逻辑条件,则直接判断是否存在下边子节点,如果存在则读取下边子节点并加入当前节点下链表,如果不存在下边子节点则结束遍历过程;上述在读取右边子节点并加入当前节点右链表之后,继续判断是否存在右边子节点;上述在读取内部子节点并加入当前节点内链表之后以及读取下边子节点并加入当前节点下链表之后,返回重新加载当前节点的步骤。

通过上述步骤构造一个逻辑生成树,逻辑树中每个节点代表一个原子功能模块,该逻辑生成树代表了生成网络安全扫描工具软件所包括的原子功能模块之间的逻辑关系。通过构造一个逻辑生成树使得界面操作的每个模块既能进行简单的拼装组合,又能快速形成扫描功能的执行序列。

步骤四,对所述逻辑生成树进行自动检错处理,生成所述自定义的网络安全扫描工具。

在可视化拼装过程中,产生错误是不可避免的。尤其是在参数类型的检测和原子功能模块依赖关系的分析检测上,单纯凭用户手工检测往往很难发现所有问题,从而导致拼装完成的工具运行成功率较低。为解决这个问题,研究了针对图形化拼装的错误自动检测技术,对拼装完成的结果进行自动检错处理,对存在的问题和位置给出提示,辅助用户快速实现对新扫描工具的实现。具体的错误检测流程如图12所示,该错误检测流程具体包括如下步骤:

步骤1:对当前界面上所有原子功能模块生成程序执行逻辑生成树,通过检测所有原子节点中没有父节点的节点个数进行判断是否完全组装,如果没有完全组装,则给出错误提示并结束;如果完全组装,则进入步骤2。

对当前界面上所有原子功能模块是否完全组装进行验证的过程包括,在生成原子功能模块执行逻辑生成树的基础上,基于所有原子节点中没有父节点的节点个数检测来判断模块组装是否已经完成,如果没有完成,则给出错误提示,并跳出检测状态,如图13所示。如果已经完成,则提取执行逻辑生成树中相关原子功能模块的先后顺序逐一验证,判断原子功能模块依赖关系是否正确。

所述对逻辑生成树进行自动检错处理,包括,对当前界面上所有原子功能模块是否完全组装进行验证以及根据节点的依赖关系确定检测方向。

步骤2:根据界面上存在的原子功能模块依赖关系进行正确性检测,从选择起始原子功能模块开始,依次检测每个原子功能模块的前向依赖和后向依赖原子功能模块是否匹配,如果不匹配,则给出错误提示,直到全部检测完成后进入步骤3。

根据原子功能模块的设计思想,每个原子功能模块可能存在前向依赖和后向依赖两种情况。前向依赖是指在某个原子功能模块出现时,拼装界面上方必须要出现满足该功能载荷执行的某一个或几个原子功能模块,例如当使用“关闭HTTP连接” 原子功能模块时,拼装界面的上方必须要出现“打开HTTP连接”原子功能模块。同理,后向依赖是指在当前原子功能模块的下方必须出现与之对应的原子功能载荷,才能实现某一特定功能,例如当使用了“打开HTTP连接”原子功能模块,后面必然要出现“关闭HTTP连接” 原子功能模块,否则功能不能正常执行。在检测过程中,需要首先根据当前节点的依赖类型,确定其检测方向,一旦未发现依赖原子功能模块,需要给出相应错误提示,如图14。

步骤3:依据程序执行逻辑生成树上下执行环境,从选择起始原子功能模块开始,依次对每个原子功能模块的输入输出参数进行一致性检测和逻辑条件分析,如果参数类型不一致或者逻辑不完整,则给出错误提示,否则检测下一个原子功能模块,直到全部检测完成后结束,并给出检测错误列表。

当参数类型不一致时需要提示原子功能模块类型匹配错误,当逻辑条件不完全时给出合理的提示信息,如图15。

以上就是本发明中提出的基于图形化编程的网络安全扫描功能实现方法,一方面可实现对已有扫描工具的快速生成和多样化配置;另一方面可针对新出现的安全问题和漏洞灵活定制生成新的扫描工具,提高工具的时效性。

根据本发明的又一实施例,一种图形化编程生成典型网络安全扫描程序示例。

IIS 5.0服务中对于HTTP打印请求头存在漏洞,网络攻击者可以利用此漏洞以系统管理员身份执行程序,获取访问远程主机敏感文件数据的权限,也可以进行提权操作。此漏洞扫描程序流程如图16所示。

程序整体界面如图17所示,左侧包括可供选择各类原子功能模块,中间为通过拖动选择的原子功能模块,右侧为最终生成的完了扫描软件程序代码。左侧和中间部分之间为进行逻辑判断条件的选择按钮,中间与右侧之间为用于对生成的软件进行检查的功能按钮。

其中获取信息类、获取状态类、建立连接类、模板输出类、时间日期类、收发数据包类等原子功能模块列表如图18所示。

根据图16中该漏洞扫描基本原理和图18的原子功能模块库,从原子功能类型中选择的原子功能模块主要包括:取HTTP端口、端口检测、HTTP判断、打开HTTP、发送数据包、接收HTTP、关闭HTTP、HTTP判断和漏洞报告,从程序原子列表中拖拽相应的原子功能模块,在设计界面会出现对应的灰色原子功能组件,如图19所示。

根据图16的网站漏洞扫描扫描程序流程图,增加有关判断逻辑的图元,主要用到了if-else逻辑判断图元,该图元通过点击界面中间框中的“选择”按钮增加图元框架,点击“条件”按钮增加判断条件,如图20标注按钮所示。

if-else逻辑判断图元右侧可拼接条件图元,双击条件图元可以更改其中设置的参数。在if-else逻辑判断图元的上方、内部和下方可拼接原子功能模块,当内部拼接原子功能模块后,if-else逻辑判断图元会自动增加内部显示空间,如图21所示。

图21中,if-else逻辑判断图元内部有原子功能模块的会自动增加相应的宽度,已经拼接好的部分可实现整体的拖拽移动。根据图16安全漏洞扫描的流程继续拼接各种图元,并双击配置每个原子功能模块的参数,即可完整的拼接图。

点击界面上“检查”按钮,可以对原子功能模块拼接图进行各项检查,如果没有错误,即可生成对应的后台程序代码。

基于上述内容,首先,本发明的基于图形化编程的网络安全扫描功能实现方法,将图形化编程技术首次引入网络安全扫描功能设计实现中,提出了一种基于图形化编程的方法网络安全扫描功能软件程序设计方法,设计了原子功能模块和逻辑判断模块的图元展现和参数配置方法;其次,针对图形化操作拼接形成的图元模块,设计了一种基于逻辑生成树的后台代码自动生成策略,通过构造一个三叉树结构实现程序代码自动生成功能;最后,针对图形化操作拼接中可能存在的错误问题,设计了一套错误自动检测,从模块拼接是否完全、模块依赖关系是否正确、模块输入输出参数是否一致等方面对拼接模块进行验证,提高了代码生成的正确性。

对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。

设计图

一种基于图形化编程的网络安全扫描功能实现方法论文和设计

相关信息详情

申请码:申请号:CN201910737395.6

申请日:2019-08-12

公开号:CN110244944A

公开日:2019-09-17

国家:CN

国家/省市:43(湖南)

授权编号:CN110244944B

授权时间:20191119

主分类号:G06F 8/34

专利分类号:G06F8/34

范畴分类:40B;

申请人:中国人民解放军国防科技大学

第一申请人:中国人民解放军国防科技大学

申请人地址:410073 湖南省长沙市开福区德雅路109号

发明人:杨国正;刘京菊;陆余良;王永杰;钟晓峰;卢灿举

第一发明人:杨国正

当前权利人:中国人民解放军国防科技大学

代理人:刘光德;彭霜

代理机构:11215

代理机构编号:中国和平利用军工技术协会专利中心 11215

优先权:关键词:当前状态:审核中

类型名称:外观设计

标签:;  ;  ;  ;  ;  ;  

一种基于图形化编程的网络安全扫描功能实现方法论文和设计-杨国正
下载Doc文档

猜你喜欢