CN112367215B - 基于机器学习的网络流量协议识别方法和装置 - Google Patents
基于机器学习的网络流量协议识别方法和装置 Download PDFInfo
- Publication number
- CN112367215B CN112367215B CN202011096902.1A CN202011096902A CN112367215B CN 112367215 B CN112367215 B CN 112367215B CN 202011096902 A CN202011096902 A CN 202011096902A CN 112367215 B CN112367215 B CN 112367215B
- Authority
- CN
- China
- Prior art keywords
- protocol
- training
- recognition model
- network traffic
- trained
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
- G06F18/24155—Bayesian classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Abstract
本申请涉及一种基于机器学习的网络流量协议识别方法和装置,其中,该基于机器学习的网络流量协议识别方法包括:获取预先构建好的协议识别模型;采集实时网络流量,并从实时网络流量中提取实时协议特征信息;将实时协议特征信息输入至协议识别模型中,得到实时网络流量对应的协议类型。通过本申请,解决了相关技术中,无法有效识别网络流量的协议类型的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于机器学习的网络流量协议识别方法和装置。
背景技术
随着互联网的兴起与信息技术的发展,云计算与大数据技术的应用范围越来越广泛。数字化、数据挖掘等数据分析与处理技术,越来越受各大企业的重视,而这些数据是往往需要通过各种网络传输协议实现从一个平台传输至另一个平台。当数据分析平台接收到网络流量之后,需要先对网络流量对应的传输协议类型进行识别,才能对网络流量进行解析,从而得到网络流量中的数据内容。因此,如何对网络流量对应的传输协议类型进行识别将成为一个亟待解决的技术问题。
在相关技术中,通过端口来识别网络流量对应的协议类型,然而,如果用户修改端口后,采用这种方法会导致识别失败,从而给用户带来不必要的麻烦。同时,如果需要增加一种网络传输协议,则需要在进行识别之前对识别设备的原始代码进行修改,因此需要请专门的技术人员修改原始代码,这会增加用户的使用成本。
目前针对相关技术中,无法有效识别网络流量的协议类型的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于机器学习的网络流量协议识别方法和装置,以至少解决相关技术中无法有效识别网络流量的协议类型的问题。
第一方面,本申请实施例提供了一种基于机器学习的网络流量协议识别方法,包括:
获取预先构建好的协议识别模型;
采集实时网络流量,并从所述实时网络流量中提取实时协议特征信息;
将所述实时协议特征信息输入至所述协议识别模型中,得到所述实时网络流量对应的协议类型。
在其中一些实施例中,在所述获取预先构建好的协议识别模型之前,所述方法还包括:
获取样本数据;所述样本数据包括训练网络流量的训练协议特征信息以及相应训练网络流量的标准协议类型;
将协议特征信息作为输入参量,将协议类型作为输出参量,构建初始协议识别模型;
根据所述样本数据和预设监督式学习规则,对所述初始协议识别模型进行训练,得到训练好的协议识别模型。
在其中一些实施例中,所述预设监督式学习规则包括朴素贝叶斯分类规则。
在其中一些实施例中,所述获取样本数据包括:
获取训练网络流量;
从所述训练网络流量中提取训练协议特征信息;所述训练协议特征信息包括端口、数据包长度、数据包内容中的秘钥和所述秘钥的次序;
获取预先配置的端口与协议类型之间的对应关系;
根据所述对应关系,对所述训练协议特征信息进行协议类型标识处理,得到所述样本数据。
在其中一些实施例中,所述初始协议识别模型包括协议特征信息与协议类型之间的映射关系;所述根据所述样本数据和预设监督式学习规则,对所述初始协议识别模型进行训练,得到训练好的协议识别模型包括:
将所述样本数据中的训练协议特征信息输入至所述初始协议识别模型,得到所述训练协议特征信息对应的预测协议类型;
将所述预测协议类型和所述标准协议类型进行比较,得到比较结果;
根据所述比较结果,对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型。
在其中一些实施例中,所述映射关系包括多个协议特征参数以及每一所述协议特征参数的权值参数;所述根据所述比较结果,对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型包括:
在一次迭代中,根据所述比较结果,计算本次迭代对应的识别可信度;
将所述识别可信度与预设可信度阈值进行比较;
若所述识别可信度小于所述预设可信度阈值,则调整所述协议特征参数的权值参数,以对所述初始协议识别模型的映射关系进行迭代优化;
若所述识别可信度大于或者等于所述预设可信度阈值,则停止迭代,并将本次迭代对应的协议识别模型作为训练好的协议识别模型。
在其中一些实施例中,在所述根据所述样本数据和预设监督式学习规则,对所述初始协议识别模型进行训练,得到训练好的协议识别模型之后,所述方法还包括:
从所述样本数据中抽取部分数据作为校验数据;
根据所述校验数据对训练好的协议识别模型进行校验,得到校验结果;
根据所述校验结果,调整所述协议特征参数的权值参数,得到校验后的协议识别模型。
第二方面,本申请实施例提供了一种基于机器学习的网络流量协议识别装置,包括:
获取模块,用于获取预先构建好的协议识别模型;
提取模块,用于采集实时网络流量,并从所述实时网络流量中提取实时协议特征信息;
识别模块,用于将所述实时协议特征信息输入至所述协议识别模型中,得到所述实时网络流量对应的协议类型。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于机器学习的网络流量协议识别方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于机器学习的网络流量协议识别方法。
相比于相关技术,本申请实施例提供的基于机器学习的网络流量协议识别方法和装置,通过获取预先构建好的协议识别模型;采集实时网络流量,并从所述实时网络流量中提取实时协议特征信息;将所述实时协议特征信息输入至所述协议识别模型中,得到所述实时网络流量对应的协议类型,解决了相关技术中,无法有效识别网络流量的协议类型的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例的基于机器学习的网络流量协议识别方法的流程图;
图2为本申请实施例中构建协议识别模型的流程图;
图3为本申请实施例中获取样本数据的流程图;
图4为本申请实施例中训练初始协议识别模型的流程图;
图5为本申请实施例中对初始协议识别模型的映射关系进行迭代优化的流程图;
图6为本申请实施例中对训练好的协议识别模型进行校验的流程图;
图7为本申请实施例的基于机器学习的网络流量协议识别方法的终端的硬件结构框图;
图8为本申请实施例的基于机器学习的网络流量协议识别装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请所描述的各种技术,可以但不仅限于应用于各种数据解析或者协议识别设备、系统以及装置。
图1为本申请实施例的基于机器学习的网络流量协议识别方法的流程图,如图1所示,该流程包括如下步骤:
步骤S110,获取预先构建好的协议识别模型。
协议识别模型用于对实时协议特征信息进行识别与分析,并根据分析结果确定实时协议特征信息对应的协议类型,即实时网络流量对应的协议类型。协议识别模型支持多种网络传输协议的识别,例如,HTTP传输协议和TCP传输协议。
步骤S120,采集实时网络流量,并从实时网络流量中提取实时协议特征信息。
实时协议特征信息表示与实时网络流量对应的网络传输协议相关的特征信息。
步骤S130,将实时协议特征信息输入至协议识别模型中,得到实时网络流量对应的协议类型。
通过上述步骤S110至步骤S130,获取预先构建好的协议识别模型;采集实时网络流量,并从实时网络流量中提取实时协议特征信息;将实时协议特征信息输入至协议识别模型中,得到实时网络流量对应的协议类型。本申请通过将实时网络流量中的实时协议特征信息,输入至预先构建好的协议识别模型中,一步即可得到实时网络流量对应的协议类型,不需要配置端口与协议类型的对照表,减少了人工成本。同时,避免了现有技术中端口修改后,无法识别协议类型,从而无法对网络流量进行解析,造成工作流断开、工作中止以及工作效率降低的问题,解决了相关技术中,无法有效识别网络流量的协议类型的问题。
另外,本申请中的协议识别模型支持多种网络传输协议的识别,可以适应与各种应用场景的应用需求,便于大范围推广应用。在需要增加一种网络传输协议时,若采用本申请提供的协议识别方法,则不需要在进行识别之前对识别设备的原始代码进行修改,从而可以降低用户的使用成本。
在其中一些实施例中,实时协议特征信息包括端口、数据包长度、数据包内容中的秘钥和秘钥的次序。
在其中一些实施例中,图2为本申请实施例中构建协议识别模型的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取样本数据;样本数据包括训练网络流量的训练协议特征信息以及相应训练网络流量的标准协议类型。
步骤S220,将协议特征信息作为输入参量,将协议类型作为输出参量,构建初始协议识别模型。
步骤S230,根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型。
监督式学习(Supervised learning),是一个机器学习中的技巧,可以由训练资料中学到或建立一个模式(函数/learning model),并依此模式推测新的instances。训练资料是由输入物件(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。
通过上述步骤S210至步骤S130,通过获取的样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型,从而根据训练好的协议识别模型进行协议类型的识别,可以提高网络流量协议类型的识别准确度。
在其中一些实施例中,预设监督式学习规则包括朴素贝叶斯分类规则。
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive BayesianModel,NBM)。和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier,NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。
通过上述实施例,采用朴素贝叶斯分类规则和样本数据,对初始协议识别模型进行训练,得到训练好的协议识别模型。由于朴素贝叶斯分类规则具有稳定的分类效率,所需估计的参数很少,对缺失数据不太敏感,算法也比较简单,因此,可以大大提高协议识别模型的识别稳定性,并且算法简单易于实现,降低了使用门槛。
在其中一些实施例中,图3为本申请实施例中获取样本数据的流程图,如图3所示,该流程包括如下步骤:
步骤S310,获取训练网络流量。
步骤S320,从训练网络流量中提取训练协议特征信息;训练协议特征信息包括端口、数据包长度、数据包内容中的秘钥和秘钥的次序。
需要说明的是,训练协议特征信息包括多个协议特征参数;协议特征参数包括端口、数据包长度、数据包内容中的秘钥和秘钥的次序。
表1为本申请具体实施例中训练协议特征信息存储表,以表1为例对训练协议特征信息作进一步说明:在训练协议特征信息的存储表中,将训练协议特征信息划分为n-2组进行存储,每一组训练协议特征信息均包括端口、数据包长度、数据包内容中的秘钥以及秘钥的次序。例如,在第一组训练协议特征信息中,数据包长度为L1,数据包内容中的秘钥为KEY1,秘钥的次序为ORDER1,端口为PORT1。
表1训练协议特征信息存储表
数据包长度 | 数据包内容中的秘钥 | 秘钥的次序 | 端口 |
L<sub>1</sub> | KEY<sub>1</sub> | ORDER<sub>1</sub> | PORT<sub>1</sub> |
L<sub>2</sub> | KEY<sub>2</sub> | ORDER<sub>2</sub> | PORT<sub>2</sub> |
L<sub>3</sub> | KEY<sub>3</sub> | ORDER<sub>3</sub> | PORT<sub>3</sub> |
... | ... | ... | ... |
L<sub>n-1</sub> | KEY<sub>n-1</sub> | ORDER<sub>n-1</sub> | PORT<sub>n-1</sub> |
L<sub>n-2</sub> | KEY<sub>n-2</sub> | ORDER<sub>n-2</sub> | PORT<sub>n-2</sub> |
步骤S330,获取预先配置的端口与协议类型之间的对应关系。
步骤S340,根据对应关系,对训练协议特征信息进行协议类型标识处理,得到样本数据。
样本数据包括训练网络流量的训练协议特征信息和相应训练网络流量的标准协议类型。
表2为本申请具体实施例中样本数据存储表,以表2为例,对上述步骤S340作进一步说明:将每一组训练协议特征信息中端口对应的协议类型,标识为该组训练协议特征信息对应的协议类型。例如,在第一组训练协议特征信息中,由于端口PORT1对应的协议为PROT1,因此,确定第一组训练协议特征信息对应的协议为PROT1。
表2样本数据存储表
数据包长度 | 数据包内容中的秘钥 | 秘钥的次序 | 端口 | 协议 |
L<sub>1</sub> | KEY<sub>1</sub> | ORDER<sub>1</sub> | PORT<sub>1</sub> | PROT<sub>1</sub> |
L<sub>2</sub> | KEY<sub>2</sub> | ORDER<sub>2</sub> | PORT<sub>2</sub> | PROT<sub>2</sub> |
L<sub>3</sub> | KEY<sub>3</sub> | ORDER<sub>3</sub> | PORT<sub>3</sub> | PROT<sub>3</sub> |
... | ... | ... | ... | ... |
L<sub>n-1</sub> | KEY<sub>n-1</sub> | ORDER<sub>n-1</sub> | PORT<sub>n-1</sub> | PROT<sub>n-1</sub> |
L<sub>n-2</sub> | KEY<sub>n-2</sub> | ORDER<sub>n-2</sub> | PORT<sub>n-2</sub> | PROT<sub>n-2</sub> |
通过上述步骤S310至步骤S340,获取预先配置的端口与协议类型之间的对应关系;根据对应关系,对训练协议特征信息进行协议类型标识处理,从而可以快速获取到训练网络流量与标准协议类型相对应的样本数据,提高了样本数据的获取效率,从而可以进一步提高协议识别的效率。
在其中一些实施例中,初始协议识别模型包括协议特征信息与协议类型之间的映射关系,图4为本申请实施例中训练初始协议识别模型的流程图,如图4所示,该流程包括如下步骤:
步骤S410,将样本数据中的训练协议特征信息输入至初始协议识别模型,得到训练协议特征信息对应的预测协议类型。
步骤S420,将预测协议类型和标准协议类型进行比较,得到比较结果。
步骤S430,根据比较结果,对初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型。
初始协议识别模型的映射关系是指协议特征信息与协议类型之间的映射关系。
通过上述步骤S410至步骤S430,将样本数据中的训练协议特征信息输入至初始协议识别模型,得到训练协议特征信息对应的预测协议类型;将预测协议类型和标准协议类型进行比较,得到比较结果;根据比较结果,对初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型。本实施例通过对初始协议识别模型的映射关系进行迭代优化,直至收敛,从而可以使得训练好的协议识别模型具有更加稳定的识别性能,提高协议识别的准确度。
在其中一些实施例中,映射关系包括多个协议特征参数以及每一协议特征参数的权值参数;图5为本申请实施例中对初始协议识别模型的映射关系进行迭代优化的流程图,如图5所示,该流程包括如下步骤:
步骤S510,在一次迭代中,根据比较结果,计算本次迭代对应的识别可信度。
需要说明的是,样本数据包括多组训练协议特征信息以及每一组训练协议特征信息对应的标准协议类型,由此可知,步骤S510中的比较结果为每一组训练协议特征信息对应的比较结果。
步骤S520,将识别可信度与预设可信度阈值进行比较。
步骤S530,若识别可信度小于预设可信度阈值,则调整协议特征参数的权值参数,以对初始协议识别模型的映射关系进行迭代优化。
例如,设置预设可信度阈值为80%。在一次迭代中,采用10组训练协议特征信息对初始协议识别模型进行训练,且在10组训练协议特征信息中,前6组训练协议特征信息对应的预测协议类型与标准协议类型相同,后4组训练协议特征信息对应的预测协议类型与标准协议类型不相同,则本次迭代对应的识别可信度为W=6/10=60%,即本次迭代对应的识别可信度小于预设可信度阈值,则调整协议特征参数的权值参数,以对初始协议识别模型的映射关系进行迭代优化。
步骤S540,若识别可信度大于或者等于预设可信度阈值,则停止迭代,并将本次迭代对应的协议识别模型作为训练好的协议识别模型。
通过上述步骤S510至步骤S540,在一次迭代中,根据比较结果,计算本次迭代对应的识别可信度;将识别可信度与预设可信度阈值进行比较;若识别可信度小于预设可信度阈值,则调整协议特征参数的权值参数,以对初始协议识别模型的映射关系进行迭代优化;若识别可信度大于或者等于预设可信度阈值,则停止迭代,并将本次迭代对应的协议识别模型作为训练好的协议识别模型。本实施例通过调整协议特征参数的权值参数,实现对初始协议识别模型的映射关系进行迭代优化,提高了协议识别模型的识别性能和协议识别的准确度。
在其中一些实施例中,图6为本申请实施例中对训练好的协议识别模型进行校验的流程图,如图6所示,该流程包括如下步骤:
步骤S610,从样本数据中抽取部分数据作为校验数据。
校验数据包括多组训练协议特征信息以及每一组训练协议特征信息对应的标准协议类型。
步骤S620,根据校验数据对训练好的协议识别模型进行校验,得到校验结果。
具体地,将每一组训练协议特征信息输入至训练好的协议识别模型中,得到每一组训练协议特征信息对应的预测协议类型;将每一组训练协议特征信息对应的预测协议类型与标准协议类型进行比较,得到每一组训练协议特征信息对应的校验结果。
步骤S630,根据校验结果,调整协议特征参数的权值参数,得到校验后的协议识别模型。
具体地,根据多组训练协议特征信息对应的校验结果,计算本次校验的校验准确度;若该校验准确度小于或者等于预设校验准确阈值,则调整协议特征参数的权值参数,得到校验后的协议识别模型。
通过上述步骤S610至步骤S630,从样本数据中抽取部分数据作为校验数据;根据校验数据对训练好的协议识别模型进行校验,得到校验结果;根据校验结果,调整协议特征参数的权值参数,得到校验后的协议识别模型。本实施例通过从样本数据中抽取部分数据作为校验数据,并根据校验数据对训练好的协议识别模型进行校验,可以进一步提高协议识别模型的可靠性。
下面通过一个具体实施例对本申请实施例作进一步描述和说明。
(1)获取训练网络流量;从训练网络流量中提取训练协议特征信息;训练协议特征信息包括端口、数据包长度、数据包内容中的秘钥和秘钥的次序;获取预先配置的端口与协议类型之间的对应关系。
(2)根据对应关系,对训练协议特征信息进行协议类型标识处理,得到样本数据;样本数据包括训练网络流量的训练协议特征信息以及相应训练网络流量的标准协议类型。
(3)将协议特征信息作为输入参量,将协议类型作为输出参量,构建初始协议识别模型;将样本数据中的训练协议特征信息输入至初始协议识别模型,得到训练协议特征信息对应的预测协议类型;将预测协议类型和标准协议类型进行比较,得到比较结果;根据比较结果,对初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型;映射关系包括多个协议特征参数以及每一协议特征参数的权值参数。
(4)从样本数据中抽取部分数据作为校验数据;根据校验数据对训练好的协议识别模型进行校验,得到校验结果;根据校验结果,调整协议特征参数的权值参数,得到校验后的协议识别模型。
(5)采集实时网络流量,并从实时网络流量中提取实时协议特征信息;实时协议特征信息包括端口、数据包长度、数据包内容中的秘钥以及秘钥的次序。将实时协议特征信息输入至校验后的协议识别模型中,得到实时网络流量对应的协议类型。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,结合图3,步骤S310和步骤S330的执行顺序可以互换,即可以先执行步骤S310,然后执行步骤S330;也可以先执行步骤S330,然后执行步骤S310。再例如,结合图5,步骤S530和步骤S540的顺序也可以互换。
本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图7为本申请实施例的基于机器学习的网络流量协议识别方法的终端的硬件结构框图。如图7所示,终端70可以包括一个或多个(图7中仅示出一个)处理器702(处理器702可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器704,可选地,上述终端还可以包括用于通信功能的传输设备706以及输入输出设备708。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端70还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
存储器704可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的基于机器学习的网络流量协议识别方法对应的计算机程序,处理器702通过运行存储在存储器704内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器704可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器704可进一步包括相对于处理器702远程设置的存储器,这些远程存储器可以通过网络连接至终端70。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备706用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端70的通信供应商提供的无线网络。在一个实例中,传输设备706包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备706可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例还提供了一种基于机器学习的网络流量协议识别装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8为本申请实施例的基于机器学习的网络流量协议识别装置的结构框图,如图8所示,该基于机器学习的网络流量协议识别装置100包括:
获取模块10,用于获取预先构建好的协议识别模型。
提取模块20,用于采集实时网络流量,并从实时网络流量中提取实时协议特征信息。
识别模块30,用于将实时协议特征信息输入至协议识别模型中,得到实时网络流量对应的协议类型。
在其中一些实施例中,基于机器学习的网络流量协议识别装置100还包括构建模块,训练模块包括获取单元、构建单元和训练单元,其中:
样本获取单元,用于获取样本数据;样本数据包括训练网络流量的训练协议特征信息以及相应训练网络流量的标准协议类型。
初始构建单元,用于将协议特征信息作为输入参量,将协议类型作为输出参量,构建初始协议识别模型。
模型训练单元,用于根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型。
在其中一些实施例中,预设监督式学习规则包括朴素贝叶斯分类规则。
在其中一些实施例中,样本获取单元包括第一获取子单元、特征提取子单元、第二获取子单元和样本获取子单元,其中:
第一获取子单元,用于获取训练网络流量。
特征提取子单元,用于从训练网络流量中提取训练协议特征信息;训练协议特征信息包括端口、数据包长度、数据包内容中的秘钥和秘钥的次序。
第二获取子单元,用于获取预先配置的端口与协议类型之间的对应关系。
样本获取子单元,用于根据对应关系,对训练协议特征信息进行协议类型标识处理,得到样本数据。
在其中一些实施例中,初始协议识别模型包括协议特征信息与协议类型之间的映射关系;模型训练单元包括输入子单元、比较子单元和迭代子单元,其中:
输入子单元,用于将样本数据中的训练协议特征信息输入至初始协议识别模型,得到训练协议特征信息对应的预测协议类型。
比较子单元,用于将预测协议类型和标准协议类型进行比较,得到比较结果。
迭代子单元,用于根据比较结果,对初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型。
在其中一些实施例中,迭代子单元还用于在一次迭代中,根据比较结果,计算本次迭代对应的识别可信度;将识别可信度与预设可信度阈值进行比较;若识别可信度小于预设可信度阈值,则调整协议特征参数的权值参数,以对初始协议识别模型的映射关系进行迭代优化;映射关系包括多个协议特征参数以及每一协议特征参数的权值参数;若识别可信度大于或者等于预设可信度阈值,则停止迭代,并将本次迭代对应的协议识别模型作为训练好的协议识别模型。
在其中一些实施例中,基于机器学习的网络流量协议识别装置100还包括校验模块,训练模块包括抽取单元、校验单元和调整单元,其中:
抽取单元,用于从样本数据中抽取部分数据作为校验数据。
校验单元,用于根据校验数据对训练好的协议识别模型进行校验,得到校验结果。
调整单元,用于根据校验结果,调整协议特征参数的权值参数,得到校验后的协议识别模型。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取预先构建好的协议识别模型。
S2,采集实时网络流量,并从实时网络流量中提取实时协议特征信息。
S3,将实时协议特征信息输入至协议识别模型中,得到实时网络流量对应的协议类型。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的基于机器学习的网络流量协议识别方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于机器学习的网络流量协议识别方法。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于机器学习的网络流量协议识别方法,其特征在于,包括:
获取预先构建好的协议识别模型;
采集实时网络流量,并从所述实时网络流量中提取实时协议特征信息;
将所述实时协议特征信息输入至所述协议识别模型中,得到所述实时网络流量对应的协议类型;
在所述获取预先构建好的协议识别模型之前,所述方法还包括:
根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型;
其中,所述样本数据包括训练网络流量的训练协议特征信息以及相应训练网络流量的标准协议类型,所述初始协议识别模型包括协议特征信息与协议类型之间的映射关系,所述根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型包括:
将所述样本数据中的训练协议特征信息输入至所述初始协议识别模型,得到所述训练协议特征信息对应的预测协议类型;将所述预测协议类型和所述标准协议类型进行比较,得到比较结果;根据所述比较结果,对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型;
所述映射关系包括多个协议特征参数以及每一所述协议特征参数的权值参数,所述根据所述比较结果,对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型包括:
根据所述比较结果,调整所述协议特征参数的权值参数,以对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型。
2.根据权利要求1所述的方法,其特征在于,在所述根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型之前,所述方法还包括:
获取所述样本数据;
将协议特征信息作为输入参量,将协议类型作为输出参量,构建所述初始协议识别模型。
3.根据权利要求1所述的方法,其特征在于,所述预设监督式学习规则包括朴素贝叶斯分类规则。
4.根据权利要求2所述的方法,其特征在于,所述获取所述样本数据包括:
获取训练网络流量;
从所述训练网络流量中提取训练协议特征信息;所述训练协议特征信息包括端口、数据包长度、数据包内容中的秘钥和所述秘钥的次序;
获取预先配置的端口与协议类型之间的对应关系;
根据所述对应关系,对所述训练协议特征信息进行协议类型标识处理,得到所述样本数据。
5.根据权利要求1所述的方法,其特征在于,所述根据所述比较结果,调整所述协议特征参数的权值参数,以对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型包括:
在一次迭代中,根据所述比较结果,计算本次迭代对应的识别可信度;
将所述识别可信度与预设可信度阈值进行比较;
若所述识别可信度小于所述预设可信度阈值,则调整所述协议特征参数的权值参数,以对所述初始协议识别模型的映射关系进行迭代优化;
若所述识别可信度大于或者等于所述预设可信度阈值,则停止迭代,并将本次迭代对应的协议识别模型作为训练好的协议识别模型。
6.根据权利要求1所述的方法,其特征在于,在所述根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型之后,所述方法还包括:
从所述样本数据中抽取部分数据作为校验数据;
根据所述校验数据对训练好的协议识别模型进行校验,得到校验结果;
根据所述校验结果,调整所述协议特征参数的权值参数,得到校验后的协议识别模型。
7.一种基于机器学习的网络流量协议识别装置,其特征在于,包括:
获取模块,用于获取预先构建好的协议识别模型;
提取模块,用于采集实时网络流量,并从所述实时网络流量中提取实时协议特征信息;
识别模块,用于将所述实时协议特征信息输入至所述协议识别模型中,得到所述实时网络流量对应的协议类型;
所述获取模块在用于获取预先构建好的协议识别模型之前,还用于:根据样本数据和预设监督式学习规则,对初始协议识别模型进行训练,得到训练好的协议识别模型;
其中,所述样本数据包括训练网络流量的训练协议特征信息以及相应训练网络流量的标准协议类型,所述初始协议识别模型包括协议特征信息与协议类型之间的映射关系,所述获取模块具体用于:
将所述样本数据中的训练协议特征信息输入至所述初始协议识别模型,得到所述训练协议特征信息对应的预测协议类型;将所述预测协议类型和所述标准协议类型进行比较,得到比较结果;根据所述比较结果,对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型;
所述映射关系包括多个协议特征参数以及每一所述协议特征参数的权值参数,所述获取模块具体用于:
根据所述比较结果,调整所述协议特征参数的权值参数,以对所述初始协议识别模型的映射关系进行迭代优化,直至收敛,得到训练好的协议识别模型。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6中任一项所述的基于机器学习的网络流量协议识别方法。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至6中任一项所述的基于机器学习的网络流量协议识别方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010994537 | 2020-09-21 | ||
CN202010994537X | 2020-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112367215A CN112367215A (zh) | 2021-02-12 |
CN112367215B true CN112367215B (zh) | 2022-04-26 |
Family
ID=74507617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011096902.1A Active CN112367215B (zh) | 2020-09-21 | 2020-10-14 | 基于机器学习的网络流量协议识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367215B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489675B (zh) * | 2021-05-25 | 2023-08-25 | 深圳供电局有限公司 | 电力终端入侵检测方法、装置、设备及存储介质 |
CN113569368B (zh) * | 2021-09-17 | 2022-01-11 | 支付宝(杭州)信息技术有限公司 | 基于协议的建模方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731416A (zh) * | 2013-12-11 | 2014-04-16 | 清华大学 | 一种基于网络流量的协议识别方法和系统 |
CN104270392A (zh) * | 2014-10-24 | 2015-01-07 | 中国科学院信息工程研究所 | 一种基于三分类器协同训练学习的网络协议识别方法及系统 |
CN107682216A (zh) * | 2017-09-01 | 2018-02-09 | 南京南瑞集团公司 | 一种基于深度学习的网络流量协议识别方法 |
CN107809343A (zh) * | 2016-09-09 | 2018-03-16 | 中国人民解放军信息工程大学 | 一种网络协议识别方法及装置 |
CN108712397A (zh) * | 2018-04-28 | 2018-10-26 | 天津大学 | 基于深度学习的通信协议识别方法 |
CN111404833A (zh) * | 2020-02-28 | 2020-07-10 | 华为技术有限公司 | 一种数据流类型识别模型更新方法及相关设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814977B (zh) * | 2010-04-22 | 2012-11-21 | 北京邮电大学 | 利用数据流头部特征的tcp流量在线识别方法及装置 |
US9967188B2 (en) * | 2014-10-13 | 2018-05-08 | Nec Corporation | Network traffic flow management using machine learning |
US10536357B2 (en) * | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
CN107872457B (zh) * | 2017-11-09 | 2020-07-24 | 北京明朝万达科技股份有限公司 | 一种基于网络流量预测进行网络操作的方法及系统 |
ES2909555T3 (es) * | 2018-03-21 | 2022-05-09 | Telefonica Sa | Procedimiento y sistema para entrenar y validar algoritmos de aprendizaje automático en entornos de redes de datos |
CN110311829B (zh) * | 2019-05-24 | 2021-03-16 | 西安电子科技大学 | 一种基于机器学习加速的网络流量分类方法 |
CN111526101A (zh) * | 2020-04-16 | 2020-08-11 | 华北电力大学 | 一种基于机器学习的物联网动态流量分类方法 |
-
2020
- 2020-10-14 CN CN202011096902.1A patent/CN112367215B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731416A (zh) * | 2013-12-11 | 2014-04-16 | 清华大学 | 一种基于网络流量的协议识别方法和系统 |
CN104270392A (zh) * | 2014-10-24 | 2015-01-07 | 中国科学院信息工程研究所 | 一种基于三分类器协同训练学习的网络协议识别方法及系统 |
CN107809343A (zh) * | 2016-09-09 | 2018-03-16 | 中国人民解放军信息工程大学 | 一种网络协议识别方法及装置 |
CN107682216A (zh) * | 2017-09-01 | 2018-02-09 | 南京南瑞集团公司 | 一种基于深度学习的网络流量协议识别方法 |
CN108712397A (zh) * | 2018-04-28 | 2018-10-26 | 天津大学 | 基于深度学习的通信协议识别方法 |
CN111404833A (zh) * | 2020-02-28 | 2020-07-10 | 华为技术有限公司 | 一种数据流类型识别模型更新方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112367215A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200211721A1 (en) | METHOD AND APPARATUS FOR DETERMINING AN IDENTITY OF AN UNKNOWN INTERNET-OF-THINGS (IoT) DEVICE IN A COMMUNICATION NETWORK | |
CN109117634B (zh) | 基于网络流量多视图融合的恶意软件检测方法及系统 | |
CN113364752B (zh) | 一种流量异常检测方法、检测设备及计算机可读存储介质 | |
TW201830929A (zh) | 在網路流量型樣中以上下文為基礎之異常行為之偵測 | |
CN112367215B (zh) | 基于机器学习的网络流量协议识别方法和装置 | |
US20150131445A1 (en) | Similarity matching method and related device and communication system | |
CN107741899B (zh) | 处理终端数据的方法、装置及系统 | |
CN105302885B (zh) | 一种全文数据的提取方法和装置 | |
CN112199671A (zh) | 基于人工智能的恶意数据分析方法、装置和电子装置 | |
US11531676B2 (en) | Method and system for anomaly detection based on statistical closed-form isolation forest analysis | |
US20160366040A1 (en) | Dynamic Control of Endpoint Profiling | |
US20200302216A1 (en) | Data stream identification method and apparatus | |
CN111626408A (zh) | 哈希编码方法、装置、设备及可读存储介质 | |
US20190141604A1 (en) | Method and system for achieving auto adaptive clustering in a sensor network | |
CN113452676A (zh) | 一种检测器分配方法和物联网检测系统 | |
CN113992349A (zh) | 恶意流量识别方法、装置、设备和存储介质 | |
CA3122975A1 (en) | Network device identification | |
KR102291615B1 (ko) | 통신망의 장애를 예측하는 장치 및 방법 | |
CN110601909B (zh) | 网络维护方法、装置、计算机设备和存储介质 | |
CN110598797B (zh) | 故障的检测方法及装置、存储介质和电子装置 | |
KR101625890B1 (ko) | 인터넷 응용 트래픽 프로토콜의 시그니처 변경 탐지를 위한 테스트 자동화 방법 및 시스템 | |
CN109446052B (zh) | 一种应用程序的校验方法及设备 | |
CN115774870A (zh) | 设备授权作弊检测方法、装置、电子设备及存储介质 | |
CN111711946B (zh) | 一种加密无线网络下的IoT设备识别方法及识别系统 | |
WO2015078124A1 (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 |