一种应用识别结果的验证方法及系统与流程

文档序号:12132366阅读:487来源:国知局
一种应用识别结果的验证方法及系统与流程

本发明涉及自动控制技术领域,尤其涉及一种应用识别结果的验证方法及系统。



背景技术:

随着网络技术的不断发展,大量的网络应用为人们的工作与生活提供了便利,同时,应用质量的良莠不齐,对网络安全也带来了威胁,因此,需要对网络应用进行管理,但由于网络应用的种类繁多,对网络管理带来了一定困难。

在实际应用中,出于对网络管控与安全保护的目的,网络管理员通常需要对不同网络应用进行放行、限速、阻断等不同操作,为此,需要预先通过应用识别技术识别出不同的网络应用。目前,通常采用深度包检测技术进行应用识别,即通过分析网络应用产生的数据包的特征来区分不同的应用,因此需要预先根据不同的应用特征,开发相应的应用识别规则,应用识别规则相当于对应用特征的描述,这样,网络设备中的应用识别引擎就可以根据不同的应用识别规则来识别网络中的不同应用。

随着网络应用数量的不断增多,需要不断的增加应用识别规则,但是,如果应用识别规则描述的特征不够精确,某些应用之间就无法准确区分,就会产生应用结果的误报现象。对于这种误报现象,现有解决方式是:用户在使用一合法应用A时,只有在该应用A出现使用异常时,比如被禁止使用,用户才会向网络管理人员反馈情况,网络管理员要现场对用户的应用A进行重新测试,来确定该应用A是否被误识别成其他非法应用B而被禁用。但是,采用现有方式确定一个应用是否被误报,其效率低下,不利于及时对应用识别规则进行修改。



技术实现要素:

有鉴于此,本发明实施例的主要目的在于提供一种应用识别结果的验证方法及系统,能够提高应用误报的识别效率。

本发明实施例提供了一种应用识别结果的验证方法,所述方法应用于一种应用识别结果的验证系统,所述验证系统包括测试设备和验证设备,所述测试设备和所述验证设备中分别存储第一应用列表中每个应用的应用识别规则;所述方法包括:

所述测试设备接收客户端发送的数据流,并根据存储的应用识别规则对所述数据流进行应用识别,得到第一识别结果;

如果所述第一识别结果表示所述数据流属于第一目标应用,则所述验证设备利用第二应用列表中各个应用的应用识别规则,识别所述数据流是否属于第二目标应用,如果是,则确定发生了应用误报,如果否,则确定未发生应用误报;

其中,所述第一目标应用为所述第一应用列表中的一个应用,所述第二应用列表是从所述第一应用列表中去除所述第一目标应用后的应用列表,所述第二目标应用是所述第二应用列表中的与所述第一目标应用没有关联的一个应用。

可选的,所述方法还包括:

所述测试设备根据所述第一识别结果判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备,如果否,则丢弃所述数据流以及所述第一识别结果;

或者,

当所述验证系统还包括控制设备时,所述测试设备将所述数据流以及所述第一识别结果发送至所述控制设备;

所述控制设备根据所述第一识别结果判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备,如果否,则丢弃所述数据流以及所述第一识别结果。

可选的,所述识别所述数据流是否属于第二目标应用,包括:

将存储的所述第一目标应用的应用识别规则进行屏蔽;

利用屏蔽后的应用识别规则对所述数据流进行应用识别,得到第二识别结果;

如果所述第二识别结果表示所述数据流不属于所述第二应用列表中的任一应用,则确定所述数据流不属于所述第二目标应用;

如果所述第二识别结果表示所述数据流属于所述第二应用列表中的其中一应用,则判断该应用与所述第一目标应用之间是否具有父子关系,如果是,则将该应用的应用识别规则进行屏蔽,继续执行所述利用屏蔽后的应用识别规则对所述数据流进行应用识别的步骤,如果否,则确定所述数据流属于所述第二目标应用。

可选的,所述确定发生了应用误报之后,还包括:

将所述数据流、所述第一识别结果以及第二识别结果存储到误报数据库中。

可选的,所述测试设备布置在局域网与互联网之间。

本发明实施例还提供了一种应用识别结果的验证系统,所述验证系统包括测试设备和验证设备,所述测试设备和所述验证设备中分别存储第一应用列表中每个应用的应用识别规则;

所述测试设备,用于接收客户端发送的数据流,并根据存储的应用识别规则对所述数据流进行应用识别,得到第一识别结果;

所述验证设备,用于如果所述第一识别结果表示所述数据流属于第一目标应用,则利用第二应用列表中各个应用的应用识别规则,识别所述数据流是否属于第二目标应用,如果是,则确定发生了应用误报,如果否,则确定未发生应用误报;

其中,所述第一目标应用为所述第一应用列表中的一个应用,所述第二应用列表是从所述第一应用列表中去除所述第一目标应用后的应用列表,所述第二目标应用是所述第二应用列表中的与所述第一目标应用没有关联的一个应用。

可选的,所述测试设备,还用于根据所述第一识别结果判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备,如果否,则丢弃所述数据流以及所述第一识别结果;

或者,

当所述验证系统还包括控制设备时,所述测试设备,还用于将所述数据流以及所述第一识别结果发送至所述控制设备;

所述控制设备,用于根据所述第一识别结果判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备,如果否,则丢弃所述数据流以及所述第一识别结果。

可选的,所述验证设备包括:

规则屏蔽单元,用于将存储的所述第一目标应用的应用识别规则进行屏蔽;

应用识别单元,用于利用屏蔽后的应用识别规则对所述数据流进行应用识别,得到第二识别结果;

结果输出单元,用于如果所述第二识别结果表示所述数据流不属于所述第二应用列表中的任一应用,则确定所述数据流不属于所述第二目标应用;

所述结果输出单元,还用于如果所述第二识别结果表示所述数据流属于所述第二应用列表中的其中一应用,则判断该应用与所述第一目标应用之间是否具有父子关系,如果是,则将该应用的应用识别规则进行屏蔽,继续利用所述应用识别单元实现所述利用屏蔽后的应用识别规则对所述数据流进行应用识别的功能,如果否,则确定所述数据流属于所述第二目标应用。

可选的,所述验证设备,还用于确定发生了应用误报之后,将所述数据流、所述第一识别结果以及第二识别结果存储到误报数据库中。

可选的,所述测试设备布置在局域网与互联网之间。

本发明实施例提供的应用识别结果的验证方法及系统,预先使测试设备和验证设备中分别存储第一应用列表中每个应用的应用识别规则。在测试过程中,测试设备接收客户端发送的数据流,并根据存储的应用识别规则识别对所述数据流进行应用识别;如果识别结果表示所述数据流属于第一应用列表中的一个应用即第一目标应用,则在验证过程中,验证设备利用所述第一目标应用以外的应用识别规则对所述数据流进行应用识别;如果验证设备没有识别出一具体应用、或者识别出一个具体应用且该具体应用与第一目标应用具有关联关系,则认为没有发生应用误报,如果验证设备识别出一个具体应用且该具体应用与第一目标应用不具有关联关系,则认为发生了应用误报。可见,本发明通过对测试设备的应用识别结果进行再次验证,可以发现应用的误报现象,进而可以定位所述数据流对应的误报应用以及误报应用对应的应用识别规则,这与用户使用应用过程中发现误报再验证误报的现有方式相比,本发明提高了应用误报的识别效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的应用识别结果的验证系统的组成示意图之一;

图2为本发明实施例提供的应用识别结果的验证方法的流程示意图;

图3为本发明实施例提供的应用识别方法的流程示意图;

图4为本发明实施例提供的应用识别结果的验证系统的组成示意图之二。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种应用识别结果的验证系统,具体如图1所示,该系统包括测试设备和验证设备,测试设备与验证设备为具有应用识别功能的两台网络设备,其中,测试设备作为边界网关设备部署在测试环境中,即测试设备布置在局域网与互联网之间,局域网通过测试设备访问互联网。本发明实施例主要包括两个环节,即测试环节和验证环节,在测试环节中,测试设备可以对接收到的数据流进行应用识别,并将数据流以及对数据流的应用识别结果发送至控制设备,由控制设备判断测试设备的识别结果中是否包含一具体应用,即判断所述数据流是否属于一具体应用;回放设备为具有回放功能的测试机,即在验证环节中,回放设备可以管理验证设备,为验证设备配置相关的网络策略,修改验证设备中的应用规则集,以便通过在验证设备中回放所述数据流,来对所述数据流进行应用识别。如果对所述数据流的应用识别发生了误报,所述控制设备还可以采用镜像存储的方式将数据流及其误报应用信息存储到误报数据库中。

参见图2,为本发明实施例提供的应用识别结果的验证方法的流程示意图,该方法应用于一种应用识别结果的验证系统,所述验证系统包括测试设备和验证设备,所述测试设备和所述验证设备中分别存储第一应用列表中每个应用的应用识别规则。下面结合图1所示的测试系统介绍本方法实施例,该方法包括以下步骤:

步骤201:所述测试设备接收客户端发送的数据流,并根据存储的应用识别规则对所述数据流进行应用识别,得到第一识别结果。

在本实施例中,所述测试设备和所述验证设备中可以分别存储相同的第一应用列表,所述第一应用列表中的应用指具有网络行为的应用,可以包括网站、具有流量传输的软件、以及手机上的各类具有网络行为的应用,等等。其中,所述第一应用列表可以包括每个应用的应用标识,该应用标识可以是某具体应用的名称或是索引等。

所述第一应用列表中的应用是待测试的网络应用,在对应用进行测试之前,首先,确定每个待测试应用的应用识别规则,该应用识别规则是对待测试应用的特征描述,这些应用识别规则形成应用规则集,然后,将待测试的应用名称列表(即第一应用列表)、以及形成的应用规则集添加到所述测试设备与所述验证设备的应用规则库中。

在实际测试中,测试人员或者一般用户可以使用客户端上安装的网络应用产生数据流,例如,该网络应用是百度网盘,可以通过局域网经过测试设备向百度网盘上传图片,该图片数据即为测试设备接收到的属于百度网盘这一网络应用的数据流。

在步骤201中,测试设备利用第一应用列表对应的应用规则集对接收到的数据流进行应用识别,具体地,可以将第一应用列表中的应用进行排序,依次使用每个应用对应的应用识别规则对所述数据流进行匹配,或者,随机使用每个应用的应用识别规则对所述数据流进行匹配,一旦匹配出一个应用,便不再进行匹配,假设匹配出的应用为应用A且应用A是测试设备存储的第一应用列表中的一个应用,则应用A即作为测试设备的应用识别结果,否则,在应用识别结果中标记没有识别出任何应用。

在本实施例中,如果测试设备的应用识别结果为应用A,需要将所述数据流以及应用A的信息发送至验证设备,以便验证设备对测试设备的应用识别结果进行验证,具体可以采用以下两种实施例方式之一实现:

在第一种实施方式中,可以包括步骤A1:

A1:所述测试设备判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备,如果否,则丢弃所述数据流以及所述第一识别结果。

在第二种实施方式中,可以包括步骤B1:

B1:当所述验证系统还包括控制设备时,所述测试设备将所述数据流以及所述第一识别结果发送至所述控制设备。

B2:所述控制设备判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备,如果否,则丢弃所述数据流以及所述第一识别结果。

在上述两种实施方式中,测试设备或控制设备可以经过回放设备向验证设备发送数据,此外,由于所述第一识别结果中可以包括所述第一目标应用的标识(比如,APP_test,APP可以为第一目标应用的名称),也可以是unknown,即表示没有识别出任何应用,因此,可以根据所述第一识别结果判断所述数据流是否属于第一目标应用。

步骤202:如果所述第一识别结果表示所述数据流属于第一目标应用,则所述验证设备利用第二应用列表中各个应用的应用识别规则,识别所述数据流是否属于第二目标应用,如果是,则确定发生了应用误报,如果否,则确定未发生应用误报;

其中,所述第一目标应用为所述第一应用列表中的一个应用,所述第二应用列表是从所述第一应用列表中去除所述第一目标应用后的应用列表,所述第二目标应用是所述第二应用列表中的与所述第一目标应用没有关联的一个应用。

在步骤202中,验证设备利用第二应用列表对应的应用规则集对接收到的数据流进行应用识别,具体地,可以将第二应用列表中的应用进行排序,依次使用每个应用对应的应用识别规则对所述数据流进行匹配,或者,随机使用每个应用的应用识别规则对所述数据流进行匹配,一旦匹配出一个应用,便不再进行匹配,假设匹配出的应用为应用B且应用B是验证设备存储的第二应用列表中的一个应用,则应用B即作为验证设备的应用识别结果,否则在应用识别结果中标记没有识别出任何应用。

在本实施例中,当测试设备的应用识别结果表示所述数据流属于第一应用列表中的一个应用A,此时,利用验证设备对测试设备的应用识别结果进行验证,与测试设备不同的是,对于验证设备存储的第一应用列表中每个应用的应用识别规则,需要使其中的应用A对应的应用识别规则A失效,即,验证设备需要利用去除应用识别规则A以外的其它规则对所述数据流进行应用识别。如果验证设备的识别结果为应用B、且应用A与应用B没有应用上关联关系(说明所述数据流被识别为应用A和应用B这两个不同的应用识别结果),说明出现了应用误报;反之,如果验证设备没有识别出任何应用,或者,如果验证设备的识别结果为应用B、且应用A与应用B具有应用上的关联关系,则说明应用A与应用B对应同一应用,说明没有出现应用误报。

参见图3所示的应用识别方法的流程示意图,在一些实施方式中,步骤202中的“识别所述数据流是否属于第二目标应用”,可以包括步骤2021-2026:

步骤2021:将存储的所述第一目标应用的应用识别规则进行屏蔽。

参见图1,回放设备可以为验证设备配置相关的网络策略,并修改验证设备中存储的应用规则集。其中,关于配置网络策略,可以是配置验证设备与回放设备之间的通讯端口,以及所述数据流流经所述测试设备时的网络环境,等等;关于修改应用规则集,可以是从验证设备存储的第一应用列表中找到所述第一目标应用,并屏蔽掉所述第一目标应用的应用标识,同时将存储的应用规则集中的所述第一目标应用的应用识别规则屏蔽掉。

步骤2022:利用屏蔽后的应用识别规则对所述数据流进行应用识别,得到第二识别结果。

当所述第一目标应用及其应用识别规则被屏蔽掉后,所述第一目标应用以外的其他应用标识则形成了第二应用列表。验证设备对所述数据流进行应用识别时,回放设备控制回放所述数据流,即,回放设备向验证设备不断传输所述数据流,以重现所述数据流向测试设备的传输情况,同时,验证设备利用第二应用列表中各个应用的应用识别规则(即屏蔽后的规则集)对所述数据流进行应用识别,得到一个第二识别结果。

步骤2023:如果所述第二识别结果表示所述数据流不属于所述第二应用列表中的任一应用,则确定所述数据流不属于所述第二目标应用。

当根据测试设备的应用识别结果,判断所述数据流不属于第二应用列表中的任意一个应用时,则说明所述数据流只属于第一目标应用(即测试设备的应用识别结果),即所述数据流不属于所述第二目标应用。

步骤2024:如果所述第二识别结果表示所述数据流属于所述第二应用列表中的其中一应用,则判断该应用与所述第一目标应用之间是否具有父子关系,如果是,则执行步骤2025,如果否,则执行步骤2026。

步骤2025:将该应用的应用识别规则进行屏蔽,继续执行步骤2022。

步骤2026:确定所述数据流属于所述第二目标应用。

当根据测试设备的识别结果判断所述数据流属于第二应用列表中的一个应用B时,还要继续判断应用A和应用B之间是否具有父子关系。具体地,测试设备及验证设备存储的应用规则集中,不但可以包括某一网络应用对应的应用识别规则,还可以包括某一网络应用下的子应用对应的应用识别规则,比如,对于网络应用“百度网盘”,其子应用可以包括上传功能和下载功能,这样,“百度网盘”便是父应用,“百度网盘”的上传功能和下载功能便是其子应用,由于父应用及其子应用可以分别对应不同的应用识别规则,因此,测试设备的应用识别结果与验证设备的应用识别结果,可能一个是父应用,一个是子应用。当二者是父子应用时,二者实际是同一个应用,此时将关联应用B对应的应用识别规则进行屏蔽,继续执行步骤2022,这样,验证设备重新利用屏蔽应用A和应用B的应用识别规则后剩下的规则对所述数据流进行应用识别,如此循环下去,直到识别不到任何应用,则认为没有发生应用误报,但如果识别出一应用C、且应用C与测试设备识别出的应用A不是父子应用时,即二者是完全不同的应用,应用C即为所述第二目标应用,则认为发生了应用误报。

具体的,如果发生应用误报,验证设备输出的应用识别结果可以是第二目标应用的应用标识,比如,APP_validate,APP可以为第二目标应用的名称。如果没有发生误报,验证设备输出的应用识别结果可以是unknown,表示没有从自己的第二应用列表中识别出应用。

进一步地,在一些实施方式中,还可以对误报数据库进行更新,具体地,在步骤202中的“确定发生了应用误报”之后,还可以包括:将所述数据流、所述第一识别结果以及第二识别结果存储到误报数据库中。

此外,还可以将该所述数据流、所述第一识别结果以及第二识别结果以及二者的应用识别规则一并反馈给规则开发人员进行确认,以便开发人员及时的对误报应用的应用识别规则进行修改,从而提高应用识别的正确性。

其中,当利用误报数据库存储应用相关数据时,可以存放所述数据流的数据包名称、数据包存放的位置、测试设备的应用识别结果,以及验证设备的应用识别结果,参见下表。

本发明实施例提供的应用识别结果的验证方法,预先使测试设备和验证设备中分别存储第一应用列表中每个应用的应用识别规则。在测试过程中,测试设备接收客户端发送的数据流,并根据存储的应用识别规则识别对所述数据流进行应用识别;如果识别结果表示所述数据流属于第一应用列表中的一个应用即第一目标应用,则在验证过程中,验证设备利用所述第一目标应用以外的应用识别规则对所述数据流进行应用识别;如果验证设备没有识别出一具体应用、或者识别出一个具体应用且该具体应用与第一目标应用具有关联关系,则认为没有发生应用误报,如果验证设备识别出一个具体应用且该具体应用与第一目标应用不具有关联关系,则认为发生了应用误报。可见,本发明通过对测试设备的应用识别结果进行再次验证,可以发现应用的误报现象,进而可以定位所述数据流对应的误报应用以及误报应用对应的应用识别规则,这与用户使用应用过程中发现误报再验证误报的现有方式相比,本发明提高了应用误报的识别效率。

参见图4,为本发明实施例提供的应用识别结果的验证系统的组成示意图,所述验证系统包括测试设备401和验证设备402,所述测试设备401和所述验证设备402中分别存储第一应用列表中每个应用的应用识别规则;

所述测试设备401,用于接收客户端发送的数据流,并根据存储的应用识别规则对所述数据流进行应用识别,得到第一识别结果;

所述验证设备402,用于如果所述第一识别结果表示所述数据流属于第一目标应用,则利用第二应用列表中各个应用的应用识别规则,识别所述数据流是否属于第二目标应用,如果是,则确定发生了应用误报,如果否,则确定未发生应用误报;

其中,所述第一目标应用为所述第一应用列表中的一个应用,所述第二应用列表是从所述第一应用列表中去除所述第一目标应用后的应用列表,所述第二目标应用是所述第二应用列表中的与所述第一目标应用没有关联的一个应用。

在一些实施方式中,所述测试设备401,还用于根据所述第一识别结果判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备402,如果否,则丢弃所述数据流以及所述第一识别结果;

或者,

当所述验证系统还包括控制设备时,所述测试设备401,还用于将所述数据流以及所述第一识别结果发送至所述控制设备;

所述控制设备,用于根据所述第一识别结果判断所述数据流是否属于第一目标应用,如果是,则将所述数据流以及所述第一识别结果发送至所述验证设备402,如果否,则丢弃所述数据流以及所述第一识别结果。

在一些实施方式中,所述验证设备402包括:

规则屏蔽单元,用于将存储的所述第一目标应用的应用识别规则进行屏蔽;

应用识别单元,用于利用屏蔽后的应用识别规则对所述数据流进行应用识别,得到第二识别结果;

结果输出单元,用于如果所述第二识别结果表示所述数据流不属于所述第二应用列表中的任一应用,则确定所述数据流不属于所述第二目标应用;

所述结果输出单元,还用于如果所述第二识别结果表示所述数据流属于所述第二应用列表中的其中一应用,则判断该应用与所述第一目标应用之间是否具有父子关系,如果是,则将该应用的应用识别规则进行屏蔽,继续利用所述应用识别单元实现所述利用屏蔽后的应用识别规则对所述数据流进行应用识别的功能,如果否,则确定所述数据流属于所述第二目标应用。

在一些实施方式中,所述验证设备402,还用于确定发生了应用误报之后,将所述数据流、所述第一识别结果以及第二识别结果存储到误报数据库中。

在一些实施方式中,所述测试设备401布置在局域网与互联网之间。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。

需要说明的是,对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1