本发明涉及计算机网络安全领域,尤其涉及一种基于人工智能的自动化渗透测试的系统和方法。
背景技术:
渗透测试(penetrationtesting)是受信任的第三方通过模拟黑客可能使用到的攻击手段和漏洞挖掘技术对目标应用系统及其宿主服务器(如web、数据库、中间件服务器等)进行深度漏洞挖掘,发现系统中存在的漏洞,并进行漏洞可利用性的验证的过程。渗透测试是站在第三者的角度来思考企业系统的安全性。通过渗透测试可以发觉企业潜在却未纰漏的安全性问题。企业可以根据测试的结果对内部系统中的不足以及安全脆弱点进行加固以及改善,从而使企业系统变得更加安全,减低企业的风险。
渗透测试主要分为前期交互、信息收集、威胁建模、漏洞分析、渗透攻击、后渗透攻击、报告生成七个阶段,其中信息收集和渗透攻击往往是最为耗时的两个步骤,也是在自动化实现过程中最需要提高效率的两个方面。
信息收集阶段需要渗透测试人员利用各种搜集技术,尝试获取更多关于目标组织网络拓扑、系统配置、安全防御、端口服务的信息。信息收集是否充分在很大程度上决定了渗透测试的成败,准确的信息收集结果会使得渗透测试的路径选择更为丰富。
渗透攻击阶段需要渗透测试人员根据收集到的目标信息,找到最为合适的漏洞利用方法,从而真正入侵到系统中,获得访问控制权。在漏洞利用过程中,测试人员往往需要充分考虑目标的系统特性来定制渗透攻击,因此该阶段通常需要测试人员的经验支持才能完成。
因此,本领域的技术人员致力于开发一种基于人工智能的自动化渗透测试系统和方法,利用人工智能算法将传统渗透测试中的各个步骤进行自动化的串联,以此来提高渗透测试的效率和准确性。
技术实现要素:
有鉴于现有技术的上述缺陷,本发明以降低渗透测试门槛、提高渗透测试效率为目的,所要解决的技术问题是如何利用人工智能算法将传统渗透测试中的各个步骤进行自动化的串联,从而提高渗透测试的效率和准确性,从而帮助使用者只需输入测试目标的ip地址和一些相关配置即可开始自动化渗透测试。
为实现上述目的,本发明提供了一种基于人工智能的自动化渗透测试系统,所述系统包括以下模块:
信息收集模块,用于对目标系统进行探测,获取所述目标系统的信息;
信息整合模块,用于对获取的所述目标系统的所述信息进行整合提取;
漏洞验证模块,用于验证所述目标系统是否可以被渗透;
报告生成模块,用于自动地生成测试报告,展示渗透测试的结果;
所述信息收集模块与所述信息整合模块连接,所述信息收集模块将获取的所述目标系统的所述信息传递给所述信息整合模块;
所述信息整合模块与所述漏洞验证模块连接,所述信息整合模块将整合后的所述信息传递给所述漏洞验证模块;
所述漏洞验证模块与所述报告生成模块连接,所述漏洞验证模块将验证结果传递给所述报告生成模块。
进一步地,所述信息收集模块包括用nmap系统对所述目标系统进行探测获取所述目标系统的所述信息,并用textcnn模型对探测获得的所述目标系统的所述信息进行识别。
进一步地,所述textcnn模型包括嵌入层、卷积层、池化层和输出层。
进一步地,所述信息整合模块利用metasploit中的search命令搜索exploit模块,或者利用预先建立的字典搜索所述exploit模块。
进一步地,所述漏洞验证模块包括使用基于a3c的强化学习算法选择渗透路径,并使用启发式的方式辅助所述基于a3c的强化学习算法。
进一步地,所述自动化渗透测试系统为一个所述目标系统创建一个任务;所述任务可以多个同时进行。
进一步地,所述目标系统包括网站和主机;所述目标系统的信息包括所述目标系统各个端口的服务与版本号。
本发明还提供了一种基于人工智能的自动化渗透测试方法,所述方法包括以下步骤:
步骤1、信息收集:从客户端获得所述目标系统的ip地址,所述自动化渗透测试系统使用所述nmap系统扫描所述目标系统的主机端口,并使用web爬虫从所述目标系统的主机web端口获取http响应头,同时使用所述textcnn模型以根据所述目标系统的主机响应报文进行识别,获得所述目标系统的信息;
步骤2、信息整合:在完成所述步骤1的所述信息收集后,根据收集到的所述目标系统的端口服务名称以及版本信息,搜索可用的所述exploit模块;
步骤3、漏洞验证:在完成所述步骤2的所述信息整合后,依次对所述目标系统的所述各主机端口和所述各exploit模块进行验证,并在所述漏洞验证过程中,记录所述各exploit模块的验证情况;
步骤4、报告生成:在完成以上三个步骤后,所述自动化渗透测试系统整合所述目标系统的一系列审计信息,包括主机信息和渗透测试结果,进行统计后生成html格式的渗透测试报告,并展示在所述自动化渗透测试系统的web页面前端。
进一步地,在所述步骤2中根据预先建立的所述字典搜索所述exploit模块。
进一步地,在所述步骤3中部署所述基于a3c的强化学习算法,以进行漏洞验证,所述基于a3c的强化学习算法通过测试所述目标系统的主机操作系统、所述exploit模块、端口号、端口服务信息选择payload模块。
本发明所提供的基于人工智能的自动化渗透测试系统和方法,将传统的人工渗透测试的各个环节智能化地串联,通过引入深度学习和强化学习的方法使自动化渗透测试成为可能。本发明也降低了渗透测试的门槛,对于一些中小型企业而言,可以利用自动化渗透测试系统对自己的网络服务进行安全自检,由于整个测试流程的自动化,使用者并不需要经过专业的渗透测试训练也能使用。而对于专业的安全测评师而言,本发明可以替他们省去繁琐的信息收集、漏洞验证等可自动进行的渗透步骤,使之可以专注于业务逻辑漏洞等非系统漏洞问题。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1为本发明所提供的基于人工智能的自动化渗透测试系统整体架构示意图;
图2为本发明针对指纹识别的textcnn网络结构图;
图3为本发明在漏洞验证时采用的a3c强化学习模型示意图;
图4为本发明进行自动化渗透测试的流程示意图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
如图1所示,为本发明所提供的一种基于人工智能的自动化渗透测试系统,包括以下模块:
信息收集模块,用于对目标系统进行探测,获取目标系统的信息;
信息整合模块,用于对获取的目标系统的信息进行整合提取;
漏洞验证模块,用于验证目标系统是否可以被渗透;
报告生成模块,用于自动地生成测试报告,展示渗透测试的结果;
信息收集模块与信息整合模块连接,信息收集模块将获取的目标系统的信息传递给信息整合模块;
信息整合模块与漏洞验证模块连接,信息整合模块将整合后的信息传递给漏洞验证模块;
漏洞验证模块与报告生成模块连接,漏洞验证模块将验证结果传递给报告生成模块。
在最为耗时的信息收集模块和漏洞验证模块部分,本发明结合了深度学习和强化学习的方法进行了效率和准确性上的优化。
可选地,信息收集模块包括用nmap系统对目标系统进行探测获取目标系统的信息,并用textcnn模型对探测获得的目标系统的信息进行识别。通过采用textcnn模型,将服务识别问题视作文本分类问题,利用深度学习算法解决了传统指纹识别的弊端,提高识别效率;
可选地,textcnn模型包括嵌入层、卷积层、池化层和输出层(如图2所示)。
可选地,信息整合模块利用metasploit中的search命令搜索exploit模块,或者利用预先建立的字典搜索exploit模块。
可选地,漏洞验证模块包括使用基于a3c的强化学习算法选择渗透路径,并使用启发式的方式辅助基于a3c的强化学习算法。如图3所示,本系统所采用的a3c的强化学习算法将操作系统、服务、版本、端口等收集到的信息作为当前状态,智能地选择合适的payload进行漏洞验证,并从渗透结果中获得反馈,进而调整模型中的参数。对于模型的不断训练会加速攻击路径的选择,最终提高漏洞验证效率。
整个渗透测试过程全自动化进行,无需人工干预,因为深度学习算法和强化学习算法在测试流程中的引入,使渗透测试的效率和准确性得到了显著的提升。
可选地,自动化渗透测试系统为一个目标系统创建一个任务;任务可以多个同时进行。
可选地,目标系统包括网站和主机;目标系统的信息包括目标系统各个端口的服务与版本号。
如图4所示,为一种基于人工智能的自动化渗透测试方法,包括客户端和服务端。在客户端,用户在自动化渗透测试系统的web前端输入待进行渗透测试目标的ip地址,客户端会向服务端发送客户输入的ip地址。在服务端获得ip地址后自动对目标系统进行完整的渗透测试,最终生成渗透测试报告并将其展示到客户端的web前端。
本发明的服务端的自动渗透测试流程包括:
步骤1、信息收集:从客户端获得目标系统的ip地址,自动化渗透测试系统使用nmap系统扫描目标系统的主机端口,并使用web爬虫从目标系统的主机web端口获取http响应头,同时使用textcnn模型以根据目标系统的主机响应报文进行识别,获得目标系统的信息;
步骤2、信息整合:在完成步骤1的信息收集后,根据收集到的目标系统的端口服务名称以及版本信息,搜索可用的exploit模块;
步骤3、漏洞验证:在完成步骤2的信息整合后,依次对目标系统的各主机端口和各exploit模块进行验证,并在漏洞验证过程中,记录各exploit模块的验证情况;
步骤4、报告生成:在完成以上三个步骤后,自动化渗透测试系统整合目标系统的一系列审计信息,包括主机信息和渗透测试结果,进行统计后生成html格式的渗透测试报告,并展示在自动化渗透测试系统的web页面前端。
可选地,在步骤2中根据预先建立的字典搜索exploit模块。
可选地,在步骤3中部署基于a3c的强化学习算法,以进行漏洞验证,基于a3c的强化学习算法通过测试目标系统的主机操作系统、exploit模块、端口号、端口服务信息选择payload模块。
在系统自动渗透测试完成后,用户可以从渗透测试报告中了解目标主机存在的高危漏洞信息以及安全隐患,并能看到针对每一个被验证漏洞的详细的验证过程信息。同时,报告还将根据目标主机信息搜索exploit-db中的有用信息并反馈在渗透测试报告中,以方便用户的进一步安全审计。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
PHP网站源码海北网站推广系统阳江优化价格河池网站优化哪家好马鞍山营销型网站建设多少钱迪庆网络广告推广哪家好泰安百度爱采购多少钱菏泽百度竞价包年推广价格雅安高端网站设计公司河源百姓网标王报价永湖网站开发价格木棉湾网站推广方案凉山外贸网站设计廊坊建网站公司安康网站建设报价吕梁百姓网标王价格揭阳seo网站优化茂名SEO按天收费价格西乡百姓网标王推广价格武汉网站建设设计推荐安庆百度爱采购报价临沧百度关键词包年推广报价玉树网站seo优化报价宜昌品牌网站设计报价太原企业网站建设多少钱漳州模板制作多少钱宜宾模板推广报价那曲SEO按天扣费价格绍兴网站优化按天计费价格白城网站建设设计推荐莱芜建网站推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运