本发明涉及网络数据传输技术领域,尤其涉及一种DPI规则的生成方法及装置。
背景技术:
DPI(Deep Packet Inspection,深度业务识别)是一种对网络中不同的业务流进行区分的技术,DPI通过分析业务流中数据包的深度特征值和协议行为识别出数据属性及业务类型,通过不同客户、不同业务的标识为网络业务的精细化分析及控制提供支持。
目前,移动互联网的业务应用层出不穷,且同一应用的版本更新频繁,导致当前DPI规则库的基于已知业务识别的DPI规则无法满足业务分析的需要,造成DPI规则无法准确识别互联网数据中的业务数据。
技术实现要素:
本发明提供一种DPI规则的生成方法及装置,旨在解决DPI规则库的DPI规则无法准确识别互联网数据中的业务数据的技术问题。
为实现上述目的,本发明提供的一种DPI规则的生成方法,所述DPI规则的生成方法包括以下步骤:
获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据;
在所述互联网数据存在未识别数据时,分析所述未识别数据,以获取所述未识别数据的第一特征,其中,所述未识别数据为所述互联网数据中所述DPI规则无法识别的互联网数据;
基于所述第一特征编译生成DPI规则;
将所述DPI规则存储至所述DPI规则库。
优选地,所述在所述互联网数据存在未识别数据时,分析所述未识别数据,以获取所述未识别数据的第一特征的步骤包括:
在所述互联网数据存在未识别数据时,获取所述未识别数据的第二特征;
基于所述第二特征过滤所述未识别数据,以获取业务数据;
分析所述业务数据,以获取所述业务数据的业务特征;
将获取的所述业务特征作为所述未识别数据的第一特征。
优选地,在所述互联网数据存在未识别数据时,获取所述未识别数据的第二特征的步骤与所述基于所述第二特征过滤所述未识别数据,以获取业务数据的步骤之间,所述DPI规则的生成方法还包括:
获取所述第二特征对应的第一目标IP地址和/或第一用户数据;
在所述第一目标IP地址与所述第二特征对应的第二目标IP地址不一致时,采用所述第二目标IP更新所述未识别数据中的第一目标IP地址;
和/或,在所述第一用户数据与所述第二特征对应的第二用户数据不一致时,采用所述第二用户数据更新所述未识别数据中的所述第一用户数据。
优选地,所述分析所述业务数据,以获取所述业务数据的业务特征的步骤包括:
将所述业务数据分为多组业务数据组;
对所述业务数据组的相同序列的载荷报文进行数据挖掘,以获取各个所述业务数据组的业务特征;
将获取的所述业务特征作为所述未识别数据的第一特征。
优选地,所述将所述DPI规则存储至DPI规则库的步骤包括:
判断生成的所述DPI规则与所述DPI规则库的所述DPI规则是否冲突;
在生成的所述DPI规则与DPI规则库的DPI规则均不存在冲突时,将所述DPI规则存储至DPI规则库。
此外,为实现上述目的,本发明还提供一种DPI规则的生成装置,所述DPI规则的生成装置包括:
识别模块,用于获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据;
分析模块,用于在所述互联网数据存在未识别数据时,分析所述未识别数据,以获取所述未识别数据的第一特征,其中,所述未识别数据为所述互联网数据中所述DPI规则无法识别的互联网数据;
编译模块,用于基于所述第一特征编译生成DPI规则;
存储模块,用于将所述DPI规则存储至所述DPI规则库。
优选地,所述分析模块包括:
第一获取单元,用于在所述互联网数据存在未识别数据时,获取所述未识别数据的第二特征;
过滤单元,用于基于所述第二特征过滤所述未识别数据,以获取业务数据;
分析单元,用于分析所述业务数据,以获取所述业务数据的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征。
优选地,所述分析模块还包括:
第二获取单元,用于所述第二特征对应的第一目标IP地址和/或第一用户数据;
更新单元,用于在所述第一目标IP地址与所述第二特征对应的第二目标IP地址不一致时,采用所述第二目标IP更新所述未识别数据中的第一目标IP地址;和/或,用于在所述第一用户数据与所述第二特征对应的第二用户数据不一致时,采用所述第二用户数据更新所述未识别数据中的所述第一用户数据。
优选地,所述分析单元包括:
分组子单元,用于将所述业务数据分为多组业务数据组;
数据挖掘子单元,用于对所述业务数据组的相同序列的载荷报文进行数据挖掘,以获取各个所述业务数据组的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征。
优选地,所述存储模块包括:
判断单元,用于判断生成的所述DPI规则与所述DPI规则库的所述DPI规则是否冲突;
存储单元,用于在生成的所述DPI规则与所述DPI规则库的所述DPI规则不存在冲突时,将所述DPI规则存储至DPI规则库。
本发明首先通过获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据,以获取未识别数据;接着分析所述未识别数据,以获取所述未识别数据的业务特征;然后基于所述业务特征编译生成DPI规则;最后存储所述DPI规则至所述DPI规则库。根据获取到的互联网数据获取未识别数据、分析未识别数据的业务特征,基于业务特征编译生成DPI规则,并基于DPI 规则更新DPI规则库,完成了DPI规则库的实时自动更新,避免出现DPI规则库的DPI规则无法准确识别互联网数据中的业务数据的问题,提高了数据识别的识别率和准确率。
附图说明
图1为本发明DPI规则的生成方法第一实施例的流程示意图;
图2为图1中步骤S40的细化流程示意图;
图3为图1中步骤S20第一实施例的细化流程示意图;
图4为图1中步骤S20第二实施例的细化流程示意图;
图5为图3中步骤S23的细化流程示意图;
图6为DPI规则的生成装置第一实施例的功能模块示意图;
图7为图6中存储模块的细化功能模块示意图;
图8为图6中分析模块第一实施例的细化功能模块示意图;
图9为图6中分析模块第二实施例的细化功能模块示意图;
图10为图8中分析单元的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种DPI规则的生成方法。
参照图1,图1为DPI规则的生成方法第一实施例的流程示意图。
在本实施例中,该DPI规则的生成方法包括:
步骤S10,获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据;
采集/获取移动互联网数据,基于DPI规则库的DPI规则识别采集/获取到的移动互联网数据。
步骤S20,在所述互联网数据存在未识别数据时,分析所述未识别数据,以获取所述未识别数据的第一特征,其中,所述未识别数据为所述互联网数 据中所述DPI规则无法识别的互联网数据;
在所述互联网数据存在未识别数据时,对未识别数据进行分析,用以获取未识别数据的第一特征。采用固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数数据流的相同序列具有的共同特征等基于数据挖掘算法获取第一特征。该第一特征为固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数数据流的相同序列具有的共同特征中的一种或几种;其中负载是指未识别数据包含的对应的服务器等加密数据序列。
步骤S30,基于所述第一特征编译生成DPI规则;
基于获取的第一特征编译生成DPI规则。编译方式可以采用现有DPI规则的编译方式,也可以采用其他编译方式,譬如现有DPI规则的编译方式优化后的编译方式等,本实施例中不做进一步地限定。
步骤S40,将所述DPI规则存储至所述DPI规则库。
将编译生成的DPI规则存储至DPI规则库,即基于编译生成的DPI规则更新DPI规则库,其更新过程采用热更新。
在其他实施例中,请参考图2,步骤S40包括:
步骤S41、判断生成的所述DPI规则与所述DPI规则库的所述DPI规则是否冲突;
步骤S42、在生成的所述DPI规则与所述DPI规则库的所述DPI规则不存在冲突时,将所述DPI规则存储至DPI规则库。
在基于生成的DPI规则搜索的数据与基于DPI规则库的DPI规则搜索的数据一致、基于生成的DPI规则搜索的数据包含或者包含于基于DPI规则库的DPI规则搜索的数据、或基于生成的DPI规则搜索的数据与基于DPI规则库的DPI规则搜索的数据具有相同的数据时,判定所述DPI规则与DPI规则库的DPI规则发送冲突。在所述DPI规则与DPI规则库的DPI规则存在冲突时,分析所述DPI规则以及对应冲突的DPI规则,找出发生冲突的原因,基于该原因修改DPI规则,在修改后的DPI规则与DPI规则库的DPI规则不存在冲突,则存储修改的DPI规则至DPI规则库,其中,在基于生成的DPI规则搜索的数据包含或者包含于基于DPI规则库的DPI规则搜索的数据时,设置生成的DPI规则与DPI规则库的DPI规则的优先级,并基于设置后的生成的DPI规则与DPI规则库的DPI规则更新DPI规则库;否则,继续修改或者 放弃该DPI规则。
在基于编译生成的DPI规则更新DPI规则库之后,即可采用更新后DPI规则库的DPI规则识别移动互联网中新出现的业务数据。
本实施例DPI规则的生成方法,首先通过获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据;接着在所述互联网数据存在未识别数据时,分析所述未识别数据,以获取所述未识别数据的第一特征;然后基于所述第一特征编译生成DPI规则;最后将所述DPI规则存储至所述DPI规则库。根据获取到的互联网数据获取未识别数据、分析未识别数据的业务特征,基于业务特征编译生成DPI规则,并基于DPI规则更新DPI规则库,完成了DPI规则库的实时自动更新,避免出现DPI规则库的DPI规则无法准确识别互联网数据中的业务数据的问题,提高了数据识别的识别率和准确率。
参照图3,图3为图1中步骤S20第一实施例的细化流程示意图。
基于第一实施例提出本发明DPI规则的生成方法中步骤S20的细化流程的实施例,本实施例中,步骤S20包括:
步骤S21,在所述互联网数据存在未识别数据时,获取所述未识别数据的第二特征;
基于未识别数据的明文数据采用现有的协议获取未识别数据的第二特征,第二特征包括域名等未识别数据的明文数据特征,并以该第二特征作为对应未识别数据的业务名称。
步骤S22,基于所述第二特征过滤所述未识别数据,以获取业务数据;
过滤未识别数据,去除未识别数据的非业务数据,保证剩余的未识别数据为纯业务数据。可以通过获取未识别数据中的用户数据及用户数据对应的目标IP地址,在用户数据及用户数据对应的目标IP地址均能够与第二特征匹配成功时,该用户数据对应的未识别数据为业务数据;在用户数据及用户数据对应的目标IP地址不能同时与第二特征匹配成功时,该用户数据对应的未识别数据为非业务数据。本实施的过滤未识别数据的方式可以讲未识别数据中的非业务数据删除或者标示为非业务数据。
步骤S23,分析所述业务数据,以获取所述业务数据的业务特征;
采用固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数 数据流的相同序列具有的共同特征等基于数据挖掘算法分析业务数据的业务特征。该业务特征为固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数数据流的相同序列具有的共同特征中的一种或几种;其中负载是指未识别数据包含的对应的服务器等加密数据序列。
步骤S24,将获取的所述业务特征作为所述未识别数据的第一特征。
在其他实施例中,请参照图4,在步骤S21和步骤S22之间,DPI规则的生成方法还包括:
步骤S25,获取所述第二特征对应的第一目标IP地址和/或第一用户数据;
其中,第一目标IP地址、第一用户数据分别为未识别数据中第二特征对应的目标IP地址和用户数据。
步骤S26,在所述第一目标IP地址与所述第二特征对应的第二目标IP地址不一致时,采用所述第二目标IP更新所述未识别数据中的第一目标IP地址;
和/或,在所述第一用户数据与所述第二特征对应的第二用户数据不一致时,采用所述第二用户数据更新所述未识别数据中的所述第一用户数据。
其中,第二目标IP地址为互联网数据中第二特征对应的目标IP地址,第二用户数据为互联网数据中第二特征对应的用户数据。
通过获取未识别数据中所述第二特征对应的第一目标IP地址和/或第一用户数据,并在所述第一目标IP地址与所述第二特征对应的第二目标IP地址不一致时,采用所述第二目标IP更新所述未识别数据中的第一目标IP地址,和/或,在所述第一用户数据与所述第二特征对应的第二用户数据不一致时,采用所述第二用户数据更新所述未识别数据中的所述第一用户数据。补全了未识别数据,确保了第二特征对应的未识别数据的完整性,进而提高了后续生成的DPI规则的准确率。
本实施例中,通过第二特征过滤所述未识别数据,获取未识别数据中的业务数据,并通过分析所述业务数据获取所述业务数据的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征,提高了第一特征的准确性,进而提高了后续生成的DPI规则的准确率。
参照图5,图5为图3中步骤S23的细化流程示意图。
基于上一实施例提出本发明DPI规则的生成方法中步骤S23的细化流程 的实施例,本实施例中,步骤S23包括:
步骤S231,将所述业务数据分为多组业务数据组;
以用户流为单位将所述业务数据分为多组业务数据组,分组时可以以N个用户流为一组对业务数据进行分组。用户流是指用户访问某一服务器时,与该服务器IP连接过程中的产生的数据流。
步骤S232,对所述业务数据组的相同序列的载荷报文进行数据挖掘,以获取各个所述业务数据组的业务特征。
采用数据挖掘算法对每一个业务数据组的相同序列的载荷报文进行数据挖掘,以获取所述业务数据组的业务特征,该业务特征是指能够覆盖预设比例以上的业务数据组的业务数据的共同特征,即业务数据组预设比例以上的业务数据的共同特征,或者业务数据组预设比例以上的业务数据都包含该业务特征,其中预设比例是为保证后续生成的DPI规则的准确率而预先设置的比例,该预设比例可以根据需求设置为90%、95%等比例。
步骤S233,将获取的所述业务特征作为所述未识别数据的第一特征。
本实施例中,通过将所述业务数据分为多组业务数据组;并对所述业务数据组的相同序列的载荷报文进行数据挖掘,以获取所述业务数据组的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征;分组且采用数据挖掘的方式获取业务数据的业务特征,提高了业务特征的准确性。
本发明进一步提供一种DPI规则的生成装置。
参照图6,图6为DPI规则的生成装置第一实施例的功能模块示意图。
在本实施例中,该DPI规则的生成装置包括:
识别模块10,用于获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据;
识别模块10采集/获取移动互联网数据,基于DPI规则库的DPI规则识别采集/获取到的移动互联网数据。
分析模块20,在所述互联网数据存在未识别数据时,分析所述未识别数据,以获取所述未识别数据的第一特征,其中,所述未识别数据为所述互联网数据中所述DPI规则无法识别的互联网数据;
在所述互联网数据存在未识别数据时,分析模块20对未识别数据进行分 析,用以获取未识别数据的第一特征。分析模块20采用固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数数据流的相同序列具有的共同特征等基于数据挖掘算法获取第一特征。该第一特征为固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数数据流的相同序列具有的共同特征中的一种或几种;其中负载是指未识别数据包含的对应的服务器等加密数据序列。
编译模块30,用于基于所述第一特征编译生成DPI规则;
编译模块30基于获取的第一特征编译生成DPI规则。编译方式可以采用现有DPI规则的编译方式,也可以采用其他编译方式,譬如现有DPI规则的编译方式优化后的编译方式等,本实施例中不做进一步地限定。
存储模块40,用于将所述DPI规则存储至所述DPI规则库。
存储模块40将编译生成的DPI规则存储至DPI规则库,即基于编译生成的DPI规则更新DPI规则库,其更新过程采用热更新。
在其他实施例中,请参考图7,所述存储模块40包括:
判断单元41,用于判断所述生成的DPI规则与所述DPI规则库的所述DPI规则是否冲突;
存储单元42,用于在生成的所述DPI规则与所述DPI规则库的所述DPI规则不存在冲突时,将所述DPI规则存储至DPI规则库。
在基于生成的DPI规则搜索的数据与基于DPI规则库的DPI规则搜索的数据一致、基于生成的DPI规则搜索的数据包含或者包含于基于DPI规则库的DPI规则搜索的数据、或基于生成的DPI规则搜索的数据与基于DPI规则库的DPI规则搜索的数据具有相同的数据时,判断单元41判定所述DPI规则与DPI规则库的DPI规则发送冲突。在所述DPI规则与DPI规则库的DPI规则存在冲突时,分析所述DPI规则以及对应冲突的DPI规则,找出发生冲突的原因,基于该原因修改DPI规则,在修改后的DPI规则与DPI规则库的DPI规则不存在冲突,则存储修改的DPI规则至DPI规则库,其中,在基于生成的DPI规则搜索的数据包含或者包含于基于DPI规则库的DPI规则搜索的数据时,设置生成的DPI规则与DPI规则库的DPI规则的优先级,并基于设置后的生成的DPI规则与DPI规则库的DPI规则更新DPI规则库;否则,继续修改或者放弃该DPI规则。
本实施例DPI规则的生成装置,首先通过识别模块10获取互联网数据,基于DPI规则库的DPI规则识别所述互联网数据;接着在所述互联网数据存在未识别数据时,分析模块20分析所述未识别数据,以获取所述未识别数据的第一特征;然后编译模块30基于所述第一特征编译生成DPI规则;最后存储模块40将所述DPI规则存储至所述DPI规则库。根据获取到的互联网数据获取未识别数据、分析未识别数据的业务特征,基于业务特征编译生成DPI规则,并基于DPI规则更新DPI规则库,完成了DPI规则库的实时自动更新,避免出现DPI规则库的DPI规则无法准确识别互联网数据中的业务数据的问题,提高了数据识别的识别率和准确率。
参照图8,图8为图6中分析模块第一实施例的细化功能模块示意图。
基于第一实施例提出本发明DPI规则的生成装置中分析模块的细化功能模块的实施例,本实施例中,所述分析模块20包括:
第一获取单元21,用于在所述互联网数据存在未识别数据时,获取所述未识别数据的第二特征;
第一获取单元21基于未识别数据的明文数据采用现有的协议获取未识别数据的第二特征,第二特征包括域名等未识别数据的明文数据特征,并以该第二特征作为对应未识别数据的业务名称。
过滤单元22,用于基于所述第二特征过滤所述未识别数据,以获取业务数据;
过滤单元22过滤未识别数据,去除未识别数据的非业务数据,保证剩余的未识别数据为纯业务数据。可以通过获取未识别数据中的用户数据及用户数据对应的目标IP地址,在用户数据及用户数据对应的目标IP地址均能够与第二特征匹配成功时,该用户数据对应的未识别数据为业务数据;在用户数据及用户数据对应的目标IP地址不能同时与第二特征匹配成功时,该用户数据对应的未识别数据为非业务数据。本实施的过滤未识别数据的方式可以讲未识别数据中的非业务数据删除或者标示为非业务数据。
分析单元23,用于分析所述业务数据,以获取所述业务数据的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征。
分析单元23采用固有特征集包含的特征、未识别数据的负载和/或未识别 数据中多数数据流的相同序列具有的共同特征等基于数据挖掘算法分析业务数据的业务特征。该业务特征为固有特征集包含的特征、未识别数据的负载和/或未识别数据中多数数据流的相同序列具有的共同特征中的一种或几种;其中负载是指未识别数据包含的对应的服务器等加密数据序列。
在其他实施例中,请参照图9,所述分析模块20还包括:
第二获取单元24,用于获取所述第二特征对应的第一目标IP地址和/或第一用户数据;
其中,第一目标IP地址、第一用户数据分别为未识别数据中第二特征对应的目标IP地址和用户数据。
更新单元25,用于在所述第一目标IP地址与所述第二特征对应的第二目标IP地址不一致时,采用所述第二目标IP更新所述未识别数据中的第一目标IP地址;和/或,在所述第一用户数据与所述第二特征对应的第二用户数据不一致时,采用所述第二用户数据更新所述未识别数据中的所述第一用户数据。
其中,第二目标IP地址为互联网数据中第二特征对应的目标IP地址,第二用户数据为互联网数据中第二特征对应的用户数据。
通过第二获取单元24获取未识别数据中所述第二特征对应的第一目标IP地址和/或第一用户数据,在所述第一目标IP地址与所述第二特征对应的第二目标IP地址不一致时,更新单元25采用所述第二目标IP更新所述未识别数据中的第一目标IP地址,和/或,在所述第一用户数据与所述第二特征对应的第二用户数据不一致时,更新单元25采用所述第二用户数据更新所述未识别数据中的所述第一用户数据。补全了未识别数据,确保了第二特征对应的未识别数据的完整性,进而提高了后续生成的DPI规则的准确率。
本实施例中,通过过滤单元22基于第二特征过滤所述未识别数据获取未识别数据中的业务数据,并通过分析所述业务数据获取所述业务数据的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征,提高了第一特征的准确性,进而提高了后续生成的DPI规则的准确率。
参照图10,图10为图8中分析单元的细化功能模块示意图。
基于上一实施例提出本发明DPI规则的生成装置中分析单元的细化流功能模块程的实施例,本实施例中,所述分析单元23包括:
分组子单元231,用于将所述业务数据分为多组业务数据组;
分组子单元231以用户流为单位将所述业务数据分为至少两组业务数据组,分组时也可以以N个用户流为一组对业务数据进行分组。用户流是指用户成功访问某一服务器IP时,访问过程中的全部数据。
数据挖掘子单元232,用于对所述业务数据组的相同序列的载荷报文进行数据挖掘,以获取各个所述业务数据组的业务特征,并将获取的所述业务特征作为所述未识别数据的第一特征。
数据挖掘子单元232采用数据挖掘算法对每一个业务数据组的相同序列的载荷报文进行数据挖掘,以获取所述业务数据组的业务特征,该业务特征是指能够覆盖预设比例以上的业务数据组的业务数据的共同特征,即业务数据组预设比例以上的业务数据的共同特征,或者业务数据组预设比例以上的业务数据都包含该业务特征,其中预设比例是为保证后续生成的DPI规则的准确率而预先设置的比例,该预设比例可以根据需求设置为90%、95%等。
本实施例中,分组子单元221将所述业务数据分为多组业务数据组;数据挖掘子单元222对所述业务数据组的相同序列的载荷报文进行数据挖掘,以获取各个所述业务数据组的业务特征;分组且采用数据挖掘的方式获取业务数据的业务特征,提高了业务特征的准确性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。