CN106533955B - 一种基于网络报文的序列号识别方法 - Google Patents
一种基于网络报文的序列号识别方法 Download PDFInfo
- Publication number
- CN106533955B CN106533955B CN201610948173.5A CN201610948173A CN106533955B CN 106533955 B CN106533955 B CN 106533955B CN 201610948173 A CN201610948173 A CN 201610948173A CN 106533955 B CN106533955 B CN 106533955B
- Authority
- CN
- China
- Prior art keywords
- message
- serial number
- domain
- period
- sequence number
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012795 verification Methods 0.000 claims abstract description 16
- 239000011159 matrix material Substances 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 18
- 230000009191 jumping Effects 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 9
- 230000035772 mutation Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 230000000737 periodic effect Effects 0.000 abstract description 5
- 230000008859 change Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012407 engineering method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/17—Interaction among intermediate nodes, e.g. hop by hop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于网络报文的序列号识别方法,通过周期识别与序列号验证方法来解决序列号识别精确度低的问题。根据序列号周期呈单调性的原则以及多报文格式共用序列号的现象,对多个集合合并后的数据进行周期划分与判断,避免多报文格式共用序列号以及数值漂移、丢失的影响;能够高精确性地实现序列号的快速识别,并针对识别出的序列号进行验证,防止数值漂移、多序列号混合以及多报文格式共用序列号等情况对序列号识别的影响,为后续报文分类、状态机推断提供了保障。
Description
技术领域
本发明属于序列号识别技术领域,涉及基于网络报文的序列号识别方法,尤其适用于协议逆向的序列号识别。
背景技术
随着近几年网络和应用技术的飞速发展,网络攻击事件急剧增加,网络安全问题日益突出。为抵御网络攻击,保障网络、设备安全,众多安全人员设计研发出众多安全措施,如入侵检测、协议重用、模糊测试等。这些安全措施均依靠协议的详细描述规范,然而目前网络上大部分协议都是私有协议,缺少相应的规范文档。因此高效、精确的逆向工程方法就成为了安全人员乃至黑客所迫切需求的。
序列号是协议报文格式中的常规内容,因此,序列号识别是协议逆向工程中的一项基本功能,且其结果影响协议逆向的后续分析。序列号是用于标识报文序号的数值,是一组在周期性单调等差变化的数值。
序列号识别主要通过相邻报文之间的差值进行判断。首先截取所有报文对应字节的数据,然后按报文顺序判断相邻报文之间的差值,若差值基本一致,仅在固定间隔处突变成某一特定值,则认定该字节为序列号域。
但是由于用于分析的报文样本不一定完备,会存在众多问题,如:可能存在报文丢失;序号域数值发生漂移等等。这些问题直接导致序号域的识别、判断失误,进而导致协议逆向分析结果的错误,无法得到精确的协议信息,影响安全人员或黑客的后续研究。
发明内容
由于现有的序列号识别技术未能在精准性等方面达到良好效果,使序列号未能被识别,造成协议逆向结果产生严重的偏差。本发明的目的是提供一种基于网络报文的序列号识别方法,能够高精确性地实现序列号的快速识别,并针对识别出的序列号进行验证,防止数值漂移、多序列号混合以及多报文格式共用序列号等情况对序列号识别的影响,为后续报文分类、状态机推断提供了保障。
本发明通过周期识别与序列号验证方法来解决序列号识别精确度低的问题。本发明提出的基于层次聚类的周期识别方法,根据序列号周期呈单调性的原则以及多报文格式共用序列号的现象,对多个集合合并后的数据进行周期划分与判断,避免多报文格式共用序列号以及数值漂移、丢失的影响;本发明提出的验证方法通过在子类中对已识别的序列号进行重新识别,并对有误的识别信息进行修正,提高了序列号识别的精确性。
具体地,本发明通过以下技术方案实现:
一种基于网络报文的序列号识别方法,包括以下步骤:
(1)将报文样本集按会话划分成不同的报文集合,并对每个报文集合中的报文内容进行划分,将报文从报文负载开始划分成多个域。
(2)对多个报文集合从报文负载开始,依次按域进行序列号的初始识别。
(3)根据报文长度的不同或已识别出的格式标志位,对经步骤(1)划分后的每个报文集合进行划分,使各报文子集格式相同。
(4)在划分的格式相同的报文子集中,对初始识别出的序列号进行验证,并根据验证结果取消或修正误判。
进一步地,步骤(1)又包括以下步骤:
1-1)根据源IP地址(srcIP)、目的IP地址(dstIP)、源端口号(srcPORT)、目的端口号(dstPORT)、传输层协议号(IP_proto)对报文样本集进行划分,确保每个报文集合{Pno}均是由同一个会话产生的,其中no表示集合编号;
1-2)将{Pno}作为根节点为每个报文集合构造相应的树形结构,并对形成的结构树中的报文内容进行划分,设定一个字节为一个域,将报文从报文负载开始依次按字节进行划分,从而将每个报文转换成由多个域组成的报文数组。
进一步地,步骤(2)中,采用改进的层次聚类方法合并报文集合,并从报文负载开始,依次按域进行序列号识别,若多个报文集合的数据长度不同,则以最短报文中包含的域为界依次进行识别。
进一步地,上述改进的层次聚类方法需构建一个相似度矩阵,用于表示每对报文集合合并后各域的序列号判断结果,包括:
2-1)构造序列号信息库,用于存放识别出的序列号信息;
2-2)判断中同层的报文集合个数set_num,若set_num<2,则对单个报文集合内的序列号进行识别并跳转到2-4);否则(即set_num≥2)执行2-3);
2-3)计算用于表示每对报文集合合并后各域的序列号判断结果的相似度矩阵,其中数值amn,q表示报文集合m和报文集合n合并后第q域的序列号判断结果,若为非序列号,则对应取值为+∞;否则为序列号信息库中对应的编号;
2-4)在对报文集合(单报文集合或合并后的报文集合)的各域进行序列号识别后,若存在相似矩阵(合并后的报文集合情况),则在相似矩阵中查找所有不为+∞的取值,分别判断为多报文集合共用序列号,并将其相关信息在序列号信息库进行更新;更新相似度矩阵,将共用序列号的报文集合在矩阵对应的行(列)进行合并;若不存在相似矩阵(单报文集合情况),结束序列号的初始识别过程;
2-5)当矩阵中全为+∞或全合并成一个报文集合时,结束层次聚类。
进一步地,按域进行序列号的初始识别是通过识别报文集合中对应域的周期,并根据单周期或多周期比例识别方法,识别出对应的序列号,最后依据迭代方法识别序列号高位。
进一步地,识别报文集合中对应域的周期的方法包括:首先,根据报文个数和域取值个数筛选出可识别的域;其次,依次判断相邻两个报文对应域的差值的正负状态Δ,组成差值状态数组{Δj},其中j为该报文集合中的报文序号;再次,识别出|Δj+1-Δj|≠0的报文作为切分点报文,根据切分点将报文划分成多个周期;若无切分点报文,则认为是单周期,无需划分;
单周期比例识别方法包括:首先,在周期中判断各非零差值所占的比率 其中i为相邻两个报文对应域的差值,Δi_num为对应周期中差值为i的个数,dnum为该周期的报文个数;其次,判断该周期中是否存在满足下列条件:max{ri}≥μ1的周期差值,max{ri}为差值比率的最大值,μ1为单周期内差值比率阈值,若存在则判定该域为序列号域,否则判断该域为非序列号域,结束对该域的识别;
多周期比例识别方法包括:首先,在各个周期中判断各非零差值所占的比率 其中Δi_num为对应周期中差值为i的个数,dnum为该周期的报文个数;其次,判断该周期中是否存在满足下列条件:max{ri}≥μ2的周期差值,max{ri}为差值比率的最大值,μ2为周期内差值比率阈值;若不存在则该周期无周期差值;再次,在所有周期差值中,判断是否存在满足下列条件:的周期差值,为周期差值比率的最大值,dcycle_num为该域存在的周期差个数,di_num为该域周期差值为i的个数,η为周期间差值比率阈值,若存在则判定该域为序列号域,否则判断该域为非序列号域,结束对该域的识别;
识别序列号高位的方法包括:首先,判断该序列号左右相邻的域是否是序列号高位,若判断该域(位)为序列号域,在该域左右相邻的域中识别2字节序列号的高位;其次,若判断该序列号为2字节,则在该域左右相邻的2个域中识别4字节序列号的高位。
进一步地,2字节序列号的序列号高位识别方法包括:首先,在序列号的各个周期中,判断其左右相邻的域值是否一致,若不一致则判定该域不是序列号高位,结束对该域的识别;其次,判断序列号域数据是否存在多个周期,若为单周期,则判定该域为序列号高位并结束对该域的识别;再次,判断多周期间,该域周期差值是否符合序列号高位周期差值规律,若符合则判定该位为序列号高位,否则不是序列号高位,结束对该域的识别,序列号高位周期差值规律是两周期的周期差值等于周期相差个数乘以相邻周期差值;
4字节序列号的序列号高位识别方法包括:首先根据2字节序列号的高位按周期进行划分;其次,判断各周期内该序列号左右相邻的2个域数据是否一致,若不一致则判定该域不是序列号高位且该序列号域仅由2字节组成,结束对该序列号域的识别;再次,根据已识别出的序列号域,推断序列号高位的架构;将序列号高位中的低位1和序列号低位中的高位2组合起来看作1个2字节序列号,调用2字节序列号的序列号高位识别方法,对序列号高位中的低位1进行判断,若判断成功则该低位1存在,否则判定该域为非序列号高位并结束对该序列号域的识别;最后,将序列号高位看作1个2字节序列号,调用2字节序列号的序列号高位识别方法,对序列号高位中的高位1进行判断,若判断成功则该高位1存在,与低位1共同组成序列号高位;否则判定该域为非序列号高位,结束对序列号的识别。
进一步地,步骤(3)又包括以下步骤:
3-1)判断步骤(1)划分后的报文集合是否是变长数据,若是变长数据则按照数据长度对该报文集合进行划分,使得各报文子集均是定长报文集合,更新并记录其划分出的所有报文子集;
3-2)若步骤(1)划分后的报文集合是定长数据,则判断在上次报文划分位置之后能否寻找到格式标志位,若存在则跳转到3-3);否则结束整个序列号的判定过程;
3-3)根据其它相关信息(包括格式标志位等)对该报文集合进行划分,使得各报文子集格式相同,更新{Pi}结构树并记录其划分出的所有报文子集。
进一步地,步骤(4)又包括:
4-1)针对已识别出的序列号域,采用步骤(2)进行重新判断,同时将该算法中的μ和η的取值增加j*ζ,即:max{ri}≥μ1+j*ζ;max{ri}≥μ2+j*ζ和且max{μ1+j*ζ,μ2+j*ζ,η+j*ζ}≤Ω,其中j为报文样本集划分的次数,ζ为每次准确率增加的程度,Ω为保证能避免突变等影响的准确率阈值;
4-2)若该域被重新判断为非序列号,则消去该序列号域,跳转到4-4);
4-3)若重新判断仍为序列号,但序列号差值不符,则更新该序列号域信息,跳转到4-4);
4-4)根据结构树找到原序列号对应的所有父辈及它们的所有报文子集,修改对应域(相同位置的序列号域)的序列号层次,使其序列号层次与当前报文子集的层次相同;更新序列号信息库,并修正原序列号对应的集合范围。
本发明的技术效果如下:
本发明提出了一种基于网络报文的序列号识别方法,以便能在协议逆向中高效、精确地识别出序列号及其相应的层次。
本发明为了解决传统序列号识别技术的精确性的不足,采用了基于层次聚类的周期识别方法与子类验证修订的验证方法,从而实现了在网络报文中准确地识别出序列号。
本发明提出的基于层次聚类的周期识别方法通过层次聚类方法以及周期内、外部差值的变化识别方法,避免了数值丢失、漂移以及多报文格式共用序列号等所造成的序列号识别失误情况;本发明提出的验证方法,通过重新识别的验证方法,快速修正识别问题,提高序列号识别的准确性。
附图说明
图1是报文序列号的三种主要格式,a.4字节序列号;b.2字节序列号;c.1字节序列号。
图2是本发明基于网络报文的序列号识别方法整体流程图。
图3是本发明中序列号初始识别阶段流程图。
具体实施方式
本发明针对传统序列号识别技术在准确性上的不足,提出了结合周期识别方法与验证方法,针对报文的序列号识别技术,利用基于层次聚类的周期差值变化识别方法与重识别的验证方法来提高序列号识别的精度。
如图1所示,在正常报文中,序列号一共有3种情况,其长度分别为1字节、2字节和4字节。本识别方案首先识别出1字节序列号,再逐层判断其高位的存在,进而推断出整个序列号域。
如图2所示,本发明的整体流程分为四个阶段:报文预处理;序列号的初步识别;样本集划分;对已有序列号的验证。
报文预处理阶段,将报文样本集进行聚类,根据数据来源和方向将报文样本集划分成多个小集合。
该过程首先将报文样本集按照会话进行划分,即根据五元组(srcIP、dstIP、srcPORT、dstPORT、IP_proto)对报文样本集进行划分,确保每个报文集合{Pno}均是由同一个会话产生的,其中no表示报文集合编号。
然后将{Pno}作为根节点为每个报文集合构造相应的树形结构,并对结构树中的报文内容进行划分,设定一个字节为一个域,将报文从报文负载开始依次按域进行划分,即将每个报文转换成由多个域组成的报文数组。
序列号初始识别阶段,如图3所示,其中,图中涉及的各条件如表1所示。
表1序列号初始识别流程图条件说明
为应对多个报文集合共用一个序列号域的情况,采用多报文集合合并识别的方案,通过改进的层次聚类方法合并报文集合,并从报文负载开始,依次按域进行识别,若多个样本集合的数据长度不同,则以最短报文中包含的域为界依次进行识别。每个域的序列号识别方法是通过识别{Pno}中对应域的周期,根据计算出的周期差值在整个样本对应域的周期差值集合中所占的比值,识别出对应的序列号。该过程可以叙述如下:
1)构造序列号信息库,用于存放识别出的序列号信息;
2)判断结构树中同层的报文集合个数set_num,若set_num<2,则跳转到4)对单个报文集合内的序列号进行识别,否则执行3);
3)计算用于表示每对报文集合合并后各域的序列号判断结果(其中序列号的判断过程如4)-9)所示)的相似度矩阵,其中数值amn,q表示报文集合m和报文集合n合并后第q域的序列号判断结果,若为非序列号,则对应取值为+∞;否则为序列号信息库中对应的编号;
序列号判断过程:
4)判断该域的取值个数ψ,若ψ<2,则认为该域为常量,结束该域的序列号识别;
5)周期识别:通过判断数值的单调性划分成各个周期
a)由于在报文过少的情况下无法判断序列号,因此首先判断该类报文个数p_num,若p_num<λ(λ为能判定序列号的最少报文个数),则认为该域无法判断,判定该域为非序列号域,结束该域的序列号识别;否则执行b);
b)在该类报文中,依次判断相邻两个报文对应域的差值的正负状态Δ,组成差值状态数组{Δj};
c)依次比较{Δj}中的数据,若满足条件1:|Δj+1-Δj|≠0,即前后两报文单调性不同,对应报文为切分点报文,根据切分点将报文划分成多个周期,若无切分点报文,则认为是单周期,无需划分;
6)判断各周期中的所有差值Δ′
7)根据比率识别序列号
a)在每个周期中判断各非零差值所占的比率其中Δi_num为对应周期中差值为i(i不为零)的个数,dnum为该周期的报文个数;
b)判断是否存在多个周期,若为单周期,则跳转到c);否则跳转到d);
c)在该周期中,选取周期差值(这里也被称为序列号差值D)D=d=argmax{ri}满足下列条件3:max{ri}≥μ1,μ1为单周期内差值比率阈值;若D存在,则判定该域为序列号域,并标示相应的层次,跳转到8);若不存在这样的D,则判定该域为非序列号域,结束对该域的识别;
d)在每个周期中,选取周期差值d=argmax{ri}满足下列条件2:max{ri}≥μ2,μ2为周期内差值比率阈值;若不存在这样的d则认为该周期无周期差值;
e)选取对应域序列号差值D=argmax{di_num}满足下列条件4:其中dcycle_num为该域存在的周期差个数,di_num为该域周期差值为i的个数,η为周期间差值比率阈值。若D存在,则判定该域为序列号域,并标示相应的层次;若不存在这样的D,则判定该域为非序列号域;
8)若判断该位为序列号域,在该域左右相邻的域V中识别2字节序列号的高位
a)判断各周期中,其左(或右)相邻的域值{Vi}是否一致;
i.根据该域划分出的周期,在每个周期中截取其左(或右)相邻域的取值{Vi},i为周期序号;
ii.在每个周期中,判断{Vi}的取值个数ψ,若ψ≥2,则认为该域取值不一致,不是序列号高位,结束对该域的识别;
b)判断是否存在多个周期,若为单周期,则判定该域为序列号高位,并标示出相应的层次(和序列号域的层次相同),结束对该域的识别;
c)选取T域中每个周期的唯一取值,组成周期取值集合{V′};
d)选取周期差值d满足下列条件5:V′i+j-Vi′=j*d。若d存在,则判定该域为序列号高位,并标示出相应的层次(和序列号域的层次相同);若d不存在,则判定该域为非序列号高位;
9)若判断该序列号为2字节,则在该域左右相邻的2个域中识别4字节序列号的高位
a)判断是否为由4个域组成的序列号域
i.判断识别出的序列号高位是否存在多个周期,若为多周期,则进行划分;
ii.判断各周期中,该序列号左(或右)相邻的两个域的取值是否固定不变,若为变量,则该序列号仅有2字节,结束对该序列号域的识别;否则该序列号可能是由4字节组成;
b)判断4字节组成的序列号高位
i.根据已识别出的序列号域,推断序列号高位的架构(即序列号高位中的高位1、低位1的排列顺序);
ii.将序列号高位中的低位1和序列号低位中的高位2组合起来看作1个2字节序列号,调用8)对序列号高位中的低位1进行判断,若判断成功则该低位1存在;否则判定该域为非序列号高位,结束对该序列号域的识别;
iii.将序列号高位看作1个2字节序列号,调用8)对序列号高位中的高位1进行判断,若判断成功则该高位1存在,与低位1共同组成序列号高位,并标示出相应的层次(和序列号低位相同);否则判定该域为非序列号高位,结束对序列号的识别;
序列号判断过程结束
10)若存在相似矩阵,则在相似矩阵中查找所有不为+∞的取值,分别判断为多报文集合共用序列号,并将其相关信息在序列号信息库进行更新;更新相似度矩阵,将共用序列号的报文集合在矩阵对应的行(列)进行合并。若不存在相似矩阵,结束序列号的初始识别过程;
11)重复执行步骤3)和步骤10),直至矩阵中全为+∞或全合并成一个报文集合时,结束序列号的初始识别过程。
样本集划分阶段,根据数据中已获得的信息,对传递到序列号初始识别阶段的(未合并前的)报文集合{Pno}按格式进行划分,使各报文子集格式相同。
在协议逆向中,获取的样本均是包含众多格式,随着逆向过程的进行,可提取出多个格式标志位(指明后续数据格式的域)等信息用于区分多个格式,且格式区分的精确度随着逆向过程的执行越发趋于精确。因此,随着协议逆向的进行,可将报文集合{Pno}从报文中上次划分位置(报文起始位置)开始寻找格式标志位,并依该格式标志位信息将报文集合{Pno}进行划分,使得相应报文集合中格式数量逐步降低,进而有效地提升了序列号识别的精确性。该过程可以叙述如下:
1)判断该报文集合是否是变长数据,若是变长数据则按照数据长度对{Pno}进行划分,使得各报文子集均是定长报文集合,并记录其划分出的所有报文子集
2)若是定长数据,则判断在上次报文划分位置之后能否寻找到格式标志位。若存在则跳转到3);否则结束整个序列号的判定过程
3)根据其它相关信息(如格式标志位等)对{Pno}进行划分,使得各报文子集格式相同,并记录其划分出的所有报文子集
序列号验证阶段,对已识别的序列号进行验证,修正或消除判断失误的序列号。
在初始识别过程中,所采用的报文集合包含了众多格式,因此会出现对应域为序列号和常量或序列号和序列号混杂,但该类整体特征符合序列号的判断的情况,造成对该域的误判。然而在经历过报文集合划分阶段后,报文集合中包含的格式趋于单一,导致对应域的变化规律发生变化,消除上述混杂情况。因此需要对序号域进行验证,以提高其识别准确性。
验证的核心是对已识别的序列号进行再判断。在该阶段,首先从报文负载开始依次对每个域进行查看,发现已识别出的序列号域。然后重用初步识别方法对这些已识别的序列号域进行再次识别,然后根据相应结果,取消或修正误判。该过程可以叙述如下:
1)针对已识别出的序列号域,重新采用序列号初始识别算法进行验证,但为提升判断精度,将该算法中的μ和η的取值增加j*ζ,即将序列号初始识别算法中7)的c)、d)和e)中的条件分别修正为:max{ri}≥μ1+j*ζ;max{ri}≥μ2+j*ζ和且max{μ1+j*ζ,μ2+j*ζ,η+j*ζ}≤Ω,其中j为报文样本集划分的次数,ζ为每次准确率增加的程度,Ω为保证能避免突变等影响的准确率阈值
2)根据重新判断的结果对该域进行相应的处理
a)若该域被重新判断为常量(非序列号),则消去该序列号域,跳转到c);
b)若重新判断仍为序列号,但变化幅度不符(即序列号差值不符),则更新该序列号域信息(修改对应的序列号差值、序列号高位信息等),跳转到c);
c)若出现a)或b)的情况,则根据标号找到原序列号对应的所有父辈及它们的所有报文子集,修改对应域(相同位置的序列号域)的序列号层次,使其序列号层次与当前报文子集的层次相同;更新序列号信息库,并修正原序列号对应的报文集合范围。
在执行完序列号验证阶段后,由于报文集合报文格式不统一,除上述情况外,还会出现序列号和变量、序列号和序列号混杂,导致序列号无法识别的情况。同时由于对报文集合进行划分,导致报文子集格式数量减少,某些域中混杂的数据被拆散,增加了该域被识别的可能性。因此需要重新跳转到序列号初始识别阶段,对报文子集中的其它域进行重新识别。
本发明提出的基于网络报文的序列号识别技术对报文中的各个域进行判断,保证高效地识别出序列号域。
本发明提出的基于层次聚类和周期划分的识别方法,有效地避免了数值漂移、丢失以及多报文格式共用序列号等情况,提高了序列号域的识别准确度。
本发明提出的基于子类验证修订的验证方法,有效地排除了误判,提高了序列号识别的精确性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围内。
Claims (3)
1.一种基于网络报文的序列号识别方法,包括以下步骤:
(1)根据由源IP地址、目的IP地址、源端口号、目的端口号和传输层协议号组成的五元组对报文样本集进行划分,确保每个报文集合{Pno}均是由同一个会话产生的,其中no表示报文集合编号;将{Pno}作为根节点为每个报文集合构造相应的树形结构,并对形成的结构树中的报文内容进行划分,设定一个字节为一个域,将报文从报文负载开始依次按字节进行划分,从而将每个报文转换成由多个域组成的报文数组;
(2)采用改进的层次聚类方法合并报文集合,并从报文负载开始,依次按域进行序列号识别,若多个报文集合的数据长度不同,则以最短报文中包含的域为界依次进行识别;其中,所述改进的层次聚类方法包括:
2-1)构造序列号信息库,用于存放识别出的序列号信息;
2-2)判断中同层的报文集合个数set_num,若set_num<2,则对单个报文集合内的序列号进行识别;否则计算用于表示每对报文集合合并后各域的序列号判断结果的相似度矩阵,其中数值amn,q表示报文集合m和报文集合n合并后第q域的序列号判断结果,若为非序列号,则对应取值为+∞;否则为序列号信息库中对应的编号;
2-3)在对报文集合的各域进行序列号识别后,若存在相似矩阵,则在相似矩阵中查找所有不为+∞的取值,分别判断为多报文集合共用序列号,并将其相关信息在序列号信息库进行更新;更新相似度矩阵,将共用序列号的报文集合在矩阵对应的行/列进行合并;若不存在相似矩阵,结束序列号的初始识别过程;
2-4)当矩阵中全为+∞或全合并成一个报文集合时,结束层次聚类;
所述每个域的序列号识别方法是通过识别报文集合中对应域的周期,并根据单周期或多周期比例识别方法,识别出对应的序列号,最后依据迭代方法识别序列号高位;其中,
识别报文集合中对应域的周期的方法包括:首先,根据报文个数和域取值个数筛选出可识别的域;其次,依次判断相邻两个报文对应域的差值的正负状态Δ,组成差值状态数组{Δj},其中j为该报文集合中的报文序号;再次,识别出|Δj+1-Δj|≠0的报文作为切分点报文,根据切分点将报文划分成多个周期;若无切分点报文,则认为是单周期,无需划分;
单周期比例识别方法包括:首先,在周期中判断各非零差值所占的比率(i≠0),其中i为相邻两个报文对应域的差值,Δi_num为对应周期中差值为i的个数,dnum为该周期的报文个数;其次,判断该周期中是否存在满足下列条件:max{ri}≥μ1的周期差值,max{ri}为差值比率的最大值,μ1为单周期内差值比率阈值,若存在则判定该域为序列号域,否则判断该域为非序列号域,结束对该域的识别;
多周期比例识别方法包括:首先,在各个周期中判断各非零差值所占的比率(i≠0),其中Δi_num为对应周期中差值为i的个数,dnum为该周期的报文个数;其次,判断该周期中是否存在满足下列条件:max{ri}≥μ2的周期差值,max{ri}为差值比率的最大值,μ2为周期内差值比率阈值;若不存在则该周期无周期差值;再次,在所有周期差值中,判断是否存在满足下列条件:的周期差值,为周期差值比率的最大值,dcycle_num为该域存在的周期差个数,di_num为该域周期差值为i的个数,η为周期间差值比率阈值,若存在则判定该域为序列号域,否则判断该域为非序列号域,结束对该域的识别;
(3)根据报文长度的不同或已识别出的格式标志位,对经步骤(1)划分后的每个报文集合进行划分,使各报文子集格式相同;
(4)在划分的格式相同的报文子集中,对初始识别出的序列号进行验证,并根据验证结果取消或修正误判。
2.如权利要求1所述的基于网络报文的序列号识别方法,其特征在于,步骤(3)又包括以下步骤:
3-1)判断步骤(1)划分后的报文集合是否是变长数据,若是变长数据则按照数据长度对报文集合进行划分,使得各报文子集均是定长报文集合,更新并记录其划分出的所有报文子集;
3-2)若步骤(1)划分后的报文集合是定长数据,则判断在上次报文划分位置之后能否寻找到格式标志位,若存在则跳转到3-3);否则结束整个序列号的判定过程;
3-3)根据格式标志位对报文集合进行划分,使得各报文子集格式相同,更新{Pi}结构树并记录其划分出的所有报文子集。
3.如权利要求1所述的基于网络报文的序列号识别方法,其特征在于,步骤(4)又包括:
4-1)针对已识别出的序列号域,采用步骤(2)进行重新判断,同时将μ1、μ2和η的取值增加j*ζ,即:max{ri}≥μ1+j*ζ;max{ri}≥μ2+j*ζ和且max{μ1+j*ζ,μ2+j*ζ,η+j*ζ}≤Ω,其中j为报文样本集划分的次数,ζ为每次准确率增加的程度,Ω为保证能避免突变影响的准确率阈值;
4-2)若该域被重新判断为非序列号,则消去该序列号域,跳转到4-4);
4-3)若重新判断仍为序列号,但序列号差值不符,则更新该序列号域信息,跳转到4-4);
4-4)根据结构树找到原序列号对应的所有父辈及它们的所有报文子集,修改对应域的序列号层次,使其序列号层次与当前报文子集的层次相同;更新序列号信息库,并修正原序列号对应的报文集合范围。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610948173.5A CN106533955B (zh) | 2016-10-26 | 2016-10-26 | 一种基于网络报文的序列号识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610948173.5A CN106533955B (zh) | 2016-10-26 | 2016-10-26 | 一种基于网络报文的序列号识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106533955A CN106533955A (zh) | 2017-03-22 |
CN106533955B true CN106533955B (zh) | 2019-11-29 |
Family
ID=58292519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610948173.5A Active CN106533955B (zh) | 2016-10-26 | 2016-10-26 | 一种基于网络报文的序列号识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106533955B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111162959B (zh) * | 2019-11-28 | 2021-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于参数的航电接口数据通信协议模糊测试方法 |
CN111126500A (zh) * | 2019-12-26 | 2020-05-08 | 南京烽火星空通信发展有限公司 | 一种基于离散报文的多媒体流量识别方法 |
CN111723579A (zh) * | 2020-06-17 | 2020-09-29 | 国家计算机网络与信息安全管理中心 | 一种工控协议字段与语义逆向推断方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819560A (zh) * | 2006-03-14 | 2006-08-16 | 杭州华为三康技术有限公司 | 多单元发送时的报文序列号检测方法及装置 |
CN105656923A (zh) * | 2016-02-18 | 2016-06-08 | 中国工程物理研究院计算机应用研究所 | 一种基于模糊加权的二进制协议格式解析方法 |
-
2016
- 2016-10-26 CN CN201610948173.5A patent/CN106533955B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819560A (zh) * | 2006-03-14 | 2006-08-16 | 杭州华为三康技术有限公司 | 多单元发送时的报文序列号检测方法及装置 |
CN105656923A (zh) * | 2016-02-18 | 2016-06-08 | 中国工程物理研究院计算机应用研究所 | 一种基于模糊加权的二进制协议格式解析方法 |
Non-Patent Citations (2)
Title |
---|
基于网络数据的协议逆向工程研究进展;刘渊等;《计算机工程与设计》;20151130;全文 * |
基于递归聚类的报文结构提取方法;潘璠等;《四川大学学报》;20121130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106533955A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617927B (zh) | 一种匹配安全策略的方法及装置 | |
CN109871954B (zh) | 训练样本生成方法、异常检测方法及装置 | |
CN111191767B (zh) | 一种基于向量化的恶意流量攻击类型的判断方法 | |
CN108874927B (zh) | 基于超图和随机森林的入侵检测方法 | |
US8068431B2 (en) | System and method for deep packet inspection | |
CN105868108B (zh) | 基于神经网络的指令集无关的二进制代码相似性检测方法 | |
CN106789912B (zh) | 基于分类回归决策树的路由器数据平面异常行为检测方法 | |
CN103870381B (zh) | 一种测试数据生成方法及装置 | |
CN106533955B (zh) | 一种基于网络报文的序列号识别方法 | |
CN111147459B (zh) | 一种基于dns请求数据的c&c域名检测方法及装置 | |
CN109873774B (zh) | 一种网络流量识别方法及装置 | |
CN109327480B (zh) | 一种多步攻击场景挖掘方法 | |
CN108063768B (zh) | 基于网络基因技术的网络恶意行为识别方法及装置 | |
US10176187B2 (en) | Method and apparatus for generating a plurality of indexed data fields | |
CN113452672B (zh) | 基于协议逆向分析的电力物联网终端流量异常分析方法 | |
CN103154884A (zh) | 模式检测 | |
CN109800337B (zh) | 一种适用于大字母表的多模式正则匹配算法 | |
CN112052413B (zh) | Url模糊匹配方法、装置和系统 | |
CN105390132B (zh) | 一种基于语言模型的应用协议识别方法及系统 | |
CN114153980A (zh) | 知识图谱构建方法和装置、检查方法、存储介质 | |
CN108933781A (zh) | 用于处理字符串的方法、装置及计算机可读存储介质 | |
CN106874762A (zh) | 基于api依赖关系图的安卓恶意代码检测方法 | |
CN109474691A (zh) | 一种物联网设备识别的方法及装置 | |
CN103036848B (zh) | 协议的逆向工程方法及系统 | |
CN115242424A (zh) | 一种基于状态机子图同构匹配的私有网络协议分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |