基于Python语言的自动化网络攻击流量获取方法和系统与流程

文档序号:17247772发布日期:2019-03-30 08:54阅读:454来源:国知局
基于Python语言的自动化网络攻击流量获取方法和系统与流程

本发明涉及网络测试领域,具体地,涉及一种基于python语言的自动化网络攻击流量获取方法和系统及计算机存储介质,尤其是涉及一种基于python符号执行的自动化网络攻击流量获取方法。



背景技术:

网络攻击流量生成器是检查和验证网络系统检测入侵能力的重要验证工具,被广泛应用到各种重要级别的网络系统测试中,尤其在对于检验安全性能要求较高的网络系统与ids工具的性能时有着无可替代的核心作用。在网络安全测试中,需要使得被测试系统输入大量的攻击流量进行处理,从而根据被测试系统的运行状态与反馈数据来验证其安全性。

当前网络攻击流量生成器中的攻击流量样本则需要大量的人工收集与分析,需要消耗安全研究组织大量的人力与物力。每次出现一种新的网络攻击,安全人员都需要在收集到网上的攻击脚本后手动分析其运行逻辑,并搭建相应的漏洞靶机环境以便让攻击脚本对目标靶机进行实际攻击,从而提取出真正的攻击流量。

符号执行技术是一种比较成熟的软件测试领域的技术,通常被用于测试目标软件的运行错误。其目的是为了尽可能多地将被测试的软件中的各个代码逻辑分支都触发执行一下,从而检验软件的健壮性和稳定性。网络攻击技术是一种复杂的交叉技术,其涉及多种计算机知识。根据网络攻击技术进行的阶段可以将其大致分为五个阶段:扫描阶段,检测阶段,攻击阶段,控制阶段,驻留阶段。每个阶段的目的与流量特征各不相同,需要研究人员分别进行分析。因此将符号执行技术运用到网络攻击技术方面的研究,具有迫切的现实意义。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于python语言的自动化网络攻击流量获取方法和系统及计算机存储介质。

根据本发明提供的一种基于python语言的自动化网络攻击流量获取方法,包括,测试脚本修正步骤:获取网络攻击脚本,令网络攻击脚本进行符号执行,得到代码区域执行的输入信息;流量分类步骤:根据输入信息执行网络攻击脚本,提取得到网络攻击流量,对网络攻击流量进行攻击步骤分类;流量存储步骤:令网络攻击流量按照类别分类,标记网络攻击流量中的特征信息,得到特征网络攻击流量,对特征网络攻击流量以数据库或者文本文件形式存储。

优选地,所述输入信息主要包括输入参数、反馈变量中的任一种或任多种。

优选地,所述网络攻击脚本是基于python脚本,所述符号执行是基于python符号执行。

优选地,所述提取得到网络攻击流量是通过符号执行获得目标函数名称、调用api、代码行数,推断当前流量处于攻击步骤中的位置与性质,对网络攻击流量进行攻击步骤分类。

优选地,所述特征信息主要包括ip地址、端口号、校验位、等可变位置中的任一中或任多种。

优选地,所述令网络攻击脚本进行符号执行时,根据条件判断语句将网络攻击脚本分割成基本代码块,以树状图连接先后执行关系。

优选地,所述符号执行采用剪枝算法、分支进入策略选择、根据上下文状态识别当前循环位置中的任一种或任多种,进行网络攻击脚本执行。

优选地,所述符号执行中的求解器、符号执行引擎独立执行,采用修改脚本跳转代码,提升代码执行覆盖率。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述方法的步骤。

根据本发明提供的一种基于python语言的自动化网络攻击流量获取系统,包括,测试脚本修正模块:获取网络攻击脚本,令网络攻击脚本进行符号执行,得到代码区域执行的输入信息;流量分类模块:根据输入信息执行网络攻击脚本,提取得到网络攻击流量,对网络攻击流量进行攻击步骤分类;流量存储模块:令网络攻击流量按照类别分类,标记网络攻击流量中的特征信息,得到特征网络攻击流量,对特征网络攻击流量以数据库或者文本文件形式存储。

与现有技术相比,本发明具有如下的有益效果:

1、通过使用符号执行技术,能够实现对python网络攻击脚本产生的网络攻击流量进行大规模高效自动提取、分类、存储,无需搭建目标python攻击脚本所需要的靶机环境,且免去了人工分析脚本的步骤,极大地节省了人力物力;

2、支持新类型的python攻击脚本,具有良好的可扩展性和实用性,具有广阔的应用前景。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的脚本分析流程图;

图2为本发明的流量分类流程图;

图3为本发明的流量存储流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种基于python语言的自动化网络攻击流量获取方法,相比于传统攻击脚本的流量提取,无需搭建目标python攻击脚本所需要的靶机环境,直接利用符号执行计算的结果来调整脚本的各项输入参数、反馈变量,使得脚本可以通过这些特定的参数与变量来执行触发到代码的各个分支,从而顺利进入脚本真正的攻击代码流程并最终捕获其所释放的攻击流量,而不会由于目标环境的不正确而提前停止攻击,并且可以免去人工分析脚本并搭建靶机环境的步骤,从而节省人力物力。

所述方法包括,测试脚本修正步骤:获取网络攻击脚本,令网络攻击脚本进行符号执行,得到代码区域执行的输入信息;流量分类步骤:根据输入信息执行网络攻击脚本,提取得到网络攻击流量,对网络攻击流量进行攻击步骤分类;流量存储步骤:令网络攻击流量按照类别分类,标记网络攻击流量中的特征信息,得到特征网络攻击流量,对特征网络攻击流量以数据库或者文本文件形式存储。

具体地,所述输入信息主要包括输入参数、反馈变量中的任一种或任多种。

具体地,所述网络攻击脚本是基于python脚本,所述符号执行是基于python符号执行。

具体地,所述提取得到网络攻击流量是通过符号执行获得目标函数名称、调用api、代码行数,推断当前流量处于攻击步骤中的位置与性质,对网络攻击流量进行攻击步骤分类。

具体地,所述特征信息主要包括ip地址、端口号、校验位、等可变位置中的任一中或任多种。

具体地,所述令网络攻击脚本进行符号执行时,根据条件判断语句将网络攻击脚本分割成基本代码块,以树状图连接先后执行关系。

具体地,所述符号执行采用剪枝算法、分支进入策略选择、根据上下文状态识别当前循环位置中的任一种或任多种,进行网络攻击脚本执行。

具体地,所述符号执行中的求解器、符号执行引擎独立执行,采用修改脚本跳转代码,提升代码执行覆盖率。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述方法的步骤。

根据本发明提供的一种基于python语言的自动化网络攻击流量获取系统,包括,测试脚本修正模块:获取网络攻击脚本,令网络攻击脚本进行符号执行,得到代码区域执行的输入信息;流量分类模块:根据输入信息执行网络攻击脚本,提取得到网络攻击流量,对网络攻击流量进行攻击步骤分类;流量存储模块:令网络攻击流量按照类别分类,标记网络攻击流量中的特征信息,得到特征网络攻击流量,对特征网络攻击流量以数据库或者文本文件形式存储。

本发明提供的基于python语言的自动化网络攻击流量获取系统,可以通过基于python语言的自动化网络攻击流量获取方法的步骤流程实现。本领域技术人员可以将基于python语言的自动化网络攻击流量获取方法理解为所述基于python语言的自动化网络攻击流量获取系统的优选例。

以下针对优选例做进一步阐述。

首先,分析脚本,对获取到的python网络攻击脚本进行符号执行,利用符号执行的计算结果来调整脚本的各项输入参数、反馈变量,使得脚本可以通过这些特定的参数和变量来触发执行代码的各个分支,从而进入到脚本真正的攻击流程,来捕获其所释放的所有攻击流量;其次,流量分类,在自动分析python网络攻击脚本时,会根据python符号执行技术所获得的目标函数名称、调用api、所处代码行数等信息推断当前流量处于攻击步骤中的位置与性质,从而对自动提取到的攻击流量进行攻击步骤分类;最后,流量存储,将自动提取到的网络攻击流量按照类别分类,并对流量中ip、端口、校验和等可变位置进行标记,便于后续构造特定网络攻击流量时修改相应的参数,然后以数据库数据形式和文本文件形式进行存储,从而满足后续的大数据分析或人工分析需求。

本发明所使用的python符号执行技术适用对象范围是所有python脚本,因此目标攻击脚本不管是目前已有的攻击类型,还是未来出现的新的网络攻击类型,只要是使用python语言编写的就都是有效的。本发明所使用的python符号执行技术可以自动化分析python脚本,只要网络攻击脚本是用python语言编写的,都可以自动化地运行攻击脚本,从而触发脚本中的攻击代码路径并捕获攻击流量,这个过程完全是自动化的。本发明所使用的符号执行技术在对python攻击脚本进行分析时,会根据if、else、while等条件判断语句将其分割成基本的代码块,以树状图连接其可能的先后执行关系,从而可以更方便地统计代码覆盖率以及其它拓展分析功能。在针对攻击步骤特别复杂的python攻击脚本时,本发明所使用的python符号执行技术能够通过剪枝算法、对分支进入策略的选择、根据上下文状态识别当前循环位置等手段,避免因访问不必要的循环分支导致路径爆炸和挂起,从而提升本发明对python攻击脚本分析的覆盖率,同时提高运行效率。python符号执行技术所使用的求解器与python符号执行引擎为两个独立的部分,python符号执行引擎通过求解器的对外调用接口来与其交互并获得所需的约束求解答案,可以在不影响python符号执行引擎的情况下,通过后续改进求解器的求解能力来获取更多当前数学无法解决的约束问题,从而提高特殊参数约束条件下代码的触发能力;也可以在不影响约束求解器的情况下,通过后续改进符号执行引擎的分支进入策略、参数选择策略、脚本修改策略等特性,来提升本发明的python代码覆盖率和提高运行效率。但是由于当前求解器能力受到客观数学科学发展的限制,其约束求解能力对于一些涉及当前数学科学解决能力之外的约束条件表现不佳,针对这种情况,本发明还具备了修改脚本跳转代码的能力,通过修改原本无法进入的代码分支的条件判断语句,同时利用树状图结构保持各个代码块的合理执行顺序,从而提升代码覆盖率,提高触发真正产生攻击流量的能力。本发明在抓取流量数据包时,能根据进程进行流量区分,从而使得获取的数据包比传统数据包的捕获更加准确,所得的流量数据能更加使得提取流量特征、学术分析等工作更加方便高效。对于同一个python攻击脚本的各个代码执行路径所捕获到的流量文件能根据其长度、api调用、数据包数量等特征找出其真正的攻击流量所在的流量文件。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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