CN110855608A - 基于强化学习的协议逆向工程系统及其工作方法 - Google Patents
基于强化学习的协议逆向工程系统及其工作方法 Download PDFInfo
- Publication number
- CN110855608A CN110855608A CN201910931832.8A CN201910931832A CN110855608A CN 110855608 A CN110855608 A CN 110855608A CN 201910931832 A CN201910931832 A CN 201910931832A CN 110855608 A CN110855608 A CN 110855608A
- Authority
- CN
- China
- Prior art keywords
- decoding
- state
- protocol
- reinforcement learning
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的一种基于强化学习的协议逆向工程系统及其工作方法,包括解码环境模块和解码智能体模块;其中解码环境模块接收解码智能体模块输出的前一个时刻的状态和当前的动作、并向解码智能体模块输入新的状态。与现有技术相比,本发明具有如下的有益效果:1)使用协议结构树来表示协议结构,该方法表达能力强,有丰富的语义,支持复杂的结构。2)创新性的提出了一种基于深度强化学习的协议逆向工程方法,通过大量数据训练后,应用范围广,能够对各种不同类型的协议的数据进行逆向工程。3)训练好的解码模型执行协议逆向时,无需任何先验知识,也无需人工参与,能够全自动的执行协议逆向。
Description
技术领域
本发明涉及协议逆向工程,特别是一种基于强化学习的协议逆向工程系统及其工作方法。
背景技术
协议是为进行网络数据交换而建立的一系列的规则、标准和约定,是计算机网络及数据通信的核心。
对于开放式协议,如超文本传输协议(HTTP,Hyper Text Transfer Protocol),其详细描述信息可以从公开文档(如RFCs)中获取。
但对于私有协议,其协议描述信息通常是不公开的。
协议的逆向工程就是指获取未知协议的应用级描述信息的过程。
协议逆向工程的传统方法是手动的,它非常耗费人力并且容易出错。一个典型的例子是SAMBA项目。SAMBA项目用了12年时间来生成Microsoft服务器消息块(SMB) 协议规范。
在当今的高速网络环境中,这些手动协议逆向工程方法无法应对快速增长的应用程序的出现和更新。
为了解决这些问题,过去十年中提出了自动协议逆向工程,并已成为网络管理研究领域的热门话题。
自动协议逆向工程的方法可以分为两类:基于软件指令和基于网络数据的方法。基于软件指令的方法是指以协议实现软件为对象,通过控制流或数据流分析等技术,全程跟踪软件在协议处理过程中的指令执行轨迹从而进行协议逆向分析。
这个方法需要获得协议实现软件的可执行文件,在现实中很少能够获得,该类方法应用范围窄。
基于网络数据的方法是指以实际网络通信数据为对象,采用数据挖掘方法,通过对网络数据进行模式提取、特征分析,数据挖掘等,来进行协议逆向分析。
现有技术1,中国专利《协议的逆向工程方法及系统》(公开号:103036848B) 公开了一种协议的逆向工程方法或系统,其中,方法包括:确定当前语义关联,所述语义关联用于描述字段对的因变量字段和自变量字段之间的关联语义特征;从具有相同格式类型的当前报文组中提取出一个报文;在所述提取的报文中搜索满足所述当前语义关联的关联语义特征的所有字段对,对所述搜索出的字段对在所述当前报文组中其他报文的相应位置进行验证;对通过验证的字段对,根据所述当前语义关联的关联语义特征确定所述当前报文组中报文的相应位置的协议格式,所述相应位置为与所述通过验证的字段对相对应的位置。本发明所公开的技术方案,能够对各种格式编码的报文的协议进行逆向工程,且无需访问协议实施实体的二进制代码程序。
现有技术1存在如下缺点:
1)该发明需要提供先验知识,也就是发明中所说的关联语义特征;
2)该发明只能找到部分有语义特征的字段的位置,无法获得完整的协议消息格式;
3)使用完全不同的技术方案。
现有技术2,中国专利《一种未知应用层协议报文格式的最佳分段方法》(公开号:102523167B)用于未知应用层协议反向工程。它利用未知应用层协议在网络会话过程中传输的报文序列样本集,通过隐半马尔可夫模型(HSMM)模型参数估计算法,从报文序列样本集中获取模型参数,再通过基于HSMM的最大似然概率分段方法,对报文中的各个字段进行最佳划分,同时获取代表各个字段语义的关键词、属性值、状态码或类型码。这种方法不需要关于未知应用层协议的先验知识,也不要求绝对纯净的样本集。它不仅能够有效解析报文格式,它还能够基于观测序列的似然概率分布,发现混杂在样本集中的其它协议数据(噪声)并进行有效过滤。
现有技术2存在如下缺点:
1)只是分段,没有推断出每个字段的编码方式等等完整信息;
2)不支持复杂的嵌套结构;
3)使用完全不同的技术方案。
现有技术3,《Message Format and Field Semantics Inference for BinaryProtocols Using Recorded Network Traffic》提出了一种方法,基于网络追踪数据推断出二进制协议消息格式和某些字段语义。我们通过在两个已知协议(Modbus和MQTT) 的数据包捕获上运行它来证明我们方法的可用性,然后将推断的规范与这些协议的已知规范进行比较。
现有技术3存在如下缺点:
1)支持的范围窄,只支持二进制协议格式,只支持几种固定的字段类型;
2)使用完全不同的技术方案。
现有技术存在需要额外的先验知识,支持的协议类型少,对结构复杂的协议识别效果不好,推断出的协议规范不完整,不清晰等等缺陷。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于强化学习的协议逆向工程系统及其工作方法。
本发明提供的一种基于强化学习的协议逆向工程系统,包括解码环境模块和解码智能体模块;其中
解码环境模块接收解码智能体模块输出的前一个时刻的状态和当前的动作、并向解码智能体模块输入新的状态。
优选地,解码环境模块包括状态转移单元,状态转移单元接收解码智能体模块输出的前一个时刻的状态和当前的动作、并向解码智能体模块输入新的状态。
优选地,解码环境模块还包括奖励函数单元,奖励函数单元基于前一个时刻的状态和当前状态的之间的变化向解码智能体模块输出奖励值。
优选地,解码智能体模块包括状态规范化单元,策略函数单元和价值函数单元;其中
状态规范化单元接收输入新的状态,并将新的状态转换成规范化的状态并输出;策略函数单元接收规范化的状态并转换成动作;价值函数单元接收规范化的状态并转换成价值值。
优选地,状态包括数据样本、协议结构树、当前节点、结束标记及错误标记。
优选地,动作包括对协议结构树的修改。
一种基于强化学习的协议逆向工程方法,包括如下步骤:
步骤1,构建强化学习解码模型;
步骤2,训练强化学习解码模型;
步骤3,利用训练好的强化学习解码模型执行逆向协议工程。
优选地,步骤1包括:
步骤1.1,建立解码环境模块;
步骤1.2,建立解码智能体模块。
优选地,步骤2包括:
步骤2.1,解码智能体模块接收输入新的状态,并将新的状态转换成规范化的状态并输出;
步骤2.2,解码环境模块根据前一时刻的状态和当前的动作执行状态转移,同时根据奖赏函数计算出奖赏值,并将该奖赏值和改变后的状态反馈给解码智能体;
步骤2.3,解码智能体根据收到的新状态和奖励,通过强化学习算法更新策略网络和价值网络的参数;
步骤2.4,输入新的数据样本,返回步骤2.1直至强化学习解码模型收敛。
优选地,步骤3包括:
步骤3.1,初始化解码环境,加载待分析的数据样本,发送初始状态给解码智能体;
步骤3.2,解码智能体收到状态,经过状态规范化,然后通过策略函数单元,选择最佳的动作,发送给解码环境;
步骤3.3,解码环境收到动作,执行状态转移,计算奖励,将新的状态和奖励发送给解码智能体并返回步骤3.2直到解码完成;
步骤3.4,输出最终状态中协议结构树,完成协议逆向工程。
与现有技术相比,本发明具有如下的有益效果:
1)使用协议结构树来表示协议结构,该方法表达能力强,有丰富的语义,支持复杂的结构。
2)创新性的提出了一种基于深度强化学习的协议逆向工程方法,通过大量数据训练后,应用范围广,能够对各种不同类型的协议的数据进行逆向工程。
3)训练好的解码模型执行协议逆向时,无需任何先验知识,也无需人工参与,能够全自动的执行协议逆向。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1为本发明系统原理图;
图2为本发明工作方法状态转移流程图;
图3为本发明工作方法单字段解码流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明工作方法包括:
步骤1:收集数据集,每个数据样本包含多个消息,每个消息包含已知的字段和未知待分析未知上层负载。
步骤2:构建强化学习解码模型,该模型定义了解码环境的状态,状态转移函数和奖惩函数,确定了解码智能体可以选择的动作空间,并且对状态进行抽象,使用深度神经网络构成策略网络和价值网络,以拟合策略函数和价值函数。
步骤3:使用强化学习算法训练强化学习解码模型。
步骤4:利用训练好的强化学习解码模型执行逆向协议工程。
其中步骤2中的强化学习解码模型,包含解码环境模块和解码智能体模块。
解码环境模块输入为动作,输出为状态和奖励。
解码智能体模块的输入为状态和奖励,输出为动作。
其中状态包含了如下内容:
·raw_data原始待分析的数据样本。
·decode_tree协议结构树
·current_node当前节点,指向协议结构树中的节点。
·is_done结束标记,是否结束了,可能是解码完成或者发生解码错误。
·is_error错误标记,是否发生错误。
其中动作对应了对协议结构树的修改操作。比如添加一个节点,添加节点属性,开始或关闭子节点列表等等。
动作由动作类型和对应的参数{act_type,arg1,arg2,arg3}一共四个部分组成。
动作类型可能是NS,NE,OP,CL,CD,RC,SF,SE,ST,EN,RU,参数的含义根据动作类型的不同而有不同的含义。
解码环境模块包含状态转移单元,奖励函数单元。
状态转移单元输入为前一个时刻的状态和当前的动作,输出新的状态。其处理流程步骤如下:
第1步,检查合法性。检查动作是否合法。如果不合法,设置错误标记is_error=true,跳到第4步。
第2步,更新协议结构树。根据动作,执行对应的规则,更新协议结构树和当前节点,添加新节点或者更新现有节点的属性。
第3步,解码并保存结果。基于协议结构树,判断是否可以执行部分解码,如果可以执行部分解码,执行解码并更新解码结果。如果解码中发生错误,设置错误标记位 is_error=true。
第4步,设置结束标记。检查错误标记和解码结果,如果解码全部完成或者发生错误设置结束标记is_done=true。
第5步,结束。输出新状态。
其中奖励函数单元用于根据解码结果利用设定的奖励函数计算输出奖励值。
原则上对于下面的情况给出奖励,完整解析所有的数据包,不发生解码错误,并且生成的字段合理,每一个字段能够有效的传输信息,并且每个字段表示最小的信息单元。
具体的,以一个实施举例说明奖励函数的设计如下:
当发生解码错误或者不合法的指令,reward=-100
当节点定义尚不完整,无法执行部分解码指令的时候,reward=0
当节点定义已经完整,执行了部分解码并且没有发生错误的时候, reward=w1*r1+w2*r2+w3*r3;
其中,权重(w1,w2,w3)都是小于1的正整数,
r1=新解码出的字段数目,大部分时候发r1=1,当是子结构或者重复字段时可能大于1。
r2=新解码的字节数/数据样本总字节树,0<r2<=1。
3=字段的值分布情况的信息熵。
解码智能体模块包含状态规范化单元,策略函数单元和价值函数单元。其中状态规范化单元将状态信息转换成易于深度神经网络处理的形式。其输入为状态,输出为规范化的状态,规范化的状态包括以下内容:
·剩余未解码数据
·已经解码的字段值
·已经定义的字段信息
策略函数单元使用深度神经网络来拟合策略函数,输入为规范化的状态,输出为动作。
价值函数单元使用深度神经网络来拟合价值函数,输入为规范化的状态,输出为价值值。
上述两个深度神经网络模可选择CNN,RNN,LSTM等等模型,及其组合或者变体。
其中步骤3具体包括:
解码智能体根据状态进行规范化,通过策略网络单元计算最佳的动作,并将动作发送给解码环境模块。
解码环境模块根据前一时刻的状态和当前的动作执行状态转移,同时根据奖赏函数计算出奖赏值,并将该奖赏值和改变后的状态反馈给解码智能体。
解码智能体根据收到的新状态和奖励,通过强化学习算法更新策略网络和价值网络的参数。
通过大量不同的数据样本,不断的迭代的进行上述训练和学习,最终使得深度强化学习模型得到收敛。
其中步骤4包含如下子步骤:
4.1初始化解码环境,加载待分析的数据样本,发送初始状态给解码智能体。
4.2解码智能体收到状态,经过状态规范化,然后通过策略函数单元,选择最佳的动作,发送给解码环境。
4.3解码环境收到动作,执行状态转移,计算奖励,将新的状态和奖励发送给解码智能体。
4.4重复4.2,4.3步骤直到解码完成。
4.5输出解码环境中保存的协议结构树,该协议结构树描述了该数据样本的协议。
实施例
本方法的实施举例,步骤如下:
步骤1:收集数据集,每个数据样本包含多个消息,每个消息包含已知的字段和未知待分析未知上层负载。
通过从互联网上收集网络数据包文件(pcap文件),对于每个数据包文件解析已知的下层协议,将解析结果构成一个数据样本。
步骤2构建强化学习解码模型。
如图1所示强化学习解码模型包含解码环境模块和解码智能体模块。
解码环境模块输入为动作,输出为状态和奖励。解码智能体模块的输入为状态和奖励,输出为动作。
其中状态包含如下信息:
raw_data原始待分析的数据样本。
decode_tree协议结构树。
current_node当前节点,指向协议结构树中的节点。
is_done结束标记,是否结束了,可能是解码完成或者发生解码错误。
is_error错误标记,是否发生错误。
其中raw_data中包含多条消息,每条消息包含消息编号msg_id,已经解码的下层协议字段fields,待分析的负载payload。
其中解码结构树decode_tree,包含多个节点,每个节点代表了一个字段的定义和解码结果。
每个字段包含的信息有
id,type,size_by,size,size_expr,terminator,encoding,if_expr,repeat_expr,repe at_until,children,parent,is_complete,is_open,decode_result。
特别的解码结构树中有可能包含下层协议的字段作为虚拟节点,只有编号,类型和解码结果,无其他定义。
其中动作设计为对协议结构树的修改操作。比如添加一个节点,添加节点属性,开始或关闭子节点列表等等。
动作由动作类型和对应的参数{act_type,arg1,arg2,arg3}一共四个部分组成。
动作类型可能是NS,NE,OP,CL,CD,RC,SF,SE,ST,EN,RU,参数的含义根据动作类型的不同而有不同的含义。
解码环境模块包含状态转移单元和奖赏函数单元。
状态转移单元输入为前一个时刻的状态和当前的动作,输出新的状态。其处理流程步骤如下:
第1步,检查合法性。检查动作是否合法。如果不合法,设置错误标记is_error=true,跳到第4步。
第2步,更新协议结构树。根据动作,执行对应的规则,更新协议结构树和当前节点,添加新节点或者更新现有节点的属性。
第3步,解码并保存结果。基于协议结构树,判断是否可以执行部分解码,如果可以执行部分解码,执行解码并更新解码结果。如果解码中发生错误,设置错误标记位 is_error=true。
第4步,设置结束标记。检查错误标记和解码结果,如果解码全部完成或者发生错误设置结束标记is_done=true。
第5步,结束。输出新状态。
具体来说,上述第2步的具体算法如下:
如果解码动作为NS,添加一个新的节点new_node,设置节点类型,如果是节点类型为子结构类型(type=struct),设置为开放状态(is_open=1)。如果当前当前节点是子结构节点,并且是开放状态,将新节点添加当前节点的子节点,如果当前节点是普通节点,添加新节点为当前的节点的兄弟节点。设置新节点为当前节点。
如果解码动作为NE,标记当前节点定义完整(is_complete=1);
如果解码动作为OP,当前节点必须为子结构节点,设置为开放状态(is_open=1),设置父节点为当前节点。
如果解码动作为CL,找到当前节点的父节点,设置父节点为关闭状态(is_open=0),设置父节点为当前节点。
如果解码动作为CD,更新当前节点的存在条件定义(if_expr);
如果解码动作为RC,更新当前节点的重复次数属性。(repeat_count);
如果解码动作为SF,更新当前的节点的长度相关的属性。(size_by,size);
如果解码动作为SE,更新当前的节点的长度表达式相关的属性。
(size_by,size_expr);
如果解码动作为ST,更新当前的节点的结束符的属性。(size_by,terminator);
如果解码动作为EN,更新当前节点的编码属性(encoding);
如果解码动作为RU,更新当前节点的重复结束条件(repeat_until)。
具体来说上述第3步具体算法如下:
当前节点定义已经完整的时候,对于数据中的每一个消息,执行的处理流程单字段解码流程:
msg为当前被处理的消息,parent_repeat_id为父节点当前的重复编号,步骤如下:
1)根据字段的存在条件,判断存在条件是否为真,如果为真,执行2,否则结束。
2)计算字段重复次数RC,如果没有重复次数属性,则重复次数为RC为1。
3)设置重复计数器n=0。
4)判断如果n<rc,执行下一步骤,否则结束。
5)判断是否是子结构,如果是子结构,对于子结构中的字段递归执行单字段解码流程,然后跳转到8。
6)根据字段的长度属性,以及该消息的待解码数据偏移量,计算该字段在该消息中的开始位置offset,长度size和结束位置end。然后根据字段的编码属性,解码该字段在当前消息中对应的字节作为字段值(value)。
repeat_id由(parent_repeat_id,n)组成,如果发生错误,保存错误到error。
7)保存解码结果,将(msg_id,repeat_id,offset,size,end,value,error)添加到decode_result列表中。
8)判断是否满足结束条件,如果满足,结束,否则执行9。
9)累加重复计数器n=n+1,然后跳转到4。
奖赏函数单元:
奖赏函数单元用于根据解码环境状态利用设定的奖赏函数计算输出奖惩值。奖赏函数根据解码结果的优化目标来确定。
原则上对于下面的情况给出奖励,完整解析所有的数据包,不发生解码错误,并且生成的字段合理,每一个字段能够有效的传输信息,并且每个字段表示最小的信息单元。
具体的,一个较优的奖励函数的设计如下:
当发生解码错误或者不合法的指令,reward=-100。
当节点定义尚不完整,无法执行部分解码指令的时候,reward=0。
当节点定义已经完整,执行了部分解码并且没有发生错误的时候, reward=w1*r1+w2*r2+w3*r3。
其中,权重(w1,w2,w3)都是小于1,大于等于0。
r1=新解码出的字段数目,大部分时候发r1=1,当是子结构或者重复字段时可能大于1。
r2=新解码的字节数/数据样本总字节树,0<r2<=1。
r3=字段的值分布情况的信息熵。
信息熵的计算方法为:统计字段值中各个值的出现次数,假设字段x,有N个不同的值 x1,x2,...xn,P(xi)=xi出现的次数/包含该字段的消息总数,r3=H(x)=-∑ P(xi)log(2,P(xi))(i=1,2,..n)。
当解码出多个字段时,r3为多个字段的信息熵的和。
解码智能体模块包含状态规范化单元,策略函数单元和价值函数单元。
其中状态规范化单元将状态信息转换成易于深度神经网络处理的形式。其输入为状态,输出为规范化的状态,规范化的状态包括以下内容:
剩余未解码数据,(N,M1)的矩阵,M表示需要观察的未解码数据长度,一般可以取64。
已经解码的字段值,(C,N,M2)的矩阵,其中C为系统支持的最大的字段数目,N为消息数目,M2字段长度截断值。
已经定义的字段信息,(C,M3)矩阵,其中C为系统支持的最大的字段数目,M3为编码一个字段相关属性所需要的维度。
策略函数单元使用深度神经网络来拟合策略函数,输入为规范化的状态,输出为动作。
价值函数单元使用深度神经网络来拟合价值函数,输入为规范化的状态,输出为价值值。
策略函数和价值函数共享了特征提取部分神经网络,规范化的状态中的三个部分通过不同的CNN或LSTM层,然后扁平化和合并成一个中间向量,然后通过全连接层1构成特征向量。
对于策略函数,特征向量分布通过4个全连接层生成4个未归一化的概率(logits), logtis通过softmax层生成动作的概率,然后通过argmax选择概率最大的动作,最终输出4维的动作向量(动作类型,参数1,参数2,参数3)。
对于价值函数,特征向量通过全连接层3获得输出1维的V_value向量。
步骤3使用强化学习算法训练强化学习解码模型。
解码智能体根据状态进行规范化,通过策略网络单元计算最佳的动作,并将动作发送给解码环境模块。
解码环境模块根据前一时刻的状态和当前的动作执行状态转移,同时根据奖赏函数计算出奖赏值,并将该奖赏值和改变后的状态反馈给解码智能体。
解码智能体根据收到的新状态和奖励,通过强化学习算法更新策略网络和价值网络的参数。
通过大量不同的数据样本,不断的迭代的进行上述训练和学习,最终使得深度强化学习模型得到收敛。
上述强化学习解码模型实际是基于Actor-Critic框架设计的,可以使用兼容Actor-Critic框架的强化学习算法训练Actor(策略)网络和Critic(价值)网络的参数,比如PPO,A3C等经典算法。
步骤4:利用训练好的强化学习解码模型执行逆向协议工程。
包含如下子步骤:
4.1初始化解码环境,加载待分析的数据样本,发送初始状态给解码智能体。
4.2解码智能体收到状态,经过状态规范化,然后通过策略函数单元,选择最佳的动作,发送给解码环境。
4.3解码环境收到动作,执行状态转移,计算奖励,将新的状态和奖励发送给解码智能体。
4.4重复4.2,4.3步骤直到解码完成。
4.5输出解码环境中保存的协议结构树,该协议结构树描述了该数据样本的协议。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于强化学习的协议逆向工程系统,其特征在于,包括解码环境模块和解码智能体模块;其中
解码环境模块接收解码智能体模块输出的前一个时刻的状态和当前的动作、并向解码智能体模块输入新的状态。
2.根据权利要求1所述的基于强化学习的协议逆向工程系统,其特征在于,解码环境模块包括状态转移单元,状态转移单元接收解码智能体模块输出的前一个时刻的状态和当前的动作、并向解码智能体模块输入新的状态。
3.根据权利要求2所述的基于强化学习的协议逆向工程系统,其特征在于,解码环境模块还包括奖励函数单元,奖励函数单元基于前一个时刻的状态和当前状态的之间的变化向解码智能体模块输出奖励值。
4.根据权利要求3所述的基于强化学习的协议逆向工程系统,其特征在于,解码智能体模块包括状态规范化单元,策略函数单元和价值函数单元;其中
状态规范化单元接收输入新的状态,并将新的状态转换成规范化的状态并输出;策略函数单元接收规范化的状态并转换成动作;价值函数单元接收规范化的状态并转换成价值值。
5.根据权利要求4所述的基于强化学习的协议逆向工程系统,其特征在于,状态包括数据样本、协议结构树、当前节点、结束标记及错误标记。
6.根据权利要求5所述的基于强化学习的协议逆向工程系统,其特征在于,动作包括对协议结构树的修改。
7.一种基于强化学习的协议逆向工程方法,其特征在于,包括如下步骤:
步骤1,构建强化学习解码模型;
步骤2,训练强化学习解码模型;
步骤3,利用训练好的强化学习解码模型执行逆向协议工程。
8.根据权利要求7所述的基于强化学习的协议逆向工程方法,其特征在于,步骤1包括:
步骤1.1,建立解码环境模块;
步骤1.2,建立解码智能体模块。
9.根据权利要求8所述的基于强化学习的协议逆向工程方法,其特征在于,步骤2包括:
步骤2.1,解码智能体模块接收输入新的状态,并将新的状态转换成规范化的状态并输出;
步骤2.2,解码环境模块根据前一时刻的状态和当前的动作执行状态转移,同时根据奖赏函数计算出奖赏值,并将该奖赏值和改变后的状态反馈给解码智能体;
步骤2.3,解码智能体根据收到的新状态和奖励,通过强化学习算法更新策略网络和价值网络的参数;
步骤2.4,输入新的数据样本,返回步骤2.1直至强化学习解码模型收敛。
10.根据权利要求9所述种基于强化学习的协议逆向工程方法,其特征在于,步骤3包括:
步骤3.1,初始化解码环境,加载待分析的数据样本,发送初始状态给解码智能体;
步骤3.2,解码智能体收到状态,经过状态规范化,然后通过策略函数单元,选择最佳的动作,发送给解码环境;
步骤3.3,解码环境收到动作,执行状态转移,计算奖励,将新的状态和奖励发送给解码智能体并返回步骤3.2直到解码完成;
步骤3.4,输出最终状态中协议结构树,完成协议逆向工程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910931832.8A CN110855608B (zh) | 2019-09-29 | 2019-09-29 | 基于强化学习的协议逆向工程系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910931832.8A CN110855608B (zh) | 2019-09-29 | 2019-09-29 | 基于强化学习的协议逆向工程系统及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110855608A true CN110855608A (zh) | 2020-02-28 |
CN110855608B CN110855608B (zh) | 2022-03-18 |
Family
ID=69596219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910931832.8A Active CN110855608B (zh) | 2019-09-29 | 2019-09-29 | 基于强化学习的协议逆向工程系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855608B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134737A (zh) * | 2020-10-19 | 2020-12-25 | 北方工业大学 | 一种工业物联网逆向分析系统 |
CN115223049A (zh) * | 2022-09-20 | 2022-10-21 | 山东大学 | 面向电力场景边缘计算大模型压缩的知识蒸馏与量化技术 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006645A1 (en) * | 2007-06-26 | 2009-01-01 | Microsoft Corporation | Automatic Reverse Engineering of Message Formats From Network Traces |
CN104468262A (zh) * | 2014-11-17 | 2015-03-25 | 中国科学院信息工程研究所 | 一种基于语义敏感的网络协议识别方法及系统 |
CN107682216A (zh) * | 2017-09-01 | 2018-02-09 | 南京南瑞集团公司 | 一种基于深度学习的网络流量协议识别方法 |
CN109462590A (zh) * | 2018-11-15 | 2019-03-12 | 成都网域复兴科技有限公司 | 一种基于模糊测试的未知协议逆向分析方法 |
-
2019
- 2019-09-29 CN CN201910931832.8A patent/CN110855608B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006645A1 (en) * | 2007-06-26 | 2009-01-01 | Microsoft Corporation | Automatic Reverse Engineering of Message Formats From Network Traces |
CN104468262A (zh) * | 2014-11-17 | 2015-03-25 | 中国科学院信息工程研究所 | 一种基于语义敏感的网络协议识别方法及系统 |
CN107682216A (zh) * | 2017-09-01 | 2018-02-09 | 南京南瑞集团公司 | 一种基于深度学习的网络流量协议识别方法 |
CN109462590A (zh) * | 2018-11-15 | 2019-03-12 | 成都网域复兴科技有限公司 | 一种基于模糊测试的未知协议逆向分析方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134737A (zh) * | 2020-10-19 | 2020-12-25 | 北方工业大学 | 一种工业物联网逆向分析系统 |
CN115223049A (zh) * | 2022-09-20 | 2022-10-21 | 山东大学 | 面向电力场景边缘计算大模型压缩的知识蒸馏与量化技术 |
CN115223049B (zh) * | 2022-09-20 | 2022-12-13 | 山东大学 | 面向电力场景边缘计算大模型压缩的知识蒸馏与量化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110855608B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Semantic communications for future internet: Fundamentals, applications, and challenges | |
US10880321B2 (en) | Method and system for learning representations of network flow traffic | |
CN106502985B (zh) | 一种用于生成标题的神经网络建模方法及装置 | |
CN110569033B (zh) | 一种数字化交易类智能合约基础代码生成方法 | |
CN111314279B (zh) | 一种基于网络流量的未知协议逆向方法 | |
CN110855608B (zh) | 基于强化学习的协议逆向工程系统及其工作方法 | |
CN115357904B (zh) | 一种基于程序切片和图神经网络的多类漏洞检测方法 | |
WO2023155303A1 (zh) | 网页数据的提取方法和装置、计算机设备、存储介质 | |
CN112651436A (zh) | 一种基于权重不确定的图卷积神经网络的优化方法、装置 | |
Gruber et al. | Optimal lower bounds on regular expression size using communication complexity | |
CN116861258B (zh) | 模型处理方法、装置、设备及存储介质 | |
CN117354207A (zh) | 一种未知工控协议逆向分析方法及装置 | |
CN113852605B (zh) | 一种基于关系推理的协议格式自动化推断方法及系统 | |
CN116578665A (zh) | 基于提示学习的可扩展文本信息联合抽取方法及设备 | |
CN113824797B (zh) | 一种授课资源自适应同步方法及装置 | |
Gao et al. | The stacked Seq2seq-attention model for protocol fuzzing | |
CN112735392B (zh) | 语音处理方法、装置、设备及存储介质 | |
CN114861004A (zh) | 一种社交事件检测方法、装置及系统 | |
CN114860952A (zh) | 一种基于数据统计和知识指导的图拓扑学习方法及系统 | |
Licata | Graph Neural Networks, Multi-Threading and Heuristics for the Computation of the Maximum Common Subgraph | |
CN116562299B (zh) | 文本信息的论元抽取方法、装置、设备及存储介质 | |
CN110895567A (zh) | 一种实体嵌入方法及装置 | |
CN115694947B (zh) | 基于对抗生成dqn的网络加密流量威胁样本生成机制方法 | |
Wong et al. | A Meta Learning Approach to Discerning Causal Graph Structure | |
CN117421648A (zh) | 社交媒体用户表征模型,模型的预训练方法、文本图框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |