CN107426227B - 一种自动化安全渗透测试方法 - Google Patents

一种自动化安全渗透测试方法 Download PDF

Info

Publication number
CN107426227B
CN107426227B CN201710650674.XA CN201710650674A CN107426227B CN 107426227 B CN107426227 B CN 107426227B CN 201710650674 A CN201710650674 A CN 201710650674A CN 107426227 B CN107426227 B CN 107426227B
Authority
CN
China
Prior art keywords
attack
information
loophole
tool
target
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.)
Active
Application number
CN201710650674.XA
Other languages
English (en)
Other versions
CN107426227A (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.)
Zhong Tong Clothing Consulting And Design Research Institute Co Ltd
Original Assignee
Zhong Tong Clothing Consulting And Design Research Institute 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 Zhong Tong Clothing Consulting And Design Research Institute Co Ltd filed Critical Zhong Tong Clothing Consulting And Design Research Institute Co Ltd
Priority to CN201710650674.XA priority Critical patent/CN107426227B/zh
Publication of CN107426227A publication Critical patent/CN107426227A/zh
Application granted granted Critical
Publication of CN107426227B publication Critical patent/CN107426227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种自动化安全渗透测试方法,包括:步骤1,自动化响应模型训练,建立对应模型;步骤2,扫描目标信息系统,获取主机信息;步骤3,扫描目标信息系统漏洞,获取漏洞信息;步骤4,根据步骤2和步骤3获取的主机信息和漏洞信息,结合攻击策略库建立攻击模型,根据攻击模型对目标信息系统尝试攻击,获取攻击反馈结果;步骤5,对渗透测试全过程进行综合分析,生成渗透测试报告并梳理测试步骤及中间结果,并对系统安全性进行分析,提供相关解决方案;步骤6,响应模型自适应更新,调整响应策略。

Description

一种自动化安全渗透测试方法
技术领域
本发明属于网络安全领域,涉及一种自动化安全渗透测试方法。
背景技术
随着信息技术的快速发展,安全漏洞对信息系统造成极大的安全隐患,成为木马病毒等恶意代码传播的入口和途径。为及早发现信息系统存在的安全问题,确定危害程度,必须周期性地针对信息系统进行渗透测试并根据渗透测试结果进行系统的安全性修复。
渗透测试是指安全工程师模拟黑客使用的信息探测技术、漏洞评估技术和攻击手段,对目标的安全性作深入的探测,发现系统最脆弱环节的过程[1]。渗透测试的结果需要记录在案,并以此作为信息系统脆弱性解决的依据。渗透测试具有确定组织信息资源面临的威胁,参考风险量化保障支出,降低组织的IT安全成本,提供更好的安全保障投资收益,发现和解决存在的弱点,了解弱点的基本技术、设计和执行,保证为组织提供一个全面和彻底的安全架构[2]。
渗透测试依赖漏洞扫描工具对目标信息系统进行扫描,结合相关的漏洞利用工具对系统漏洞进行攻击和利用,以此来获取系统控制权限。在渗透测试过程中,目前使用较为广泛的开源渗透测试工具为metasploit渗透测试框架,但此框架仅仅提供渗透测试中漏洞攻击和利用阶段的功能。利用metasploit渗透测试框架加载漏洞扫描工具目前依然无法满足全面、完整的自动化渗透测试需求。从实践的角度来看,目前的渗透测试工作存在以下不足:
(1)渗透测试过程需要使用多种安全性分析工具,由于各类工具的渗透策略、功能及使用方法不尽相同,这一状况无法满足高效的、自动化的渗透测试需求。
(2)缺乏有效的人工和自动化相结合的测试平台,测试所需的各类工具间的数据格式不统一,无法进行自主交互,需要测试人员花费大量的时间和精力进行数据整合以驱动渗透测试过程,无法满足高频的渗透测试需求。
文献引用:
[1]SCAMBRAY J,McCLURE S,KURTZ G.Hacking exposed[M]2nd ed[S1]:Brooks,2001.
[2]ARCE I,CACERES M Automating penetration tests a new challenge forthe IS industry[M][S1]:Core Security Tecnologies,2001.
发明内容
针对现有技术中存在的问题,本发明提出了一种自动化安全渗透测试方法,通过建立渗透测试平台,对信息系统安全性进行人工及自动化的测试,深入分析目标系统的安全性。
为达到上述目的,本发明采用的技术方案是:建立渗透测试平台,通过人工和自动化相结合的手段对信息系统主机状态和拓扑结构进行深度的扫描和分析。在分析漏洞过程中,自动调用漏洞验证库中验证脚本对目标系统进行渗透测试,并在渗透测试结束后对整个渗透测试过程和结果进行分析并生成测试报告。
本发明包括以下步骤:
步骤1,自动化响应模型训练,建立对应模型生成攻击策略库;
步骤2,扫描目标信息系统,获取主机信息;
步骤3,扫描目标信息系统漏洞,获取漏洞信息;
步骤4,根据步骤2和步骤3获取的主机信息和漏洞信息,结合攻击策略库建立攻击模型,根据攻击模型对目标信息系统尝试攻击,获取攻击反馈结果;
步骤5,对渗透测试全过程进行综合分析,生成渗透测试报告并梳理测试步骤及中间结果,并对系统安全性进行分析,根据渗透过程和结果,结合渗透测试发现的漏洞及采用的解决方案生成报告性文件,提供相关解决方案;
步骤6,响应模型自适应更新,调整响应策略。
步骤1包括如下步骤:
步骤1-1,通过众测或其他方式,持续收集人工渗透测试的过程信息,保存渗透测试过程中的3个记录元组<o1,o2>、<o3,o4>、<o4,o5>,其中o1表示目标信息,o2表示扫描工具,o3表示漏洞信息,o4表示攻击策略,o5表示攻击工具;所有记录元组组成一个记录数据库,同时,对人工渗透测试已收集到的漏洞信息进行规格化处理,整理以下字段:漏洞描述、漏洞类型、漏洞触发条件、漏洞危害,形成应用级通用漏洞信息数据库;
步骤1-2,在大量人工渗透的训练数据的基础上,将这3个记录元组作为训练集,通过Apriori关联规则挖掘算法,可分别获得不同元组对应的支持度和置信度,统一表示为权重,对权重设置阈值,判定大于阈值的元组才是有意义的。本自动化安全渗透测试采用关联规则挖掘算法是Apriori算法,使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,即“k-1项集”用于搜索“k项集”:
通过扫描所有记录元组数据库,找出所有的频繁1项集,该集合记做L1,利用L1找频繁2项集的集合L2,如此下去,直到不能再找到任何频繁k项集Lk,在所有的频繁集中找出强规则,即产生权重大于阈值的关联规则,找每个频繁项集都需要一次记录元组数据库扫描。算法核心思想是:连接步和剪枝步。连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从候选集中删除。
最终获得如下响应关系:
目标-扫描工具:
a目标-b1扫描工具-权重0.8,
a目标-b2扫描工具-权重0.15;
漏洞-策略:
c漏洞-d策略-权重0.4;
策略-攻击工具:
d策略-e攻击工具-权重0.8;
其中,响应关系的权重表示采取这种响应的优先级,a,b1,b2,c,d,e依次序分别表示需扫描的目标系统、一种漏洞扫描工具、一种与之前不同的扫描工具、一种攻击策略以及一种漏洞攻击工具,符号-表示响应关系,并表示-连接的前后2项具有关联性,权重是对他们关联性的衡量;
步骤1-3,将模型训练得到的响应关系保存在数据库中,分别构成目标信息与扫描工具响应模型、漏洞信息与攻击策略响应模型和攻击策略与工具响应模型,作为自动化渗透测试的依据。
步骤2包括如下步骤:
步骤2-1,扫描目标信息系统网段内的主机,通过扫描得到信息系统拓扑结构和主机状态,以及初步获取主机的操作系统的版本信息。
步骤2-2,根据白帽子提供的信息,选择渗透测试目标主机并配置参数,包括运行环境、操作系统版本等。
步骤2-3,深入扫描主机的详细信息,包括操作系统类型和具体版本、中间件类型和具体版本、IP地址和MAC地址、系统运行的网络服务、开放的网络端口等具体信息。
步骤2-4,通常经过步骤2-3获得的主机信息由于操作系统及中间件版本差异,得到的具体信息表示格式和内容会有所不同,将获取的目标信息系统或主机信息经过数据分析,对涉及域名和IP地址进行关键字匹配或相似度计算,提取上述字段进行预处理,按字段规格化,整合处理后储存到数据库中。
步骤3包括如下步骤:
步骤3-1,分析步骤2-4得到的目标信息系统和主机信息,从目标信息与扫描工具响应模型中调用响应关系中权重最大的工具扫描目标信息系统漏洞。
步骤3-2,对比公开的CVE(Common Vulnerabilities and Exposures)漏洞库和人工渗透过程中建立的通用漏洞信息数据库,提取漏洞公开的描述、漏洞类型、载体信息、漏洞触发条件、漏洞危害等信息。
步骤3-3,将扫描整合的步骤3-2中所述漏洞信息按照相应的字段进行处理后形成一条漏洞信息,根据持续获得的漏洞信息,形成完整漏洞信息表。
步骤4包括如下步骤:
步骤4-1,分析主机、WEB应用、数据库、网络设备、相似IP或域名和漏洞信息,解析能够进行攻击利用的目标信息,包括目标IP地址、系统端口号等攻击入口信息及漏洞类型、漏洞载体、触发条件等攻击利用信息。
步骤4-2,判断是否有能够进行攻击利用的漏洞,若有漏洞,转步骤4-2;若无漏洞,结束。
步骤4-3,查找攻击策略库是否有相关漏洞,在大量收集历史渗透测试数据的基础上,正常情况下可以认为系统已包含现阶段全量漏洞信息和攻击策略。但是对于训练集中没有出现过的新项目,这种一般可以认为是新型漏洞,只能以人工渗透为主,只有在有稳定漏洞测试过程后加入对应模型。若没有漏洞记录相关策略,则有测试人员根据经验自主制定攻击策略,包括攻击目标、攻击途径、工具脚本调用、预期结果等内容,形成人工渗透测试;若有相关漏洞,从漏洞信息与攻击策略响应模型中调用优先级最高的攻击策略,执行步骤4-4。
步骤4-4,从攻击策略与攻击工具响应模型中调用权重最大的工具,按照生成的响应关系,优先选择权重最高的攻击工具;
步骤4-5,按照攻击策略的执行步骤,运行工具执行渗透测试,不断尝试执行攻击直到攻击成功返回预期的结果并记录相关结果。当调用的某攻击工具没有攻击成功时,则会回到步骤4-4,调用优先级低一位的攻击工具,当攻击工具尝试次数达到设定的阈值时,例如按照当前权重排名第一策略,使用3种不同攻击工具,都没有攻击成功时,回到步骤4-3,调用优先级低一位的攻击策略并继续下一步攻击工具选择,以此类推,当攻击策略尝试次数达到阈值时,会提示由测试人员根据经验自主制定攻击策略,包括攻击目标、攻击途径、工具脚本调用、预期结果等内容,形成人工渗透测试。
步骤6包括:每次通过该自动化响应模型进行渗透的新数据则会组成一个新测试集,用来验证形成的对应模型的准确率并加以调整。在有新的自动化或人工渗透数据增加时,根据步骤4-5的攻击尝试次数、结果或成功率,调整对应模型权重或系数,从而改变优先级高的响应关系,使整个系统更加智能化。
有益效果:与现有的技术相比,本发明具有如下优点:
(1)综合考虑了渗透测试过程中人工和自动化相结合的测试方法,充分利用现有安全性分析工具,设计自动化渗透测试模块并封装各类工具,实现了工具的自动调用和执行,提高了渗透测试过程的完整性和准确性。
(2)实现对不同模块间数据的交换利用,自动化分析整理安全性分析工具的结果输出,减少了测试人员手动调用工具、人工分析结果数据的时间花费和劳动力消耗,提高了渗透测似的效率和自动化程度。
(3)通过持续收集人工渗透的过程数据,产生响应模型训练集,实现人工渗透测试向自动化转移。并且攻击策略库、攻击工具库和其他自动化响应模型都具备自学习功能,可以自适应地学习和更新响应模型的优先级,会随着长期使用更新趋向于全自动安全渗透测试。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1为本发明的流程示意图。
图2为本发明的渗透方式示意图。
图3为本发明的渗透攻击流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1、图2和图3所示,本发明方法采用脚本语言Ruby开发,采用标准接口,可以和其他安全系统对接(Nessus、Nexpose、Appscan、WVS等)。本发明支持人工和自动化相结合的渗透方法,覆盖常见的渗透测试方式,可以对网络、WEB应用、数据库、网络设备、移动终端等进行渗透测试。本发明所有功能都是模式化式开发,支持多用户、多任务操作,可以满足不同的渗透测试需求,具体流程如下:
步骤0:自动化响应模型训练,建立对应模型。
步骤0.1:通过众测或其他方式,持续收集人工渗透测试的过程信息,保存渗透测试过程中的<目标信息,扫描工具>、<漏洞信息,攻击策略>、<攻击策略,攻击工具>。
步骤0.2:在大量人工渗透的训练数据的基础上,将这3个记录元组作为训练集,通过关联规则或特征选择分析,可分别获得不同元组对应的支持度和置信度,统一表示为权重,对权重设置阈值,认为大于阈值的元组才是有意义的。那么可以获得如下响应关系:
目标-扫描工具:
a目标-b1扫描工具-权重0.8,
a目标-b2扫描工具-权重0.15;
漏洞-策略:
c漏洞-d策略-权重0.4;
策略-攻击工具:
d策略-e攻击工具-权重0.8;
其中,响应关系的权重可看成采取这种响应的优先级。a,b1,b2,c,d,e依次序分别表示需扫描的目标系统、一种漏洞扫描工具、一种与之前不同的扫描工具、一种攻击策略以及一种漏洞攻击工具,符号-表示响应关系,并表示-连接的前后2项具有关联性,权重是对他们关联性的衡量;
步骤0.3:将训练结果保存数据库,分别构成目标信息与扫描工具响应模型、漏洞信息与攻击策略响应模型和攻击策略与工具响应模型,作为自动化渗透测试的依据。
步骤1:扫描目标信息系统,获取主机信息。
步骤1.1:扫描目标信息系统网段内的主机,通过扫描得到信息系统拓扑结构和主机状态,以及初步获取主机的操作系统的版本信息。
步骤1.2:根据白帽子提供的信息,选择渗透测试目标主机并配置参数。
步骤1.3:深入扫描主机的详细信息,包括操作系统类型和具体版本、IP地址和MAC地址、系统运行的网络服务、开放的网络端口等具体信息。
步骤1.4:将获取的目标系统和主机信息经过数据分析、数据提取、整合等处理后储存到数据库中。
步骤2:扫描目标信息系统漏洞,获取系统漏洞信息。
步骤2.1:分析步骤1.4得到的目标信息,从目标信息与扫描工具响应模型中调用优先级最高的工具扫描目标信息系统漏洞。
步骤2.2:对比公开的CVE(Common Vulnerabilities and Exposures)漏洞库和人工渗透过程中建立的通用型漏洞信息数据库,提取漏洞公开的描述、漏洞类型、载体信息、漏洞触发条件、漏洞危害等信息。
步骤2.3:将扫描整合的漏洞基本信息按照相应的字段进行处理后保存到漏洞信息表。
步骤3:根据步骤1和步骤2获取的主机和漏洞信息,结合攻击策略库建立攻击模型,根据攻击模型对目标系统尝试攻击,获取攻击反馈结果。
步骤3.1:分析主机和漏洞信息,解析可进行攻击利用的目标信息,包括目标IP地址、系统端口号等攻击入口信息及漏洞类型、漏洞载体、触发条件等攻击利用信息。
步骤3.2:判断是否有可以进行攻击利用的漏洞,若有漏洞,转下一步;若无漏洞,结束。
步骤3.3:查找攻击策略库是否有相关漏洞,在大量收集历史渗透测试数据的基础上,正常情况下可以认为系统已包含现阶段全量漏洞信息和攻击策略。但是对于训练集中没有出现过的新项目,这种一般可以认为是新型漏洞,只能以人工渗透为主,只有在有稳定漏洞测试过程后加入对应模型。若没有漏洞记录相关策略,则有测试人员根据经验自主制定攻击策略,包括攻击目标、攻击途径、工具脚本调用、预期结果等内容,形成人工渗透测试;若有相关漏洞,从漏洞信息与攻击策略响应模型中调用优先级最高的攻击策略,转下一步。
步骤3.4:从攻击策略与攻击工具响应模型中调用优先级最高的工具,转下一步。
步骤3.5:按照策略的执行步骤,运行工具执行渗透测试,不断尝试执行攻击直到攻击成功返回预期的结果并记录相关结果。当调用的某攻击工具没有攻击成功时,则会回到步骤3.4,调用优先级低一位的攻击工具,当攻击工具尝试次数达到设定的阈值时,回到步骤3.3,调用优先级低一位的攻击策略并继续下一步攻击工具选择,以此类推,当攻击策略尝试次数达到阈值时,会提示由测试人员根据经验自主制定攻击策略,包括攻击目标、攻击途径、工具脚本调用、预期结果等内容,形成人工渗透测试。
步骤4:综合分析渗透测试过程,梳理测试步骤、使用的工具等内容,生成渗透测试报告。测试报告将详细记录目标系统存在的安全漏洞信息并提出脆弱性修复的解决方案。
步骤5:响应模型自适应更新,各模型元组响应策略会自动调整。每次通过该系统进行渗透的新数据则会组成一个测试集,用来验证形成的对应模型的准确率并加以调整。在有新的自动化或人工渗透数据增加时,根据步骤3.5的攻击尝试次数、结果或成功率,调整对应模型权重或系数,从而改变优先级高的响应关系,使整个系统更加智能化。
自动化响应模型训练,建立对应模型的算法是基于Apriori算法的关联规则挖掘算法,介绍算法流程之前,先对该算法预备知识进行概述:
关联规则是数据挖掘领域中的一个非常重要的研究课题,广泛应用于各个领域,既可以检验行业内长期形成的知识模式,也能够发现隐藏的新规律。而Apriori算法是关联规则挖掘中的一个重要的无监督学习算法,其中的数据并不被标识,学习模型是为了推断出数据的一些内在结构。
在数据挖掘当中,通常用“支持度”(support)和“置信度”(confidence)两个概念来量化事物之间的关联规则。它们分别反映所发现规则的有用性和确定性。
关联规则A->B的支持度support=P(AB),指的是事件A和事件B同时发生的概率。
置信度confidence=P(B|A)=P(AB)/P(A),指的是发生事件A的基础上发生事件B的概率。
例如一条漏洞,攻击策略与攻击工具的关联规则:
SQL注入,枚举数据库名—>sqlmap,其中support=2%,confidence=80%
表示的意思是所有的渗透测试记录中,有2%的渗透测试者提交的过程是:发现SQL注入漏洞,采用枚举数据库名策略,且采用sqlmap工具进行渗透;并且发现SQL注入漏洞,采用枚举数据库名策略的情况下,有80%的渗透者使用了sqlmap工具。在关联规则的挖掘过程中,通常会设定最小支持度阈值和最小置性度阈值,如果某条关联规则满足最小支持度阈值和最小置性度阈值,则认为该规则可以给用户带来感兴趣的信息。
如果事件A中包含k个元素,那么称这个事件A为k项集,并且事件A满足最小支持度阈值的事件称为频繁k项集。
Apriori算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,即“k-1项集”用于搜索“k项集”。
首先,通过扫描所有记录,找出所有的频繁1项集,该集合记做L1,然后利用L1找频繁2项集的集合L2,L2找L3,如此下去,直到不能再找到任何频繁k项集。最后再在所有的频繁集中找出强规则,即产生有用的关联规则。找每个Lk都需要一次数据库扫描。
算法核心思想是:连接步和剪枝步。连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从候选集中删除。
具体的说,
1、发现频繁项集,过程为:
(1)扫描
(2)计数
(3)比较
(4)产生频繁项集
(5)连接、剪枝,产生候选项集
2、重复步骤(1)~(5)直到不能发现更大的频繁项集。
3、由频繁项集产生关联规则
采用本发明所述的方法进行信息系统渗透可获得比传统方法更多的漏洞信息,最重要的是在漏洞测试的效率方面有大幅度的提高,主要是由于本方法对各类攻击工具进行封装,集中管理和调用,并对不同工具的数据格式进行统一,实现不同工具间数据自主交互,减少了人工干预的影响,提高了测试效率。本方法能实现对不同信息系统进行渗透测试,并能对渗透目标进行快速、准确、详细的评估,使渗透测试更加智能化。
本发明提供了一种自动化安全渗透测试方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (5)

1.一种自动化安全渗透测试方法,其特征在于,包括如下步骤:
步骤1,自动化响应模型训练,建立对应模型生成攻击策略库;
步骤2,扫描目标信息系统,获取主机信息;
步骤3,扫描目标信息系统漏洞,获取漏洞信息;
步骤4,根据步骤2和步骤3获取的主机信息和漏洞信息,结合攻击策略库建立攻击模型,根据攻击模型对目标信息系统尝试攻击,获取攻击反馈结果;
步骤5,对渗透测试全过程进行综合分析,生成渗透测试报告并梳理测试步骤及中间结果,并对系统安全性进行分析,根据渗透过程和结果,结合渗透测试发现的漏洞及采用的解决方案生成报告性文件,提供相关解决方案;
步骤6,响应模型自适应更新,调整响应策略;
步骤1包括如下步骤:
步骤1-1,收集人工渗透测试的过程信息,保存渗透测试过程中的3个记录元组<o1,o2>、<o3,o4>、<o4,o5>,其中o1表示目标信息,o2表示扫描工具,o3表示漏洞信息,o4表示攻击策略,o5表示攻击工具,所有记录元组组成一个记录数据库,同时,对人工渗透测试已收集到的漏洞信息进行规格化处理,整理以下字段:漏洞描述、漏洞类型、漏洞触发条件、漏洞危害,形成应用级通用漏洞信息数据库;
步骤1-2,将3个记录元组作为训练集,通过Apriori关联规则挖掘算法,分别获得不同元组对应的支持度和置信度,统一表示为权重,对权重设置阈值,判定大于阈值的元组是有意义的:
通过扫描所有记录元组数据库,找出所有的频繁1项集,该集合记做L1,利用L1找频繁2项集的集合L2,如此下去,直到不能再找到任何频繁k项集Lk,在所有的频繁集中找出强规则,即产生权重大于阈值的关联规则,最终获得如下响应关系:
目标-扫描工具:
a目标-b1扫描工具-权重0.8,
a目标-b2扫描工具-权重0.15;
漏洞-策略:
c漏洞-d策略-权重0.4;
策略-攻击工具:
d策略-e攻击工具-权重0.8;
其中,响应关系的权重表示采取这种响应的优先级,a,b1,b2,c,d,e依次序分别表示需扫描的目标系统、一种漏洞扫描工具、一种与之前不同的扫描工具、漏洞、一种攻击策略以及一种漏洞攻击工具,符号-表示响应关系,并表示-连接的前后2项具有关联性,权重是对他们关联性的衡量;
步骤1-3,将模型训练得到的响应关系保存在数据库中,分别构成目标信息与扫描工具响应模型、漏洞信息与攻击策略响应模型和攻击策略与工具响应模型。
2.根据权利要求1所述的方法,其特征在于,步骤2包括如下步骤:
步骤2-1,扫描目标信息系统网段内的主机,通过扫描得到信息系统拓扑结构和主机状态,获取主机的操作系统的版本信息;
步骤2-2,选择渗透测试目标主机并配置参数,包括运行环境、操作系统版本;
步骤2-3,深入扫描主机信息,包括操作系统类型和具体版本、中间件类型和具体版本、IP地址和MAC地址、系统运行的网络服务、开放的网络端口;
步骤2-4,将获取的目标信息系统或主机信息经过数据分析,对涉及域名和IP地址进行关键字匹配或相似度计算,提取上述字段进行预处理,按字段规格化,整合处理后储存到数据库中。
3.根据权利要求2所述的方法,其特征在于,步骤3包括如下步骤:
步骤3-1,分析步骤2-4得到的目标信息系统和主机信息,从目标信息与扫描工具响应模型中调用响应关系中权重最大的工具扫描目标信息系统漏洞;
步骤3-2,对比公开的CVE漏洞库和人工渗透过程中建立的通用漏洞信息数据库,提取漏洞公开的描述、漏洞类型、载体信息、漏洞触发条件、漏洞危害信息;
步骤3-3,将扫描整合的步骤3-2中所述漏洞信息按照相应的字段进行处理后形成一条漏洞信息,根据持续获得的漏洞信息,形成完整漏洞信息表。
4.根据权利要求3所述的方法,其特征在于,步骤4包括如下步骤:
步骤4-1,分析主机、WEB应用、数据库、网络设备、相似IP或域名和漏洞信息,解析能够进行攻击利用的目标信息,包括攻击入口信息和攻击利用信息,攻击入口信息包括目标IP地址和系统端口号,攻击利用信息包括漏洞类型、漏洞载体和触发条件;
步骤4-2,判断是否有能够进行攻击利用的漏洞,若有漏洞,转步骤4-3;若无漏洞,结束;
步骤4-3,查找攻击策略库是否有相关漏洞,若没有漏洞记录相关策略,则自主制定攻击策略,包括攻击目标、攻击途径、工具脚本调用、预期结果,形成人工渗透测试;若有相关漏洞,从漏洞信息与攻击策略响应模型中调用优先级最高的攻击策略,执行步骤4-4;
步骤4-4,从攻击策略与攻击工具响应模型中调用权重最大的工具,按照生成的响应关系,优先选择权重最高的攻击工具;
步骤4-5,按照攻击策略的执行步骤,运行工具执行渗透测试,不断尝试执行攻击直到攻击成功返回预期的结果并记录相关结果;当调用的攻击工具没有攻击成功时,则返回步骤4-4,调用优先级低一位的攻击工具,当攻击工具尝试次数达到设定的阈值,返回步骤4-3,调用优先级低一位的攻击策略并继续下一步攻击工具选择,当攻击策略尝试次数达到设定的阈值时,由测试人员根据经验自主制定攻击策略,形成人工渗透测试。
5.根据权利要求4所述的方法,其特征在于,步骤6包括:每次通过该自动化响应模型进行渗透的新数据组成一个新测试集,用来验证形成的对应模型的准确率并加以调整,在有新的自动化或人工渗透数据增加时,根据步骤4-5的攻击尝试次数、结果或成功率,调整对应模型权重或系数。
CN201710650674.XA 2017-08-02 2017-08-02 一种自动化安全渗透测试方法 Active CN107426227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710650674.XA CN107426227B (zh) 2017-08-02 2017-08-02 一种自动化安全渗透测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710650674.XA CN107426227B (zh) 2017-08-02 2017-08-02 一种自动化安全渗透测试方法

Publications (2)

Publication Number Publication Date
CN107426227A CN107426227A (zh) 2017-12-01
CN107426227B true CN107426227B (zh) 2019-09-10

Family

ID=60437347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710650674.XA Active CN107426227B (zh) 2017-08-02 2017-08-02 一种自动化安全渗透测试方法

Country Status (1)

Country Link
CN (1) CN107426227B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110880983A (zh) * 2019-08-14 2020-03-13 奇安信科技集团股份有限公司 基于场景的渗透测试方法及装置、存储介质、电子装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019127550A1 (en) * 2017-12-29 2019-07-04 Shenzhen United Imaging Healthcare Co., Ltd. Systems and methods for selecting a scanning device for an object
CN108287709B (zh) * 2018-01-05 2020-06-19 浙江大学 一种集成攻击算法库的图数据隐私安全检测系统及检测方法
CN109284611B (zh) * 2018-09-20 2021-05-18 北京计算机技术及应用研究所 基于Metasploit框架的测试系统及实现网络安全性测试的方法
CN109120643B (zh) * 2018-10-11 2020-11-20 北京知道创宇信息技术股份有限公司 渗透测试方法及装置
CN109726011A (zh) * 2018-12-26 2019-05-07 广州云趣信息科技有限公司 一种基于嵌入式人工智能的网络安全测试系统及实现方法
CN109861987A (zh) * 2019-01-02 2019-06-07 广州大学 自动化渗透测试系统、方法及机器人
US11252173B2 (en) 2019-06-28 2022-02-15 Keysight Technologies, Inc. Cybersecurity penetration test platform
CN110717184A (zh) * 2019-09-27 2020-01-21 北京计算机技术及应用研究所 一种分布式安全测试系统
CN110837644B (zh) * 2019-10-15 2021-07-30 深圳开源互联网安全技术有限公司 一种系统渗透测试方法、装置及终端设备
CN110968873A (zh) * 2019-11-22 2020-04-07 上海交通大学 一种基于人工智能的自动化渗透测试的系统和方法
CN110851841B (zh) * 2019-11-26 2022-05-17 西安四叶草信息技术有限公司 渗透测试方法、设备及存储介质
CN111049827A (zh) * 2019-12-12 2020-04-21 杭州安恒信息技术股份有限公司 一种网络系统安全防护方法、装置及其相关设备
CN111193738A (zh) * 2019-12-30 2020-05-22 南京联成科技发展股份有限公司 一种工业控制系统的入侵检测方法
CN111310194A (zh) * 2020-02-14 2020-06-19 全球能源互联网研究院有限公司 一种漏洞渗透验证方法及装置
CN111431878A (zh) * 2020-03-16 2020-07-17 武汉猎鹰网安科技有限公司 网络安全渗透测试系统
CN111488586B (zh) * 2020-04-17 2023-08-11 北京墨云科技有限公司 一种基于ai的自动化渗透测试系统的后渗透方法
CN111581645B (zh) * 2020-04-17 2023-08-15 北京墨云科技有限公司 一种基于ai的自动化渗透测试系统的迭代攻击方法
CN111475818B (zh) * 2020-04-17 2023-08-11 北京墨云科技有限公司 一种基于ai的自动化渗透测试系统的渗透攻击方法
CN111817908B (zh) * 2020-05-25 2021-09-24 北京华云安信息技术有限公司 基于强化学习的节点渗透测试方法、设备和存储介质
CN112511497A (zh) * 2020-11-06 2021-03-16 中国人寿保险股份有限公司 模拟攻击场景记录方法、装置和电子设备
CN113225347A (zh) * 2021-05-12 2021-08-06 杨必 一种基于模拟攻击策略的网络安全防护系统与算法
CN114679291B (zh) * 2021-05-31 2024-04-09 北京网藤科技有限公司 一种用于工业网络入侵监测的系统
CN115442059B (zh) * 2021-06-03 2023-12-19 中国移动通信集团四川有限公司 一种渗透测试方法、装置及电子设备
CN113792296B (zh) * 2021-08-24 2023-05-30 中国电子科技集团公司第三十研究所 一种基于聚类的漏洞组合方法及系统
CN114070632B (zh) * 2021-11-18 2024-01-26 安天科技集团股份有限公司 一种自动化渗透测试方法、装置及电子设备
CN114205123A (zh) * 2021-11-20 2022-03-18 湖北天融信网络安全技术有限公司 基于攻防对抗的威胁狩猎方法、装置、设备及存储介质
CN114329448A (zh) * 2021-12-15 2022-04-12 安天科技集团股份有限公司 一种系统安全检测方法、装置、电子设备及存储介质
CN114726601B (zh) * 2022-03-28 2023-06-02 北京计算机技术及应用研究所 一种基于图结构的信息安全仿真建模与验证评估方法
CN114760148B (zh) * 2022-06-10 2022-09-20 北京航天驭星科技有限公司 一种渗透测试方法、平台、电子设备及存储介质
CN115664787A (zh) * 2022-10-24 2023-01-31 惠州市德赛西威智能交通技术研究院有限公司 一种汽车网络漏洞防护方法、系统、终端设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610174A (zh) * 2009-07-24 2009-12-23 深圳市永达电子股份有限公司 一种日志关联分析系统与方法
CN101853277A (zh) * 2010-05-14 2010-10-06 南京信息工程大学 一种基于分类和关联分析的漏洞数据挖掘方法
CN102468985A (zh) * 2010-11-01 2012-05-23 北京神州绿盟信息安全科技股份有限公司 针对网络安全设备进行渗透测试的方法和系统
CN103400077A (zh) * 2013-08-01 2013-11-20 广州大学 一种基于BackTrack的渗透测试方法
CN103532793A (zh) * 2013-10-28 2014-01-22 中国航天科工集团第二研究院七〇六所 一种信息系统安全性自动化渗透测试方法
CN104200167A (zh) * 2014-08-05 2014-12-10 杭州安恒信息技术有限公司 自动化渗透测试方法及系统
CN104348652A (zh) * 2013-08-06 2015-02-11 南京理工大学常熟研究院有限公司 基于关联分析的系统安全评估方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610174A (zh) * 2009-07-24 2009-12-23 深圳市永达电子股份有限公司 一种日志关联分析系统与方法
CN101853277A (zh) * 2010-05-14 2010-10-06 南京信息工程大学 一种基于分类和关联分析的漏洞数据挖掘方法
CN102468985A (zh) * 2010-11-01 2012-05-23 北京神州绿盟信息安全科技股份有限公司 针对网络安全设备进行渗透测试的方法和系统
CN103400077A (zh) * 2013-08-01 2013-11-20 广州大学 一种基于BackTrack的渗透测试方法
CN104348652A (zh) * 2013-08-06 2015-02-11 南京理工大学常熟研究院有限公司 基于关联分析的系统安全评估方法和装置
CN103532793A (zh) * 2013-10-28 2014-01-22 中国航天科工集团第二研究院七〇六所 一种信息系统安全性自动化渗透测试方法
CN104200167A (zh) * 2014-08-05 2014-12-10 杭州安恒信息技术有限公司 自动化渗透测试方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110880983A (zh) * 2019-08-14 2020-03-13 奇安信科技集团股份有限公司 基于场景的渗透测试方法及装置、存储介质、电子装置

Also Published As

Publication number Publication date
CN107426227A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107426227B (zh) 一种自动化安全渗透测试方法
CN109325351B (zh) 一种基于众测平台的安全漏洞自动化验证系统
CN109302380B (zh) 一种安全防护设备联动防御策略智能决策方法及系统
US11003773B1 (en) System and method for automatically generating malware detection rule recommendations
CN105721427B (zh) 一种从Web日志中挖掘攻击频繁序列模式的方法
CN110221977B (zh) 基于ai的网站渗透测试方法
CN112269316B (zh) 一种基于图神经网络的高鲁棒性威胁狩猎系统与方法
CN103368976A (zh) 一种基于攻击图邻接矩阵的网络安全评估装置
CN101017458A (zh) 基于源代码静态分析的软件安全代码分析器及其检测方法
CN113158197B (zh) 一种基于主动iast的sql注入漏洞检测方法、系统
CN110392013A (zh) 一种基于网络流量分类的恶意软件识别方法、系统及电子设备
CN104378255B (zh) web恶意用户的检测方法及装置
CN109257393A (zh) 基于机器学习的xss攻击防御方法及装置
Grill et al. Malware detection using http user-agent discrepancy identification
CN109391624A (zh) 一种基于机器学习的终端接入数据异常检测方法及装置
Lv et al. Adaptive random testing for XSS vulnerability
CN109583056A (zh) 一种基于仿真平台的网络攻防工具效能评估方法及系统
CN108965251A (zh) 一种云端结合的安全手机防护系统
CN105243328A (zh) 一种基于行为特征的摆渡木马防御方法
CN108040036A (zh) 一种行业云Webshell安全防护方法
CN108182360A (zh) 一种风险识别方法及其设备、存储介质、电子设备
CN112165498B (zh) 一种渗透测试的智能决策方法及装置
CN102437936A (zh) 基于双过滤机制的高速网络僵尸报文的检测方法
Baiardi et al. A scenario method to automatically assess ict risk
CN110177113A (zh) 互联网防护系统及访问请求处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: No. 58, Nanxi River East Street, Nanjing, Jiangsu Province

Applicant after: Zhong Tong clothing consulting and Design Research Institute Co., Ltd.

Address before: 210019 No. 58 East Street, Nanxi River, Jianye District, Nanjing, Jiangsu

Applicant before: Jiangsu Posts & Telecommunications Planning and Designing Institute Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant