基于有限状态自动机的攻击脚本生成方法及相关装置制造方法及图纸

技术编号:29401747 阅读:30 留言:0更新日期:2021-07-23 22:39
本申请提供了一种基于有限状态自动机的攻击脚本生成方法及相关装置,其中,方法包括:提取攻击目标程序的攻击数据流和目标程序响应攻击数据流的反馈数据流;向虚拟运行环境中运行的目标程序,逐步发送攻击数据流,接收目标程序响应攻击数据流产生的响应数据流;在任一次的响应数据流与相应的反馈数据流间的差异数据为空,或者,差异数据不为空且确定出差异数据中内存地址变量的各个取值分别对应的内存段基址和偏移量的情况下,生成该次的状态转移函数,并更新至有限状态自动机;若更新得到的有限状态自动机的状态表征对目标程序攻击成功,则依据状态转移函数,生成攻击脚本。从而,避免了响应速度慢、人力资源消耗大、人为因素影响大等诸多问题。

【技术实现步骤摘要】
基于有限状态自动机的攻击脚本生成方法及相关装置
本申请涉及网络安全领域,尤其涉及基于有限状态自动机的攻击脚本生成方法及相关装置。
技术介绍
随着各类网络服务在世界范围内的普及,各类网络服务零日漏洞层出不穷,近年来利用网络服务漏洞进行的网络攻击案件频发。网络服务,即服务器所承载的网络服务程序,如SMB、SSL、DHCP、DNS、FTP等,是攻击者对目标网络服务平台进行渗透攻击的主要突破口之一。利用网络服务漏洞进行的网络渗透攻击,可造成对网络服务运营商内部数据的非法存取、网络服务平台拒绝服务和网络资源非法占用、非法控制等威胁,对互联网安全构成重大危害。目前,各类网络服务运营商及软件厂商在面对零日攻击行为时,多采取人工攻击行为复现、人工漏洞分析定位等传统攻击响应模式,还原攻击者使用的攻击脚本。因此,对攻击者使用的攻击脚本的还原方式,具有响应速度慢、人力资源消耗大、人为因素影响大等诸多局限性。
技术实现思路
本申请提供了基于有限状态自动机的攻击脚本生成方法及相关装置,目的在于解决对攻击者使用的攻击脚本的还原方式,具有响应速度慢、人力资源消耗大、人为因素影响大等诸多局限性的问题。为了实现上述目的,本申请提供了以下技术方案:本申请提供了一种基于有限状态自动机的攻击脚本生成方法,包括:从客户端与目标程序之间历史产生的交互数据流中,提取攻击所述目标程序的攻击数据流和所述目标程序响应所述攻击数据流的反馈数据流;向虚拟运行环境中运行的目标程序,逐步发送所述攻击数据流,实现对所述目标程序的模拟攻击;接收所述虚拟运行环境中运行的目标程序,每次响应接收到的攻击数据流产生的响应数据流;在任一次的响应数据流与相应的反馈数据流间的差异数据为空,或者,所述差异数据不为空且确定出所述差异数据中内存地址变量的各个取值分别对应的内存段基址和偏移量的情况下,生成该次的状态转移函数;并将所述状态转移函数更新至有限状态自动机,所述有限状态自动机的下一个状态继承上一个状态的状态变量;在所述攻击数据流全部被发送给在所述虚拟运行环境中运行的目标程序后,若更新得到的有限状态自动机的状态表征对所述目标程序攻击成功,则依据更新得到的有限状态自动机中的状态转移函数,生成攻击脚本。可选的,在任一次的反馈数据流与相应的响应数据流间的差异数据为空的情况下,生成该次的状态转移函数,包括:向攻击脚本添加具有接收响应数据流功能的脚本语句;添加具有提取响应数据流中的内存地址功能的脚本语句。可选的,在任一次的反馈数据流与相应的响应数据流间的差异数据不为空的情况下,确定所述差异数据中内存地址变量的各个取值分别对应的段基址和偏移量的过程,包括:检查该次的差异数据中,是否含有内存地址变量的取值;所述内存地址变量的可取值包括:二进制或者文本格式的依赖库、栈、堆和代码段的内存地址;在检查到内存地址变量的任一种取值的情况下,计算该取值与系统随机分配的内存段基址间的偏移量,得到内存地址变量在该取值下的内存段基址和偏移量;所述生成该次的状态转移函数,具体为:依据所述差异数据包含的内存地址变量的各个取值分别对应的内存段基址和偏移量,生成状态转移函数。可选的,所述从客户端与目标程序之间历史产生的交互数据流中,提取攻击所述目标程序的攻击数据流和所述目标程序响应所述攻击数据流的反馈数据流,包括:将所述客户端与目标程序之间历史产生的交互数据流中一个客户端与目标程序的一次会话数据流,作为一组交互数据流,得到多组交互数据流;分别对每组交互数据流,按照客户端收发两个方向进行区分标记;分别对每组交互数据流中,收发两个方向的数据流分别进行排序;分别对排序后的每组交互数据流进行重组和去噪,得到每组整流后的收发方向数据流;从所述每组整流后的收发方向数据流中,确定收方向数据流中包含预设敏感信息的各组数据流;将所述各组数据流中收方向的数据流,分别作为反馈数据流,得到各组反馈数据流;将所述各组数据流中发方向的数据流,分别作为攻击数据流,得到各组攻击数据流。可选的,所述向虚拟运行环境中运行的目标程序,逐步发送所述攻击数据流,实现对所述目标程序的模拟攻击,包括:向所述虚拟运行环境中运行的目标程序分别发送所述各组攻击数据流;其中,向所述虚拟运行环境中运行的目标程序发送任意一组攻击数据流的过程包括:按照该组攻击数据流中各攻击交互数据的时间顺序,一次发送一个攻击数据的方式,进行发送。可选的,在所述攻击数据流全部被发送给在所述虚拟运行环境中运行的目标程序之后,还包括:若更新得到的有限状态自动机的状态表征对所述目标程序攻击不成功,则获取已发送的各组攻击数据流中预设数量组攻击数据流分别对应的差异数据,得到预设数量组差异数据;以预设变量集合为依据,确定所述预设数量组差异数据中属于所述预设变量集合的变量为目标变量;依据所述目标变量,确定用于生成攻击脚本中的动态参数的目标变量关系表达式;依据所述目标变量关系表达式,对有限状态自动机进行修正,得到表征对目标程序攻击成功的有限状态自动机;依据所述表征对目标程序攻击成功的有限状态自动机中的状态转移函数,生成攻击脚本。可选的,所述依据所述目标变量,确定用于生成攻击脚本中的动态参数的目标变量关系表达式,包括:依据预设深度,生成二叉树;在每个二叉树上,对非叶节点按照预设的运算列表包含的运算进行遍历,对叶节点按照目标变量进行遍历,将每个二叉树的非叶节点的一种运算组合和叶节点的一种目标变量组合构成的运算表达式,作为一种解空间树;依据预设数量组的攻击数据流中的目标变量取值,验证解空间树的变量关系表达式是否成立,并将变量关系表达式成立的一个解空间树指示的变量关系表达式,作为所述目标变量关系表达式。本申请还提供了一种基于有限状态自动机的攻击脚本生成装置,包括:提取模块,用于从客户端与目标程序之间历史产生的交互数据流中,提取攻击所述目标程序的攻击数据流和所述目标程序响应所述攻击数据流的反馈数据流;发送模块,用于向虚拟运行环境中运行的目标程序,逐步发送所述攻击数据流,实现对所述目标程序的模拟攻击;接收模块,用于接收所述虚拟运行环境中运行的目标程序,每次响应接收到的攻击数据流产生的响应数据流;生成更新模块,用于在任一次的响应数据流与相应的反馈数据流间的差异数据为空,或者,所述差异数据不为空且确定出所述差异数据中内存地址变量的各个取值分别对应的内存段基址和偏移量的情况下,生成该次的状态转移函数;并将所述状态转移函数更新至有限状态自动机,所述有限状态自动机的下一个状态继承上一个状态的状态变量;生成模块,用于在所述攻击数据流全部被发送给在所述虚拟运行环境中运行的目标程序后,若更新得到的有限状态自动机的状态表征对所述目标程序攻击成功,则依据更新得到的有限状态自动机中的状态转移函数,生成攻击脚本。本申请还提供了一种存储介本文档来自技高网...

【技术保护点】
1.一种基于有限状态自动机的攻击脚本生成方法,其特征在于,包括:/n从客户端与目标程序之间历史产生的交互数据流中,提取攻击所述目标程序的攻击数据流和所述目标程序响应所述攻击数据流的反馈数据流;/n向虚拟运行环境中运行的目标程序,逐步发送所述攻击数据流,实现对所述目标程序的模拟攻击;/n接收所述虚拟运行环境中运行的目标程序,每次响应接收到的攻击数据流产生的响应数据流;/n在任一次的响应数据流与相应的反馈数据流间的差异数据为空,或者,所述差异数据不为空且确定出所述差异数据中内存地址变量的各个取值分别对应的内存段基址和偏移量的情况下,生成该次的状态转移函数;并将所述状态转移函数更新至有限状态自动机,所述有限状态自动机的下一个状态继承上一个状态的状态变量;/n在所述攻击数据流全部被发送给在所述虚拟运行环境中运行的目标程序后,若更新得到的有限状态自动机的状态表征对所述目标程序攻击成功,则依据更新得到的有限状态自动机中的状态转移函数,生成攻击脚本。/n

【技术特征摘要】
1.一种基于有限状态自动机的攻击脚本生成方法,其特征在于,包括:
从客户端与目标程序之间历史产生的交互数据流中,提取攻击所述目标程序的攻击数据流和所述目标程序响应所述攻击数据流的反馈数据流;
向虚拟运行环境中运行的目标程序,逐步发送所述攻击数据流,实现对所述目标程序的模拟攻击;
接收所述虚拟运行环境中运行的目标程序,每次响应接收到的攻击数据流产生的响应数据流;
在任一次的响应数据流与相应的反馈数据流间的差异数据为空,或者,所述差异数据不为空且确定出所述差异数据中内存地址变量的各个取值分别对应的内存段基址和偏移量的情况下,生成该次的状态转移函数;并将所述状态转移函数更新至有限状态自动机,所述有限状态自动机的下一个状态继承上一个状态的状态变量;
在所述攻击数据流全部被发送给在所述虚拟运行环境中运行的目标程序后,若更新得到的有限状态自动机的状态表征对所述目标程序攻击成功,则依据更新得到的有限状态自动机中的状态转移函数,生成攻击脚本。


2.根据权利要求1所述的方法,其特征在于,在任一次的反馈数据流与相应的响应数据流间的差异数据为空的情况下,生成该次的状态转移函数,包括:
向攻击脚本添加具有接收响应数据流功能的脚本语句;
添加具有提取响应数据流中的内存地址功能的脚本语句。


3.根据权利要求1所述的方法,其特征在于,在任一次的反馈数据流与相应的响应数据流间的差异数据不为空的情况下,确定所述差异数据中内存地址变量的各个取值分别对应的段基址和偏移量的过程,包括:
检查该次的差异数据中,是否含有内存地址变量的取值;所述内存地址变量的可取值包括:二进制或者文本格式的依赖库、栈、堆和代码段的内存地址;
在检查到内存地址变量的任一种取值的情况下,计算该取值与系统随机分配的内存段基址间的偏移量,得到内存地址变量在该取值下的内存段基址和偏移量;
所述生成该次的状态转移函数,具体为:
依据所述差异数据包含的内存地址变量的各个取值分别对应的内存段基址和偏移量,生成状态转移函数。


4.根据权利要求1所述的方法,其特征在于,所述从客户端与目标程序之间历史产生的交互数据流中,提取攻击所述目标程序的攻击数据流和所述目标程序响应所述攻击数据流的反馈数据流,包括:
将所述客户端与目标程序之间历史产生的交互数据流中一个客户端与目标程序的一次会话数据流,作为一组交互数据流,得到多组交互数据流;
分别对每组交互数据流,按照客户端收发两个方向进行区分标记;
分别对每组交互数据流中,收发两个方向的数据流分别进行排序;
分别对排序后的每组交互数据流进行重组和去噪,得到每组整流后的收发方向数据流;
从所述每组整流后的收发方向数据流中,确定收方向数据流中包含预设敏感信息的各组数据流;
将所述各组数据流中收方向的数据流,分别作为反馈数据流,得到各组反馈数据流;
将所述各组数据流中发方向的数据流,分别作为攻击数据流,得到各组攻击数据流。


5.根据权利要求4所述的方法,其特征在于,所述向虚拟运行环境中运行的目标程序,逐步发送所述攻击数据流,实现对所述目标程序的模拟攻击,包括:
向所述虚拟运行环境中运行的目标程序分别发送所述各组攻击数据流...

【专利技术属性】
技术研发人员:朱俊虎陈佳俊任薇庄妍彭建山周天阳邱菡许航
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南;41

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

1