基于Ruby语言的网络攻击框架流量获取方法及系统技术方案

技术编号:20550094 阅读:61 留言:0更新日期:2019-03-09 22:22
本发明专利技术提供了一种基于Ruby语言的网络攻击框架流量获取方法及系统,包括:符号执行引擎构建、目标探测API符号化扩展、攻击载荷构造API符号化扩展、输出API劫持和记录。本发明专利技术不需要传统攻击脚本流量提取过程中搭建靶机环境、抓取网络数据包的步骤,可以使提取攻击流量的过程自动化。

【技术实现步骤摘要】
基于Ruby语言的网络攻击框架流量获取方法及系统
本专利技术涉及网络安全
,具体地,涉及基于Ruby语言的网络攻击框架流量获取方法及系统。
技术介绍
近来网络攻击工具呈现框架化、脚本化。攻击框架自带大量攻击脚本,并且支持新脚本的快速开发。攻击框架降低了发起网络攻击的门槛,给网络安全提出了新的挑战。传统的分析技术已经不足以跟上新攻击脚本的出现速度。在网络安全方面,网络攻击流量有重要的应用价值。攻击流量可用于(1)测试网络防火墙和入侵检测系统的有效性,(2)根据攻击流量的特征生成相应的检测和防御规则。攻击工具正在逐渐脚本化、框架化。网络上有多种使用Ruby语言实现的攻击框架。这些攻击框架自带大量攻击脚本,并且框架提供一套接口,支持新攻击脚本的快速开发。任何人都可以下载并使用这些攻击框架发起网络攻击。而且新的攻击脚本被编写出来后,会通过网络迅速传播。攻击框架加快了新漏洞利用的开发,降低了改动网络攻击的门槛,给网络安全提出了新的挑战。在攻击框架中,发起一个远程网络攻击通常包括四个步骤,(1)攻击脚本探测攻击目标的运行环境和版本,(2)攻击脚本根据探测结果判断目标是否存在漏洞,(3)攻击脚本根据探测结果生成相应的攻击流量,(4)攻击脚本发送攻击流量。传统的攻击流量提取方法需要先搭建受控的靶机环境。否则,攻击脚本会因为探测阶段的失败而结束执行。有了靶机环境后,要运行攻击脚本并使用工具抓取攻击流量。为每个攻击脚本搭建靶机环境难以自动化,耗费人力物力。符号执行,即以符号而不是确切的值作为程序的输入。传统上,符号执行被应用于软件测试领域。符号执行以符号而不是确切值作为程序的输入。程序中与输入有关的变量表示为包含符号的表达式。符号执行引擎会维护一组当前变量状态和一组路径约束。当程序执行到条件分支语句时,符号执行引擎会将分支语句的条件加入路径约束,然后将约束送入求解器求解,如果求解器返回合理的解,则引擎会用这些解更新变量状态,然后进入该分支;如果没有合理的解,则该路径为不可达路径,不会进入该分支。Ruby语言是一种动态、开源、优雅、通用的解释型编程语言,注重简洁和开发效率。Ruby语言有着许多优秀的特性。Ruby是跨平台的语言,大部分脚本无需修改即可在各个不同平台环境下运行。Ruby支持平台无关的多线程。Ruby语言有着优雅、自然的语法。由于这些优秀特性,许多攻击框架使用Ruby语言进行开发。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于Ruby语言的网络攻击框架流量获取方法及系统。根据本专利技术提供的一种基于Ruby语言的网络攻击框架流量获取方法,包括:符号执行引擎构建步骤:以Ruby代码库的形式构建Ruby语言符号执行引擎构;目标探测API符号化扩展步骤:使用构建的Ruby语言符号执行引擎构对攻击框架目标探测API进行符号化,使攻击框架目标探测API不与网络进行交互,直接返回符号化的结果;攻击载荷构造API符号化扩展步骤:使用构建的Ruby语言符号执行引擎构给攻击载荷构造API中的不同部分加上标签,以区分各部分的属性;输出API劫持步骤:使用构建的Ruby语言符号执行引擎构控制攻击框架输出API不把攻击流量发送到网络上,而是直接保存到本地文件中;记录步骤:使用构建的Ruby语言符号执行引擎构对基于Ruby语言的网络攻击框架的行为和路径约束进行记录。较佳的,所述Ruby语言符号执行引擎构为轻量级Ruby语言符号执行引擎,支持数字类型的操作和字符串类型的操作,所述数字类型的操作包括算数运算符和逻辑运算符,所述字符串类型的操作包括子串、前缀和后缀操作。较佳的,所述攻击载荷构造API中的各同部分的属性包括:利用漏洞必需的固定字段,随机生成的填充字段或NOP填充字段,攻击成功后运行的shellcode字段,以及与网络协议相关的字段。较佳的,符号执行包括:维护网络攻击框架的变量状态和路径约束,当网络攻击框架执行到条件语句时,将进入分支的条件加入路径约束,然后将路径约束送入求解器求解,并根据求解结果更新变量状态,进入不同的路径分支,从而遍历网络攻击框架的所有执行路径。根据本专利技术提供的一种基于Ruby语言的网络攻击框架流量获取系统,包括:符号执行引擎构建模块:以Ruby代码库的形式构建Ruby语言符号执行引擎构;目标探测API符号化扩展模块:使用构建的Ruby语言符号执行引擎构对攻击框架目标探测API进行符号化,使攻击框架目标探测API不与网络进行交互,直接返回符号化的结果;攻击载荷构造API符号化扩展模块:使用构建的Ruby语言符号执行引擎构给攻击载荷构造API中的不同部分加上标签,以区分各部分的属性;输出API劫持模块:使用构建的Ruby语言符号执行引擎构控制攻击框架输出API不把攻击流量发送到网络上,而是直接保存到本地文件中;记录模块:使用构建的Ruby语言符号执行引擎构对基于Ruby语言的网络攻击框架的行为和路径约束进行记录。较佳的,所述Ruby语言符号执行引擎构为轻量级Ruby语言符号执行引擎,支持数字类型的操作和字符串类型的操作,所述数字类型的操作包括算数运算符和逻辑运算符,所述字符串类型的操作包括子串、前缀和后缀操作。较佳的,所述攻击载荷构造API中的各同部分的属性包括:利用漏洞必需的固定字段,随机生成的填充字段或NOP填充字段,攻击成功后运行的shellcode字段,以及与网络协议相关的字段。较佳的,符号执行包括:维护网络攻击框架的变量状态和路径约束,当网络攻击框架执行到条件语句时,将进入分支的条件加入路径约束,然后将路径约束送入求解器求解,并根据求解结果更新变量状态,进入不同的路径分支,从而遍历网络攻击框架的所有执行路径。与现有技术相比,本专利技术具有如下的有益效果:本专利技术不需要传统攻击脚本流量提取过程中搭建靶机环境、抓取网络数据包的步骤,可以使提取攻击流量的过程自动化。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术的系统架构图;图2为本专利技术轻量级脚本语言符号执行引擎示意图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。如图1、图2所示,根据本专利技术提供的一种基于Ruby语言的网络攻击框架流量获取方法,包括:1、符号执行引擎构建步骤:以Ruby代码库的形式构建Ruby语言符号执行引擎构。Ruby语言符号执行引擎构为轻量级Ruby语言符号执行引擎,即以对等架构实现的符号执行引擎。符号执行引擎以Ruby语言库的形式实现,而不改变Ruby语言的解释器。相比于修改Ruby语言解释器的符号执行引擎实现方法,轻量级Ruby符号执行引擎的优点在于可以适应多种版本的Ruby语言解释器。以库的形式实现符号执行的优点在于可以适应多种Ruby语言解释器版本。此符号执行引擎支持数字类型(包括整型和浮点型)的所有操作,包括加、减、乘、除等算数运算符,以及大于、小于、等于等逻辑运算符。此符号执行引擎支持字符串类型的部分操作,包括等于、不等于、子串、前缀本文档来自技高网
...

【技术保护点】
1.一种基于Ruby语言的网络攻击框架流量获取方法,其特征在于,包括:符号执行引擎构建步骤:以Ruby代码库的形式构建Ruby语言符号执行引擎构;目标探测API符号化扩展步骤:使用构建的Ruby语言符号执行引擎构对攻击框架目标探测API进行符号化,使攻击框架目标探测API不与网络进行交互,直接返回符号化的结果;攻击载荷构造API符号化扩展步骤:使用构建的Ruby语言符号执行引擎构给攻击载荷构造API中的不同部分加上标签,以区分各部分的属性;输出API劫持步骤:使用构建的Ruby语言符号执行引擎构控制攻击框架输出API不把攻击流量发送到网络上,而是直接保存到本地文件中;记录步骤:使用构建的Ruby语言符号执行引擎构对基于Ruby语言的网络攻击框架的行为和路径约束进行记录。

【技术特征摘要】
1.一种基于Ruby语言的网络攻击框架流量获取方法,其特征在于,包括:符号执行引擎构建步骤:以Ruby代码库的形式构建Ruby语言符号执行引擎构;目标探测API符号化扩展步骤:使用构建的Ruby语言符号执行引擎构对攻击框架目标探测API进行符号化,使攻击框架目标探测API不与网络进行交互,直接返回符号化的结果;攻击载荷构造API符号化扩展步骤:使用构建的Ruby语言符号执行引擎构给攻击载荷构造API中的不同部分加上标签,以区分各部分的属性;输出API劫持步骤:使用构建的Ruby语言符号执行引擎构控制攻击框架输出API不把攻击流量发送到网络上,而是直接保存到本地文件中;记录步骤:使用构建的Ruby语言符号执行引擎构对基于Ruby语言的网络攻击框架的行为和路径约束进行记录。2.根据权利要求1所述的基于Ruby语言的网络攻击框架流量获取方法,其特征在于,所述Ruby语言符号执行引擎构为轻量级Ruby语言符号执行引擎,支持数字类型的操作和字符串类型的操作,所述数字类型的操作包括算数运算符和逻辑运算符,所述字符串类型的操作包括子串、前缀和后缀操作。3.根据权利要求1所述的基于Ruby语言的网络攻击框架流量获取方法,其特征在于,所述攻击载荷构造API中的各同部分的属性包括:利用漏洞必需的固定字段,随机生成的填充字段或NOP填充字段,攻击成功后运行的shellcode字段,以及与网络协议相关的字段。4.根据权利要求1所述的基于Ruby语言的网络攻击框架流量获取方法,其特征在于,符号执行包括:维护网络攻击框架的变量状态和路径约束,当网络攻击框架执行到条件语句时,将进入分支的条件加入路径约束,然后将路径约束送入求解器求解,并根据求解结果更新变量状态,进入不同的路径分支,从而遍历网络攻击框架的所有执行路径。...

【专利技术属性】
技术研发人员:王轶骏薛质刘焕伟张君涛吕诚陈家浩
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1