一种基于增量聚类的未知协议报文格式推断系统

摘要: 本发明涉及网络通信协议分析领域,具体涉及一种基于增量聚类的未知协议报文格式推断系统。背景技术:1、随着网络通信系统中私有协议、专用设备协议以及缺乏完整技术文档的...
一种基于增量聚类的未知协议报文格式推断系统

本发明涉及网络通信协议分析领域,具体涉及一种基于增量聚类的未知协议报文格式推断系统。

背景技术:

1、随着网络通信系统中私有协议、专用设备协议以及缺乏完整技术文档的通信协议不断增加,在未知协议描述的情况下,根据通信报文恢复协议报文格式成为协议逆向分析中的重要基础环节。现有报文格式推断通常需要从采集到的报文样本中识别结构相近的报文类型,再通过序列比对、字节变化分析等方式确定固定区域、可变区域及字段边界,并进一步推断长度字段、数据字段等字段属性。由于不同类型报文可能具有相同公共头部、相近报文长度以及大量相同字节,仅依据整体字节相似性划分报文时,容易将实际字段结构不同的报文归入同一类别。

2、现有技术中,cn102891852a公开了一种基于报文分析的协议格式自动推断方法,其先依据字节的可显示属性对网络报文进行划段,并根据划段形成的格式序列实施初步聚类;随后对结构相似的报文样本以段为单位进行多序列比对,通过局部序列比对、层次聚类及全局序列比对获得报文基本结构;在此基础上,再根据各字段的取值及变化特征推断间隔字段、数据字段、序号字段、长度字段和格式标识字段。该方案能够降低不同格式报文共同参与序列比对所产生的计算开销,并提高报文结构和字段语义推断效率。

3、但是,上述方案以获取足够数量的报文样本并集中分析为基础,整体处理关系仍表现为先形成报文类别,再在既有类别内部进行结构及字段推断。 当未知协议报文持续增加时,早期样本不足可能使具有相同公共结构但内部字段组织不同的报文被暂时归入同一报文簇;后续即使在字段结构分析过程中出现新的边界差异,现有处理方式也缺少利用该局部字段结构分歧反向修正既有报文簇的针对性机制。若直接重新对新增报文和全部历史报文进行聚类,则又会增加重复的距离计算、结构比对和格式推断开销。

4、因此,现有技术仍需要解决这样的问题:在未知协议报文持续进入的情况下,如何利用格式推断过程中逐步获得的字段结构信息持续检验已有聚类结果,在同一报文簇内部出现真实格式分化时,将普通变长字段造成的边界位移与不同字段组织结构区分开来,并仅针对实际发生结构分歧的局部报文及相关历史报文调整聚类结果,从而避免早期错误混簇持续影响后续格式推断,同时减少对全部历史报文反复执行聚类和格式分析的处理开销。

技术实现思路

1、本发明的目的在于,针对所存在的不足,提出了一种基于增量聚类的未知协议报文格式推断系统。

2、本发明采用如下技术方案:

3、一种基于增量聚类的未知协议报文格式推断系统,其特征在于,包括报文簇状态管理单元、增量归属单元、字段边界证据更新单元、边界分歧识别单元、局部簇重构单元和格式推断单元;

4、所述报文簇状态管理单元,用于维护多个未知协议报文簇,并为各报文簇维护稳定锚点以及相邻稳定锚点之间的主边界路径;

5、所述增量归属单元,用于依据新增报文与各报文簇的稳定锚点及主边界路径之间的结构兼容关系确定新增报文的候选归属簇;

6、所述字段边界证据更新单元,用于获取新增报文在所述候选归属簇的相邻稳定锚点之间形成的边界路径;

7、所述边界分歧识别单元,用于在所述新增报文形成的边界路径不能由所述主边界路径及其已有变长字段的长度变化解释时,将所述边界路径作为候选替代边界路径,并在同一对稳定锚点之间的候选替代边界路径持续获得多个报文支持且与所述主边界路径形成结构排斥时,将所述候选替代边界路径确定为竞争边界路径,并确定对应报文簇发生局部格式分化;

8、所述局部簇重构单元,用于根据分别支持所述主边界路径和竞争边界路径的报文,对发生局部格式分化的报文簇进行局部重构,并分别维护重构后各报文簇在所述稳定锚点之间的边界路径;

9、所述格式推断单元,用于基于重构后各报文簇的稳定锚点及边界路径生成对应的未知协议报文格式。

10、进一步的,所述报文簇状态管理单元用于对同一报文簇内的报文进行粗粒度结构对齐,根据多个报文对候选结构位置的重复支持情况确定稳定锚点,并利用相邻稳定锚点限定局部分析区间。

11、进一步的,所述字段边界证据更新单元用于在相邻稳定锚点之间确定内部字段边界,并按照所述内部字段边界的先后顺序形成边界路径;

12、对不同报文形成的边界路径进行比较时,根据内部字段边界数量、排列顺序、局部对齐后的位置关系以及字段长度变化关系判断所述边界路径是否属于同一路径。

13、进一步的,所述增量归属单元用于将与候选归属簇形成结构兼容关系的新增报文标记为待确认成员;

14、所述字段边界证据更新单元将所述待确认成员产生的边界路径记录为临时路径证据,并在所述待确认成员能够支持当前主边界路径且与当前报文簇的结构兼容程度高于其他报文簇,或者多个待确认成员重复支持同一候选替代边界路径且形成一致局部结构时,将对应临时路径证据转为有效路径证据。

15、进一步的,所述边界分歧识别单元用于在新增报文与当前主边界路径之间存在内部字段边界位置差异时,根据已有变长字段的长度变化对受影响的内部字段边界进行位移补偿;

16、在位移补偿后,内部字段边界数量、排列顺序或字段分隔关系仍不能与所述主边界路径匹配时,将新增报文形成的边界路径确定为候选替代边界路径。

17、进一步的,所述边界分歧识别单元用于分别维护主边界路径的有效支持成员集合、候选替代边界路径的有效支持成员集合以及路径模糊成员集合,并根据候选替代边界路径的重复性、持续性、支持成员内部一致性以及与主边界路径之间的结构排斥关系,确定候选替代边界路径是否满足格式分化条件。

18、进一步的,所述结构排斥关系为:

19、主边界路径的有效支持成员不能形成候选替代边界路径中的关键内部字段边界,且候选替代边界路径的有效支持成员不能形成主边界路径中的关键内部字段边界;

20、所述候选替代边界路径还满足其内部字段边界数量、排列关系或字段组织关系不能由所述主边界路径中已有变长字段的长度变化解释。

21、进一步的,所述局部簇重构单元用于将持续支持主边界路径的报文保留于原报文簇,将持续支持竞争边界路径的报文形成新的报文簇,并使所述新的报文簇继承边界分歧区间之外与原报文簇共同具有的稳定锚点及边界路径,在所述边界分歧区间内分别维护不同的主边界路径。

22、进一步的,还包括待定报文回溯单元;

23、所述报文簇状态管理单元用于为成员报文保存各稳定锚点区间对应的局部路径状态;

24、所述待定报文回溯单元用于在局部簇重构后,根据所述局部路径状态筛选曾在边界分歧区间内表现为候选路径支持、路径模糊、无有效边界证据或主边界路径中的关键内部字段边界缺失的历史报文,并仅针对所述边界分歧区间重新确定所述历史报文的报文簇归属。

25、进一步的,所述格式推断单元用于根据重构后各报文簇中经字段边界证据确认的稳定字段边界划分字段区域,并依据各字段区域的长度变化、字节取值变化以及字段间关联关系,确定固定字段、定长变量字段、长度字段、变长字段和校验字段中的至少一种字段属性。

26、本发明所取得的有益效果是:

27、本发明通过在报文簇中建立稳定锚点及锚点间边界路径,将未知协议报文的增量聚类由整体字节相似性判断转化为局部字段结构关系判断,并利用变长字段位移补偿区分可解释的字段位置变化与真实的边界路径分化;当同一对稳定锚点之间持续形成与主边界路径相互排斥且不能由既有变长结构解释的竞争边界路径时,以该局部边界分歧作为报文格式分化依据,对相应报文簇实施局部重构,从而使格式推断结果能够反向修正早期聚类过程中产生的混簇问题。局部重构时仅处理支持不同边界路径的报文,并根据历史局部路径状态回溯与当前分歧区间相关的待定报文,无需对全部历史报文重新聚类和重新执行完整格式推断,在提高不同报文格式区分准确性的同时降低持续报文分析过程中的重复计算量,使报文簇结构与协议格式随新增报文持续进入逐步收敛。

28、为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。