一种基于AI的自动化渗透测试系统的数据收集方法与流程

文档序号:21695982发布日期:2020-07-31 22:35阅读:4740来源:国知局
一种基于AI的自动化渗透测试系统的数据收集方法与流程

本发明涉及网络数据安全技术领域,具体涉及一种基于ai的自动化渗透测试方法。



背景技术:

渗透测试(penetrationtest)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全作深入的探测,发现系统最脆弱的环节,发现复杂、相互关联的安全问题、更深层次的弱点,并将入侵的过程和细节产生报告给用户。渗透测试工作流程主要分为三个阶段:预攻击阶段、攻击阶段、后攻击阶段。预攻击阶段:目的是进行信息收集工作。一般通过基本网络信息的获取、常规漏洞扫描等工具对目标进行检测、分析来获取信息。攻击阶段:目的是对目标进行攻击,获取系统的一定权限。一般通过基于通用设备、数据库、操作系统和应用的攻击,口令猜解技术等方式来完成。后攻击阶段:目的是对目标维持一定的权限,并进行横向渗透。一般来说,可以通过提权、口令破解、跳板攻击等手法来达到目的。

目前,渗透测试工作一般有以下两种方式:

(1)人工服务方式。由富有经验的安全工程师,凭借人工经验,利用网络安全扫描器、专用安全测试工具对网络中操作系统、网络设备、应用系统等进行非破坏性质的模拟攻击。但需要投入的人力资源较大,对测试者的专业技能要求较高,渗透测试报告的价值直接依赖于测试者的专业技能,无法提供标准化渗透测试服务;同时,渗透测试服务人员短缺问题一直长期存在。

(2)自动化工具方式。使用metasploitframework(简称msf)等漏洞利用框架,虽然通过渗透测试任务配置向导,建立一个测试任务。自动化工具会自动收集目标网络信息,根据目标指纹选取匹配的攻击组件对目标执行攻击,然后基于测试结果输出渗透测试报告。但其渗透测试对象有局限,不支持情报信息识别和提取,对于web应用系统无法检测出相关风险,不支持迭代攻击,不支持基于实际业务风险进行漏洞风险优先级排名等问题,要发挥其能力仍然需要具备相当经验的渗透测试人员操作使用。



技术实现要素:

本发明是为了解决现有技术中渗透测试在使用人工服务和自动化工具时存在的上述技术问题,提供一种基于ai的自动化渗透测试系统的数据收集方法,能够提供信息搜集决策支持,提高数据收集的效率和准确性。

本发明提供一种基于ai的自动化渗透测试系统的数据收集方法,包括以下步骤:

s1、渗透测试任务设定:包括设定渗透目标、参数、是否自动跳板攻击,并启动任务;

s2、决策大脑模块判断渗透测试任务的类型,当设定的目标为ip地址或ip地址段时进入步骤s3,当设定的目标为url或域名时进入步骤s4;

s3、决策大脑模块生成驱动指令并传送至信息收集模块,信息收集模块根据驱动指令对网络目标的端口和服务进行扫描,检测所有可能的web应用入口,进入步骤s5;

s4、决策大脑模块生成驱动指令并传送至信息收集模块,信息收集模块反查所述网络目标的ip地址,并对网络目标的端口和服务进行扫描,检测所有可能的web应用入口,进入步骤s5;

s5、当存在url或域名入口时,决策大脑模块生成驱动指令并将驱动指令传送至爬虫模块,爬虫模块根据驱动指令进行全量url爬取和页面html代码内容爬取,并将爬取数据传送至专项智能模块;

s6、专项智能模块对页面html代码进行情报识别与提取,为爆破模块和渗透攻击模块提供情报数据;

s7、当存在域名时,决策大脑模块生成驱动指令并将驱动指令传送至爆破模块,爆破模块根据驱动指令、情报数据和域名字典进行子域名爆破,将数据传送至漏洞扫描模块;

s8、当存在url路径时,决策大脑模块生成驱动指令并将驱动指令传送至爆破模块,爆破模块根据驱动指令、情报数据和url路径字典进行url路径爆破,将数据传送至漏洞扫描模块;

s9、当存在smb、rlogin、rdp、ftp、telnet、ssh、snmp、数据库服务、管理后台和webshell等访问入口时,决策大脑模块生成驱动指令并将驱动指令传送至爆破模块,爆破模块根据驱动指令、情报数据和弱口令字典进行弱口令爆破,若当登录页面存在一次性验证码时,图灵对抗模块对验证码进行识别和自动填写,将数据传送至漏洞扫描模块;

s10、漏洞扫描模块对目标ip、域名或url进行系统漏洞扫描、web应用漏洞扫描和安全配置扫描,生成漏洞信息并将漏洞信息传送至人工智能模块。

本发明所述的一种基于ai的自动化渗透测试系统的数据收集方法,作为优选方式,基于ai的自动化渗透测试系统包括:

信息收集模块:用于对网络目标进行攻击面和情报信息采集,用于分析和生成网络目标存在的漏洞信息,用于将攻击面和情报信息、漏洞信息传送至渗透攻击模块和人工智能模块,用于接收人工智能模块传送的驱动指令;攻击面和情报信息包括ip、域名、旁域、端口、url、api入口路径、数据库链接入口、邮箱地址、姓名、电话号码、被注释掉的路径、后台登录入口、前台登录入口、文件上传入口,服务、操作系统版本、中间件版本、数据库版本、网络设备版本、应用组件版本、应用框架、开发语言、webshell、凭证信息(账号、口令)、弱口令、敏感信息、绝对路径信息;所属漏洞信息包括系统漏洞、web应用漏洞和不安全配置;

渗透攻击模块:用于接收信息收集模块传送的攻击面和情报信息、漏洞信息,用于对漏洞信息进行验证并利用漏洞对网络目标进行攻击,获取网络目标的访问权或信息,并将访问权或信息传送至后渗透模块和人工智能模块,用于接收人工智能模块传送的驱动指令;

后渗透模块:用于接收渗透攻击模块传送的访问权或信息,用于对网络目标进行提权和提取情报信息,用于对网络目标关联网络中的其它对象进行探测和跳板攻击,用于将权限信息和情报信息传送至人工智能模块,用于接收人工智能模块传送的驱动指令;

人工智能模块:用于接收信息收集模块传送的攻击面和情报信息、漏洞信息,用于接收渗透攻击模块传送的网络目标的访问权或信息,用于接收后渗透模块传送的权限信息和情报信息,用于根据攻击面和情报信息、漏洞信息、访问权或信息、权限信息和情报信息生成攻击方法并根据攻击方法生成驱动指令,用于向信息收集模块、渗透攻击模块和后渗透模块发送驱动指令;

漏洞风险优先级重置模块:用于根据漏洞对网络目标造成的实际风险进行风险值计算,根据漏洞的cvss值、漏洞利用是否成功、漏洞利用成功后所造成的风险和基于漏洞的迭代利用最终造成的风险对风险值进行调整,用于根据调整后的风险值对漏洞的危险度进行排序;

渗透测试报告模块:用于根据人工智能模块和漏洞风险优先级重置模块的输出数据生成渗透测试报告。

本发明所述的一种基于ai的自动化渗透系统的数据收集方法,作为优选方式,信息收集模块包括:

爬虫模块:用于针对网络目标的域名或web应用类目标通过广度优先或深度优先策略全量爬取静态页面和动态页面,用于对静态页面和动态页面的html页面代码内容进行识别并分析可以用于攻击的攻击面和情报信息,用于将攻击面和情报信息传送至漏洞扫描模块,用于接收人工智能模块传送的驱动指令;

爆破模块:用于通过子域爆破、url爆破、路径爆破、弱口令爆破和webshell爆破对网络目标的域名、url路径、弱口令和webshell入口进行爆破并获取攻击面和情报信息,用于将攻击面和情报信息传送至漏洞扫描模块,用于接收人工智能模块传送的所述驱动指令;

漏洞扫描模块:用于接收爬虫模块传送的攻击面和情报信息,用于接收爆破模块传送的攻击面和情报信息,用于根据攻击面和情报信息对网络目标进行漏洞扫描并生成漏洞信息,用于将攻击面和情报信息、漏洞信息传送至渗透攻击模块,用于接收人工智能模块传送的驱动指令。

本发明所述的一种基于ai的自动化渗透系统的数据收集方法,作为优选方式,人工智能模块包括:

专家系统模块:用于存储决策知识,用于将决策知识传送至决策大脑模块;

决策大脑模块:用于接收专家系统模块传送的决策知识,用于根据决策知识进行攻击建模,用于接收信息收集模块传送的攻击面和情报信息、漏洞信息,用于接收渗透攻击模块传送的网络目标的访问权或信息,用于接收后渗透模块传送的权限信息和情报信息,用于将攻击面和情报信息、漏洞信息、网络目标的访问权或信息、权限信息和情报信息输入攻击建模生成驱动指令,用于向信息收集模块、渗透攻击模块和后渗透模块发送驱动指令;网络目标的访问权或信息包括目标、系统信息、用户名称和shell远控系统等系统权限、数据库的库表结构信息、遍历目录信息;情报信息包括用户/用户组、密码信息、令牌、敏感信息、和网络信息;

专项智能模块:用于根据不同场景向决策大脑模块提供决策支撑。

决策大脑的攻击建模包括以下过程:

1)确定建模的对象和目的。建模对象为最优攻击动作与影响因素之间的关系。建模的目的是选择在特定影响因素下的最优原子攻击方法。

2)选择影响因素。根据实际渗透测试中获得的经验,最优攻击动作的选择一般与下列因素有关:目标权限,目标漏洞,目标服务,辅助攻击情报(如账号密码),网络过滤规则。

3)收集样本数据。在实际渗透测试中收集到的样本数据。

4)设计神经元网络。该模型为一非线性拟合问题,采用多层前向网络。其中,输入节点数取因素数5,输出层有2个参数,原子攻击方法和成功概率。根据经验公式,隐藏层节点数取输入层的2-3倍,这里取10。对该神经元网络直接采用高级语言进行模拟。

5)神经元网络的训练。选择神经元网络学习方法,并对神经元网络进行训练。这里选择多层神经元网络的经典学习方法——bp算法。利用该学习方法,将样本数据输入神经元网络,逐层计算网络输出,将网络输出与标准的最佳原子攻击集相比较。如果在最佳原子攻击方法集范围内,则结束该样本的训练,进入下一样本的训练。否则反向计算各层误差,然后逐层调整网络全职,使最终输出落入最佳攻击方法集范围。当所有样本训练结束后,整个训练过程结束。

6)模型的验证。输入非训练样本数据,输入神经元网络,比较网络输出与样本理想输出,如果在最佳原子攻击方法集范围内,则接受该模型。否则,需要重新收集样本、重新进行网络设计并重新进行训练,直到获得满意结果为止。

7)模型的应用。经过验证的模型,可运用于实际生产中。具体步骤如下:将各个实测的影响因素输入神经元网络,由神经元网络输出原子攻击方法和成功概率,并由渗透攻击模块执行攻击,以对目标进行有效攻击。

本发明所述的一种基于ai的自动化渗透系统的数据收集方法,作为优选方式,专项智能模块包括:

信息收集决策模块:用于对攻击面和情报信息收集过程进行决策;

图灵对抗模块:用于对web应用系统登录界面中的字符验证码进行识别;

情报识别与提取模块:根据情报信息,识别和提取对攻击有帮助的情报数据;

指纹分析决策模块:当网络目标指纹、版本信息被修改以隐藏系统真实信息时,基于多维指纹信息分析,进行模糊决策,以匹配更多可能使用的攻击组件;

数据解析与攻击载荷生成决策模块:根据攻击目标和网络环境信息,综合决策,拼接和动态调整参数以生成攻击载荷;对于web应用,对url的数据结构进行解释,以生成针对性的漏洞利用和攻击载荷;并根据每次攻击执行后返回的结果,判断攻击是否正确,分析攻击失败的原因,并为下一次攻击载荷生成决策提供依据。

本发明具有以下优点:

(1)与人工服务方式相比

1)以机器人程序模拟黑客可能使用的攻击技术/方法、漏洞发现技术,对系统和网络进行非破坏性质的攻击性测试,实现渗透测试服务标准化,服务水平稳定,不受人的不确定因素的影响;

2)机器人程序内置全面的漏洞验证、漏洞利用组件,全面覆盖web应用、主机、数据库、中间件、网络设备、大数据平台、云计算平台、虚拟化系统、工业控制系统、物联网设备等对象,具备“全域”技术能力,知识面盲点少;

3)机器人程序可以无限复制,复制成本低,不存在人才短缺的缺点;

4)机器人程序可以无限复制,复制成本低,可满足海量it系统的渗透测试的需要;

5)机器人程序可以无限复制,复制成本低,所有系统都可以以更短的间隔周期进行渗透测试,大幅缩减风险暴露窗口;

6)不存在引入外部“人”的安全风险,渗透测试范围和过程可控,渗透测试过程可审计,不存在数据外泄,或者瞒报有价值的安全漏洞等方面的风险,降低第三方安全服务人员依赖。

(2)与现有的自动化工具相比

1)支持全域对象的自动化渗透测试:除了支持对操作系统、网络设备、数据库、中间件等系统对象进行自动化渗透测试;还可以有效支持对于web应用类目标的自动化渗透测试,包括sql注入、上传漏洞等通用类漏洞的渗透测试,产出效果优良;

2)对通过修改目标指纹/版本号刻意隐藏目标真实情况的渗透目标,仍可在增加有限攻击算力的情况下,准确分析其存在的漏洞:提供漏洞利用结果综合评估分析攻击实际效果,当攻击效果达不到预期时,提供指纹分析决策支持,通过对多维指纹信息分析,进行模糊决策,以匹配更多可能适用的验证或者利用组件,进行更全面的漏洞攻击利用,确保目标风险可以被正确识别;

3)支持全面情报信息识别和提取:提供信息搜集决策支持,对攻击面信息搜集过程进行决策,以决定搜集什么信息,怎么搜集;提供情报识别与提取支持,支持从目标识别和提取情报信息,如账号密码信息、邮箱信息、电话号码、姓名、数据库链接入口等,以贴合实际业务环境的情报信息进行渗透测试;

4)自动评估、优化校正和动态生成攻击payload:对于web应用,提供数据解析与攻击载荷生成决策支持,对url的数据结构进行解释,以生成针对性的漏洞利用和攻击载荷;并根据每次攻击执行后返回的结果,评估漏洞利用结果信息,以不断优化调整攻击载荷,提升漏洞利用成功率;

5)支持自动迭代攻击:在对各个漏洞进行单点验证或利用基础上,提供迭代攻击决策支持,支持基于目标的情报信息进行自主规划和决策攻击路径和攻击方法。支持自主基于情报信息和漏洞联合利用,支持自主基于2个或者以上漏洞的联合利用,支持自主利用所获取的信息、权限等进行迭代攻击。可发现复杂、相互关联的安全问题,发现深层次风险;

6)支持基于实际业务风险进行漏洞风险优先级重置:直接根据漏洞对业务系统造成的实际风险进行优先级排序,有效提升安全漏洞修复效率和效用;

7)支持自动化跳板攻击:在获得目标主机权限后,支持基于该主机,自动对关联网络中的其它对象进行探测和跳板攻击,过程不需要人工参与;

8)图灵对抗:自动识别web应用系统登录界面是否存在一次性验证码,如果存在,则自动对验证码进行识别,并自动打码。

附图说明

图1为一种基于ai的自动化渗透测试方法数据收集方法流程图;

图2为一种基于ai的自动化渗透测试系统组成图;

图3为一种基于ai的自动化渗透测试系统信息收集模块组成图;

图4为一种基于ai的自动化渗透测试系统人工智能模块组成图;

图5为一种基于ai的自动化渗透测试系统专项智能模块组成图。

附图标记:

100、信息收集模块;110、爬虫模块;120、爆破模块;130、漏洞扫描模块;200、渗透攻击模块;300、后渗透模块;400、人工智能模块;410、专家系统模块;420、决策大脑模块;430、专项智能模块;431、信息收集决策模块;432、图灵对抗模块;433、情报识别与提取模块;434、指纹分析决策模块;435、数据解析与攻击载荷生成决策模块;500、漏洞风险优先级重置模块;600、渗透测试报告模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例1

如图1所示,本实施例在使用过程中包括以下步骤:

s1、渗透测试任务设定:包括设定渗透目标、参数、是否自动跳板攻击,并启动任务;

s2、决策大脑模块420判断渗透测试任务的类型,当设定的目标为ip地址或ip地址段时进入步骤s3,当设定的目标为url或域名时进入步骤s4;

s3、决策大脑模块420生成驱动指令并传送至信息收集模块100,信息收集模块100根据驱动指令对网络目标的端口和服务进行扫描,检测所有可能的web应用入口,进入步骤s5;

s4、决策大脑模块420生成驱动指令并传送至信息收集模块100,信息收集模块100反查所述网络目标的ip地址,并对网络目标的端口和服务进行扫描,检测所有可能的web应用入口,进入步骤s5;

s5、当存在url或域名入口时,决策大脑模块420生成驱动指令并将驱动指令传送至爬虫模块110,爬虫模块110根据驱动指令进行全量url爬取和页面html代码内容爬取,并将爬取数据传送至专项智能模块430;

s6、专项智能模块430对页面html代码进行情报识别与提取,为爆破模块120和渗透攻击模块200提供情报数据;

s7、当存在域名时,决策大脑模块420生成驱动指令并将驱动指令传送至爆破模块120,爆破模块120根据驱动指令、情报数据和域名字典进行子域名爆破,将数据传送至漏洞扫描模块130;

s8、当存在url路径时,决策大脑模块420生成驱动指令并将驱动指令传送至爆破模块120,爆破模块120根据驱动指令、情报数据和url路径字典进行url路径爆破,将数据传送至漏洞扫描模块130;

s9、当存在smb、rlogin、rdp、ftp、telnet、ssh、snmp、数据库服务、管理后台和webshell等访问入口时,决策大脑模块420生成驱动指令并将驱动指令传送至爆破模块120,爆破模块120根据驱动指令、情报数据和弱口令字典进行弱口令爆破,若当登录页面存在一次性验证码时,图灵对抗模块432对验证码进行识别和自动填写,将数据传送至漏洞扫描模块130;

s10、漏洞扫描模块130对目标ip、域名或url进行系统漏洞扫描、web应用漏洞扫描和安全配置扫描,生成漏洞信息并将漏洞信息传送至人工智能模块400。

如图2所示,一种基于ai的自动化渗透测试系统,包括:

信息收集模块100:用于对网络目标进行攻击面和情报信息采集,用于分析网络目标存在的漏洞临床,用于将攻击面和情报信息、漏洞信息传送至渗透攻击模块200和人工智能模块400,用于接收人工智能模块400传送的驱动指令;攻击面和情报信息包括ip、域名、旁域、端口、url、api入口路径、数据库链接入口、邮箱地址、姓名、电话号码、被注释掉的路径、后台登录入口、前台登录入口、文件上传入口,服务、操作系统版本、中间件版本、数据库版本、网络设备版本、应用组件版本、应用框架、开发语言、webshell、凭证信息(账号、口令)、弱口令、敏感信息、绝对路径信息;漏洞信息包括系统漏洞、web应用漏洞和不安全配置;如图3所示,信息收集模块100包括:

爬虫模块110:用于针对网络目标的域名或web应用类目标通过广度优先或深度优先策略全量爬取静态页面和动态页面,用于对静态页面和动态页面的html页面代码内容进行识别并分析可以用于攻击的攻击面和情报信息,用于将攻击面和情报信息传送至漏洞扫描模块130,用于接收人工智能模块400传送的驱动指令;

爆破模块120:用于通过子域爆破、url爆破、路径爆破、弱口令爆破和webshell爆破对网络目标的域名、url路径、弱口令和webshell入口进行爆破并获取攻击面和情报信息,用于将攻击面和情报信息传送至漏洞扫描模块130,用于接收人工智能模块400传送的所述驱动指令;

漏洞扫描模块130:用于接收爬虫模块100传送的攻击面和情报信息,用于接收爆破模块120传送的攻击面和情报信息,用于根据攻击面和情报信息对网络目标进行漏洞扫描并生成漏洞信息,用于将攻击面和情报信息、漏洞信息传送至渗透攻击模块200,用于接收人工智能模块400传送的驱动指令;

渗透攻击模块200:用于接收信息收集模块100传送的攻击面和情报信息、漏洞信息,用于对漏洞信息进行验证并利用漏洞对网络目标进行攻击,获取网络目标的访问权或信息,并将访问权或信息传送至后渗透模块300和人工智能模块400,用于接收人工智能模块400传送的驱动指令;网络目标的访问权或信息包括权限所在的目标、系统信息、用户名称和shell远控系统等系统权限,数据库的库表结构信息和遍历目录信息;

后渗透模块300:用于接收渗透攻击模块200传送的访问权或信息,用于对网络目标进行提权和提取情报信息,用于对网络目标关联网络中的其它对象进行探测和跳板攻击,用于将权限信息和情报信息传送至人工智能模块400,用于接收人工智能模块400传送的驱动指令,情报信息包括用户/用户组、密码信息、令牌、敏感信息、和网络信息;

人工智能模块400:用于接收信息收集模块100传送的攻击面和情报信息、漏洞信息,用于接收渗透攻击模块200传送的网络目标的访问权或信息,用于接收后渗透模块300传送的权限信息和情报信息,用于根据攻击面和情报信息、漏洞信息、访问权或信息、权限信息和情报信息生成攻击方法并根据攻击方法生成驱动指令,用于向信息收集模块100、渗透攻击模块200和后渗透模块300发送驱动指令;如图4所示,人工智能模块400包括:

专家系统模块410:用于存储决策知识,用于将决策知识传送至决策大脑模块420;

决策大脑模块420:用于接收专家系统模块410传送的决策知识,用于根据决策知识进行攻击建模,用于接收信息收集模块100传送的攻击面和情报信息、漏洞信息,用于接收渗透攻击模块200传送的网络目标的访问权或信息,用于接收后渗透模块300传送的权限信息和情报信息,用于将攻击面和情报信息、漏洞信息、网络目标的访问权或信息、权限信息和情报信息输入攻击建模生成驱动指令,用于向信息收集模块100、渗透攻击模块200和后渗透模块300发送驱动指令;

专项智能模块430:用于根据不同场景向决策大脑模块420提供决策支撑;如图5所示,专项智能模块430包括:

信息收集决策模块431:用于对攻击面和情报信息收集过程进行决策;

图灵对抗模块432:用于对web应用系统登录界面中的字符验证码进行识别;

情报识别与提取模块433:根据情报信息,识别和提取对攻击有帮助的情报数据;

指纹分析决策模块434:当网络目标指纹、版本信息被修改以隐藏系统真实信息时,基于多维指纹信息分析,进行模糊决策,以匹配更多可能使用的攻击组件;

数据解析与攻击载荷生成决策模块435:根据攻击目标和网络环境信息,综合决策,拼接和动态调整参数以生成攻击载荷;对于web应用,对url的数据结构进行解释,以生成针对性的漏洞利用和攻击载荷;并根据每次攻击执行后返回的结果,判断攻击是否正确,分析攻击失败的原因,并为下一次攻击载荷生成决策提供依据;

漏洞风险优先级重置模块500:用于根据漏洞对网络目标造成的实际风险进行风险值计算,根据漏洞的cvss值、漏洞利用是否成功、漏洞利用成功后所造成的风险和基于漏洞的迭代利用最终造成的风险对风险值进行调整,用于根据调整后的风险值对漏洞的危险度进行排序;

渗透测试报告模块600:用于根据人工智能模块400和漏洞风险优先级重置模块500的输出数据生成渗透测试报告。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

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