CN113452672A - 基于协议逆向分析的电力物联网终端流量异常分析方法 - Google Patents
基于协议逆向分析的电力物联网终端流量异常分析方法 Download PDFInfo
- Publication number
- CN113452672A CN113452672A CN202110511345.3A CN202110511345A CN113452672A CN 113452672 A CN113452672 A CN 113452672A CN 202110511345 A CN202110511345 A CN 202110511345A CN 113452672 A CN113452672 A CN 113452672A
- Authority
- CN
- China
- Prior art keywords
- protocol
- message
- node
- state
- sequence
- 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/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Abstract
本发明涉及一种基于协议逆向分析的电力物联网终端流量异常分析方法,包括以下步骤:步骤1、获取电力物联网终端的流量数据;步骤2、解析提取出单个消息序列;步骤3、得到不同格式的消息类型;步骤4、得到该类消息的通用格式;步骤5、构造协议状态机的泛化前缀树APTA;步骤6、确定输入报文之间的时序特征,通过观察发现报文序列出现的先决条件消息,即该消息会出现在该报文序列之前,然后将用该先决条件作为标记对该类型报文进行标注;步骤7、得到协议的最小DFA;步骤8、得到该消息系列所属协议以及对应的完整状态机;步骤9、若长度低于阈值判为通信协议的消息序列异常。本发明在小比例异常情况下诊断精度高。
Description
技术领域
本发明属于流量异常分析技术领域,涉及电力物联网终端流量异常分析方法,尤其是一种基于协议逆向分析的电力物联网终端流量异常分析方法。
背景技术
随着网络信息时代的到来,开放式网络渗透到了各个方面,尤其是近年来电力物联网规模的不断扩大,终端故障问题频频出现,发现和诊断终端故障的难度增大,同时用户对电力物联网的服务性能也提出了更高的要求,这些都增加了终端异常远程诊断的难度。在这种情况下,如何有效检测电力物联网的终端异常成为目前亟待解决的主要问题。而终端流量的异常检测是终端异常远程诊断中的一个重要环节,对终端流量进行实时监测和处理,及时发现终端流量异常,对于提高电力物联网的可靠性具有重要意义。
国内外很多研究人士提出了多种终端流量异常远程诊断方法。马林进等人提出一种基于词袋模型聚类的异常流量识别方法。将已获得的终端异常流量和正常流量进行K-means均值聚类,获得终端流量中的流量关键点,将终端流量转换成相应流量关键点构建直方图,利用半监督学习形式对流量直方图进行识别,该方法依赖于直方图统计值在终端异常情况下的流量特征与正常模式对比判定是否出现突变,在小比例异常情况下诊断精度较低。
刘汝隽等人提出一种基于信息增益特征选择的异常检测方法。采用预处理器将网络终端流量数据规整化,基于信息增益降维方法的特征选择器选择终端流量重要特征,再采用随机森林分类器通过训练和预测获得终端流量异常远程诊断结果。该方法在训练过程中丢失了大量终端信息,进一步增加了终端流量异常远程诊断的难度。
其他许多现有的流量异常检测技术大多是基于先前经验所提供的知识,存在许多的挑战:(1)缺乏普遍适用的异常检测技术,例如,有线网络中的异常检测技术通常无法应用于无线网络中;(2)流量数据包含难以分离的噪声,往往会被判定为异常,影响检测的准确性;(3)缺乏可用于网络流量异常检测的公开标记的数据集;(4)正常行为的模式是不断发展的,并且以往正常的模式并不会永远正常,因此当前的异常检测技术在将来可能不再有用。在实际应用中,细微且复杂的异常网络流量也很容易混淆在大规模的网络流量之中,给检测增加了难度。
网络协议逆向工程给电力物联网终端流量异常分析带来新思路,可以通过协议逆向分析技术进行电力物联网终端流量异常检测。网络协议逆向工程是一门经常被用来逆向分析网络协议流从而获得协议信息的技术。协议逆向工程是指在不依赖协议描述的情况下,通过对协议实体网络数据的输入输出、系统行为和指令执行流程进行监控和分析,从而提取协议格式以及协议状态机信息的过程。近年来,协议逆向技术已广泛应用于网络安全相关领域,如模糊测试(Fuzzing Test)、网络入侵检测和协议重用等。
目前协议逆向技术过分依赖人工分析,过程非常复杂冗长,协议逆向自动化是目前协议逆向领域的研究重点,可以大大减少人工分析的工作量,提高协议逆向的效率。在协议逆向研究领域,根据逆向分析对象的不同分为两类:报文序列(Network Trace)分析和指令执行序列(Execution Trace)分析。
对于报文序列分析技术,Beddoe等人利用构造系统树的启发式方法引导多序列比对的执行,大大降低了算法的时间复杂度,提高了算法的执行效率。但是,PI项目也存在三点不足:一、只能获得可变字段和不变字段,具体的语义信息还得依靠人工分析;二、只针对报文结构进行分析,不涉及协议状态机信息;三、对于紧凑、简单的报文结构识别效果较好,对于复杂、冗余字段较多的报文,效率和准确率都比较低。
在PI的基础上,Letia等人实现了蜜网Honeyd配置脚本自动提取工具ScriptGen,ScriptGen首先获取报文会话序列,并对每次会话的状态机进行推断,然后利用PI中的协议域识别算法合并和简化状态机,最后根据状态机生成Honeyd可用的配置脚本。ScriptGen利用输入输出之间的约束关系,实现了部分语义的提取。但是在推断初始状态机之前没有对报文进行聚类,导致初始状态机的数量过于庞大。
绝大部分协议的解析是一个逐层解析的过程,针对这一特征,Cui等人提出了协议逆向方案Discoverer。这个方案以递归分类为核心,首先将报文分为文本和二进制两种,然后采用序列比对算法对报文进行初始聚类,识别出的各个字段推断语义信息,根据推断出的语义信息进行再次分类,不断重复这一过程直到子类中的报文数目小于阈值。为避免报文的过度聚类,最后要对属性和语义序列相似度高的子类进行合并。实验结果表明,Discoverer能够较为准确地解析语义信息,获得完整的协议格式描述,但是仍然没有考虑到状态机信息的推断。
对于指令执行序列分析技术,Polyglot得到的报文格式为各个域的线性排列,未考虑报文处理的层次性,域与域之间可能存在并列、包含、序列等关系。Lin等人结合域解析上下文环境,提出了基于污点分析的域结构识别方案AutoFormat,在污点数据跟踪的过程中,记录所有与污点数据相关的操作指令和对应的函数调用栈。通过判断各个域对报文起始位置的偏移范围是否覆盖来判定域之间的包含关系;通过判断指令子序列和上下文环境是否相似来判定域之间的并列关系;通过判断指令子序列的调用顺序来判定域之间的序列关系。这个方案对报文序列的各个域进行了更加精确的分析,但是对包含复杂结构和未知语义报文处理的效率较低。
Comparetti等人借鉴AutoFormat的域结构识别的策略,提出了较为完整的协议逆向方案Prospex。Prosper与AutoFormat相比,对报文序列进行了状态标注,实现了协议状态机的推断;根据指令操作的上下文环境实现了相同状态下报文的聚类,提高了结果的精确度;根据逆向得到的协议描述,自动化生成模糊测试的测脚本。但是,这个方案对域的语义和取值约束关系没有加以考虑,无法保证模糊测试数据的有效性。
经检索,未发现与本发明相同或相近似的现有技术的公开文献。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于协议逆向分析的电力物联网终端流量异常分析方法,能够解决传统流量检测方法在小比例异常情况下诊断精度较低的技术问题。
本发明解决其现实问题是采取以下技术方案实现的:
一种基于协议逆向分析的电力物联网终端流量异常分析方法,包括以下步骤:
步骤1、获取电力物联网终端的流量数据;
步骤2、根据电力物联网通信协议所用分隔符将获取的流量数据进行解析提取出单个消息序列;
步骤3、利用Needleman-Wunsch消息聚类方法,将消息格式类似的消息进行归类,得到不同格式的消息类型;
步骤4、对被聚为同一类的消息序列进行综合分析,得到该类消息的通用格式。
步骤5、根据步骤4得到的消息类型以及对应的消息格式,构造协议状态机的泛化前缀树(APTA,Augmented PrefixTree Acceptor);
步骤6、确定输入报文之间的时序特征,通过观察发现报文序列出现的先决条件消息,即该消息会出现在该报文序列之前,然后将用该先决条件作为标记对该类型报文进行标注;
步骤7、利用步骤5构造的APTA作为构建协议有限状态机(DFA,DeterministicFinite Automaton)的输入,根据检测步骤6得到的标注是否一致对DFA进行简化,得到协议的最小DFA,该DFA即为协议对应的有限状态机;
步骤8、将协议逆向得到的状态机利用字符串相似度算法与现有已知协议的状态机进行比对,以长度最大相同字符序列作为判决准则得到该消息系列所属协议以及对应的完整状态机;
步骤9、将长度最大相同字符序列的长度作为判决阈值,若长度低于阈值判为通信协议的消息序列异常。
而且,所述步骤1的具体方法为:
通过网络监听方式获取被分析终端的网络流量数据。
而且,所述步骤2的具体步骤包括:
步骤2.1、分离消息:将IP/TCP协议头剥离,提取协议的数据承载字段,对分段数据进行合并最终得到消息序列流;
步骤2.2、根据电力物联网终端通信协议使用的分隔符,从信息序列流中划分出多个独立的消息序列;
而且,所述步骤3的具体步骤包括:
步骤3.1、将消息序列的域用树结构表示,把根节点的直接子支看做是由若干基本域组成的序列,进行匹配并计算得分。匹配得分规则为:如果两个基本域匹配,分值+1;如果两个基本域不匹配,返回-1。
步骤3.2、对每一个消息序列,计算与其它消息序列的匹配得分,并为每个消息序列建立匹配得分表;
步骤3.3、从表中筛选出与得分最高的消息序列,构建一个三元组<Si,Sj,Hij>(i≠j),Sj表示与消息序列Si匹配得分最高的消息序列,Hij为这两个序列的匹配得分;
步骤3.4、检测每个消息序列的三元组,将三元组中第一元素和第二元素只是调换位置的三元组提取出来,说明对这些消息序列来说与之最匹配的消息序列已经确定,将这些三元组中的两个消息序列分为一类;
步骤3.5、根据三元组的信息,将未分配的消息序列分至与之匹配得分最高的消息序列所在的类,以此类推,最终完成消息聚类。
而且,所述步骤7的具体步骤包括:
步骤7.1、首先从APTA的根节点开始遍历,将根节点都标记为红色,根节点的各个子节点都标记为蓝色,其他的节点为未知节点,先不进行标记;
步骤7.2、尝试合并一个红色节点和一个蓝色节点,合并的依据为两者在状态标记阶段所加的标签,如果标签相同则可以进行合并,合并时首先遍历蓝色节点的所有子树,并将它们都加入到红色节点的子树合集中,然后将新加入的子树都作为候选,标记为蓝色。若由于标签不同合并失败,则将这个蓝色节点提升为红色节点,并将其子树都标记为蓝色;
步骤7.3、对于所有未进行合并的蓝色节点,重复步骤7.1和7.2;在处理的过程中,红色节点会不断增加,一个蓝色节点在合并时需要同所有的红色节点进行比较来确定是否可以进行合并,如果不可以同所有的红色节点进行合并,则将该蓝色节点提升为红色节点;
步骤7.4、在所有的蓝色节点都被合并完成之后,此时得到的状态转换图就是状态机化简的结果,为一个最小化的DFA。
而且,所述步骤8的具体步骤包括:
步骤8.1、将推断出的协议P的状态机中的所有状态转换转变成状态比对字符串形式,即主要利用四元组中的Si-1,Mi以及Si这三个参数,将其转化为字符串。其中四元组指将协议的状态转换表示为一个四元组<前一个消息模式,初始状态,消息模式,结束状态>,用矢量t表示为t=<Mi-1,Si-1,Mi,Si>,其中M表示消息格式,即表示分隔符和关键词的组合。Si-1和Si分别表示第i-1个状态和第i个状态;
步骤8.2、取协议P的一个状态转换ti,使用最长公共子序列算法,将其状态比对字符串与已知协议各个状态比对字符串进行比对,计算相似度,其中相似度最高的协议记为Pi;
步骤8.3、取协议P的另一个状态转换ti+1,然后将其状态比对字符串与已知协议各个状态比对字符串使用LCS算法进行比对,计算相似度,若相似度最高的协议为Pi,则记为Pi,否则记为Pi+1;
步骤8.4、重复步骤8.2和8.3,直至协议P的所有状态转换比对完毕,统计各个已知协议在比对中比对成功的次数,其中次数最多的为推断出的状态机所属的协议。
而且,所述步骤8.2的最长公共子序列算法的具体步骤包括:
(1)首先计算两个字符串str1和str2的长度Len1和Len2,若其中有一个字符串的长度为0,则最长公共子序列长度为0;
(2)在Len1和Len2都不为0的情况下,构造一个大小为(Len1+1)×(Len2+1)的矩阵A,矩阵A中的第一行与第一列均置零,即a0,j=0,ai,0=0,其中0≤i≤Len1,0≤j≤Len2;
(3)利用递归公式计算矩阵A的元素,矩阵中最大元素的值为最大公共序列的长度,用符号LCS来表示:
(4)利用公式计算相似度δ:
本发明的优点和有益效果:
1、本发明提供一种基于协议逆向分析的电力物联网终端流量异常分析方法,用于解决传统流量检测方法在小比例异常情况下诊断精度较低的问题,以及现有方法均理想化协议逆向研究结果的问题,即认为利用协议逆向技术推断出的状态机是该协议的完整状态机,但由于输入的会话集合可能没有完全遍历协议状态机的各条路径,或者在状态机推断过程中存在某些偏差,推断的状态机并不是一个完全正确的协议状态机。
2、本发明提供的一种基于协议逆向分析的电力物联网终端流量异常分析方法,将流量异常检测转化为协议状态机比对问题。该方法基于协议逆向分析技术,利用状态机状态转换的可比较性,通过用四元组表示状态转换并利用字符串相似度检测的方法对比状态机,推断出状态机的原始信息,并进行异常判断。本发明有效的对电力物联网终端流量进行异常分析,提高了流量异常情况下的诊断精度。
附图说明
图1是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法的流程图;
图2是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中LCS算法的流程图;
图3是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中消息格式解析结果示例图;
图4是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中APTA示例图;
图5是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中状态标注示例图;
图6是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中状态机化简的红蓝节点框架图;
图7是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中状态机化简结果示例图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
一种基于协议逆向分析的电力物联网终端流量异常分析方法,如图1所示,包括以下步骤:
步骤1、获取电力物联网终端的流量数据;
所述步骤1的具体方法为:通过网络监听方式获取被分析终端的网络流量数据。
步骤2、根据电力物联网通信协议所用分隔符将获取的流量数据进行解析提取出单个消息序列;
所述步骤2的具体步骤包括:
步骤2.1、分离消息:将IP/TCP协议头剥离,提取协议的数据承载字段,对分段数据进行合并最终得到消息序列流;
步骤2.2、根据电力物联网终端通信协议使用的分隔符,从信息序列流中划分出多个独立的消息序列;
步骤3、利用Needleman-Wunsch消息聚类方法,将消息格式类似的消息进行归类,得到不同格式的消息类型;
所述步骤3的具体步骤包括:
步骤3.1:将消息序列的域用树结构表示,把根节点的直接子支看做是由若干基本域组成的序列,进行匹配并计算得分。
其匹配得分规则为:如果两个基本域匹配,分值+1;如果两个基本域不匹配,返回-1。
步骤3.2、对每一个消息序列,计算与其它消息序列的匹配得分,并为每个消息序列建立匹配得分表;
步骤3.3、从表中筛选出与得分最高的消息序列,构建一个三元组<Si,Sj,Hij>(i≠j),Sj表示与消息序列Si匹配得分最高的消息序列,Hij为这两个序列的匹配得分;
步骤3.4、检测每个消息序列的三元组,将三元组中第一元素和第二元素只是调换位置的三元组提取出来,说明对这些消息序列来说与之最匹配的消息序列已经确定,将这些三元组中的两个消息序列分为一类;
步骤3.5、根据三元组的信息,将未分配的消息序列分至与之匹配得分最高的消息序列所在的类,以此类推,最终完成消息聚类。
步骤4、对被聚为同一类的消息序列进行综合分析,得到该类消息的通用格式。
步骤5、根据步骤4得到的消息类型以及对应的消息格式,构造协议状态机的泛化前缀树(APTA,Augmented PrefixTree Acceptor);
步骤6、确定输入报文之间的时序特征,通过观察发现报文序列出现的先决条件消息,即该消息会出现在该报文序列之前,然后将用该先决条件作为标记对该类型报文进行标注;
步骤7、利用步骤5构造的APTA作为构建协议有限状态机(DFA,DeterministicFinite Automaton)的输入,根据检测步骤6得到的标注是否一致对DFA进行简化,得到协议的最小DFA,该DFA即为协议对应的有限状态机;
所述步骤7的具体步骤包括:
步骤7.1、首先从APTA的根节点开始遍历,将根节点都标记为红色,根节点的各个子节点都标记为蓝色,其他的节点为未知节点,先不进行标记;
步骤7.2、尝试合并一个红色节点和一个蓝色节点,合并的依据为两者在状态标记阶段所加的标签,如果标签相同则可以进行合并,合并时首先遍历蓝色节点的所有子树,并将它们都加入到红色节点的子树合集中,然后将新加入的子树都作为候选,标记为蓝色。若由于标签不同合并失败,则将这个蓝色节点提升为红色节点,并将其子树都标记为蓝色;
步骤7.3、对于所有未进行合并的蓝色节点,重复步骤7.1和7.2;在处理的过程中,红色节点会不断增加,一个蓝色节点在合并时需要同所有的红色节点进行比较来确定是否可以进行合并,如果不可以同所有的红色节点进行合并,则将该蓝色节点提升为红色节点;
步骤7.4、在所有的蓝色节点都被合并完成之后,此时得到的状态转换图就是状态机化简的结果,为一个最小化的DFA。
步骤8、将协议逆向得到的状态机利用字符串相似度算法与现有已知协议的状态机进行比对,以长度最大相同字符序列作为判决准则得到该消息系列所属协议以及对应的完整状态机;
所述步骤8的具体步骤包括:
步骤8.1、将推断出的协议P的状态机中的所有状态转换转变成状态比对字符串形式,即主要利用四元组中的Si-1,Mi以及Si这三个参数,将其转化为字符串。其中四元组指将协议的状态转换表示为一个四元组<前一个消息模式,初始状态,消息模式,结束状态>,用矢量t表示为t=<Mi-1,Si-1,Mi,Si>,其中M表示消息格式,即表示分隔符和关键词的组合。Si-1和Si分别表示第i-1个状态和第i个状态;
步骤8.2、取协议P的一个状态转换ti,使用最长公共子序列算法,将其状态比对字符串与已知协议各个状态比对字符串进行比对,计算相似度,其中相似度最高的协议记为Pi;
所述步骤8.2的最长公共子序列算法的具体步骤包括:
(1)首先计算两个字符串str1和str2的长度Len1和Len2,若其中有一个字符串的长度为0,则最长公共子序列长度为0;
(2)在Len1和Len2都不为0的情况下,构造一个大小为(Len1+1)×(Len2+1)的矩阵A,矩阵A中的第一行与第一列均置零,即a0,j=0,ai,0=0,其中0≤i≤Len1,0≤j≤Len2;
(3)利用递归公式计算矩阵A的元素,矩阵中最大元素的值为最大公共序列的长度,用符号LCS来表示:
(4)利用公式计算相似度δ:
步骤8.3、取协议P的另一个状态转换ti+1,然后将其状态比对字符串与已知协议各个状态比对字符串使用LCS算法进行比对,计算相似度,若相似度最高的协议为Pi,则记为Pi,否则记为Pi+1;
步骤8.4、重复步骤8.2和8.3,直至协议P的所有状态转换比对完毕,统计各个已知协议在比对中比对成功的次数,其中次数最多的为推断出的状态机所属的协议。
步骤9、将长度最大相同字符序列的长度作为判决阈值,若长度低于阈值判为通信协议的消息序列异常。
下面通过具体的算例对本发明作进一步说明:
图1所示为本发明的基于协议逆向分析的电力物联网终端流量异常分析方法的流程图。包括以下步骤:
101、利用WireShark软件进行网络抓包,得到需要进行协议逆向的电力物联网终端报文流量数据。
102、根据制定的消息格式解析策略解析通信数据,得到每个单独的消息序列格式。如图3所示是部分报文的消息格式解析结果,从图中消息格式解析结果可以看出,提取到的关键词有USER、PASS、PORT、STOR、DELE、QUIT等。
103、利用Needleman-Wunsch消息聚类方法,将消息格式类似的消息进行归类,分析得到每一类消息的通用格式。例如表1中的6个序列根据本发明的聚类方法可以分为两类,最后的聚类结果为:(S1,S3,S4,S6)和(S2,S5)。
表1各个序列匹配得分表示例
104、读取消息序列。
105、根据输入的会话集构造增广前缀树。以两个会话序列为例:{login,bot.dns,bot.status,mac.logout}和{login,mac.logout,login,bot.status,bot.dns,mac.lo gout},图4为这两个会话的APTA。
106、确定输入报文之间的时序特征,确定先决条件并以正则表达式来表示,然后利用每个状态允许输入报文类型集合对每个状态进行标注。例如对图4中的APTA进行状态标注后的结果如图5所示。
107、利用确定的DFA化简算法合并APTA,得到最小化的DFA。即在图6的红蓝节点框架上进行状态化简,将所有的节点分为两类:红色节点和蓝色节点,红色节点之间不可以合并,蓝色节点和红色节点可能可以合并。对上文中提到的会话经过状态机化简后其结果如图7所示。
表2状态序列示例
协议p | 协议1 | 协议2 |
AabBc | AabBFc | GmHnc |
Cac | Cabc | DmEc |
DdEc | DdEc | Cac |
MNc |
108、利用字符串相似度算法将待匹配的状态机与现有的协议状态机进行比对。如表2所示,列出了推断出的状态机状态转换序列和现有协议1和2的转换序列,根据LCS算法,计算出的相似度如下:与序列AabBc相似度最大的为协议1的AabBFc,相似度为91%;与序列Cac相似度最大的为协议2的Cac,相似度为100%,与序列DdEc相似度最大的为协议1的DdEc,相似度为100%。
109、利用比对结果,确定逆向协议状态机的完整信息,推断出该状态机所属的协议,若二者相似度低于设定阈值,则判为流量异常。例如依据上述所给的相似度数据,可以看出在协议1中有两条与推断出的状态机相似的状态转换,占2/3,所以推断出的状态机属于协议1,即协议1是逆向分析的协议。
图2所示是本发明的基于协议逆向分析的电力物联网终端流量异常分析方法中LCS算法的流程图,即上文步骤108中字符串相似度算法的具体流程。具体方法按照如下步骤进行:
201、计算两个字符串的长度Len1(str1)和Len2(str2)。
202、判断字符串长度是否为0。
203、若两个字符串中有一个字符串的长度为0,则最长公共子序列长度为0。
204、在Len1和Len2都不为0的情况下,构造一个大小为(Len1+1)×(Len2+1)的矩阵A。
表3 LCS算法构造的矩阵示例
205、矩阵初始化,将矩阵A中的第一行与第一列均置零,即a0,j=0,ai,0=0,其中0≤i≤Len1,0≤j≤Len2。例如对于计算字符串P=xyzabpd和T=abcdefgh的相似度,根据204、205构造的矩阵如表3所示。
206、利用递归公式(1)计算矩阵A的元素,矩阵中最大元素的值为最大公共序列的长度LCS。
207、利用公式(2)计算相似度δ。如表2所示,根据矩阵可知对于字符串P=xyzabpd和T=abcdefgh,其最大公共子序列的长度为3,最大公共子序列X=abd,相似度δ=(2×3)/(8+7)=40%。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (7)
1.一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:包括以下步骤:
步骤1、获取电力物联网终端的流量数据;
步骤2、根据电力物联网通信协议所用分隔符将获取的流量数据进行解析提取出单个消息序列;
步骤3、利用Needleman-Wunsch消息聚类方法,将消息格式类似的消息进行归类,得到不同格式的消息类型;
步骤4、对被聚为同一类的消息序列进行综合分析,得到该类消息的通用格式;
步骤5、根据步骤4得到的消息类型以及对应的消息格式,构造协议状态机的泛化前缀树APTA;
步骤6、确定输入报文之间的时序特征,通过观察发现报文序列出现的先决条件消息,即该消息会出现在该报文序列之前,然后将用该先决条件作为标记对该类型报文进行标注;
步骤7、利用步骤5构造的APTA作为构建协议有限状态机DFA的输入,根据检测步骤6得到的标注是否一致对DFA进行简化,得到协议的最小DFA,该DFA即为协议对应的有限状态机;
步骤8、将协议逆向得到的状态机利用字符串相似度算法与现有已知协议的状态机进行比对,以长度最大相同字符序列作为判决准则得到该消息系列所属协议以及对应的完整状态机;
步骤9、将长度最大相同字符序列的长度作为判决阈值,若长度低于阈值判为通信协议的消息序列异常。
2.根据权利要求1所述的一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:所述步骤1的具体方法为:
通过网络监听方式获取被分析终端的网络流量数据。
3.根据权利要求1所述的一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:所述步骤2的具体步骤包括:
步骤2.1、分离消息:将IP/TCP协议头剥离,提取协议的数据承载字段,对分段数据进行合并最终得到消息序列流;
步骤2.2、根据电力物联网终端通信协议使用的分隔符,从信息序列流中划分出多个独立的消息序列。
4.根据权利要求1所述的一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:所述步骤3的具体步骤包括:
步骤3.1、将消息序列的域用树结构表示,把根节点的直接子支看做是由若干基本域组成的序列,进行匹配并计算得分;
步骤3.2、对每一个消息序列,计算与其它消息序列的匹配得分,并为每个消息序列建立匹配得分表;
步骤3.3、从表中筛选出与得分最高的消息序列,构建一个三元组<Si,Sj,Hij>(i≠j),Sj表示与消息序列Si匹配得分最高的消息序列,Hij为这两个序列的匹配得分;
步骤3.4、检测每个消息序列的三元组,将三元组中第一元素和第二元素只是调换位置的三元组提取出来,说明对这些消息序列来说与之最匹配的消息序列已经确定,将这些三元组中的两个消息序列分为一类;
步骤3.5、根据三元组的信息,将未分配的消息序列分至与之匹配得分最高的消息序列所在的类,以此类推,最终完成消息聚类。
5.根据权利要求1所述的一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:所述步骤7的具体步骤包括:
步骤7.1、首先从APTA的根节点开始遍历,将根节点都标记为红色,根节点的各个子节点都标记为蓝色,其他的节点为未知节点,先不进行标记;
步骤7.2、尝试合并一个红色节点和一个蓝色节点,合并的依据为两者在状态标记阶段所加的标签,如果标签相同则可以进行合并,合并时首先遍历蓝色节点的所有子树,并将它们都加入到红色节点的子树合集中,然后将新加入的子树都作为候选,标记为蓝色;若由于标签不同合并失败,则将这个蓝色节点提升为红色节点,并将其子树都标记为蓝色;
步骤7.3、对于所有未进行合并的蓝色节点,重复步骤7.1和7.2;在处理的过程中,红色节点会不断增加,一个蓝色节点在合并时需要同所有的红色节点进行比较来确定是否可以进行合并,如果不可以同所有的红色节点进行合并,则将该蓝色节点提升为红色节点;
步骤7.4、在所有的蓝色节点都被合并完成之后,此时得到的状态转换图就是状态机化简的结果,为一个最小化的DFA。
6.根据权利要求1所述的一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:所述步骤8的具体步骤包括:
步骤8.1、将推断出的协议P的状态机中的所有状态转换转变成状态比对字符串形式,即主要利用四元组中的Si-1,Mi以及Si这三个参数,将其转化为字符串;其中四元组指将协议的状态转换表示为一个四元组<前一个消息模式,初始状态,消息模式,结束状态>,用矢量t表示为t=<Mi-1,Si-1,Mi,Si>,其中M表示消息格式,即表示分隔符和关键词的组合;Si-1和Si分别表示第i-1个状态和第i个状态;
步骤8.2、取协议P的一个状态转换ti,使用最长公共子序列算法,将其状态比对字符串与已知协议各个状态比对字符串进行比对,计算相似度,其中相似度最高的协议记为Pi;
步骤8.3、取协议P的另一个状态转换ti+1,然后将其状态比对字符串与已知协议各个状态比对字符串使用LCS算法进行比对,计算相似度,若相似度最高的协议为Pi,则记为Pi,否则记为Pi+1;
步骤8.4、重复步骤8.2和8.3,直至协议P的所有状态转换比对完毕,统计各个已知协议在比对中比对成功的次数,其中次数最多的为推断出的状态机所属的协议。
7.根据权利要求6所述的一种基于协议逆向分析的电力物联网终端流量异常分析方法,其特征在于:所述步骤8.2的最长公共子序列算法的具体步骤包括:
(1)首先计算两个字符串str1和str2的长度Len1和Len2,若其中有一个字符串的长度为0,则最长公共子序列长度为0;
(2)在Len1和Len2都不为0的情况下,构造一个大小为(Len1+1)×(Len2+1)的矩阵A,矩阵A中的第一行与第一列均置零,即a0,j=0,ai,0=0,其中0≤i≤Len1,0≤j≤Len2;
(3)利用递归公式计算矩阵A的元素,矩阵中最大元素的值为最大公共序列的长度,用符号LCS来表示:
(4)利用公式计算相似度δ:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110511345.3A CN113452672B (zh) | 2021-05-11 | 2021-05-11 | 基于协议逆向分析的电力物联网终端流量异常分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110511345.3A CN113452672B (zh) | 2021-05-11 | 2021-05-11 | 基于协议逆向分析的电力物联网终端流量异常分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113452672A true CN113452672A (zh) | 2021-09-28 |
CN113452672B CN113452672B (zh) | 2023-01-10 |
Family
ID=77809626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110511345.3A Active CN113452672B (zh) | 2021-05-11 | 2021-05-11 | 基于协议逆向分析的电力物联网终端流量异常分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113452672B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221816A (zh) * | 2021-12-17 | 2022-03-22 | 恒安嘉新(北京)科技股份公司 | 流量检测方法、装置、设备及存储介质 |
CN114820225A (zh) * | 2022-06-28 | 2022-07-29 | 成都秦川物联网科技股份有限公司 | 基于关键词识别和处理制造问题的工业物联网及控制方法 |
CN116033048A (zh) * | 2023-03-31 | 2023-04-28 | 中汽数据(天津)有限公司 | 物联网的多协议解析方法、电子设备和存储介质 |
CN117574178A (zh) * | 2024-01-15 | 2024-02-20 | 国网湖北省电力有限公司信息通信公司 | 基于fpga的网络流量字符串自动匹配方法和匹配装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414708A (zh) * | 2013-08-01 | 2013-11-27 | 清华大学 | 嵌入式设备的协议自动逆向分析的方法及装置 |
CN103546443A (zh) * | 2012-07-16 | 2014-01-29 | 清华大学 | 结合网络流量分析和消息聚类的网络协议逆向分析方法 |
CN104270392A (zh) * | 2014-10-24 | 2015-01-07 | 中国科学院信息工程研究所 | 一种基于三分类器协同训练学习的网络协议识别方法及系统 |
CN104506484A (zh) * | 2014-11-11 | 2015-04-08 | 中国电子科技集团公司第三十研究所 | 一种私有协议分析与识别方法 |
CN107665191A (zh) * | 2017-10-19 | 2018-02-06 | 中国人民解放军陆军工程大学 | 一种基于扩展前缀树的私有协议报文格式推断方法 |
CN108600195A (zh) * | 2018-04-04 | 2018-09-28 | 国家计算机网络与信息安全管理中心 | 一种基于增量学习的快速工控协议格式逆向推断方法 |
-
2021
- 2021-05-11 CN CN202110511345.3A patent/CN113452672B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546443A (zh) * | 2012-07-16 | 2014-01-29 | 清华大学 | 结合网络流量分析和消息聚类的网络协议逆向分析方法 |
CN103414708A (zh) * | 2013-08-01 | 2013-11-27 | 清华大学 | 嵌入式设备的协议自动逆向分析的方法及装置 |
CN104270392A (zh) * | 2014-10-24 | 2015-01-07 | 中国科学院信息工程研究所 | 一种基于三分类器协同训练学习的网络协议识别方法及系统 |
CN104506484A (zh) * | 2014-11-11 | 2015-04-08 | 中国电子科技集团公司第三十研究所 | 一种私有协议分析与识别方法 |
CN107665191A (zh) * | 2017-10-19 | 2018-02-06 | 中国人民解放军陆军工程大学 | 一种基于扩展前缀树的私有协议报文格式推断方法 |
CN108600195A (zh) * | 2018-04-04 | 2018-09-28 | 国家计算机网络与信息安全管理中心 | 一种基于增量学习的快速工控协议格式逆向推断方法 |
Non-Patent Citations (2)
Title |
---|
杨安等: "工业控制系统入侵检测技术综述", 《计算机研究与发展》 * |
田益凡等: "第5讲 基于网络流量的协议格式推断技术研究进展", 《军事通信技术》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221816A (zh) * | 2021-12-17 | 2022-03-22 | 恒安嘉新(北京)科技股份公司 | 流量检测方法、装置、设备及存储介质 |
CN114221816B (zh) * | 2021-12-17 | 2024-05-03 | 恒安嘉新(北京)科技股份公司 | 流量检测方法、装置、设备及存储介质 |
CN114820225A (zh) * | 2022-06-28 | 2022-07-29 | 成都秦川物联网科技股份有限公司 | 基于关键词识别和处理制造问题的工业物联网及控制方法 |
CN114820225B (zh) * | 2022-06-28 | 2022-09-13 | 成都秦川物联网科技股份有限公司 | 基于关键词识别和处理制造问题的工业物联网及控制方法 |
US11754995B2 (en) | 2022-06-28 | 2023-09-12 | Chengdu Qinchuan Iot Technology Co., Ltd. | Industrial internet of things for identifying and processing manufacturing problems, control methods, and storage medium |
CN116033048A (zh) * | 2023-03-31 | 2023-04-28 | 中汽数据(天津)有限公司 | 物联网的多协议解析方法、电子设备和存储介质 |
CN116033048B (zh) * | 2023-03-31 | 2024-04-09 | 中汽数据(天津)有限公司 | 物联网的多协议解析方法、电子设备和存储介质 |
CN117574178A (zh) * | 2024-01-15 | 2024-02-20 | 国网湖北省电力有限公司信息通信公司 | 基于fpga的网络流量字符串自动匹配方法和匹配装置 |
CN117574178B (zh) * | 2024-01-15 | 2024-04-26 | 国网湖北省电力有限公司信息通信公司 | 基于fpga的网络流量字符串自动匹配方法和匹配装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113452672B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113452672B (zh) | 基于协议逆向分析的电力物联网终端流量异常分析方法 | |
CN109218223B (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及系统 | |
CN109525508B (zh) | 基于流量相似性比对的加密流识别方法、装置及存储介质 | |
CN111191767A (zh) | 一种基于向量化的恶意流量攻击类型的判断方法 | |
CN112491917B (zh) | 一种物联网设备未知漏洞识别方法及装置 | |
CN106850338B (zh) | 一种基于语义分析的r+1类应用层协议识别方法与装置 | |
CN114553983B (zh) | 一种基于深度学习高效工业控制协议解析方法 | |
CN110532564A (zh) | 一种基于cnn和lstm混合模型的应用层协议在线识别方法 | |
CN111314279B (zh) | 一种基于网络流量的未知协议逆向方法 | |
CN112115965A (zh) | 一种基于svm的被动操作系统识别方法、存储介质及设备 | |
CN112199670A (zh) | 一种基于深度学习改进iforest对行为异常检测的日志监控方法 | |
CN111224998B (zh) | 一种基于极限学习机的僵尸网络识别方法 | |
Hammerschmidt et al. | Behavioral clustering of non-stationary IP flow record data | |
CN112437084B (zh) | 一种攻击特征提取的方法 | |
CN112422546A (zh) | 一种基于变邻域算法和模糊聚类的网络异常检测方法 | |
CN116991743A (zh) | 一种基于协议逆向的工控设备黑盒模糊测试方法 | |
Kong et al. | Comparison of internet traffic identification on machine learning methods | |
CN112039907A (zh) | 一种基于物联网终端评测平台的自动测试方法及系统 | |
CN114124565B (zh) | 一种基于图嵌入的网络入侵检测方法 | |
CN114969761A (zh) | 一种基于lda主题特征的日志异常检测方法 | |
KR101621959B1 (ko) | 로그패턴추출장치, 로그패턴분석장치 및 그 방법 | |
CN112929364B (zh) | 一种基于icmp隧道分析的数据泄漏检测方法及系统 | |
Wang et al. | Reverse engineering of industrial control protocol by XGBoost with V-gram | |
CN112583859A (zh) | 一种网络攻击的识别方法 | |
CN113449768A (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 |