CN111026660A - 一种基于专家系统知识库的渗透测试方法 - Google Patents

一种基于专家系统知识库的渗透测试方法 Download PDF

Info

Publication number
CN111026660A
CN111026660A CN201911237592.8A CN201911237592A CN111026660A CN 111026660 A CN111026660 A CN 111026660A CN 201911237592 A CN201911237592 A CN 201911237592A CN 111026660 A CN111026660 A CN 111026660A
Authority
CN
China
Prior art keywords
penetration
infiltration
experience
permeation
knowledge base
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
Application number
CN201911237592.8A
Other languages
English (en)
Other versions
CN111026660B (zh
Inventor
孙歆
韩嘉佳
李沁园
孙昌华
汪自翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd
Original Assignee
Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd filed Critical Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd
Priority to CN201911237592.8A priority Critical patent/CN111026660B/zh
Publication of CN111026660A publication Critical patent/CN111026660A/zh
Application granted granted Critical
Publication of CN111026660B publication Critical patent/CN111026660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A10/00TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
    • Y02A10/40Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于专家系统知识库的渗透测试方法,属于渗透测试技术领域。现有的渗透过程中渗透工作量大,耗费时间长,人力成本高。本发明提供一种基于专家系统的渗透知识库,通过将渗透专家的渗透经验以黑客语言的形式存储在数据库中,从而将行为化的渗透数据转换成为数字向量的形式存储在渗透知识库的数据库中,进而成为机器所能识别的渗透规则;通过使用渗透知识库中的渗透知识,在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;进而能够有效减少漏洞挖掘的工作量,提高渗透测试准确率,降低人力成本,缩短测试时间。

Description

一种基于专家系统知识库的渗透测试方法
技术领域
本发明涉及一种基于专家系统知识库的渗透测试方法,属于渗透测试技术领域。
背景技术
随着网络的兴起和发展,越来越的的设备可以接入到互联网中,在网络上提供的开放的信息化服务业务也越来越多,为保障这些服务的安全,通常的做法是对这些服务进行定期的安全检查,发现该网络服务中存在的脆弱点,及时修复。但是随着越来越的服务开放到网络中,以及网络服务技术的日臻完善,漏洞的挖掘也变得越来越困难,同时大规模的网络服务的出现,让漏洞挖掘的工作量也大幅度的增加,耗费时间长,人力成本高。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种为了克服渗透过程中渗透工作量大,耗费时间长,人力成本高的问题,创建一种基于专家系统的渗透知识库,通过使用渗透知识库中的渗透知识,在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;进而能够有效减少漏洞挖掘的工作量,提高渗透测试准确率,降低人力成本,缩短测试时间的基于专家系统知识库的渗透测试方法。
为实现上述目的,本发明的技术方案为:
一种基于专家系统知识库的渗透测试方法,具体包括以下步骤:
第一步,建立渗透知识库,通过将渗透专家的渗透经验以黑客语言的形式存储在数据库中,从而将行为化的渗透数据转换成为数字向量的形式存储在渗透知识库的数据库中,进而成为机器所能识别的渗透规则;
所述渗透经验是指渗透专家通过大量日常的渗透行为从而积攒下来的渗透知识,通过使用这种渗透经验知识在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;
第二步,构建知识库引擎
利用渗透知识库对输入的数据进行检索和筛选,并对数据进行转换,生成渗透任务信息;
第三步,进行渗透测试
对输入的渗透任务信息进行解析,并输入渗透执行单元,进行渗透任务;得到返回的渗透任务结果,对渗透结果进行分析。
本发明提供一种基于专家系统的渗透知识库,通过使用渗透知识库中的渗透知识,在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;最后调用相关脚本对渗透目标进行自动化渗透,进而能够有效减少漏洞挖掘的工作量,提高渗透测试准确率,降低人力成本,缩短测试时间。
作为优选技术措施:
所述第一步,建立渗透知识库,具体包括以下步骤:
S101、知识录入:通过将渗透专家的渗透经验以黑客语言的形式存储在数据库中,从而将行为化的渗透数据转换成为数字向量的形式存储在渗透知识库的数据库中;
S102、规则转换:对于数据库中以数字向量形式存储的渗透经验知识,根据自己或目标站点的需求,将部分或全部渗透经验从静态存储的形式转换成动态的形式,加载到内存之中;
S103、规则引擎:对于加载到内存中的待使用的渗透经验,将调用规则引擎读取渗透经验,根据渗透经验的内容对当前渗透状态和环境进行分析,最终输出下一步将要进行的渗透方向;
S104、执行接口:系统通过专家渗透经验得到下一步将要进行的渗透方向后,加载相关数据,将其通过接口发送给渗透工具库,等待渗透工具库执行对应脚本后,将结果通过接口发送回系统;
S105、渗透工具库:包含大量渗透脚本的工具库,该工具库为实际进行脚本渗透程序的位置;通过接收系统发来的渗透测试任务,渗透工具库响应并调用相应脚本独立进行脚本程序运行,运行结束后将运行结果传回系统;
S106、执行单元:渗透工具库中执行脚本的框架;这些框架为相互独立,互不干扰的线程,渗透工具库能够同时从系统中接收多个任务,调用多个执行单元分别对脚本进行执行;
S107、用户交互:用户通过用户交互模块对系统下发对目标的渗透任务;渗透目标为单个或多个站点,渗透参数由用户进行自定义调整;用户能够在渗透任务执行的任何阶段对当前渗透结果进行查看。
作为优选技术措施:还包括:S108、渗透结果展示:用户能够在渗透任务执行的任何阶段以树状图的形式查看当前渗透结果;用户能够以知识图谱形式查看渗透任务所使用的渗透经验集;在渗透任务执行完成后,用户能够生成渗透任务的pdf报告。
所述S101、所述渗透经验是指渗透专家通过大量日常的渗透行为从而积攒下来的渗透知识,通过使用这种渗透经验知识在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作。
作为优选技术措施:
所述S102、规则转换:
在将要对渗透专家的渗透经验进行使用时,为了将渗透专家的渗透经验从文字形式转换成为机器能够识别的数字形式,数据库中存在n个专家经验,对第i条渗透专家的渗透经验mi进行拆分至最小,这里也就是将一整套渗透行为动作拆分成为一个个最小的、不可拆分的渗透动作:
Figure BDA0002303761380000031
在对所有m个渗透专家经验进行拆分之后,得到的m个渗透动作集中不可拆分的最小渗透动作总数为:
Figure BDA0002303761380000032
其中len(mi)表示mi中包含的最小渗透动作个数;
随后对所有的最小渗透动作进行统计,由于在这些最小渗透动作中存在重复,将其中重复的最小渗透动作去除,最终得到一个各不相同的最小渗透动作集合:
x=[x1,x2,…,xs]
其中s为该集合中最小渗透动作数量;用数字1到s分别表示这s个最小渗透动作,这样的话就能够将每一条渗透经验通过最小渗透动作转换成为数字向量形式,如:
Figure BDA0002303761380000033
其中xi1表示x向量中与mi1相同的最小渗透动作,f函数表示得到xi1对应的1到s中的某个数字的操作;
在这样完成了行为化的渗透数据转换成为数字向量的操作后,根据需求将部分或全部渗透数字向量经验加载到内存之中。
作为优选技术措施:
所述S103、规则引擎:这里在得到当前的渗透状态和渗透环境后,将其与渗透经验进行匹配,通过对比当前的渗透状态和渗透环境与每个渗透经验执行的环境,选择其中渗透状态和渗透环境相同或相似的渗透经验,将这些渗透经验作为下一步的渗透前进方向,这里渗透前进方向也就是在当前渗透状态和环境下能够进行的效率最高的渗透操作。
作为优选技术措施:
所述第二步,构建知识库引擎,具体包括以下步骤:
S201、用户目标站点输入,用户根据自己的需求输入目标站点以及相关信息,例如端口信息和执行相关参数;同时用户根据目标站点实际情况,选择合适的经验集或全经验集;
S202、目标站点和扫描参数分析,系统对目标站点的相关信息和扫描参数进行加载,生成目标站点的初始状态集合;
S203、渗透知识库规则检索,知识库根据选择的需要加载的经验集,从数据库中读取经验集,将其加载到内存之中;
S204、筛选条件与组合匹配,知识库根据当前可获得的目标站点状态信息,对加载到内存的经验集再次进行筛选,获得当前满足运行要求的经验,将这些经验作为当前环境下待执行的经验;
S205、转换查询和动作调用序列,对待执行的经验按照经验的重要程度和目标站点当前状态计算权重,依照权重对待执行的经验进行排序;这里经验的重要程度由渗透专家在经验录入时根据自身渗透知识和经验进行人工标注;
S206、执行调用查询序列,引擎依据权限依次对经验进行调用,根据经验的需求加载所有目标站点的相关数据形成待执行的任务,若存在相同种类的多组不同数据,则会将不同数据进行组合,并列生成多组相同权限的待运行数据,等待输入脚本进行运行;
S207、启动渗透执行工具,引擎启动渗透脚本执行框架,并将一组或多组的任务发送给渗透脚本执行框架进行对应渗透脚本的执行,等待渗透脚本的返回结果;
S208、生成渗透测试结果,根据渗透脚本的返回结果,若此时返回结果中存在全新的目标站点相关信息,则回到S204根据新的目标站点相关信息观察是否存在新的能够加载的规则和数据,若不存在全新的数据则结果本条渗透路径下的渗透路径选择。
作为优选技术措施:
所述S202,其中扫描参数通过用户设置和目标站点的当前状态和环境综合生成,包括扫描大致方向、扫描速率,这样能够最大程度地降低扫描所需时间,并降低扫描行为对目标站点可能造成的负面影响。
作为优选技术措施:
所述第三步,进行渗透测试,具体包括以下步骤:
S301、渗透知识输入,渗透专家根据自己积累的渗透经验,对渗透知识进行编写,渗透知识包括在某个已知状态下遇到状态后所采取的渗透或其他操作;
S302、渗透任务输入解析,对渗透目标的数据和当前环境数据进行分析,生成任务初始状态信息,例如用户手动设置的渗透发包个数和网站渗透深度等;或将最新生成的渗透目标状态分析转换后,加入到渗透目标的状态信息中;
S303、渗透行为规划,根据渗透目标的当前状态信息,从加载的经验集中筛选满足执行条件的经验;将这些经验进行读取,加载到引擎之中以待执行经验中的实际行为操作部分;
S304、渗透行为组合,根据筛选得到的待执行状态的经验,从渗透目标的状态信息中读取相关数据,生成待执行的渗透任务;
S305、渗透执行单元,渗透专家编写的具有单一功能的渗透执行脚本,包括各种在渗透过程中可能需要的渗透操作;各个渗透脚本在接受到渗透任务之后只负责简单单个任务的执行,若存在后续操作则由系统分配给后续脚本进行执行;
S306、渗透任务执行,系统将待执行的渗透任务发送给渗透执行单元,等待渗透执行单元中的对应脚本进行执行,将运行结果返回系统;
S307、渗透结果分析,系统获得脚本运行结果,若运行结果为全新的渗透目标状态数据则加入渗透目标状态集合中,返回S303再次进行渗透行为规划。
作为优选技术措施:
所述S302、任务初始状态信息根据目标站点相关的表面信息得出,通常通过站点页面中的相关数据进行直观的解析操作得出,例如通过向目标站点发包,接收目标站点返回的报文得出站点的基本信息和网络状况等。
作为优选技术措施:
所述S303、满足条件是指满足渗透经验的执行条件与当前状态信息相同或相似。
与现有技术相比,本发明具有以下有益效果:
本发明提供一种基于专家系统的渗透知识库,通过使用渗透知识库中的渗透知识,在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;最后调用相关脚本对渗透目标进行自动化渗透,进而能够有效减少漏洞挖掘的工作量,提高渗透测试准确率,降低人力成本,缩短测试时间。
附图说明
图1为本发明渗透知识库的整体组成示图;
图2为本发明知识库引擎工作流程示图;
图3为本发明渗透测试工作流程示图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
如图1-3所示,一种基于专家系统知识库的渗透测试方法,具体包括以下步骤:
第一步,建立渗透知识库,通过将渗透专家的渗透经验以黑客语言的形式存储在数据库中,从而将行为化的渗透数据转换成为数字向量的形式存储在渗透知识库的数据库中,进而成为机器所能识别的渗透规则;
所述渗透经验是指渗透专家通过大量日常的渗透行为从而积攒下来的渗透知识,通过使用这种渗透经验知识在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;
第二步,构建知识库引擎
利用渗透知识库对输入的数据进行检索和筛选,并对数据进行转换,生成渗透任务信息;
第三步,进行渗透测试
对输入的渗透任务信息进行解析,并输入渗透执行单元,进行渗透任务;得到返回的渗透任务结果,对渗透结果进行分析。
本发明提供一种基于专家系统的渗透知识库,通过使用渗透知识库中的渗透知识,在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;最后调用相关脚本对渗透目标进行自动化渗透,进而能够有效减少漏洞挖掘的工作量,提高渗透测试准确率,降低人力成本,缩短测试时间。
如图1所示,本发明建立渗透知识库的一种具体实施例:
其具体包括以下步骤:
S101、知识录入:通过将渗透专家的渗透经验以黑客语言的形式输入并存储在数据库中,其中渗透经验是指渗透专家通过大量日常的渗透行为从而积攒下来的渗透知识,这种知识会指导渗透专家在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,可以使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作。
S102、规则转换:在我们将要对渗透专家的渗透经验进行使用时,为了将渗透专家的渗透经验从文字形式转换成为机器可以识别的数字形式,假设数据库中存在n个专家经验,我们对第i条渗透专家的渗透经验mi进行拆分至最小,这里也就是将一整套渗透行为动作拆分成为一个个最小的、不可拆分的渗透动作:
Figure BDA0002303761380000071
在对所有m个渗透专家经验进行拆分之后,得到的m个渗透动作集中不可拆分的最小渗透动作总数为:
Figure BDA0002303761380000072
其中len(mi)表示mi中包含的最小渗透动作个数。
随后对所有的最小渗透动作进行统计,由于在这些最小渗透动作中存在重复,我们将其中重复的最小渗透动作去除,最终得到一个各不相同的最小渗透动作集合:
x=[x1,x2,…,xs]
其中s为该集合中最小渗透动作数量。这里我们用数字1到s分别表示这s个最小渗透动作,这样的话我们就可以将每一条渗透经验通过最小渗透动作转换成为数字向量形式,如:
Figure BDA0002303761380000073
其中xi1表示x向量中与mi1相同的最小渗透动作,f函数表示得到xi1对应的1到s中的某个数字的操作。
在这样完成了行为化的渗透数据转换成为数字向量的操作后,我们根据需求将部分或全部渗透数字向量经验加载到内存之中。
S103、规则引擎:对于加载到内存中的待使用的渗透经验,我们将调用规则引擎读取渗透经验,根据渗透经验的内容对当前渗透状态和环境进行分析,最终输出下一步将要进行的渗透方向。这里在得到当前的渗透状态和渗透环境后,将其与渗透经验进行匹配,通过对比当前的渗透状态和渗透环境与每个渗透经验执行的环境,选择其中渗透状态和渗透环境相同或相似的渗透经验,将这些渗透经验作为下一步的渗透前进方向,这里渗透前进方向也就是在当前渗透状态和环境下可以进行的效率最高的渗透操作。
S104、执行接口:系统通过专家渗透经验得到下一步将要进行的渗透方向后,加载相关数据,将其通过接口发送给渗透工具库,等待渗透工具库执行对应脚本后,将结果通过接口发送回系统。
S105、渗透工具库:包含大量渗透脚本的工具库,该工具库为实际进行脚本渗透程序的位置。通过接收系统发来的渗透测试任务,渗透工具库响应并调用相应脚本独立进行脚本程序运行,运行结束后将运行结果传回系统。
S106、执行单元:渗透工具库中执行脚本的框架。这些框架为相互独立,互不干扰的线程,渗透工具库可以同时从系统中接收多个任务,调用多个执行单元分别对脚本进行执行。
S107、用户交互:用户通过用户交互模块对系统下发对目标的渗透任务。渗透目标可以为单个或多个站点,渗透参数可以由用户进行自定义调整;用户可以在渗透任务执行的任何阶段对当前渗透结果进行查看。
S108、渗透结果展示:用户可以在渗透任务执行的任何阶段以树状图的形式查看当前渗透结果;用户可以以知识图谱形式查看渗透任务所使用的渗透经验集;在渗透任务执行完成后,用户可以生成渗透任务的pdf报告。
如图2所示,本发明构建知识库引擎的一种具体实施例:
其具体包括以下步骤:
S201、用户目标站点输入,用户根据自己的需求输入目标站点以及相关信息,例如端口信息和执行相关参数。同时用户根据目标站点实际情况,选择合适的经验集或全经验集。
S202、目标站点和扫描参数分析,系统对目标站点的相关信息和扫描参数进行加载,生成目标站点的初始状态集合。其中扫描参数通过用户设置和目标站点的当前状态和环境综合生成,包括扫描大致方向、扫描速率等,这样可以最大程度地降低扫描所需时间,并降低扫描行为对目标站点可能造成的负面影响。
S203、渗透知识库规则检索,知识库根据选择的需要加载的经验集,从数据库中读取经验集,将其加载到内存之中。
S204、筛选条件与组合匹配,知识库根据当前可获得的目标站点状态信息,对加载到内存的经验集再次进行筛选,获得当前满足运行要求的经验,将这些经验作为当前环境下待执行的经验。
S205、转换查询和动作调用序列,对待执行的经验按照经验的重要程度和目标站点当前状态计算权重,依照权重对待执行的经验进行排序。这里经验的重要程度由渗透专家在经验录入时根据自身渗透知识和经验进行人工标注。
S206、执行调用查询序列,引擎依据权限依次对经验进行调用,根据经验的需求加载所有目标站点的相关数据形成待执行的任务,若存在相同种类的多组不同数据,则会将不同数据进行组合,并列生成多组相同权限的待运行数据,等待输入脚本进行运行。
S207、启动渗透执行工具,引擎启动渗透脚本执行框架,并将一组或多组的任务发送给渗透脚本执行框架进行对应渗透脚本的执行,等待渗透脚本的返回结果。
S208、生成渗透测试结果,根据渗透脚本的返回结果,若此时返回结果中存在全新的目标站点相关信息,则回到S204根据新的目标站点相关信息观察是否存在新的可以加载的规则和数据,若不存在全新的数据则结果本条渗透路径下的渗透路径选择。
如图3所示,本发明进行渗透测试的一种具体实施例:
其具体包括以下步骤:
S301、渗透知识输入,渗透专家根据自己积累的渗透经验,对渗透知识进行编写,渗透知识包括在某个已知状态下遇到状态后所采取的渗透或其他操作。
S302、渗透任务输入解析,对渗透目标的数据和当前环境数据进行分析,生成任务初始状态信息,例如用户手动设置的渗透发包个数和网站渗透深度等;或将最新生成的渗透目标状态分析转换后,加入到渗透目标的状态信息中,这里根据目标站点相关的表面信息得出,通常通过站点页面中的相关数据进行直观的解析操作得出,例如通过向目标站点发包,接收目标站点返回的报文得出站点的基本信息和网络状况等。
S303、渗透行为规划,根据渗透目标的当前状态信息,从加载的经验集中筛选满足执行条件的经验。这里满足条件是指满足渗透经验的执行条件与当前状态信息相同或相似。将这些经验进行读取,加载到引擎之中以待执行经验中的实际行为操作部分。
S304、渗透行为组合,根据筛选得到的待执行状态的经验,从渗透目标的状态信息中读取相关数据,生成待执行的渗透任务。
S305、渗透执行单元,渗透专家编写的具有单一功能的渗透执行脚本,包括各种在渗透过程中可能需要的渗透操作。各个渗透脚本在接受到渗透任务之后只负责简单单个任务的执行,若存在后续操作则由系统分配给后续脚本进行执行。
S306、渗透任务执行,系统将待执行的渗透任务发送给渗透执行单元,等待渗透执行单元中的对应脚本进行执行,将运行结果返回系统。
S307、渗透结果分析,系统获得脚本运行结果,若运行结果为全新的渗透目标状态数据则加入渗透目标状态集合中,返回S303再次进行渗透行为规划。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于专家系统知识库的渗透测试方法,其特征在于,具体包括以下步骤:
第一步,建立渗透知识库,通过将渗透专家的渗透经验以黑客语言的形式存储在数据库中,从而将行为化的渗透数据转换成为数字向量的形式存储在渗透知识库的数据库中,进而成为机器所能识别的渗透规则;
所述渗透经验是指渗透专家通过大量日常的渗透行为从而积攒下来的渗透知识,通过使用这种渗透经验知识在面对复杂多样的目标站点、服务器所具有的特征或某个特定的渗透环境中,能够使用最少的人力物力来达成最终的目的,而不是通过穷举遍历渗透方法的方式去完成渗透工作;
第二步,构建知识库引擎
利用渗透知识库对输入的数据进行检索和筛选,并对数据进行转换,生成渗透任务信息;
第三步,进行渗透测试
对输入的渗透任务信息进行解析,并输入渗透执行单元,进行渗透任务;得到返回的渗透任务结果,对渗透结果进行分析。
2.如权利要求1所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述第一步,建立渗透知识库,具体包括以下步骤:
S101、知识录入:通过将渗透专家的渗透经验以黑客语言的形式存储在数据库中,从而将行为化的渗透数据转换成为数字向量的形式存储在渗透知识库的数据库中;
S102、规则转换:对于数据库中以数字向量形式存储的渗透经验知识,根据自己或目标站点的需求,将部分或全部渗透经验从静态存储的形式转换成动态的形式,加载到内存之中;
S103、规则引擎:对于加载到内存中的待使用的渗透经验,将调用规则引擎读取渗透经验,根据渗透经验的内容对当前渗透状态和环境进行分析,最终输出下一步将要进行的渗透方向;
S104、执行接口:系统通过专家渗透经验得到下一步将要进行的渗透方向后,加载相关数据,将其通过接口发送给渗透工具库,等待渗透工具库执行对应脚本后,将结果通过接口发送回系统;
S105、渗透工具库:包含大量渗透脚本的工具库,该工具库为实际进行脚本渗透程序的位置;通过接收系统发来的渗透测试任务,渗透工具库响应并调用相应脚本独立进行脚本程序运行,运行结束后将运行结果传回系统;
S106、执行单元:渗透工具库中执行脚本的框架;这些框架为相互独立,互不干扰的线程,渗透工具库能够同时从系统中接收多个任务,调用多个执行单元分别对脚本进行执行;
S107、用户交互:用户通过用户交互模块对系统下发对目标的渗透任务;渗透目标为单个或多个站点,渗透参数由用户进行自定义调整;用户能够在渗透任务执行的任何阶段对当前渗透结果进行查看。
3.如权利要求2所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
还包括:S108、渗透结果展示:用户能够在渗透任务执行的任何阶段以树状图的形式查看当前渗透结果;用户能够以知识图谱形式查看渗透任务所使用的渗透经验集;在渗透任务执行完成后,用户能够生成渗透任务的pdf报告。
4.如权利要求2所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述S102、规则转换:
数据库中存在n个专家经验,对第i条渗透专家的渗透经验mi进行拆分至最小,这里也就是将一整套渗透行为动作拆分成为一个个最小的、不可拆分的渗透动作:
Figure FDA0002303761370000021
在对所有m个渗透专家经验进行拆分之后,得到的m个渗透动作集中不可拆分的最小渗透动作总数为:
Figure FDA0002303761370000022
其中Ien(mi)表示mi中包含的最小渗透动作个数;
随后对所有的最小渗透动作进行统计,由于在这些最小渗透动作中存在重复,将其中重复的最小渗透动作去除,最终得到一个各不相同的最小渗透动作集合:
x=[x1,x2,…,xs]
其中s为该集合中最小渗透动作数量;用数字1到s分别表示这s个最小渗透动作,这样的话就能够将每一条渗透经验通过最小渗透动作转换成为数字向量形式:
Figure FDA0002303761370000023
其中xi1表示x向量中与mi1相同的最小渗透动作,f函数表示得到xi1对应的1到s中的某个数字的操作;
在这样完成了行为化的渗透数据转换成为数字向量的操作后,根据需求将部分或全部渗透数字向量经验加载到内存之中。
5.如权利要求2所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述S103、规则引擎:这里在得到当前的渗透状态和渗透环境后,将其与渗透经验进行匹配,通过对比当前的渗透状态和渗透环境与每个渗透经验执行的环境,选择其中渗透状态和渗透环境相同或相似的渗透经验,将这些渗透经验作为下一步的渗透前进方向,这里渗透前进方向也就是在当前渗透状态和环境下能够进行的效率最高的渗透操作。
6.如权利要求1所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述第二步,构建知识库引擎,具体包括以下步骤:
S201、用户目标站点输入,用户根据自己的需求输入目标站点以及相关信息;
S202、目标站点和扫描参数分析,系统对目标站点的相关信息和扫描参数进行加载,生成目标站点的初始状态集合;
S203、渗透知识库规则检索,知识库根据选择的需要加载的经验集,从数据库中读取经验集,将其加载到内存之中;
S204、筛选条件与组合匹配,知识库根据当前可获得的目标站点状态信息,对加载到内存的经验集再次进行筛选,获得当前满足运行要求的经验,将这些经验作为当前环境下待执行的经验;
S205、转换查询和动作调用序列,对待执行的经验按照经验的重要程度和目标站点当前状态计算权重,依照权重对待执行的经验进行排序;这里经验的重要程度由渗透专家在经验录入时根据自身渗透知识和经验进行人工标注;
S206、执行调用查询序列,引擎依据权限依次对经验进行调用,根据经验的需求加载所有目标站点的相关数据形成待执行的任务,若存在相同种类的多组不同数据,则会将不同数据进行组合,并列生成多组相同权限的待运行数据,等待输入脚本进行运行;
S207、启动渗透执行工具,引擎启动渗透脚本执行框架,并将一组或多组的任务发送给渗透脚本执行框架进行对应渗透脚本的执行,等待渗透脚本的返回结果;
S208、生成渗透测试结果,根据渗透脚本的返回结果,若此时返回结果中存在全新的目标站点相关信息,则回到S204根据新的目标站点相关信息观察是否存在新的能够加载的规则和数据,若不存在全新的数据则结果本条渗透路径下的渗透路径选择。
7.如权利要求6所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述S202,其中扫描参数通过用户设置和目标站点的当前状态和环境综合生成,包括扫描大致方向、扫描速率。
8.如权利要求1-7任一项所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述第三步,进行渗透测试,具体包括以下步骤:
S301、渗透知识输入,渗透专家根据自己积累的渗透经验,对渗透知识进行编写,渗透知识包括在某个已知状态下遇到状态后所采取的渗透或其他操作;
S302、渗透任务输入解析,对渗透目标的数据和当前环境数据进行分析,生成任务初始状态信息;
S303、渗透行为规划,根据渗透目标的当前状态信息,从加载的经验集中筛选满足执行条件的经验;将这些经验进行读取,加载到引擎之中以待执行经验中的实际行为操作部分;
S304、渗透行为组合,根据筛选得到的待执行状态的经验,从渗透目标的状态信息中读取相关数据,生成待执行的渗透任务;
S305、渗透执行单元,渗透专家编写的具有单一功能的渗透执行脚本,包括各种在渗透过程中可能需要的渗透操作;各个渗透脚本在接受到渗透任务之后只负责简单单个任务的执行,若存在后续操作则由系统分配给后续脚本进行执行;
S306、渗透任务执行,系统将待执行的渗透任务发送给渗透执行单元,等待渗透执行单元中的对应脚本进行执行,将运行结果返回系统;
S307、渗透结果分析,系统获得脚本运行结果,若运行结果为全新的渗透目标状态数据则加入渗透目标状态集合中,返回S303再次进行渗透行为规划。
9.如权利要求8所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述S302、任务初始状态信息根据目标站点相关的表面信息得出,通常通过站点页面中的相关数据进行直观的解析操作得出。
10.如权利要求9所述的一种基于专家系统知识库的渗透测试方法,其特征在于,
所述S303、满足条件是指满足渗透经验的执行条件与当前状态信息相同或相似。
CN201911237592.8A 2019-12-05 2019-12-05 一种基于专家系统知识库的渗透测试方法 Active CN111026660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911237592.8A CN111026660B (zh) 2019-12-05 2019-12-05 一种基于专家系统知识库的渗透测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911237592.8A CN111026660B (zh) 2019-12-05 2019-12-05 一种基于专家系统知识库的渗透测试方法

Publications (2)

Publication Number Publication Date
CN111026660A true CN111026660A (zh) 2020-04-17
CN111026660B CN111026660B (zh) 2023-07-07

Family

ID=70207319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911237592.8A Active CN111026660B (zh) 2019-12-05 2019-12-05 一种基于专家系统知识库的渗透测试方法

Country Status (1)

Country Link
CN (1) CN111026660B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036314A (zh) * 2021-11-15 2022-02-11 全球能源互联网研究院有限公司 一种基于知识图谱的渗透路径识别方法及系统
CN114205153A (zh) * 2021-12-12 2022-03-18 中国电子科技集团公司第十五研究所 一种面向复杂防御机制的自适应渗透测试方法
CN114915475A (zh) * 2022-05-18 2022-08-16 中国联合网络通信集团有限公司 攻击路径的确定方法、装置、设备及存储介质
CN117313856A (zh) * 2023-11-29 2023-12-29 浙江季丰电子科技有限公司 一种可靠性测试规划系统及方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574737B1 (en) * 1998-12-23 2003-06-03 Symantec Corporation System for penetrating computer or computer network
WO2010069587A1 (en) * 2008-12-18 2010-06-24 Nec Europe Ltd. Method and device for supporting penetration testing of a computer system
CN103532793A (zh) * 2013-10-28 2014-01-22 中国航天科工集团第二研究院七〇六所 一种信息系统安全性自动化渗透测试方法
US20140047546A1 (en) * 2012-08-10 2014-02-13 Nopsec Inc. Method and System for Managing Computer System Vulnerabilities
US20140047545A1 (en) * 2012-08-10 2014-02-13 Michelangelo Sidagni Expert system for detecting software security threats
US20140237606A1 (en) * 2011-06-05 2014-08-21 Core Sdi Incorporated System and method for providing automated computer security compromise as a service
CN104142959A (zh) * 2013-05-10 2014-11-12 中国银联股份有限公司 基于专家知识数据库的自动化测试装置及方法
CN105068925A (zh) * 2015-07-29 2015-11-18 北京理工大学 软件安全缺陷发现系统
US20170124464A1 (en) * 2015-10-28 2017-05-04 Fractal Industries, Inc. Rapid predictive analysis of very large data sets using the distributed computational graph
CN110351250A (zh) * 2019-06-18 2019-10-18 国家计算机网络与信息安全管理中心 一种多数据源安全知识归集系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574737B1 (en) * 1998-12-23 2003-06-03 Symantec Corporation System for penetrating computer or computer network
WO2010069587A1 (en) * 2008-12-18 2010-06-24 Nec Europe Ltd. Method and device for supporting penetration testing of a computer system
US20140237606A1 (en) * 2011-06-05 2014-08-21 Core Sdi Incorporated System and method for providing automated computer security compromise as a service
US20140047546A1 (en) * 2012-08-10 2014-02-13 Nopsec Inc. Method and System for Managing Computer System Vulnerabilities
US20140047545A1 (en) * 2012-08-10 2014-02-13 Michelangelo Sidagni Expert system for detecting software security threats
CN104142959A (zh) * 2013-05-10 2014-11-12 中国银联股份有限公司 基于专家知识数据库的自动化测试装置及方法
CN103532793A (zh) * 2013-10-28 2014-01-22 中国航天科工集团第二研究院七〇六所 一种信息系统安全性自动化渗透测试方法
CN105068925A (zh) * 2015-07-29 2015-11-18 北京理工大学 软件安全缺陷发现系统
US20170124464A1 (en) * 2015-10-28 2017-05-04 Fractal Industries, Inc. Rapid predictive analysis of very large data sets using the distributed computational graph
CN110351250A (zh) * 2019-06-18 2019-10-18 国家计算机网络与信息安全管理中心 一种多数据源安全知识归集系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DANIEL DALALANA ET-AL: "Overview and open issues on penetration test" *
吴方明: "基于知识库的渗透测试评估方法研究与实现" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036314A (zh) * 2021-11-15 2022-02-11 全球能源互联网研究院有限公司 一种基于知识图谱的渗透路径识别方法及系统
CN114036314B (zh) * 2021-11-15 2023-09-26 国网智能电网研究院有限公司 一种基于知识图谱的渗透路径识别方法及系统
CN114205153A (zh) * 2021-12-12 2022-03-18 中国电子科技集团公司第十五研究所 一种面向复杂防御机制的自适应渗透测试方法
CN114915475A (zh) * 2022-05-18 2022-08-16 中国联合网络通信集团有限公司 攻击路径的确定方法、装置、设备及存储介质
CN117313856A (zh) * 2023-11-29 2023-12-29 浙江季丰电子科技有限公司 一种可靠性测试规划系统及方法
CN117313856B (zh) * 2023-11-29 2024-03-05 浙江季丰电子科技有限公司 一种可靠性测试规划系统及方法

Also Published As

Publication number Publication date
CN111026660B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN111026660A (zh) 一种基于专家系统知识库的渗透测试方法
US7975262B2 (en) Error tracing with context history
CN105373478B (zh) 自动化测试方法和系统
CN105955878A (zh) 服务器端的测试方法及系统
CN108804304B (zh) 测试用例生成方法及装置、存储介质、电子设备
CN112559367B (zh) 基于系统调用依赖图的内核模糊测试用例生成方法
CN110059006B (zh) 代码审计方法及装置
CN111522728A (zh) 自动化测试用例的生成方法、电子设备及可读存储介质
CN105677306A (zh) 自动化脚本的编写方法和装置
CN112749083A (zh) 一种测试脚本生成方法及装置
CN111414619A (zh) 一种数据安全检测方法、装置、设备及可读存储介质
CN114416547A (zh) 基于测试用例的测试方法
CN109933515B (zh) 一种回归测试用例集的优化方法和自动优化装置
CN104239212A (zh) 测试用例的查询方法及装置、测试用例的建立方法及装置
CN116521158A (zh) 一种联邦学习算法组件生成系统和装置
CN110716866A (zh) 代码质量扫描方法、装置、计算机设备及存储介质
CN113688134B (zh) 基于多维数据的可视化变量管理方法、系统及设备
CN115495362A (zh) 生成测试代码的方法、装置、存储介质及计算机设备
Ohbayashi et al. A preprocessing method of test input generation by symbolic execution for enterprise application
CN104391782A (zh) 基于xml脚本的网络设备管理软件客户端模拟方法
CN113946363A (zh) 业务数据的执行配置方法、装置、计算机设备及存储介质
Liu et al. Agent-based online quality measurement approach in cloud computing environment
CN106776322B (zh) 一种测试用例动态配置、加载、运行的方法
Jiang et al. An exploitability analysis technique for binary vulnerability based on automatic exception suppression
Aversano et al. Analyzing the instability of the core components of software projects

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant