CN112994984B - 识别协议及内容的方法、存储设备、安全网关、服务器 - Google Patents

识别协议及内容的方法、存储设备、安全网关、服务器 Download PDF

Info

Publication number
CN112994984B
CN112994984B CN202110407552.4A CN202110407552A CN112994984B CN 112994984 B CN112994984 B CN 112994984B CN 202110407552 A CN202110407552 A CN 202110407552A CN 112994984 B CN112994984 B CN 112994984B
Authority
CN
China
Prior art keywords
protocol
string
data stream
strings
frequent
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
Application number
CN202110407552.4A
Other languages
English (en)
Other versions
CN112994984A (zh
Inventor
肖洪涛
王东升
周木子
孙亮
王特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ziguang Hengyue Technology Co Ltd
Original Assignee
Ziguang Hengyue Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ziguang Hengyue Technology Co Ltd filed Critical Ziguang Hengyue Technology Co Ltd
Priority to CN202110407552.4A priority Critical patent/CN112994984B/zh
Publication of CN112994984A publication Critical patent/CN112994984A/zh
Application granted granted Critical
Publication of CN112994984B publication Critical patent/CN112994984B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供识别协议及内容的方法、存储设备、安全网关、服务器,所述识别协议的方法包括:获取并解析待识别网络协议的数据流;确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;或者确认所述数据流包括的数据包的传输层携带的端口号属于动态端口号或者属于使用频率小于设定阈值的端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型。本申请的实施例对于通过端口号确定的协议类型,还需要根据协议内容再次确认协议类型,以提升固定端口协议类型识别的准确率。

Description

识别协议及内容的方法、存储设备、安全网关、服务器
技术领域
本申请涉及网络协议类型识别领域,具体而言本申请实施例涉及识别协议及内容的方法、存储设备、安全网关、服务器。
背景技术
在当前5G、云服务等技术迅速发展态势下,网络直播、视频点播等视听媒体内容在网络中所占比例在不断增大,视听媒体内容已经成为人们生活中不可缺少的部分。而在高通量的视听媒体数据中,存在一些不合规或者垃圾的音视频流,同时某些网络传输机制的需要统计网络中各种协议(例如音视频协议)的比例,而相关协议较多,且存在一些私有的协议也可进行数据(例如,音视频)的传输。
出于以上考虑,需要对当前传输协议(例如,音视频传输协议)进行有效的识别与检测,实现对有害内容的音视频快速审计和过滤。而当前对于协议(例如,音视频传输协议)的识别与分析研究较少,传统的协议识别与分析大多针对已有的协议进行研究,如基于端口或者报文负载的协议识别,而针对未知的协议及私有协议研究正在发展阶段,同时如何提高识别的准确率及效率也是协议识别的关键点。
本申请的发明人发现为了满足日益增长的视频媒体安全防护要求,需要一种高效的网络协议(例如,视听媒体协议)检测识别方法已是刻不容缓。
发明内容
本申请实施例的目的在于提供识别协议及内容的方法、存储设备、安全网关、服务器,采用本申请实施例的协议识别方法可以提升网络协议识别的效率和准确率。
第一方面,本申请的一些实施例提供一种识别协议的方法,所述方法包括:获取并解析待识别网络协议的数据流;确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;或者确认所述数据流包括的数据包的传输层携带的端口号属于动态端口号或者属于使用频率小于设定阈值的端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型。
本申请的实施例对于通过端口号确定的协议类型,还需要根据协议内容再次确认协议类型,以提升固定端口协议类型识别的准确率,进一步对于未知协议可以采用多模式匹配算法提取这些数据流的频繁串以丰富对应的特征集,方便对采用这类协议的数据流的协议类型识别。
在一些实施例中,所述确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型,包括:根据所述数据包对应的数据流提取待识别协议的特征;根据所述待识别协议的特征与预先建立的所述第一特征库中的特征进行比对,以确定所述待识别协议的类型,其中,所述第一特征库是通过提取已知协议类型的特征得到的,所述第一特征库包括单一规则和组合规则,所述组合规则是将所述至少一条单一规则进行哈希运算得到的。
本申请的一些实施例通过将单一规则组成混合规则进行字符串匹配,可以提高协议类型识别的准确率。
在一些实施例中,所述确认所述数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型,包括:根据RK字符串匹配算法比对所述待识别协议的特征和所述第一特征库中的特征。
本申请的一些实施例通过利用已知协议的特征建立特征库,根据RK算法(即Rabin-Karp算法)对提取的待识别协议的特征与各类已知协议特征进行比对匹配,以识别待识别协议的具体类型。
在一些实施例中,所述根据RK字符串匹配算法比对所述待识别协议的特征和所述第一特征库中的特征,包括:计算所述第一特征库中长度为m的模式串P的哈希值;将待识别协议类型的数据流对应的主串T切分为长度为m的多个子串;计算第i子串的哈希值,确认所述第i子串的哈希值与所述模式串P的哈希值相同,其中,所述第i子串是切分所述主串T得到的;拆分所述第i子串包括的每个字符,并将所述第i子串包括的每个字符与所述模式串P中的字符两两比较,如果相等则结束,否则计算第i+1子串的哈希值;其中,i的最大取值为切分所述主串得到的子串的数目。
与现有技术的直接比较子串中包括的字符与模式串包括的字符是否相同的RK算法相比,由于本申请的实施例只有在哈希值相同时才拆分子串中的字符并将拆分得到的各字符分别与对应模式串中各字符比较,因此本申请的实施例提升了子串匹配的速度节约了处理时间。
在一些实施例中,当i大于等于2时,则所述第i子串的哈希值是通过前一子串的哈希值、所述前一子串包括的第一个字符的哈希值和所述前一子串包括的最后一个字符的下一个字符的哈希值得到的,其中,所述下一个字符是通过在所述主串中查找所述前一子串的最后一个字符的下一个字符获取的。
与相关技术的RK算法不同,本申请的一些实施例采用RK算法进行模式串匹配时,只需计算第一个子串的哈希值Hash,后续的子串的哈希值只需计算两个字符的哈希值(即前一子串的第一个字符和当前子串的第一个字符),避免了计算各个整子串的Hash值,提高了计算效率。
在一些实施例中,所述第i子串的哈希值的计算公式为:
Figure DEST_PATH_IMAGE001
其中,i的取值为大于等于2的整数。
本申请的一些实施例通过上述公式确定第i子串的哈希值,提升了哈希值计算的速度。
在一些实施例中,所述将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型,包括:确认所述协议特征与所述模式串相匹配,则确认所述数据流的协议类型与所述模式串对应的协议类型相同;或者确认所述协议特征与所述模式串均不匹配,则基于多模式匹配算法建立对应协议的特征集,得到所述第二特征库中的模式串。
在一些实施例中,所述基于多模式匹配算法建立对应协议的特征集,包括:切分所述数据流对应的协议负载,得到长度为k的各模式串,其中,k为大于或者等于2的整数;选择数组结构建立所述各模式串和数组下标的映射关系;扫描主串T,根据所述映射关系统计所述各模式串出现的次数和位置;将所述各模式串按照出现的次数排序,根据排序结果从所述各模式串中确定频繁串并添加至频繁集。
本申请的一些实施例中的主串T即本次待识别协议的数据流,当第二特征库不能存在与本次待识别的数据流的主串T对应的特征时,本申请的实施例会通过提取本次待识别协议对应的主串T中的频繁串加入到特征库,后续再识别这类协议数据流时,可与第二特征库新增的频繁串匹配成功,进而完成协议类型识别。
在一些实施例中,所述根据排序结果从所述各模式串中确定频繁串并添加至频繁集之前,所述方法还包括:从多个所述频繁串中选择两个频繁串;确定所述两个频繁串满足拼接条件时,拼接所述两个频繁串得到目标频繁串;将所述目标频繁串添加至频繁集。
为了应对实际中可能存在较长的特征序列的情况,需要将较短的频繁串进行拼接形成较长的频繁串。
在一些实施例中,所述切分所述数据流对应的协议负载,包括:根据齐夫定律,将输入的所述数据流对应的协议负载按照多种设定长度进行切分。
本申请的一些实施例基于齐夫定律(Zipf's law)对视听媒体协议数据流进行切分,便于后续的协议(例如,视听媒体协议)的分析。
在一些实施例,所述根据排序结果从所述各模式串中确定频繁串并添加至频繁集之后,所述的方法还包括:对所述频繁集中的频繁串的关联关系进行分析,得到特征集;接收新的待进行协议识别的数据流;根据所述特征集对所述新的待协议识别的数据流进行协议类型识别。
本申请的一些实施例通过实时更新特征集中的模式串来提升对未知协议的识别效率和准确率。
第二方面,本申请的一些实施例提供一种识别内容的方法,所述方法包括:根据上述第一方面所述的方法识别并检测数据流的协议类型;根据所述协议类型和预设规则确认所述数据流携带有害内容。
第三方面,本申请的一些实施例提供一种识别协议的装置,所述装置包括:获取模块,被配置为获取并解析待识别网络协议的数据流;第一识别模块,被配置为确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;第二识别模块,被配置为确认所述数据流的传输层携带的端口号属于动态端口号或者属于使用频率小于设定阈值的端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型。
第四方面,本申请的一些实施例提供一种识别内容的装置,所述装置包括:协议类型识别模块,被配置为:获取并解析待识别网络协议的数据流;确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;或者确认所述数据流的传输层携带的端口号属于动态端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型;有害内容识别模块,被配置为根据所述协议类型和预设规则确认所述数据流携带有害内容。
第五方面,本申请的一些实施例提供一种计算机存储设备,所述计算存储设备上存储有计算机程序,所述程序被处理器执行时可实现上述第一方面和第二方面中任意实施例所述的方法。
第六方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时可实现上述第一方面和第二方面任一项实施例所述的方法。
第七方面,本申请的一些实施例提供一种安全网关,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权上述第一方面和第二方面包括的任意实施例所述的方法。
第八方面,本申请的一些实施例提供一种服务器,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权上述第一方面和第二方面包括的任意实施例所述的方法。
第九方面,本申请的一些实施例提供一种应用设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现上述第一方面和第二方面包括的任意实施例所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的识别协议的方法的流程图之一;
图2为本申请实施例提供的识别协议的方法的流程图之二;
图3为本申请实施例提供的识别协议的方法的流程图之三;
图4为本申请实施例提供的识别协议的方法的流程图之四;
图5为本申请实施例提供的识别协议的方法的流程图之五;
图6为本申请实施例提供的识别协议的方法的流程图之六;
图7为本申请实施例提供的识别协议的装置的组成框图;
图8为本申请实施例提供的识别内容的装置的组成框图;
图9为本申请实施例提供的电子设备组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
相关技术中大多网络协议识别技术主要包括基于端口的识别技术、基于负载的识别技术(或称为基于协议内容的识别技术)、基于动态特征的识别技术等。其中,基于端口的识别技术较为简单,主要利用不同的协议在IANA中注册的端口号不同加以区分,如HTTP协议常用的端口号是80、FTP协议常用的端口号是20和21等。基于负载(或协议内容)的识别技术,首先需要提取网络协议的特征,如通常提取协议负载的特征字符串,其次需要对捕获的网络协议流量进行解包,得到负载内容后与特征字符串进行比较,若匹配成功则认为识别出了该协议,反之不成功。基于网络动态特征的识别技术,主要利用统计的协议流量的统计特性,包括数据包长度、传输速率、会话保持时间等,通过对统计特性进行分析进行识别,如基于P2P的网络数据下载数据包的长度大多会超过450byte。以上单一技术方案在某些协议(例如,视听媒体协议)识别方面适用性不强。
现有网络协议识别技术侧重用于分析识别视听媒体协议的较少,且现有技术不满足当前视听媒体网关安全检测的需求。基于端口的协议识别技术由于随着网络的快速发展,网络流量激增,许多协议开始使用动态的端口号,另外一些网络攻击也常会伪装端口或采用动态端口技术,因此仅仅依靠端口识别不满足当前的需求。基于负载的协议识别技术在面对加密数据时无法进行识别,另外当协议的报文信息发生变化时,需要及时维护相应的特征库并且要保证特征库的更新效率。而基于网络动态特征的识别技术,由于当前网络流量的动态特征多达200多种,如何针对不同协议选取合适的指标进行衡量也是一个难点,此外,其模型建立存在困难及分类结果不够精细,对于网络行为非常接近的协议,无法达到较好的识别。
由于视听媒体协议多样、更新速度快、数据量大,对协议的识别分析提出了更高的要求,而当前一些网络协议识别方法无法快速响应协议的更新,因此为了满足视听媒体网关有害内容快速审计检测和过滤目前根据当前的一些国内外研究现状,本申请的一些实施例提出一种网络视听媒体协议识别分析的框架。首先,将捕获的协议数据报文(例如,网络视听媒体协议数据报文)根据端口检测进行初步的识别过滤,如若检测到是已知常用端口(即已经在IANA中注册过的端口)的视听媒体协议,如RTSP协议默认端口号554等,将会基于本申请的高效视听媒体协议负载识别模块根据协议内容(或称为协议负载)进行进一步检测协议类型,以提高识别准确率;如若检测到使用动态端口号等情况时,将会进入本申请一些实施例的基于改进AC算法的多模式匹配识别模块,进行检测识别;最终得到视听媒体协议识别检测的结果。也就是说,本申请的一些实施例设计了一套可灵活扩展的面向网络视听媒体传输协议的特征提取与识别方法。
请参看图1,图1为本申请的一些实施例提供一种识别协议(即网络协议)的方法,所述方法包括:S101,获取并解析待识别网络协议的数据流;S102,确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;或者,S103,确认所述数据流包括的数据包的传输层携带的端口号属于动态端口号或者属于使用频率小于设定阈值的端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型。本申请的实施例对于通过端口号确定的协议类型,还需要根据协议内容再次确认协议类型,以提升固定端口协议类型识别的准确率,进一步对于未知协议可以采用多模式匹配算法提取这些数据流的频繁串以丰富对应的特征集,方便对采用这类协议的数据流的协议类型识别。
下面示例性阐述上述各步骤。
为了提升根据协议内容或者协议负载识别网络协议类型的准确性和效率,在本申请的一些实施例中,S102包括:根据所述数据包对应的数据流提取待识别协议的特征;根据所述待识别协议的特征与预先建立的第一特征库中的特征进行比对,以确定所述待识别协议的类型,其中,所述第一特征库是通过提取已知协议类型的特征得到的,所述第一特征库包括单一规则和组合规则,所述组合规则是将所述至少一条单一规则进行哈希运算得到的。
例如,S102根据RK字符串匹配算法比对所述待识别协议的特征和所述第一特征库中的特征。
为了提升采用RK字符串匹配算法提升协议识别的速度,在本申请的一些实施例中,S102包括:计算所述第一特征库中长度为m的模式串P的哈希值;将待识别协议类型的数据流对应的主串T切分为长度为m的多个子串;计算第i子串的哈希值,确认所述第i子串的哈希值与所述模式串P的哈希值相同,其中,所述第i子串是切分所述主串T得到的;拆分所述第i子串包括的每个字符,并将所述第i子串包括的每个字符与所述模式串P中的字符两两比较,如果相等则结束,否则计算第i+1子串的哈希值;其中,i的最大取值为切分所述主串得到的子串的数目。与现有技术的直接比较子串中包括的字符与模式串包括的字符是否相同的RK算法相比,由于本申请的实施例只有在哈希值相同时才拆分子串中的字符并将拆分得到的各字符分别与对应模式串中各字符比较,因此本申请的实施例提升了子串匹配的速度节约了处理时间。
为了进一步采用RK算法进行字符串匹配时的处理速度,在本申请的一些实施例中,当i大于等于2时,则所述第i子串的哈希值是通过前一子串的哈希值、所述前一子串包括的第一个字符的哈希值和所述前一子串包括的最后一个字符的下一个字符的哈希值得到的,其中,所述下一个字符是通过在所述主串中查找所述前一子串的最后一个字符的下一个字符获取的。与相关技术的RK算法不同,本申请的一些实施例采用RK算法进行模式串匹配时,只需计算第一个子串的哈希值Hash,后续的子串的哈希值只需计算两个字符的哈希值(即前一子串的第一个字符和当前子串的第一个字符),避免了计算各个整子串的Hash值,提高了计算效率。
下面以识别视听媒体协议的数据流的协议为例,示例性阐述S101和S102。
作为一个示例,在本申请的一些实施例中待识别协议的数据属于视听媒体协议的数据流,如图2所示,识别网络协议的方法包括:S201,提取视听媒体协议的单一特征,得到单一规则;将不同单一规则组合的哈希运算形成规则;生成基于单一及混合规则的视听媒体协议指纹信息库(视听媒体协议指纹信息库即第一特征库);S202,接收输入的视听媒体协议数据流;S203,基于改进RK算法的特征匹配;S204,输出视听媒体协议识别结果。
高效视听媒体协议负载(或称为协议内容)识别包括:分析当前HTTP、RTP、 UDP、RTSP、RTMP、SMPTE2020、SMPTE2110等主流的视听媒体协议。可以理解的是,为了识别数据流的协议类型需要预先提取视听媒体协议流量的特征字符串形成视听媒体协议指纹信息库(即第一特征库),其中,提取特征字符串根据抓包主流视听媒体流量及协议标准,分析协议报文固定位置的特殊字段、分隔符等特征形成视听媒体协议指纹信息库。在本申请的一些实施例中,为了提高在线匹配准确率和效率,避免仅依靠单一特殊字段识别不准确,将视听媒体协议指纹信息库规则设为单一规则和组合规则。例如,以RTSP协议为例,单一规则如IP、PORT、Transport、特殊字段{0x72,0x74,0x73,0x70}等,可将任意一些单一规则进行哈希Hash运算,例如,将视听媒体协议流的源IP、源端口、目的IP、目的端口、传输层协议类型五元组信息的哈希Hash运算,形成混合规则,进而可提高识别准确率,同时利用Hash运算可减少匹配的次数。本申请的一些实施例为了进一步提高字符串匹配效率(即将表征协议特征的模式串与待识别协议的数据流包括的主串进行字符串匹配),本申请的一些实施例采用了改进的RK算法进行快速匹配,具体地,本申请实施例的改进的RK算法实现流程如图3所示。
如图3所示,本申请一些实施例的RK字符串匹配算法包括:
S301,开始。
S302,计算长度为m的模式串P的Hash(P),即计算第一特征库中模式串的哈希值,其中,第一特征库中的模式串是分别提取端口固定的多种协议的特征得到的。
S303,将待识别协议的数据流包括的主串T以长度为m单位进行切分,得到多个子串T0、T1、T2…。例如,假设待识别数据流中的一个报文字符串是“abcdef”,要识别这个报文是属于什么协议,则将该报文以长度m(假设为4)拆分,那么拆分得到的子串T0、T1、T2…就是abcd、bcde、cdef…。
S304,计算第1子串的hash值Hash(T0)。
S305,确认Hash(T0)是否与Hash(P)相等(也就是说,将Hash(Ti)和Hash(P)的值进行比较确认两者是否相等),若相等则继续拆分T0中的每个字符与模式串P中的各字符进行两两比较,如果都相等则执行S308,否则进入S306。
S306,计算如下公式:
Figure 544822DEST_PATH_IMAGE002
其中,i=1,2,3…,返回S305以确认第i子串的哈希值是否与模式串P的哈希值相同,并在满足条件时拆分第i子串。例如,假设待识别数据流中的一个报文字符串是“abcdef”,要识别这个报文是属于什么协议,则将该报文以长度m(假设为4)拆分,那么拆分得到的子串T0、T1、T2…就是abcd、bcde、cdef…,计算第一个子串T0—abcd的HASH值,之后计算第二个子串T1—bcde时,相比于T0,少了一个字符a,多了一个字符e,即可利用上述的公式简化计算。
可以理解的是,利用本申请一些实施例的RK字符串匹配算法只需计算第一个子串的Hash,后续的只需计算两个字符的哈希值,避免了计算各个整子串的Hash值,提高了计算效率。
为了识别动态端口的数据流的协议类型,在本申请的一些实施例中S103包括:确认所述协议特征与所述模式串相匹配,则确认所述数据流的协议类型与所述模式串对应的协议类型相同;或者确认所述协议特征与所述模式串均不匹配,则基于多模式匹配算法建立对应协议的特征集,得到第二特征库中的模式串。
在本申请的一些实施例中,S103包括的基于多模式匹配算法建立对应协议的特征集的过程包括:切分所述数据流对应的协议负载,得到长度为k的各模式串,其中,k为大于或者等于2的整数(例如,根据齐夫定律,将输入的所述数据流对应的协议负载按照多种设定长度进行切分);选择数组结构建立所述各模式串和数组下标的映射关系;扫描主串T,根据所述映射关系统计所述各模式串出现的次数和位置;将所述各模式串按照出现的次数排序,根据排序结果从所述各模式串中确定频繁串并添加至频繁集。本申请的一些实施例中通过建立各模式串与下标的映射关系可以实现快速的检索和匹配。
为了应对实际中可能存在较长的特征序列的情况,在本申请的一些实施例中,上述根据排序结果从所述各模式串中确定频繁串并添加至频繁集之前,S103还包括:从多个所述频繁串中选择两个频繁串;确定所述两个频繁串满足拼接条件时,拼接所述两个频繁串得到目标频繁串;将所述目标频繁串添加至频繁集。
在本申请的一些实施例,上述根据排序结果从所述各模式串中确定频繁串并添加至频繁集之后,S103还包括:对所述频繁集中的频繁串的关联关系进行分析,得到特征集;接收新的待进行协议识别的数据流;根据所述特征集对所述新的待协议识别的数据流进行协议类型识别。
下面以待识别协议的非主流视听媒体协议类型的识别为例示例性阐述上述S103。
对于使用非主流视听媒体协议的端口号的协议,本申请的一些实施例采用未知视听媒体协议识别算法进行识别检测,具体地,本申请的一些实施例提出了基于改进AC(Aho-Corasick Algorithm)算法的多模式匹配识别,其中,AC算法是一种字符串搜索算法,主要思想是通过将模式串预处理为确定有限状态自动机,扫描文本一遍就能结束。本申请实施例的多模式匹配算法包括:视听媒体协议数据流预处理、视听媒体协议数据的切分粒度确定、基于改进AC算法的频繁集的提取及筛选、拼接频繁串并进行筛选、形成长短频繁串的特征集,如图4所示,下面逐一介绍这些步骤。
S401,开始。
S402,切分视听媒体协议负载,形成各模式串。
S403,构建基于数组结构的检索方法。
S404,扫描主串T,统计各个模式串出现的次数和位置。
S405,按照出现次数从大到小进行排序,保留次数大于设定阈值min_sup的模式串,得到频繁集中的频繁串。
S406,结束。
下面在结合图5示例性阐述图4相关的步骤。
S501,读取视听媒体协议数据流并预处理。
对于视听媒体协议的识别从应用层进行解析,因此对于捕获的数据流包括的数据包需要将应用层以下的协议头进行剥离,只保留传输层以上负载内容。
S502,根据协议特征库(即第二特征库)中的由频繁串构成的特征集对预处理后得到的视听媒体协议匹配识别。其中,第二特征库中的特征集是通过提取不固定或不常用端口(例如,使用频率小于设定阈值的端口号)的数据流的协议特征得到的频繁串。
S503,判断是否匹配成功,当匹配成功时,则执行S504输出协议类别并执行S510;当匹配失败时,则继续执行S505-S509构建特征集并将构建特征集存入协议特征库中以方便对新接收的数据流进行协议识别。
下面示例性阐述S505-S509的提取视听媒体协议频繁集构建特征集,并根据特征集得到第二特征库的过程。
频繁模式定义:统计每一个长度为m的串p出现的次数occur_num,计算串p的支持度
Figure 367285DEST_PATH_IMAGE003
,其中total_num为主串T长度为m的子串个数。通过统计分析,定义最小支持度min_sup,则频繁串表示为:
Figure 758952DEST_PATH_IMAGE004
S505,基于齐夫定律的视听媒体协议数据的切分粒度确定。
从统计学的角度来看,将数据帧切分为一组等长的子序列进行分析来代替对整条数据帧的处理不仅能够高数据处理的效率,还能够更加快速准确的得到数据分析结果。根据齐夫定律(Zipf's law)及主流视听媒体特征分析结果,将输入的视听媒体协议负载按照L=4bit、6bit、1byte、2 byte、3 byte、4byte进行切分;分别统计不同长度的切分数据单元出现的频率,然后从大到小进行排序;绘制不同切分长度的各个数据单元分布图,以数据单元排序序号的自然对数为横坐标,以数据单元出现次数的自然对数为纵坐标绘制分布图;观察分布图,将最接近线性分布的切分长度l作为视听媒体协议负载的切分长度。
S506,基于改进的AC算法的频繁串的提取与筛选。
本申请一些实施例利用基于改进的AC算法的频繁集挖掘,具体流程如下:
以步骤S505中确定的切分粒度长度l将视听媒体协议负载进行切分,形成各个长度l的模式串。
本申请的一些实施例为了简化AC算法中基于构建基于数组结构的快速检索方法,选择数组结构建立各个模式串和数组下标的映射关系为:
Figure 957852DEST_PATH_IMAGE005
其中,index表示数组下标号,dex(x)表示模式串的十进制数,length(x)表示模式串序号的长度,具体如1所示:
表1数组下标与模式串序号映射关系
Figure 626731DEST_PATH_IMAGE006
扫描主串T,统计视听媒体协议负载各个切分长度为l的模式串出现的次数及位置;
将各个模式串出现的次数按照从大到小进行排序,当出现的次数大于一定最小支持度min_sup则认为频繁串添加至频繁集。
S507,拼接频繁串并进行筛选。
S508,形成长短串频繁串的特征集。
S509,特征集入库。
S510,结束。
下面示例阐述根据S506得到的频繁串进行关联分析,形成特征集的过程。
为了应对实际中可能存在较长的特征序列的情况,需要将上述筛选的较短的频繁串进行拼接形成较长的频繁串。某些串之间存在一定的关联规则,假设频繁串x出现的位置为position(x)及y出现的位置为position(y),计算频繁串x和y中支持度最小的为min_sup(x,y),置信阈值为T,此值需要根据实际实验进行选择设置,则两个频繁串之间的关联规则置信度为:
Figure 458641DEST_PATH_IMAGE007
其中,c为常数,串x与串y之间的蕴含关系称为关联规则,表示为x ⇒ y。当
Figure 212971DEST_PATH_IMAGE008
,则认为关联规则成立,则完成本次拼接,否则放弃拼接。具体地,如图6所示。
本申请一些实施例的拼接方法包括:
S601,开始。
S602,选取两个频繁串。
S603,判断频繁串是否满足拼接条件,如果否则执行S602,否则执行S604。
S604,拼接序列,即拼接较短的两个频繁串。
S605,判断拼接后的字符串是否按照频繁条件,如果否则执行S607丢弃拼接的频繁串,如果是则执行S606。
S606,将拼接后的频繁串添加至频繁集。
S608,结束。
本申请的一些实施例提供一种识别内容的方法,所述方法包括:根据上述图1-图6对应所述的方法识别并检测数据流的协议类型;根据所述协议类型和预设规则确认所述数据流携带有害内容。
需要说明的是,对于识别有害内容方法包括的协议类型识别过程可以参考上文的描述,为避免重复在此不做过多赘述。
请参考图7,图7示出了本申请实施例提供的识别协议的装置,应理解,该装置与上述图1-图6方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该识别网络协议的装置包括:获取模块701,被配置为获取并解析待识别网络协议的数据流;第一识别模块702,被配置为确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;第二识别模块703,被配置为确认所述数据流的传输层携带的端口号属于动态端口号或者属于使用频率小于设定阈值的端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述识别网络协议的方法中的对应过程,在此不再过多赘述。
请参考图8,图8示出了本申请实施例提供的识别内容的装置,应理解,该装置与上述识别有害内容的方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该识别内容的装置包括:协议类型识别模块801,被配置为:获取并解析待识别网络协议的数据流;确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;或者确认所述数据流的传输层携带的端口号属于动态端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型;有害内容识别模块802,被配置为根据所述协议类型和预设规则确认所述数据流携带有害内容。在本申请的一些实施例中,预设规则包括针对不同应用协议的多种已知攻击特征,通过确定的协议类型筛选出与相应协议类型对应的部分预设规则,之后再根据监控得到的网络数据包与这部分预设规则对比来确定数据流是否携带有害内容。在本申请的一些实施例中,预设规则包括利用预先定义好的关于协议字段的期望值或和合理值,之后根据相应协议各字段对应的期望值和合理值来判断数据流是否出现了恶意的网络流量。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述识别网络协议的方法中的对应过程,在此不再过多赘述。
本申请的一些实施例提供一种计算机存储设备,所述计算机存储设备上存储有计算机程序,所述程序被处理器执行时可实现上述任意实施例所述的方法。
如图9所示,本申请的一些实施例提供一种电子设备900,包括存储器910、处理器920以及存储在所述存储器910上并可在所述处理器920上运行的计算机程序,所述处理器920执行所述程序时可实现上述识别网络协议的方法或者识别有害内容的方法。在本申请的一些实施例中,电子设备900包括安全网关、服务器或者其他的应用设备等。
处理器920可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器920可以是微处理器。
存储器910可以用于存储由处理器920执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器920可以用于执行存储器910中的指令以实现前述的识别网络协议的方法或者识别有害内容的方法。存储器910包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种识别协议的方法,其特征在于,所述方法包括:
获取并解析待识别网络协议的数据流;
确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型;或者,确认所述数据流的传输层携带的端口号属于动态端口号或者属于使用频率小于设定阈值的端口号,则将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型;
其中,
所述根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型包括:在哈希值相同时才拆分子串中的字符并将拆分得到的各字符分别与对应模式串中各字符比较;
所述第一特征库包括单一规则和组合规则,所述组合规则是将至少一条所述单一规则进行哈希运算得到。
2.如权利要求1所述的方法,其特征在于,所述确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型,包括:
根据所述数据包对应的数据流提取待识别协议的特征;
根据所述待识别协议的特征与预先建立的所述第一特征库中的特征进行比对,以确定所述待识别协议的类型,其中,所述第一特征库是通过提取已知协议类型的特征得到的。
3.如权利要求1所述的方法,其特征在于,所述确认所述数据流包括的数据包的传输层携带的端口号属于注册端口号,则根据协议内容特征和第一特征库中的模式串再次识别所述数据包的协议类型,包括:
计算所述第一特征库中长度为m的模式串P的哈希值;
将待识别协议类型的数据流对应的主串T切分为长度为m的多个子串;
计算第i子串的哈希值,确认所述第i子串的哈希值与所述模式串P的哈希值相同,其中,所述第i子串是切分所述主串T得到的;
拆分所述第i子串包括的每个字符,并将所述第i子串包括的每个字符与所述模式串P中的字符两两比较,如果相等则结束,否则计算第i+1子串的哈希值;
其中,i的最大取值为切分所述主串得到的子串的数目;
当i大于等于2时,则所述第i子串的哈希值是通过前一子串的哈希值、所述前一子串包括的第一个字符的哈希值和所述前一子串包括的最后一个字符的下一个字符的哈希值得到的,其中,所述下一个字符是通过在所述主串中查找所述前一子串的最后一个字符的下一个字符获取的。
4.如权利要求1所述的方法,其特征在于,所述将提取的所述数据流的协议特征与第二特征库中的模式串匹配以确认所述数据流的协议类型,包括:
确认所述协议特征与所述模式串相匹配,则确认所述数据流的协议类型与所述模式串对应的协议类型相同;或者
确认所述协议特征与所述模式串均不匹配,则基于多模式匹配算法建立对应协议的特征集,得到所述第二特征库中的模式串。
5.如权利要求4所述的方法,其特征在于,所述基于多模式匹配算法建立对应协议的特征集,包括:
切分所述数据流对应的协议负载,得到长度为k的各模式串,其中,k为大于或者等于2的整数;
选择数组结构建立所述各模式串和数组下标的映射关系;
扫描主串T,根据所述映射关系统计所述各模式串出现的次数和位置;
将所述各模式串按照各自出现的次数排序,根据排序结果从所述各模式串中确定频繁串并添加至频繁集。
6.如权利要求5所述的方法,其特征在于,所述根据排序结果从所述各模式串中确定频繁串并添加至频繁集之前,所述方法还包括:
从多个所述频繁串中选择两个频繁串;
确定所述两个频繁串满足拼接条件时,拼接所述两个频繁串得到目标频繁串;
将所述目标频繁串添加至频繁集。
7.一种识别内容的方法,其特征在于,所述方法包括:
根据如权利要求1-6任一项所述的方法识别并检测数据流的协议类型;
根据所述协议类型和预设规则确认所述数据流携带有害内容。
8.一种计算机存储设备,其特征在于,所述存储设备上存储有计算机程序,所述程序被处理器执行时可实现权利要求1-7中任意一项权利要求所述的方法。
9.一种安全网关,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求7中所述的方法。
10.一种服务器,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-7中任意一项权利要求所述的方法。
CN202110407552.4A 2021-04-15 2021-04-15 识别协议及内容的方法、存储设备、安全网关、服务器 Active CN112994984B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110407552.4A CN112994984B (zh) 2021-04-15 2021-04-15 识别协议及内容的方法、存储设备、安全网关、服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110407552.4A CN112994984B (zh) 2021-04-15 2021-04-15 识别协议及内容的方法、存储设备、安全网关、服务器

Publications (2)

Publication Number Publication Date
CN112994984A CN112994984A (zh) 2021-06-18
CN112994984B true CN112994984B (zh) 2021-07-30

Family

ID=76340664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110407552.4A Active CN112994984B (zh) 2021-04-15 2021-04-15 识别协议及内容的方法、存储设备、安全网关、服务器

Country Status (1)

Country Link
CN (1) CN112994984B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505279A (zh) * 2021-07-08 2021-10-15 上海银欣高新技术发展股份有限公司 生物特征的高速比对方法、系统、介质及装置
CN113890904B (zh) * 2021-09-27 2023-10-27 新华三信息安全技术有限公司 一种报文解析的方法、装置、计算机设备及存储介质
CN115225582B (zh) * 2022-06-10 2024-03-08 国家计算机网络与信息安全管理中心 一种基于动态知识图谱的动环平台协议适配方法及装置
CN115242691B (zh) * 2022-07-04 2023-05-19 中国电子科技集团公司第三十研究所 一种基于协议特征库的协议识别方法
CN115150174B (zh) * 2022-07-06 2023-05-05 北京神州慧安科技有限公司 一种工业安全隔离交换方法和系统
CN115348198B (zh) * 2022-10-19 2023-03-21 中国电子科技集团公司第三十研究所 基于特征检索的未知加密协议识别分类方法、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486161A (zh) * 2014-12-22 2015-04-01 成都科来软件有限公司 一种网络流量的识别方法及装置
CN106878307A (zh) * 2017-02-21 2017-06-20 电子科技大学 一种基于误码率模型的未知通信协议识别方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557329B (zh) * 2009-05-27 2011-05-11 杭州迪普科技有限公司 一种基于应用层的数据分割方法及装置
CN101814977B (zh) * 2010-04-22 2012-11-21 北京邮电大学 利用数据流头部特征的tcp流量在线识别方法及装置
CN103491069A (zh) * 2013-09-05 2014-01-01 北京科能腾达信息技术股份有限公司 网络数据包的过滤方法
CN103916294B (zh) * 2014-04-29 2018-05-04 华为技术有限公司 协议类型的识别方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486161A (zh) * 2014-12-22 2015-04-01 成都科来软件有限公司 一种网络流量的识别方法及装置
CN106878307A (zh) * 2017-02-21 2017-06-20 电子科技大学 一种基于误码率模型的未知通信协议识别方法

Also Published As

Publication number Publication date
CN112994984A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN112994984B (zh) 识别协议及内容的方法、存储设备、安全网关、服务器
CN107665191B (zh) 一种基于扩展前缀树的私有协议报文格式推断方法
US8180916B1 (en) System and method for identifying network applications based on packet content signatures
US9092471B2 (en) Rule parser
US10547523B2 (en) Systems and methods for extracting media from network traffic having unknown protocols
US7602780B2 (en) Scalably detecting and blocking signatures at high speeds
CN111371735B (zh) 僵尸网络检测方法、系统及存储介质
CN107968791B (zh) 一种攻击报文的检测方法及装置
US20120099597A1 (en) Method and device for detecting a packet
EP2472786B1 (en) Automatic signature generation for application recognition and user tracking over heterogeneous networks
Wang et al. Research on DDoS attacks detection based on RDF-SVM
CN111565205A (zh) 网络攻击识别方法、装置、计算机设备和存储介质
CN111064678A (zh) 基于轻量级卷积神经网络的网络流量分类方法
CN111147394B (zh) 一种远程桌面协议流量行为的多级分类检测方法
CN110611640A (zh) 一种基于随机森林的dns协议隐蔽通道检测方法
CN108846275A (zh) 基于ripper算法的未知操作系统类型识别方法
EP1607823A2 (en) Method and system for virus detection based on finite automata
Moia et al. Similarity digest search: A survey and comparative analysis of strategies to perform known file filtering using approximate matching
CN110971601A (zh) 一种高效的网络报文传输层多级特征提取方法和系统
CN111182002A (zh) 基于http首个问答包聚类分析的僵尸网络检测装置
Chung et al. An effective similarity metric for application traffic classification
WO2016201876A1 (zh) 一种加密流量的业务识别方法、装置和计算机存储介质
CN112054992B (zh) 恶意流量识别方法、装置、电子设备及存储介质
CN109257384B (zh) 基于访问节奏矩阵的应用层DDoS攻击识别方法
CN115190056B (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