CN103457957A - 一种具有自适应功能的网络渗透测试系统及方法 - Google Patents
一种具有自适应功能的网络渗透测试系统及方法 Download PDFInfo
- Publication number
- CN103457957A CN103457957A CN2013104255861A CN201310425586A CN103457957A CN 103457957 A CN103457957 A CN 103457957A CN 2013104255861 A CN2013104255861 A CN 2013104255861A CN 201310425586 A CN201310425586 A CN 201310425586A CN 103457957 A CN103457957 A CN 103457957A
- Authority
- CN
- China
- Prior art keywords
- network
- target
- interpreter
- leak
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种用于具有自适应功能的网络渗透测试系统及方法,用于解决目前渗透测试领域内操作过程中输入操作复杂,自动纠错能力差和集成能力弱的问题,包括:决策模块、组织模块、获权模块、漏洞生成模块、信息处理模块、数据收集模块及框架,所述框架包括数据库、决策解释器、组织解释器、获权解释器、收集解释器、信息解释器和漏洞解释器。本发明功能模块相对独立,既可以保证系统的正确运行,同时也有利于系统的集成和功能扩充。
Description
技术领域
本发明涉及一种具有自适应功能的网络渗透测试系统,该系统及方法属于网络安全的技术领域。
背景技术
网络渗透测试的主要目的在于发现网络中的安全漏洞,采用模拟攻击的方式来验证系统的危害性。目前渗透测试工具的自动化程度和渗透能力正在逐步增强,比较典型的工具例如BackTrack,metasploit等。这些工具大多采用基于命令行的操作模式,通过提供一个系统框架和在此之上的功能模块,集成了诸如nmap、nessus和Fast-Track等第三方软件,在此基础上实现网络渗透测试的目标扫描、漏洞发现和渗透攻击等过程,各个框架都有一套独立的控制命令,需要操作者熟练掌握后方能使用。
目前已有的网络渗透测试工具,在使用过程中存在三点不足:第一是操作的复杂性,各种软件都有一系列的命令格式,需要操作者独立完成从目标探测到渗透获权的整个过程;第二系统缺少自动纠错的能力,由于网络环境的不确定性,在实际的渗透测试过程中常常会出现由于漏洞信息发现缺失,或网络故障干扰等原因导致的渗透失败等情况,这种情况下操作者就必须重复操作。第三渗透测试系统的功能还不能充分借助其他软件工具的优势,传统渗透测试框架功能的提升还主要依靠自身的功能模块,究其原因在于各个软件之间缺少统一的信息交互接口,无法实现信息的共享。
由此可见,目前渗透测试工具还是一个专业性要求程度很高的系统软件,其开发过程相对比较复杂,第三方软件的支持程度并不理想,这些不足直接制约了渗透测试工具的发展。
发明内容
本发明技术解决问题:克服现有技术中的以上不足之处,提出了一种具备自适应能力的自动化渗透测试系统及方法,用于解决目前渗透测试领域内操作过程中输出操作复杂,自动纠错能力差和集成能力弱的问题,提高了渗透测试的成功性,而且便于使用者操作执行。
本发明的解决方案:一种具有自适应功能的网络渗透测试系统,如图1所示,包括:决策模块、组织模块、获权模块、漏洞生成模块、信息处理模块、数据收集模块及框架,所述框架包括数据库、决策解释器、组织解释器、获权解释器、收集解释器、信息解释器和漏洞解释器,其中:
数据库:用于存储上述各个模块之间需要交互的信息及使用者预先输入的网络渗透测试命令,所述网络渗透测试命令包括网络目标和渗透目的;各个输入和输出信息均以统一的网络渗透测试描述语言的形式存储到数据库中,而后再通过相应的解释器实现数据库中和各个功能模块间的交互;
决策解释器,从数据库中读取网络渗透测试命令,判断是否有对应的目标漏洞,如果有则将网络目标、渗透目的和目标漏洞经过语法解析提交到决策模块;如果没有则直接将网络目标和渗透目的经过语法解析送至决策模块;此外,决策解释器会根据预先存储在数据库中的渗透目的和实际的获权结果进行比对,如果获权结果与渗透目的一致,则表明网络渗透测试达到目的,退出运行;如果出现偏差,则表示网络渗透测试尚未成功,继续读取数据库中网络渗透测试命令;同时接收决策模块生成的渗透方案,并以统一的网络渗透测试描述语言的形式存储到数据库中;
决策模块:接收决策解释器送至的网络目标和渗透目的,根据获取的目标漏洞,决策模块可以生成针对该网络的攻击路径图,对其中的每一个攻击步骤,抽取其中的获取访问控制权,描述成为渗透测试任务,多个渗透测试任务即可组成渗透方案。决策模块自动生成渗透方案,送至决策解释器;
组织解释器,读取数据库中的渗透方案及针对某个网络目标的目标漏洞生成方案,经过语法解析组织解释器按照方案中的语法内容,从中提取出参数送至组织模块;同时接收组织模块生成的渗透测试指令产生的网络渗透指令,并按照统一的网络渗透测试描述语言的形式存储到数据库中;
组织模块:接收组织解释器传送的渗透方案,依次对测试方案中的任务进行排序,建立彼此之间的前后顺序,将方案转换为渗透指令
按照网络渗透测试方案的内容进行实施,生成网络渗透指令,所述网络渗透指令由具体的渗透指令组成,所述渗透指令分为两类:一类为获权指令,直接针对目标漏洞获取访问控制权限;另一类为目标漏洞收集指令,用于在缺少目标漏洞描述的情况下实施目标漏洞收集工作;
获权解释器,从数据库的网络渗透指令中获得需要执行的获权指令,按照渗透指令的语法结构,将指令内容以参数的形式语法解析送至获权模块;同时接收获权模块执行的获权结果,并将获权结果按照统一的网络渗透测试描述语言的形式存储到数据库中;
获权模块:实现渗透测试中的渗透获权指令;从获权解释器中获得网络渗透指令中的获权指令,实施获权生成用于目标漏洞的访问控制权,得到获权结果送至获权解释器;
网络渗透测试的核心目的在于获取系统的访问控制权限,在实际过程中需要首先掌握网络渗透目标中可能存在的目标漏洞;若预先并没有掌握目标漏洞,则需要使用数据收集模块、信息生成模块和漏洞生成模块获取目标漏洞;
收集解释器:从数据库中获得需要执行的目标漏洞收集指令,按照指令的语法结构,解释器将其中表示网络目标内容以参数形式经过语法解析送至数据收集模块:同时将数据收集模块获得的网络数据按照统一的网络渗透测试描述语言的形式存储到数据库中;
数据收集模块:接收收集解释器传来的目标漏洞收集指令,对网络目标实施通信操作,获取回应的通信报文,得到网络数据送至收集解释器;
信息解释器:当收集到的网络数据存入数据库后,从数据库中获取数据,按照数据的语法结构,将目标和数据内容等字段以参数形式经过语法解析送至信息生成模块;同时将信息生成模块产生的网络信息按照统一的网络渗透测试描述语言的形式存储到数据库中;
信息生成模块,接收信息解释器输入的网络数据,根据网络数据的内容产生网络信息并送至信息解释器,所述网络信息包括操作系统、CPU和服务进程;
漏洞解释器,当有新的网络信息生成,从数据库中获取网络信息,经过语法解析送至漏洞生成模块;同时接收漏洞生成模块生成的目标漏洞,按照统一的网络渗透测试描述语言的形式存储到数据库中;
漏洞生成模块:接收漏洞解释器输入的网络信息,该模块针对输入的操作系统、CPU、进程等特征内容,查找漏洞数据库,从中找出符合这些特征的某个漏洞,依照自身的知识库内容,对网络目标实现快速匹配,找出网络目标中可能存在的目标漏洞,并将该目标漏洞输入到漏洞解释器,作为决策模块的重要输入信息,生成决策方案。
一种具有自适应功能的网络渗透测试方法,实现步骤如下:
步骤(1),当系统进入运行阶段时,使用者首先将网络渗透测试命令存入数据库,所述网络渗透测试命令包括网络目标和渗透目的;
步骤(2),决策解释器从数据库中获取网络目标和渗透目的,经过语法解析输入决策模块,同时决策解释器在数据库中查找对应目标的目标漏洞;若决策解释器在数据库中找到相应的目标漏洞,执行步骤(3),否则执行步骤(7);
步骤(3),决策模块接收决策解释器送至的网络目标和渗透目的,根据获取的目标漏洞,自动生成渗透方案,送至决策解释器;决策解释器将目标渗透测试方案,按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(4),组织解释器在数据库中调出渗透方案,经过语法解析送至数据组织模块;组织模块按照渗透方案的内容进行实施,生成渗透指令送至组织模块,组织解释器将组织模块产生的渗透指令,按照统一的网络渗透测试描述语言的形式存储到数据库中;所述网络渗透指令由具体的渗透指令组成,所述渗透指令分为两类:一类为获权指令,直接针对目标漏洞获取访问控制权限;另一类为目标漏洞收集指令,用于在缺少目标漏洞描述的情况下实施目标漏洞收集工作;
步骤(5)获权解释器从数据库中获得需要执行的获权指令,经过语法解析送至获权模块;获权模块根据获权指令实施获权活动,自动生成用于目标漏洞的访问控制权,得到的获权结果,并将获权结果送至获权解释器;获权解释器将获权结果按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(6)决策解释器会根据预先存储在数据库中的渗透目的和实际的获权结果进行比对,如果获权结果与渗透目的一致,则表明系统渗透达到目的,系统退出运行;如果出现偏差,则表示网络目标尚未成功,返回步骤(2);
步骤(7)决策模块在没有目标漏洞的情况下,首先生成目标漏洞生成方案,而后存入数据库中,同时标识需要使用该目标漏洞的网络渗透测试命令,等待目标漏洞的产生;
步骤(8)组织解释器从数据库中获得针对某个网络目标的漏洞生成方案,经过语法解析输入组织模块,组织模块依次产生关于收集的指令,再组织解释器按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(9)收集解释器从数据库中获取收集指令,经过语法解析输入到数据收集模块,数据收集模块对网络目标实施通信操作,获取回应的通信报文作为网络数据,网络数据送至收集解释器;收集解释器将数据收集模块获得的网络数据按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(10)当有新的网络信息生成,漏洞解释器从数据库中获取网络信息,经过语法解析送至漏洞生成模块;漏洞生成模块将输入的网络信息,依照自身的知识库内容,对其中的特征信息实现快速匹配,从中找出网络目标中可能存在的漏洞,并将该目标漏洞输入到漏洞解释器;漏洞解释器接收漏洞生成模块生成的目标漏洞,按照统一的网络渗透测试描述语言的形式存储到数据库中,返回到步骤(3)。
本发明与现有技术相比的优点在于:
(1)本发明采用简单易懂的渗透测试描述语言,有利于使用者的操作,使用者只需要输入网络目标和渗透目的即可完成基本的操作,其余渗透过程由系统自动完成。
(2)本发明中的渗透系统具有自动获权、自动实现渗透目的比对的功能,在这种情况下,当网络渗透活动受外界环境影响失败时,系统可以自动进入下一轮的渗透工作,直至测试成功为止。
(3)本发明中的采用框架模式,通过针对各个功能模块的解释器实现渗透测试系统的完整工作,解释器采用统一的网络渗透测试描述语言,可以通过和其他安全工具修改接口参数实现信息共享,解决了目前渗透测试工具普遍存在的第三方软件支持能力差的现状,提供了系统的可扩展性。
附图说明
图1为本发明的系统结构图;
图2为图1中决策解释器的具体实现流程图;
图3为图1中组织解释器的具体实现流程图;
图4为图1中获权解释器的具体实现流程图;
图5为图1中收集解释器的具体实现流程图;
图6为图1中信息解释器的具体实现流程图;
图7为图1中漏洞解释器的具体流程图。
具体的实施方式
为便于本发明的理解,首先对系统中需要使用的网络渗透测试描述语言给予叙述,再结合各个解释器的工作过程详细说明整个系统。
(1)网络目标
表示网络目标的基本类型,包括网络(net)、节点(node)、进程(process)、服务(service)、文件(file)、网络间连接(n-connect)、进程间连接(p-connect)和服务间连接(s-connect);
<target>::=<net>|<node>|<process>|<service>|<file>|<n-connect>|<p-connect>|<s-connect>
网络的表示形式,由网络地址加子网掩码组成;
<net>::=<address>‘/’<mask1>
节点的表示方式,由网络地址表示;
<node>::=<address>
进程的表示方式,用节点和端口组成;
<process>::=<node>‘:’<port>
服务的表示方式,用进程或协议表示;
<service>::=<process>‘,’<protocol>
文件的表示方式,用服务和文件存储位置表示;
<file>::=<service><filespecification>
网络连接表示方式,由节点和协议组成;
<n-connect>::=<node>‘,’<node>‘,’<protocol>
进程连接表示方式,由进程、进程和协议组成;
<p-connect>::=<process>‘,’<process>‘,’<protocol>
网络服务连接的表示方式:由进程连接和协议组成;
<s-connect>::=<p-connect>‘,’<protocol>
网络地址表示方式如下,采用十进制表示IP地址;
<address>::=<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>
<IP_dotted_decimal_numer>::=[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
网络掩码的表示方式如下:
<mask1>::=8|9|1<digit>|2<digit>|3[0-2]
<mask2>::=255.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>
网络端口的表示方式如下,作用范围为0—65535;
<port>::=[0-65535]
协议的表示方式:表示协议类型的字符串和版本信息;
<protocol>::=<chars><version>
版本信息的表示方式:数字编号和‘.’表示。
<version>::=<integer>.<version>|<integer>
文件存储位置的表示方式:特定字符串;
<filespecification>::=<chars>
(2)渗透目的
基本组成的因素包括:日期(date)、时间(time)、网络目标(target)、期望值(purpose)和返回结果(result),其中期望值表示为网络中的访问权限(right)。
<intention>::=’(’<date><time><target><purpose>’)’<result>
<purpose>::=<right>
(3)渗透方案
其组成包括日期(date)、时间(time)、任务编号(taskid)、网络目标(target)、手段(measure)、目标漏洞(vul)和渗透目的编号(intendid);任务编号由整数编号组成,手段分为收集和获权两种类型。目标漏洞的解释见(8)
<scheme>::=’(’<date><time><taskid><target><measure><vul>)’<intendid>
<taskid>::=<integer>
<measure>::=col|gain
(4)渗透指令
渗透指令主要包括日期(date)、时间(time)、目标(target)、手段(measure)、目标漏洞(vul)、指令编号(taskid)、前序编号(pre)和渗透目的编号(intendid)。其中前序编号表示在该指令在整个执行流程中前一个指令编号。
<instruction>::=’(’<date><time><target><measure><vul><taskid><pre>’)<intendid>
(5)访问控制权限
访问控制权限主要由读(R)、写(R)、执行(X)和E四者组合构成,E表示对目标没有读、写、执行权限。
<right>::=R|W|X|RW|WX|RX|RWX|E。
(6)网络数据
网络数据由日期(data)、时间(time)、目标(target)、数据内容(actuality)和目的编号(intendid)组成。
<data>::=’’(’<date><time><target><actuality><intendid>’)’
(7)网络信息
网络信息由日期(date)、时间(time)、目标(target)、特征(signature)和目的编号(intendid)组成。其中特征可进一步表示为操作系统类型、CPU、协议、进程、服务和文件等内容。
<information>::=‘(’<date><time><target><signature><intendid>‘)’
<signature>::=<os_sentence>|<cpu_sentence>|<protol_sentence>|<proce_sentence>|<serv_sentence>|<file_sentence>
(8)目标漏洞
目标漏洞由日期(date)、时间(time)、目标(target)、漏洞编号(vulid)和目的编号(intendid)。其中漏洞编号用以在数据库中检索具体的漏洞信息。
<vul>::=’‘(’<date><time><target><vulid><intendid>‘)’
如图1所示,本发明具有自适应功能的渗透测试自动化系统,如图1所示,包括:决策模块、组织模块、获权模块、漏洞生成模块、信息处理模块、数据收集模块及框架,框架包括数据库、决策解释器、组织解释器、获权解释器、收集解释器、信息解释器和漏洞解释器,其中:决策解释器:实现系统框架和决策模块的集成工作;组织解释器:实现系统框架和组织模块之间的集成工作;获权解释器:实现系统框架和获权模块之间的集成工作;收集解释器:实现系统框架和收集模块之间的集成工作;信息解释器:实现系统框架和信息生成模块之间的集成工作;漏洞解释器:实现系统框架和漏洞生成。数据库是整个框架的核心,各个模块之间需要交互的信息,系统采用松耦合的方式实现,各个模块输入和输出信息需要以统一的网络渗透测试描述语言的形式存储到数据库中,而后再通过各个解释器实现数据库中的数据和各个功能模块间的交互。
如图2所示,决策解释器按照<intention>的从数据库中读取渗透测试的输入命令,而后首先按照命令中<target>描述查找相应的目标漏洞,若查找成功,则将网络目标、渗透目的和目标漏洞经过语法解析,以参数的形式提交到决策模块中,若查找失败,则决策解释器只负责网络目标和渗透目的的内容提交给决策模块,同时<intention>的内容依然置为新;若决策解释器在数据库中没有发现新的<intention>,则查找旧的网络渗透测试命令,比较其<result>字段的内容是获取对应的访问控制权限,若对应的<purpose>中的内容与<result>一致,则表明网络渗透测试成功,决策解释器从数据库中移除相应的网络渗透测试命令记录。
决策模块在进行决策活动之后,按照描述语言中输出渗透方案,决策解释器将其存储到框架中数据库中。
在完成决策活动后,系统的组织模块的主要任务是将决策中的任务转换成渗透指令,如图3所示,组织活动对数据库中新生成的方案进行查找,若发现则根据语法规则对其解析,输入到组织模块中,组织模块重点对<pre>字段进行处理,按照各任务之间的关系输出渗透指令。
组织模块输出的渗透指令可以分为两类:一类为获权指令,直接针对目标漏洞获取访问控制权限;另一类为漏洞收集指令,主要用于在缺少目标漏洞的情况下实施目标漏洞收集。
如图4所示,获权解释器在数据库中不断查找已知获权指令是否具有约束条件,若不存在约束,则表明获权指令可以立即执行,获权解释器则将其交付获权模块执行。
获权模块在完成操作后,将获权结果返回给获权解释器,若获权成功,则获权解释器将修改数据中网络渗透测试命令的结果,并撤销相应的渗透指令。
网络渗透测试中的收集解释器、信息解释器和漏洞解释器(如图5、图6和图7所示)负责执行另一类漏洞收集指令,收集解释器首先从渗透指令中找到需要执行的收集指令,输入到数据收集模块中,数据收集模块按照收集指令开展收集工作后,将获取的网络数据按照描述语言的语法格式存入<data>中,再由收集解释器存入数据库中。
信息解释器主要工作是从数据库中查阅是否有新的数据生成(如图6所示),若有,则按照描述语言的语法输入到信息生成模块,信息生成模块会自动生成<signature>中的信息,并将其返回给信息解释器,由其存储到数据库中。
漏洞解释器在从数据库中查找出新生成目标漏洞,而后按照网络信息语法格式输入到漏洞生成模块中,漏洞生成模块在依照信息产生出某个具体的目标漏洞之后,以<vul>的形式输入给漏洞解释器,漏洞解释器将目标漏洞存入数据库,供决策活动使用。
本发明提出一种具备自适应能力的自动化渗透测试系统及方法,解决了目前渗透测试领域内操作过程中输入操作复杂,自动纠错能力差和集成能力弱的问题,使用统一的网络渗透测试描述语言将渗透测试中的各个模块集成起来,在运行过程中,各个解释器负责自动的获取系统中运行参数,实现了系统的松耦合集成,当系统在渗透测试失败后,决策解释器可以通过比对数据库中的数据和实际获权结果,判断是否重新进行网络渗透测试,提高了网络渗透测试的成功性。框架使用的网络渗透测试描述语言简洁,只涉及网络目标、渗透目的等少数内容,便于使用者操作执行。
Claims (4)
1.一种具有自适应功能的网络渗透测试系统,其特征在于包括:决策模块、组织模块、获权模块、漏洞生成模块、信息处理模块、数据收集模块及框架,所述框架包括数据库、决策解释器、组织解释器、获权解释器、收集解释器、信息解释器和漏洞解释器,其中:
数据库:用于存储上述各个模块之间需要交互的信息及使用者预先输入的网络渗透测试命令,所述网络渗透测试命令包括网络目标和渗透络目的;各个的输入和输出信息均以统一的网络渗透测试描述语言的形式存储到数据库中,而后再通过相应的解释器实现数据库中的数据和各个功能模块间的交互;
决策解释器:从数据库中读取网络渗透测试命令,判断是否有对应的目标漏洞,如果有则将网络目标、渗透目的和目标漏洞经过语法解析提交到决策模块;如果没有则直接将网络目标和渗透目的经过语法解析送至决策模块;此外,决策解释器会根据预先存储在数据库中的渗透目的和获权结果进行比对,如果获权结果与渗透目的一致,则表明网络渗透测试达到目的,退出运行;如果出现偏差,则表示网络渗透测试尚未成功,继续读取数据库中网络渗透测试命令;同时接收决策模块生成的渗透方案,并以统一的网络渗透测试描述语言的形式存储到数据库中;
决策模块:接收决策解释器送至的网络目标和渗透目的,根据获取的目标漏洞,自动生成渗透方案,送至决策解释器;
组织解释器:读取数据库中的渗透方案及针对某个网络目标的目标漏洞生成方案,经过语法解析送至组织模块;同时接收组织模块产生的网络渗透指令,并按照统一的网络渗透测试描述语言的形式存储到数据库中;
组织模块:接收来自组织解释器传送的渗透方案,按照渗透方案的内容进行实施,生成网络渗透指令,所述渗透指令分为两类:一类为获权指令,直接针对目标漏洞获取访问控制权限;另一类为目标漏洞收集指令,用于在缺少目 标漏洞描述的情况下实施目标漏洞收集工作;
获权解释器:从数据库的网络渗透指令中获得需要执行的获权指令,经过语法解析送至获权模块;同时接收获权模块执行的获权结果,并将获权结果按照统一的网络渗透测试描述语言的形式存储到数据库中;
获权模块:实现渗透测试中的获权指令,从获权解释器中获得网络渗透指令中的获权指令,实施获权活动获取网络目标的访问控制权,得到获权结果送至获权解释器;
网络渗透测试的核心目的在于获取网络目标的访问控制权限,在实际过程中需要首先掌握网络渗透目标中可能存在的目标漏洞;若预先并没有掌握目标漏洞,则需要使用数据收集模块、信息生成模块和漏洞生成模块获取目标漏洞;
收集解释器:从数据库中获得需要执行的目标漏洞收集指令,经过语法解析送至数据收集模块:同时将数据收集模块获得的网络数据按照网络渗透测试描述语言的形式存储到数据库中;
数据收集模块:接收收集解释器传来的目标漏洞收集指令,对网络目标实施通信操作,获取回应的通信报文,从中得到网络数据送至收集解释器;
信息解释器:当收集到的网络数据存入数据库后,从数据库中获取网络数据经过语法解析送至信息生成模块;同时将信息生成模块判断出的网络信息按照统一的网络渗透测试描述语言的形式存储到数据库中;
信息生成模块:接收信息解释器输入的网络数据,根据网络数据的内容产生网络信息送至信息解释器,所述网络信息包括操作系统、CPU和服务进程;
漏洞解释器:当有新的网络信息生成,从数据库中获取网络信息,经过语法解析送至漏洞生成模块;同时接收漏洞生成模块生成的目标漏洞,按照统一的网络渗透测试描述语言的形式存储到数据库中;
漏洞生成模块:接收漏洞解释器输入的网络信息,依照自身的知识库内容,对网络信息实现快速匹配,从中找出网络目标中可能存在的目标漏洞,并将该目标漏洞输入到漏洞解释器,作为决策模块的重要输入信息,生成决策方案, 为渗透测试实施提供必要的信息支持。
2.根据权利1所述的具有自适应功能的渗透测试自动化系统,其特征在于:所述统一的网络渗透测试描述语言包括以下部分内容:
(1)网络目标
表示网络目标的基本类型,包括网络(net)、节点(node)、进程(process)、服务(service)、文件(file)、网络间连接(n-connect)、进程间连接(p-connect)和服务间(s-connect)连接;
<target>::=<net>|<node>|<process>|<service>|<file>|<n-connect>|<p-connect>|<s-connect>
网络的表示形式,由网络地址加子网掩码组成;
<net>::=<address>‘/’<mask1>
节点的表示方式,由网络地址表示;
<node>::=<address>
进程的表示方式,用节点和端口组成;
<process>::=<node>‘:’<port>
服务的表示方式,用进程或协议表示;
<service>::=<process>‘,’<protocol>
文件的表示方式,用服务和文件存储位置表示;
<file>::=<service><filespecification>
网络连接表示方式,由节点和协议组成;
<n-connect>::=<node>‘,’<node>‘,’<protocol>
进程连接表示方式,由进程、进程和协议组成;
<p-connect>::=<process>‘,’<process>‘,’<protocol>
网络服务连接的表示方式:由进程连接和协议组成;
<s-connect>::=<p-connect>‘,’<protocol>
网络地址表示方式如下,采用十进制表示IP地址;
<address>::=<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_d otted_decimal_numer>.<IP_dotted_decimal_numer>
<IP_dotted_decimal_numer>::=[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
网络掩码的表示方式如下:
<mask1>::=8|9|1<digit>|2<digit>|3[0-2]
<mask2>::=255.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>
网络端口的表示方式如下,作用范围为0—65535;
<port>::=[0-65535]
协议的表示方式:表示协议类型的字符串和版本信息;
<protocol>::=<chars><version>
版本信息的表示方式:数字编号和‘.’表示;
<version>::=<integer>.<version>|<integer>
文件存储位置的表示方式:特定字符串;
<filespecification>::=<chars>
(2)渗透目的
其基本组成的因素包括:日期(date)、时间(time)、网络目标(target)、期望值(purpose)和返回结果(result),其中期望值表示为网络中的访问权限(right)。
<intention>::=’(’<date><time><target><purpose>’)’<result>
<purpose>::=<right>
(3)渗透方案
其组成包括日期(date)、时间(time)、任务编号(taskid)、网络目标(target)、手段(measure)、目标漏洞(vul)和渗透目的编号(intendid);任务编号由整数编号组成,手段分为收集和获权两种类型;
<scheme>::=’(’<date><time><taskid><target><measure><vul>)’<intendid>
<taskid>::=<integer>
<measure>::=col|gain
(4)渗透指令
指令主要包括日期(date)、时间(time)、目标(target)、手段(measure)、 目标漏洞(vul)、指令编号(taskid)、前序编号(pre)和目的编号(intendid),其中前序编号表示在该指令在整个执行流程中前一个指令编号;
<instruction>::=’(’<date><time><target><measure><vul><taskid><pre>’)<inte ndid>
(5)访问控制权限
访问控制权限主要由读(R)、写(R)、执行(X)和E四者组合构成,E表示对目标没有读、写、执行权限;
<right>::=R|W|X|RW|WX|RX|RWX|E。
(6)网络数据
网络数据由日期(data)、时间(time)、目标(target)、数据内容(actuality)和目的编号(intendid)组成,其中数据内容记录通信过程中获得的原始报文。
<data>::=’’(’<date><time><target><actuality><intendid>’)’
(7)网络信息
网络信息由日期(date)、时间(time)、目标(target)、特征(signature)和目的编号(intendid)组成,其中特征可进一步表示为操作系统类型、CPU、协议、进程、服务和文件;
<information>::=‘(’<date><time><target><signature><intendid>‘)’
<signature>::=<os_sentence>|<cpu_sentence>|<protol_sentence>|<proce_sente nce>|<serv_sentence>|<file_sentence>
(8)目标漏洞
目标漏洞由日期(date)、时间(time)、目标(target)、漏洞编号(vulid)和目的编号(intendid),其中漏洞编号用以在数据库中检索具体的漏洞信息;
<vul>::=’‘(’<date><time><target><vulid><intendid>‘)’。
3.一种具有自适应功能的网络渗透测试方法,其特征在于实现步骤如下:
步骤(1),当系统进入运行阶段时,使用者首先将网络渗透测试命令存入数据库,所述网络渗透测试命令包括网络目标和渗透目的;
步骤(2),决策解释器从数据库中获取网络目标和渗透目的,经过语法解 析输入决策模块,同时决策解释器在数据库中查找对应目标的目标漏洞信息;若决策解释器在数据库中找到相应的目标漏洞,执行步骤(3),否则执行步骤(7);
步骤(3),决策模块接收决策解释器送至的网络目标和渗透目的,根据获取的目标漏洞,自动生成渗透方案,送至决策解释器;决策解释器将渗透测试方案,按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(4),组织解释器在数据库中调出渗透方案,经过语法解析送至数据组织模块;组织模块按照渗透方案的内容进行实施,生成网络渗透指令送至组织模块,组织解释器将组织模块产生的渗透指令按照统一的网络渗透测试描述语言的形式存储到数据库中;所述网络渗透指令分为两类:一类为获权指令,直接针对目标漏洞获取访问控制权限;另一类为目标漏洞收集指令,用于在缺少目标漏洞描述的情况下实施目标漏洞收集工作;
步骤(5),获权解释器从数据库的渗透指令中获得需要执行的获权指令,经过语法解析送至获权模块;获权模块根据获权指令实施获权活动,获取用于目标漏洞的访问控制权,并将获权结果送至获权解释器;获权解释器将获权结果按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(6),决策解释器会根据预先存储在数据库中的渗透目的和实际的获权结果进行比对,如果获权结果与渗透目的一致,则表明系统渗透达到目的,系统退出运行;如果出现偏差,则表示网络目标尚未成功,返回步骤(2);
步骤(7),决策模块在没有目标漏洞的情况下,首先生成目标漏洞生成方案,而后存入数据库中,同时标示需要使用该目标漏洞的网络渗透测试命令,等待目标漏洞的产生;
步骤(8)组织解释器从数据库中获得针对某个目标漏洞生成方案,经过语法解析输入组织模块,组织模块依次产生收集指令,由组织解释器按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(9),收集解释器从数据库中获取收集指令,经过语法解析输入到数 据收集模块,数据收集模块对网络目标实施通信操作,获取回应的通信报文,得到网络数据送至收集解释器;收集解释器将数据收集模块获得的网络数据按照统一的网络渗透测试描述语言的形式存储到数据库中;
步骤(10),当有新的网络信息生成,漏洞解释器从数据库中获取网络信息,经过语法解析送至漏洞生成模块;漏洞生成模块将输入的网络信息,依照自身的知识库内容,对网络目标实现快速匹配,从中找出网络目标中可能存在的目标漏洞,并将该目标漏洞输入到漏洞解释器;漏洞解释器接收目标漏洞,按照统一的网络渗透测试描述语言的形式存储到数据库中;返回到步骤(3)。
4.根据权利要求2所述的具有自适应功能的渗透测试自动化方法,其特征在于:所述统一的网络渗透测试描述语言包括以下部分内容:
(1)网络目标
表示网络目标的基本类型,包括网络(net)、节点(node)、进程(process)、服务(service)、文件(file)、网络间连接(n-connect)、进程间连接(p-connect)和服务间(s-connect)连接;
<target>::=<net>|<node>|<process>|<service>|<file>|<n-connect>|<p-connect>|<s-connect>
网络的表示形式,由网络地址加子网掩码组成;
<net>::=<address>‘/’<mask1>
节点的表示方式,由网络地址表示;
<node>::=<address>
进程的表示方式,用节点和端口组成;
<process>::=<node>‘:’<port>
服务的表示方式,用进程或协议表示;
<service>::=<process>‘,’<protocol>
文件的表示方式,用服务和文件存储位置表示;
<file>::=<service><filespecification>
网络连接表示方式,由节点和协议组成;
<n-connect>::=<node>‘,’<node>‘,’<protocol>
进程连接表示方式,由进程、进程和协议组成;
<p-connect>::=<process>‘,’<process>‘,’<protocol>
网络服务连接的表示方式:由进程连接和协议组成;
<s-connect>::=<p-connect>‘,’<protocol>
网络地址表示方式如下,采用十进制表示IP地址;
<address>::=<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_d otted_decimal_numer>.<IP_dotted_decimal_numer>
<IP_dotted_decimal_numer>::=[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
网络掩码的表示方式如下:
<mask1>::=8|9|1<digit>|2<digit>|3[0-2]
<mask2>::=255.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>.<IP_dotted_decimal_numer>
网络端口的表示方式如下,作用范围为0—65535;
<port>::=[0-65535]
协议的表示方式:表示协议类型的字符串和版本信息;
<protocol>::=<chars><version>
版本信息的表示方式:数字编号和‘.’表示;
<version>::=<integer>.<version>|<integer>
文件存储位置的表示方式:特定字符串;
<filespecification>::=<chars>
(2)渗透目的
其基本组成的因素包括:日期(date)、时间(time)、网络目标(target)、期望值(purpose)和返回结果(result),其中期望值表示为网络中的访问权限(right)。
<intention>::=’(’<date><time><target><purpose>’)’<result>
<purpose>::=<right>
(3)渗透方案
其组成包括日期(date)、时间(time)、任务编号(taskid)、网络目标(target)、手段(measure)、目标漏洞(vul)和渗透目的编号(intendid);任务编号由整数编号组成,手段分为收集和获权两种类型;
<scheme>::=’(’<date><time><taskid><target><measure><vul>)’<intendid>
<taskid>::=<integer>
<measure>::=col|gain
(4)渗透指令
指令主要包括日期(date)、时间(time)、目标(target)、手段(measure)、目标漏洞(vul)、指令编号(taskid)、前序编号(pre)和目的编号(intendid),其中前序编号表示在该指令在整个执行流程中前一个指令编号;
<instruction>::=’(’<date><time><target><measure><vul><taskid><pre>’)<inte ndid>
(5)访问控制权限
访问控制权限主要由读(R)、写(R)、执行(X)和E四者组合构成,E表示对目标没有读、写、执行权限;
<right>::=R|W|X|RW|WX|RX|RWX|E。
(6)网络数据
网络数据由日期(data)、时间(time)、目标(target)、数据内容(actuality)和目的编号(intendid)组成,其中数据内容记录通信过程中获得的原始报文。
<data>::=’’(’<date><time><target><actuality><intendid>’)’
(7)网络信息
网络信息由日期(date)、时间(time)、目标(target)、特征(signature)和目的编号(intendid)组成,其中特征可进一步表示为操作系统类型、CPU、协议、进程、服务和文件;
<information>::=‘(’<date><time><target><signature><intendid>‘)’
<signature>::=<os_sentence>|<cpu_sentence>|<protol_sentence>|<proce_sente nce>|<serv_sentence>|<file_sentence>
(8)目标漏洞
目标漏洞由日期(date)、时间(time)、目标(target)、漏洞编号(vulid)和目的编号(intendid),其中漏洞编号用以在数据库中检索具体的漏洞信息;
<vul>::=’‘(’<date><time><target><vulid><intendid>‘)’。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310425586.1A CN103457957B (zh) | 2013-09-17 | 2013-09-17 | 一种具有自适应功能的网络渗透测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310425586.1A CN103457957B (zh) | 2013-09-17 | 2013-09-17 | 一种具有自适应功能的网络渗透测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103457957A true CN103457957A (zh) | 2013-12-18 |
CN103457957B CN103457957B (zh) | 2016-05-18 |
Family
ID=49739911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310425586.1A Expired - Fee Related CN103457957B (zh) | 2013-09-17 | 2013-09-17 | 一种具有自适应功能的网络渗透测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103457957B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951455A (zh) * | 2019-02-28 | 2019-06-28 | 中国人民解放军战略支援部队信息工程大学 | 一种自动化渗透测试方法及系统 |
CN110049055A (zh) * | 2019-04-24 | 2019-07-23 | 北京国舜科技股份有限公司 | 业务漏洞防护方法、装置和系统 |
CN111783105A (zh) * | 2020-07-08 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 渗透测试方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000038036A2 (en) * | 1998-12-23 | 2000-06-29 | Axent Technologies, Inc. | System penetrating a computer or computer network |
CN102136051A (zh) * | 2011-05-06 | 2011-07-27 | 南开大学 | 一种应用SGM-SQL注入模型驱动web应用渗透测试的方法 |
US20110191852A1 (en) * | 2010-01-30 | 2011-08-04 | Scott Sanders | Method to perform a security assessment on a clone of a virtual system |
CN102999717A (zh) * | 2012-11-20 | 2013-03-27 | 北京信息科技大学 | 用于网络安全渗透测试的缓冲区溢出的植入代码快速生成系统 |
-
2013
- 2013-09-17 CN CN201310425586.1A patent/CN103457957B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000038036A2 (en) * | 1998-12-23 | 2000-06-29 | Axent Technologies, Inc. | System penetrating a computer or computer network |
US20110191852A1 (en) * | 2010-01-30 | 2011-08-04 | Scott Sanders | Method to perform a security assessment on a clone of a virtual system |
CN102136051A (zh) * | 2011-05-06 | 2011-07-27 | 南开大学 | 一种应用SGM-SQL注入模型驱动web应用渗透测试的方法 |
CN102999717A (zh) * | 2012-11-20 | 2013-03-27 | 北京信息科技大学 | 用于网络安全渗透测试的缓冲区溢出的植入代码快速生成系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951455A (zh) * | 2019-02-28 | 2019-06-28 | 中国人民解放军战略支援部队信息工程大学 | 一种自动化渗透测试方法及系统 |
CN110049055A (zh) * | 2019-04-24 | 2019-07-23 | 北京国舜科技股份有限公司 | 业务漏洞防护方法、装置和系统 |
CN111783105A (zh) * | 2020-07-08 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 渗透测试方法、装置、设备及存储介质 |
CN111783105B (zh) * | 2020-07-08 | 2024-03-29 | 国家计算机网络与信息安全管理中心 | 渗透测试方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103457957B (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8185877B1 (en) | System and method for testing applications | |
CN106597947A (zh) | 变电站设备测试方法、服务器、测试仪及系统 | |
CN109561106B (zh) | 一种船舶通信报文实时解析过滤方法 | |
CN102014016A (zh) | 一种网络协议缺陷测试系统及方法 | |
CN105138461A (zh) | 一种应用程序的接口测试方法及装置 | |
CN105956410B (zh) | 一种iec61850全模型的快速通用检测方法 | |
CN101888318B (zh) | 一种通信系统性能指标测试的系统和方法 | |
CN109150854B (zh) | 基于xml文件的动态可配置通信规约转换系统 | |
CN102750301A (zh) | 针对aadl描述的综合化航电系统模型的蓝图生成方法 | |
CN105162646A (zh) | 一种多协议接口测试系统及方法 | |
CN113706110B (zh) | 一种fpga测试工具一体化测试管理平台 | |
CN109726830A (zh) | 设备巡检方法、装置、电子设备及存储介质 | |
CN104978262A (zh) | 一种终端测试方法和装置 | |
CN105117345A (zh) | 一种应用程序的接口测试方法及装置 | |
CN103457957B (zh) | 一种具有自适应功能的网络渗透测试系统及方法 | |
CN109582524A (zh) | 一种测试方法、系统及电子设备和存储介质 | |
CN103777092A (zh) | 一种基于云技术的继电保护测试系统及其方法 | |
CN100512157C (zh) | 基于模型转换的协议正确性验证和测试方法 | |
CN106301976A (zh) | 一种变电站智能化调度信息自动化测试方法 | |
CN110149241A (zh) | 一种基于ims设备的自动化测试方法及存储介质 | |
CN106792678A (zh) | 一种无线节点自动配对搜索的方法及系统 | |
CN110287700A (zh) | 一种iOS应用安全分析方法及装置 | |
CN107124326A (zh) | 一种自动化测试方法及系统 | |
CN110543415A (zh) | 一种计算机软件技术开发调试系统 | |
CN100389627C (zh) | 短信接口测试设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160518 Termination date: 20170917 |