基于安全检测的数据流获取方法及装置的制造方法

文档序号:10555572阅读:321来源:国知局
基于安全检测的数据流获取方法及装置的制造方法
【专利摘要】本申请提供一种基于安全检测的数据流获取方法及装置,其中,该方法包括:在接收到待检测数据包之后,对该待检测数据包进行镜像,将镜像数据包保存到缓存模块中,将该待检测数据包与规则库中的安全检测规则进行匹配,其中,安全检测规则用于检测数据包是否为恶意数据包;当该待检测数据包命中安全检测规则时,获取该待检测数据包的相关信息,该相关信息包括:该待检测数据包的五元组信息;根据该相关信息,从缓存模块中读取该镜像数据包所在的第一数据流,以及该第一数据流的上下文数据流。本申请能够获取到命中规则的恶意数据包、该恶意数据包所在数据流及其上下文数据流,根据这些数据流提供的完整攻击信息,可以得到更加准确的分析结果。
【专利说明】
基于安全检测的数据流获取方法及装置
技术领域
[0001] 本申请涉及网络安全技术领域,特别涉及一种基于安全检测的数据流获取方法及 装置。
【背景技术】
[0002] 为了维护网络安全,通常会在内部网络与外部网络之间、或者在不同信任域网络 之间,部署网络安全设备,来对要进入被保护网络的数据流进行安全检测,并对检测出的恶 意报文进行相应处理。现有的网络安全设备主要有:IPS(Intrusion Prevention System, 入侵防御系统)设备和防火墙设备等。
[0003] 目前,网络安全设备对数据包进行安全检测的方法如下:在网络安全设备中配置 有规则库,该规则库中包含有大量的安全检测规则。数据包进入网络安全设备之后,网络安 全设备会将该数据包与规则库中的各个安全检测规则进行匹配,当数据包命中一安全检测 规则时,确定该数据包为恶意数据包,即,该数据包可能是攻击数据包或异常数据包等,并 记录此次攻击事件(或攻击日志)。
[0004] 为了便于进一步对检测到的攻击事件进行分析,网络安全设备一般还具有抓包功 能。可以针对规则库中的不同安全检测规则,开启对应的抓包功能。例如,针对安全检测规 贝IJl开启了抓包功能,当数据包命中安全检测规则1时,实时抓取到该命中安全检测规则1的 数据包,以便根据抓取到的数据包对此次攻击事件进行进一步分析。
[0005] 现有的网络安全设备只能抓取到命中规则的那一个数据包,而这个数据包所能提 供的攻击信息是有限的、不完整的,因此,仅根据这一个数据包进行分析得到的分析结果有 可能是不准确的。

【发明内容】

[0006] 有鉴于此,本申请提供一种基于安全检测的数据流获取方法及装置。
[0007] 具体地,本申请是通过如下技术方案实现的:
[0008] -方面,提供了一种基于安全检测的数据流获取方法,该方法包括:
[0009]在接收到待检测数据包之后,对该待检测数据包进行镜像,将镜像数据包保存到 缓存模块中,将该待检测数据包与规则库中的安全检测规则进行匹配,其中,安全检测规则 用于检测数据包是否为恶意数据包;
[0010]当该待检测数据包命中安全检测规则时,获取该待检测数据包的相关信息,该相 关信息包括:该待检测数据包的五元组信息;
[0011]根据获取到的相关信息,从缓存模块中读取该镜像数据包所在的第一数据流,以 及该第一数据流的上下文数据流。
[0012] 另一方面,还提供了一种基于安全检测的数据流获取装置,该装置包括:
[0013] 接收模块,用于接收待检测数据包;
[0014] 镜像模块,用于在接收模块接收到待检测数据包之后,对该待检测数据包进行镜 像,将镜像数据包保存到缓存模块中;
[0015] 缓存模块,用于保存镜像数据包;
[0016] 检测模块,用于将该待检测数据包与规则库中的安全检测规则进行匹配,其中,安 全检测规则用于检测数据包是否为恶意数据包;
[0017] 信息获取模块,用于当检测模块检测到该待检测数据包命中安全检测规则时,获 取该待检测数据包的相关信息,该相关信息包括:该待检测数据包的五元组信息;
[0018] 数据流获取模块,用于根据信息获取模块获取到的相关信息,从缓存模块中读取 该镜像数据包所在的第一数据流,以及该第一数据流的上下文数据流。
[0019] 通过本申请的以上技术方案,在对待检测数据包进行安全检测之前,先对该待检 测数据包进行镜像得到镜像数据包,之后,将该镜像数据包保存到缓存模块中,当检测到该 待检测数据包为恶意数据包时,获取该待检测数据包的相关信息,即可从缓存模块中读取 该待检测数据包的镜像数据包所在的第一数据流,还可以从缓存模块中读取该第一数据流 的上下文数据流,从而,不仅获取到了命中规则的恶意数据包,还获取到了该恶意数据包所 在数据流及其上下文数据流。由于获取到了恶意数据包所在数据流及其上下文数据流,这 些数据流能够提供完整的攻击信息,因此,根据这些完整的攻击信息进行分析得到的分析 结果也更加准确。
【附图说明】
[0020] 图1是本申请一示例性实施例示出的基于安全检测的数据流获取方法的流程图;
[0021] 图2是本申请一示例性实施例示出的读取数据流的处理流程图;
[0022] 图3是本申请一示例性实施例示出的发送读取到的数据流的处理流程图;
[0023] 图4是本申请一示例性实施例示出的基于安全检测的数据流获取装置的一种结构 示意图;
[0024] 图5是本申请一示例性实施例示出的基于安全检测的数据流获取装置的另一种结 构示意图;
[0025] 图6是本申请一示例性实施例示出的基于安全检测的数据流获取装置的又一种结 构示意图;
[0026] 图7是本申请一示例性实施例示出的基于安全检测的数据流获取装置的又一种结 构示意图。
【具体实施方式】
[0027] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0028] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。 在本申请和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该"也旨在包括多数 形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或"是指并包 含一个或多个相关联的列出项目的任何或所有可能组合。
[0029] 应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这 些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第 一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当…… 时"或"响应于确定"。
[0030] 为了解决现有技术中存在的只能抓取到命中规则的那一个数据包,从而导致根据 这一个数据包进行分析得到的分析结果不准确的问题,本申请以下实施例中提供了一种基 于安全检测的数据流获取方法,以及一种可以应用该方法的数据流获取装置。
[0031] 如图1所示,本申请实施例的基于安全检测的数据流获取方法包括以下步骤:
[0032]步骤SlOl,在接收到任一数据包(为了描述方便,称为待检测数据包)之后,对该待 检测数据包进行镜像,将镜像数据包保存到缓存模块中,将该待检测数据包与规则库中的 安全检测规则进行匹配,其中,安全检测规则用于检测数据包是否为恶意数据包;
[0033] 具体的,缓存模块可以是一个大容量的硬盘,用于存储镜像数据包。为了避免缓存 模块的存储空间不足,而无法继续存储镜像数据包,可以预先配置缓存模块的数据删除时 间间隔Tl,每隔Tl时间,对缓存模块中保存的镜像数据包进行删除,其中,Tl的值可以根据 缓存模块的总存储空间大小和网络安全设备支持的最大数据包转发速度,来进行配置。
[0034] 由步骤SlOl可以看出,在接收到一个数据包之后,对该数据包进行镜像会得到两 个相同的数据包,其中一个数据包保存到缓存模块中,另外一个数据包执行安全检测,即, 将该数据包与规则库中的各个安全检测规则进行匹配。
[0035] 步骤S102,当该待检测数据包命中安全检测规则时,获取该待检测数据包的相关 信息;
[0036] 当待检测数据包命中安全检测规则时,说明该数据包为恶意数据包,获取该待检 测数据包的相关信息,该相关信息包括:该待检测数据包的五元组信息等。
[0037] 步骤S103,根据获取到的相关信息,从缓存模块中读取该镜像数据包所在的数据 流(为了描述方便,将该镜像数据包所在的数据流称为第一数据流),以及该第一数据流的 上下文数据流。
[0038] 在实际实施过程中,可以在获取到该待检测数据包的相关信息之后,就执行步骤 S103;也可以按照预定读取时间间隔T2执行步骤S103,也就是说,在T2时间到达之前,针对 接收到的每一个数据包执行步骤SlO 1和步骤S102,在T2时间到达时,针对在T2时间内接收 到的每一个数据包,执行步骤S103。
[0039] 本申请上述实施例的方法中,在对待检测数据包进行安全检测之前,先对该待检 测数据包进行镜像得到镜像数据包,之后,将该镜像数据包保存到缓存模块中,当检测到该 待检测数据包为恶意数据包时,获取该待检测数据包的相关信息,即可从缓存模块中读取 该待检测数据包的镜像数据包所在的第一数据流,还可以从缓存模块中读取该第一数据流 的上下文数据流,从而,不仅获取到了命中规则的恶意数据包,还获取到了该恶意数据包所 在数据流及其上下文数据流。由于获取到了恶意数据包所在数据流及其上下文数据流,这 些数据流能够提供完整的攻击信息,因此,根据这些完整的攻击信息进行分析得到的分析 结果也更加准确。
[0040] 另外,由于可以得到更加准确的分析结果,因此,也有助于根据更加准确的分析结 果来判断规则库中的安全检测规则是否存在误检,并对存在误检的安全检测规则进行及时 的调整。
[0041] 具体的,本申请实施例的基于安全检测的数据流获取方法包括以下内容:
[0042] 预先创建如表1-1或表1-2所示的数据读取策略表,数据读取策略表用于记录各个 安全检测规则对应的数据读取策略。根据配置信息,将各个安全检测规则对应的数据读取 策略添加到数据读取策略表中,数据读取策略表中的每一个策略表项中记录了一个安全检 测规则对应的数据读取策略。
[0043] 在进行配置时,可以采用统一配置、批量配置和单一配置这三种方式中的任一种 或多种的组合。其中,统一配置方式是指对所有安全检测规则进行统一配置;批量配置方式 是指一次性对多个安全检测规则进行配置,例如,可以按照类别,一次性对同一类别的所有 安全检测规则进行配置,或者,按照严重级别,一次性对同一严重级别的所有安全检测规则 进行配置;单一配置是指逐条对安全检测规则进行配置。
[0044]无论是采用统一配置方式,还是采用批量配置方式,或者单一配置方式,最终,各 条安全检测规则对应的数据读取策略分别记录到数据读取策略表中的不同策略表项中。各 个策略表项具有不同的序号。
[0045]表 1-1
[0047] 由表1-1可以看出,安全检测规则对应的数据读取策略的内容主要包括:需要读取 的上文数据流的个数、需要读取的下文数据流的个数、读取总次数、已读取次数、第二读取 指示标记和第二发送指示标记。其中:
[0048] 需要读取的上文数据流的个数:表示针对命中对应安全检测规则的恶意数据包读 取数据流时,即,执行上述步骤S103时,需要读取的上文数据流的个数;
[0049] 需要读取的下文数据流的个数:表示针对命中对应安全检测规则的恶意数据包读 取数据流时,即,执行上述步骤S103时,需要读取的下文数据流的个数;
[0050] 读取总次数:表示针对命中对应安全检测规则的恶意数据包,执行的读取步骤的 总次数,即,针对该对应安全检测规则,需要执行步骤S103的总次数;
[0051] 已读取次数:表示针对命中对应安全检测规则的恶意数据包,已经执行的读取步 骤的次数,即,针对该对应的安全检测规则,已经执行的步骤S103的次数;已读取次数的初 始值为〇,每执行一次读取步骤,已读取次数加1,直至已读取次数等于读取总次数;
[0052] 第二读取指示标记:用于指示是否需要针对命中对应安全检测规则的数据包读取 数据流;第二读取指示标记的初始值设置为需要读取,当已读取次数等于读取总次数时,将 第二读取指示标记更新为不需要读取;另外,如果对应安全检测规则被手动关闭,则也需要 将第二读取指示标记更新为不需要读取;
[0053] 第二发送指示标记:用于指示是否需要将针对命中对应安全检测规则的恶意数据 包读取到的数据流发送给云端服务器;第二发送指示标记可以根据实际需求,设置为需要 发送或者不需要发送。
[0054] 另外,在实际实施过程中,如表1-2所示,数据读取策略中还可以包含更多内容,例 如:策略更新时间和数据流读取时间等,其中,策略更新时间用于记录该数据读取策略更新 的最后时间,数据流读取时间用于记录针对命中对应安全检测规则的恶意数据包,最后一 次执行读取步骤的时间。
[0055] 表 1-2
[0057]预先创建如表2-1或表2-2所示的恶意数据包信息表,恶意数据包信息表用于记录 检测到的恶意数据包的一些信息。恶意数据包信息表中的每一个信息表项记录一个恶意数 据包的信息,各个信息表项具有不同的序号。
[0058]表2-1
[0060]由表2-1可以看出,恶意数据包信息表中记录的恶意数据包的一些信息主要包括: 恶意数据包的五元组信息(源IP地址、目的IP地址、源端口、目的端口和协议号)、命中的安 全检测规则的ID、第一读取指示标记、第一发送指示标记和文件名。其中:
[0061] 第一读取指示标记:用于指示是否已经针对对应恶意数据包读取了数据流(即执 行步骤S103);第一读取指示标记的初始值设置为未读取,在执行了步骤S103之后,将第一 读取指示标记更新为已读取;
[0062] 第一发送指示标记:用于指示是否已经将读取到的数据流发送给云端服务器;第 一发送指示标记的初始值设置为未发送,在发送了之后,将第一发送指示标记更新为已发 送;
[0063] 文件名:用于记录读取到的数据流打包成的打包文件的文件名,在未读取数据流 时,文件名为空。
[0064] 另外,在实际实施过程中,如表2-2所示,恶意数据包信息表中还可以记录恶意数 据包的更多信息,例如,读取成功指示标记和读取时间等,其中,读取成功指示标记用于指 示读取是否成功,读取成功指示标记的初始值设置为不成功,在读取数据流,并且,读取成 功之后,将读取成功指示标记更新为成功;读取时间用于记录执行读取步骤的时间,在未读 取时,读取时间为空。
[0065] 表2-2
[0067] 上述如表1-1或表1-2所示的数据读取策略表的内容是通过静态配置的方式得到 的,上述如表2-1或表2-2所示的恶意数据包信息表的内容是在检测到恶意数据包后动态添 加的。
[0068] 基于上述数据读取策略表和恶意数据包信息表,本申请实施例的数据流读取方法 如下:
[0069] 在接收到任一数据包(为了描述方便,称为待检测数据包)之后,对该待检测数据 包进行镜像,将镜像数据包保存到缓存模块中,将该待检测数据包与规则库中的安全检测 规则进行匹配;获取该待检测数据包的五元组信息和命中的安全检测规则的ID,在恶意数 据包信息表中添加一信息表项(为了描述方便,称为第一信息表项),其中,第一信息表项中 包含有:该待检测数据包的五元组信息、该待检测数据包命中的安全检测规则的ID、以及设 置为未读取的第一读取指示标记。从而,将检测到的恶意数据包的一些信息记录到了恶意 数据包信息表中。
[0070] 在读取数据流时,可以在检测出一个恶意数据包后,就针对该恶意数据包读取数 据流,也可以按照预定读取时间间隔T2进行读取,此时,在T2时间内可能检测出了多个恶意 数据包,并在恶意数据包信息表中添加了对应的信息表项。
[0071] 具体的,当按照预定读取时间间隔T2读取数据流时,每隔预定读取时间间隔T2,执 行以下的数据流读取流程,如图2所示:
[0072]步骤S201,从恶意数据包信息表中查找到包含的第一读取指示标记为未读取的信 息表项;
[0073]针对查找到的每一个信息表项,分别根据信息表项的内容获取数据流。本例中以 针对查找到的第一信息表项执行步骤S202~步骤S209为例进行说明,针对查找到的其它信 息表项执行的过程类似,在此不再赘述。
[0074]步骤S202,根据该第一信息表项中包含的安全检测规则的ID,在数据读取策略表 中查找到对应的策略表项(为了描述方便,称为第一策略表项);
[0075]步骤S203,判断该第一策略表项中包含的第二读取指示标记是否为需要读取,若 是,则执行步骤S204,否则,退出本流程;
[0076]步骤S204,根据该第一信息表项中包含的五元组信息,从缓存模块中读取符合该 五元组信息的第一数据流,将该第一信息表项中包含的第一读取指示标记更新为已读取; [0077]步骤S205,根据该第一信息表项中包含的五元组信息中的三元组信息,确定缓存 模块中符合该三元组信息的数据流,其中,该三元组信息中包括:源IP地址、目的IP地址和 协议号;
[0078]在步骤S205中确定出的数据流中显然包括第一数据流。
[0079]步骤S206,根据该第一策略表项中包含的上文数据流的个数M(M为正整数)和下文 数据流的个数N(N为正整数),从缓存模块中读取确定的数据流中紧挨在该第一数据流前面 的M个数据流,读取该确定的数据流中紧挨在该第一数据流后面的N个数据流。
[0080]步骤S206中读取的M个数据流即为第一数据流的上文数据流,步骤S206中读取的N 个数据流即为第一数据流的下文数据流。由此可见,第一数据流及其上下文数据流具有相 同的源IP地址、目的IP地址和协议号,并且,第一数据流的上文数据流是到达时间早于第一 数据流的数据流,第一数据流的下文数据流是到达时间晚于第一数据流的数据流。
[0081 ]步骤S207,将该第一策略表项中包含的已读取次数加1;
[0082]步骤S208,判断加 1后的已读取次数是否等于该第一策略表项中包含的读取总次 数,若是,则执行步骤S209,否则,退出本流程;
[0083]步骤S209,将该第一策略表项中包含的第二读取指示标记更新为不需要读取。
[0084] 上述预定读取时间间隔T2可以根据实际需求进行配置和调整,如果需要检测的数 据包数量非常巨大,则T2的值不宜设置得太大。例如,可以设置为5分钟。
[0085] 另外,本申请实施例的方法中,还可以将读取到的数据流发送到云端服务器。此 时,在执行完步骤S206之后,还会将读取到的第一数据流、上述M个上文数据流和N个下文数 据流打包成一个文件,并对打包文件进行命名;将打包文件的文件名添加到该第一信息表 项中。在实际实施过程中,为了便于确定读取到的各个数据流的先后顺序,可以先将各个数 据流分别打包命名,再打包成一个打包文件。例如,首先,将读取到的第一数据流、上述M个 上文数据流和N个下文数据流中的每一个数据流分别打包成一个文件,并进行命名,最后, 再将这些打包文件打包成一个文件。
[0086] 不同数据流打包成的打包文件的命名方式不同,第一数据流打包成的打包文件的 文件名为:命中的安全检测规则的ID+包含该ID的策略表项在数据读取策略表中的序号,上 下文数据流打包成的打包文件的文件名为:命中的安全检测规则的ID+该ID在数据读取策 略表中的序号+编号,其中,对于上文数据流,编号为-1或-2等负整数,对于下文数据流,编 号为+1或+2等正整数,负号后的数字表示对应上文数据流是第一数据流前面的第几个 数据流,正号"+"后的数字表示对应下文数据流是第一数据流后面的第几个数据流。例如, 当打包文件的文件名为1〇〇〇1_1_+2时,表示对应数据流为:命中安全检测规则10001的恶意 数据包的镜像数据包所在第一数据流后面的第2个下文数据流,并且,包含有安全检测规则 10001的策略表项在数据读取策略表中的序号为1。
[0087] 在发送数据流时,可以在读取到第一数据流及其上下文数据流之后,就进行发送, 也可以按照预定发送时间间隔T3进行发送,此时,在T3时间内可能已经针对多个恶意数据 包读取了数据流。
[0088]当按照预定发送时间间隔T3进行发送时,每隔预定发送时间间隔T3,执行如下的 发送流程,如图3所示:
[0089]步骤S301,从恶意数据包信息表中查找到包含的第一发送指示标记为未发送的信 息表项;
[0090] 针对查找到的每一个信息表项,分别根据信息表项的内容发送数据流。本例中以 针对查找到的第一信息表项执行步骤S302~步骤S304为例进行说明,针对查找到的其它信 息表项执行的过程类似,在此不再赘述。
[0091] 步骤S302,根据该第一信息表项中包含的安全检测规则的ID,在数据读取策略表 中查找到对应的策略表项(为了描述方便,称为第一策略表项);
[0092]步骤S303,判断该第一策略表项中包含的第二发送指示标记是否为需要发送,若 是,则执行步骤S304,否则,退出本流程;
[0093] 步骤S304,根据该第一信息表项中包含的文件名,查找到对应的打包文件,将查找 到的打包文件发送给云端服务器,将该第一信息表项中包含的第一发送指示标记更新为已 发送。
[0094] 上述预定发送时间间隔Τ3可以根据实际需求进行配置和调整,例如,可以配置为 24小时。上述云端服务器可以是厂商的公有云端服务器,也可以是用户的私有云端服务器。
[0095] 上述实施例的方法中,提出了一种基于模块缓存的抓包方式,在对数据包进行安 全检测之前,先镜像一份保存到单独的缓存模块中,无需网络安全设备中现有的用于对数 据包进行安全检测的检测模块进行缓存,因此,不会影响现有检测模块的正常安全检测性 能。
[0096] 可以预先针对不同安全检测规则配置对应的数据读取策略,该数据读取策略中包 括:需要读取的上文数据包的个数、需要读取的下文数据包的个数、读取总次数、已读取次 数、用于指示是否需要读取数据流的第二读取指示标记、以及用于指示是否需要将读取到 的数据流发送给云端服务器的第二发送指示标记,因此,可以灵活的配置各种数据读取策 略内容;另外,通过配置需要读取的上文数据包的个数和需要读取的下文数据包的个数,可 以有效的读取到完整的上下文数据流,通过配置读取总次数,可以限制针对命中对应安全 检测规则的恶意数据包读取的数据流的数量,节约缓存模块的存储空间,通过配置第二发 送指示标记,可以将读取到的数据流发送到云端服务器。
[0097] 下面通过举例对上述实施例的方法进行说明。例如,数据读取策略表的内容如表 3-1所示:
[0098] 表3-1
[0100] 在接收到数据包1之后,对该数据包1进行镜像,将镜像数据包保存到缓存模块中, 将数据包1与规则库中的各个安全检测规则进行匹配,结果检测到该数据包1与安全检测规 贝1J10001匹配,在恶意数据包信息表中添加一信息表项,该信息表项为表4-1中序号为1的信 息表项。 「_11 丰4-1
[0103]在预定读取时间间隔T2到达后,在如表4-1所示的恶意数据包信息表中查找第一 读取指示标记为未读取的信息表项,结果查找到了序号为1的信息表项,根据该信息表项中 包含的规则ID 10001,在如表3-1所示的数据读取策略表中查找对应的策略表项,结果查找 到序号为1的策略表项,该策略表项中包含的第二读取指示标记为需要读取,需要读取的上 文数据流的个数为3,需要读取的下文数据流的个数为4;根据该信息表项中的五元组信息, 从缓存模块中读取符合该五元组信息的第一数据流,将该信息表项中包含的第一读取指示 标记更新为已读取,若读取成功,则将该信息表项中包含的读取成功指示标记更新为成功; 根据该五元组信息中的三元组信息:源IP地址10.152.6.80、目的IP地址1.5.58.48和RTMP (Real Time Messaging Protocol,实时消息传输协议)的协议号,从缓存模块中确定出符 合该三元组信息的数据流,读取这些数据流中紧挨在第一数据流前面的3个数据流,以及紧 挨在第一数据流后面的4个数据流;将该策略表项中包含的已读取次数O加1得到1,此时,表 3-1更新为表3-2,由于当前的已读取次数1不等于读取总次数3,因此,不会将该策略表项中 包含的第二读取指示标记更新为不需要读取;将读取到的第一数据流及其上下文数据流打 包成一个打包文件,并命名为filel,将filel添加到该信息表项中,此时,表4-1更新为表4-2〇 「01041 券4-9
[0109]在预定发送时间间隔T3到达后,从如表4-2所示的恶意数据包信息表中查找第一 发送指示标记为未发送的信息表项,结果查找到了序号为1的信息表项;根据该信息表项中 包含的安全检测规则的ID 10001,在如表3-2所示的数据读取策略表中查找对应的策略表 项,结果查找到了序号为1的策略表项,该策略表项中的第二发送指示标记为需要发送;根 据该信息表项中包含的文件名filel,查找到对应的打包文件,将该打包文件发送给云端服 务器,将该信息表项中包含的第一发送指示标记更新为已发送,此时,表4-2更新为表4-3。
[0110]表4-3
[0113] 与前述数据流获取方法的实施例相对应,本申请还提供了数据流获取装置的实施 例。
[0114] 请参考图4,本申请实施例的数据流获取装置中包括以下模块:接收模块401、镜像 模块402、缓存模块403、检测模块404、信息获取模块405和数据流获取模块406,其中:
[0115] 接收模块401,用于接收待检测数据包;
[0116] 镜像模块402,用于在接收模块401接收到待检测数据包之后,对该待检测数据包 进行镜像,将镜像数据包保存到缓存模块403中;
[0117] 缓存模块403,用于保存镜像数据包;
[0118] 检测模块404,用于将该待检测数据包与规则库中的安全检测规则进行匹配,其 中,安全检测规则用于检测数据包是否为恶意数据包;
[0119] 信息获取模块405,用于当检测模块404检测到该待检测数据包命中安全检测规则 时,获取该待检测数据包的相关信息,该相关信息中包括:该待检测数据包的五元组信息; [0120]数据流获取模块406,用于根据信息获取模块获取到的相关信息,从缓存模块中读 取镜像数据包所在的第一数据流,以及第一数据流的上下文数据流。
[0121 ]其中,该相关信息中还包括:该待检测数据包命中的安全检测规则的ID;则,如图5 所示,上述数据流获取装置中还包括:
[0122]表项更新模块407,用于在信息获取模块405获取到该待检测数据包的相关信息之 后,在恶意数据包信息表中添加第一信息表项,其中,第一信息表项中包含有:该待检测数 据包的五元组信息、该待检测数据包命中的安全检测规则的ID、以及设置为未读取的第一 读取指示标记,第一读取指示标记用于指示是否已经针对该待检测数据包读取了数据流。
[0123] 其中,数据流获取模块406中包括:信息表项查找单元、策略表项查找单元、第一读 取单元和信息表项更新单元,其中:
[0124] 信息表项查找单元,用于从恶意数据包信息表中查找包含的第一读取指示标记为 未读取的第一信息表项;
[0125] 策略表项查找单元,用于根据信息表项查找单元查找到的第一信息表项中包含的 安全检测规则的ID,在数据读取策略表中查找对应的第一策略表项,其中,数据读取策略表 中包含有:安全检测规则的ID和第二读取指示标记,第二读取指示标记用于指示是否需要 针对命中对应安全检测规则的数据包读取数据流;
[0126] 第一读取单元,用于若策略表项查找单元查找到的第一策略表项中包含的第二读 取指示标记为需要读取,则根据第一信息表项中包含的五元组信息,从缓存模块中读取符 合该五元组信息的第一数据流;
[0127] 信息表项更新单元,用于在第一读取单元从缓存模块中读取符合该五元组信息的 第一数据流之后,将第一信息表项中包含的第一读取指示标记更新为已读取。
[0128] 其中,数据读取策略表中还包含有:需要读取的上文数据流的个数和需要读取的 下文数据流的个数;则,数据流获取模块406中还包括:数据流确定单元和第二读取单元,其 中:
[0129] 数据流确定单元,用于根据第一信息表项中包含的五元组信息中的三元组信息, 确定缓存模块中符合该三元组信息的数据流;其中,三元组信息中包括:源IP地址、目的IP 地址和协议号;
[0130] 第二读取单元,用于根据第一策略表项中包含的上文数据流的个数M和下文数据 流的个数N,读取数据流确定单元确定的数据流中紧挨在第一数据流前面的M个数据流,作 为第一数据流的上文数据流,读取确定的数据流中紧挨在第一数据流后面的N个数据流,作 为第一数据流的下文数据流;其中,M和N为正整数。
[0131] 其中,数据读取策略表中还包含有:读取总次数和已读取次数;则,数据流获取模 块406中还包括:判断单元和策略表项更新单元,其中:
[0132] 判断单元,用于在第二读取单元读取N个数据流之后,将第一策略表项中包含的已 读取次数加1,判断加1后的已读取次数是否等于第一策略表项中包含的读取总次数;
[0133] 策略表项更新单元,用于若判断单元判断出加 1后的已读取次数等于第一策略表 项中包含的读取总次数,则将第一策略表项中包含的第二读取指示标记更新为不需要读 取。
[0134] 另外,如图6所示,上述数据流获取装置中还包括:打包模块408,其中:
[0135] 打包模块408,用于将数据流获取模块406读取到的第一数据流、M个上文数据流和 N个下文数据流打包成一个文件,并对打包文件进行命名;
[0136] 表项更新模块407,还用于将打包模块408打包得到的打包文件的文件名,添加到 第一信息表项中。
[0137] 另外,恶意数据包信息表中还包含有第一发送指示标记,数据读取策略表中还包 含有第二发送指示标记,第一发送指示标记用于指示是否已经将读取到的数据流发送给云 端服务器,第二发送指示标记用于指示是否需要将针对命中对应安全检测规则的数据包读 取到的数据流发送给云端服务器;则,如图7所示,上述数据流获取装置中还包括:表项查找 模块409、打包文件查找模块410和发送模块411,其中:
[0138] 表项查找模块409,用于从恶意数据包信息表中查找包含的第一发送指示标记为 未发送的第一信息表项,根据第一信息表项中包含的安全检测规则的ID,在数据读取策略 表中查找对应的第一策略表项;
[0139] 打包文件查找模块410,用于若表项查找模块409查找到的第一策略表项中包含的 第二发送指示标记为需要发送,则根据第一信息表项中包含的文件名,查找到对应的打包 文件;
[0140]发送模块411,用于将打包文件查找模块410查找到的打包文件,发送给云端服务 器;
[0141] 表项更新模块407,还用于在发送模块411将打包文件查找模块410查找到的打包 文件,发送给云端服务器之后,将第一信息表项中包含的第一发送指示标记更新为已发送。
[0142] 上述数据流获取装置可以应用于安全网络设备中,数据流获取装置中的检测模块 4041由安全网络设备中现有的用于对数据包进行安全检测的检测模块来实现,或者,上述 数据流获取装置中除检测模块404和信息获取模块405应用于安全网络设备中,其它模块应 用于另外一个独立的设备中。本申请实施例对此不做限定。
[0143] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的 实现过程,在此不再赘述。
[0144] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实 施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以 不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的 需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付 出创造性劳动的情况下,即可以理解并实施。
[0145] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【主权项】
1. 一种基于安全检测的数据流获取方法,其特征在于,所述方法包括: 在接收到待检测数据包之后,对所述待检测数据包进行镜像,将镜像数据包保存到缓 存模块中,将所述待检测数据包与规则库中的安全检测规则进行匹配,其中,安全检测规则 用于检测数据包是否为恶意数据包; 当所述待检测数据包命中安全检测规则时,获取所述待检测数据包的相关信息,所述 相关信息包括:所述待检测数据包的五元组信息; 根据获取到的相关信息,从所述缓存模块中读取所述镜像数据包所在的第一数据流, 以及所述第一数据流的上下文数据流。2. 根据权利要求1所述的方法,其特征在于,所述待检测数据包的相关信息中还包括: 所述待检测数据包命中的安全检测规则的标识ID;则,在获取所述待检测数据包的相关信 息之后,还包括: 在恶意数据包信息表中添加第一信息表项,其中,所述第一信息表项中包含有:所述待 检测数据包的五元组信息、所述待检测数据包命中的安全检测规则的ID、以及设置为未读 取的第一读取指示标记,第一读取指示标记用于指示是否已经针对所述待检测数据包读取 了数据流。3. 根据权利要求2所述的方法,其特征在于,从所述缓存模块中读取所述镜像数据包所 在的第一数据流的方法包括: 从所述恶意数据包信息表中查找到包含的第一读取指示标记为未读取的第一信息表 项; 根据所述第一信息表项中包含的安全检测规则的ID,在数据读取策略表中查找到对应 的第一策略表项,其中,所述数据读取策略表中包含有:安全检测规则的ID和第二读取指示 标记,第二读取指示标记用于指示是否需要针对命中对应安全检测规则的数据包读取数据 流; 若所述第一策略表项中包含的第二读取指示标记为需要读取,则根据所述第一信息表 项中包含的五元组信息,从所述缓存模块中读取符合所述五元组信息的第一数据流,将所 述第一信息表项中包含的第一读取指示标记更新为已读取。4. 根据权利要求3所述的方法,其特征在于,所述数据读取策略表中还包含有:需要读 取的上文数据流的个数和需要读取的下文数据流的个数;则,从所述缓存模块中读取所述 第一数据流的上下文数据流的方法包括: 根据所述第一信息表项中包含的五元组信息中的三元组信息,确定所述缓存模块中符 合所述三元组信息的数据流;其中,所述三元组信息中包括:源因特网协议IP地址、目的IP 地址和协议号; 根据所述第一策略表项中包含的上文数据流的个数M和下文数据流的个数N,读取确定 的数据流中紧挨在所述第一数据流前面的M个数据流作为所述第一数据流的上文数据流, 读取所述确定的数据流中紧挨在所述第一数据流后面的N个数据流作为所述第一数据流的 下文数据流;其中,M和N为正整数。5. 根据权利要求4所述的方法,其特征在于,所述数据读取策略表中还包含有:读取总 次数和已读取次数;则,在读取所述确定的数据流中紧挨在所述第一数据流后面的N个数据 流之后,还包括: 将所述第一策略表项中包含的已读取次数加 I,判断加1后的已读取次数是否等于所述 第一策略表项中包含的读取总次数; 若等于,则将所述第一策略表项中包含的第二读取指示标记更新为不需要读取。6. 根据权利要求4或5所述的方法,其特征在于,在从所述缓存模块中读取所述镜像数 据包所在的第一数据流,以及所述第一数据流的上下文数据流之后,还包括: 将读取到的所述第一数据流、所述M个上文数据流和所述N个下文数据流打包成一个文 件,并对打包文件进行命名; 将打包文件的文件名添加到所述第一信息表项中。7. 根据权利要求6所述的方法,其特征在于,所述恶意数据包信息表中还包含有第一发 送指示标记,所述数据读取策略表中还包含有第二发送指示标记,第一发送指示标记用于 指示是否已经将读取到的数据流发送给云端服务器,第二发送指示标记用于指示是否需要 将针对命中对应安全检测规则的数据包读取到的数据流发送给云端服务器;则,在从所述 缓存模块中读取所述镜像数据包所在的第一数据流,以及所述第一数据流的上下文数据流 之后,还包括: 从所述恶意数据包信息表中查找到包含的第一发送指示标记为未发送的第一信息表 项; 根据所述第一信息表项中包含的安全检测规则的ID,在所述数据读取策略表中查找到 对应的第一策略表项; 若所述第一策略表项中包含的第二发送指示标记为需要发送,则根据所述第一信息表 项中包含的文件名,查找到对应的打包文件,将查找到的打包文件发送给云端服务器,将所 述第一信息表项中包含的第一发送指示标记更新为已发送。8. -种基于安全检测的数据流获取装置,其特征在于,所述装置包括: 接收模块,用于接收待检测数据包; 镜像模块,用于在所述接收模块接收到待检测数据包之后,对所述待检测数据包进行 镜像,将镜像数据包保存到缓存模块中; 所述缓存模块,用于保存镜像数据包; 检测模块,用于将所述待检测数据包与规则库中的安全检测规则进行匹配,其中,安全 检测规则用于检测数据包是否为恶意数据包; 信息获取模块,用于当所述检测模块检测到所述待检测数据包命中安全检测规则时, 获取所述待检测数据包的相关信息,所述相关信息包括:所述待检测数据包的五元组信息; 数据流获取模块,用于根据所述信息获取模块获取到的相关信息,从所述缓存模块中 读取所述镜像数据包所在的第一数据流,以及所述第一数据流的上下文数据流。9. 根据权利要求8所述的装置,其特征在于,所述待检测数据包的相关信息中还包括: 所述待检测数据包命中的安全检测规则的标识ID;则,所述装置还包括: 表项更新模块,用于在所述信息获取模块获取到所述待检测数据包的相关信息之后, 在恶意数据包信息表中添加第一信息表项,其中,所述第一信息表项中包含有:所述待检测 数据包的五元组信息、所述待检测数据包命中的安全检测规则的ID、以及设置为未读取的 第一读取指示标记,第一读取指示标记用于指示是否已经针对所述待检测数据包读取了数 据流。10. 根据权利要求9所述的装置,其特征在于,所述数据流获取模块包括: 信息表项查找单元,用于从所述恶意数据包信息表中查找包含的第一读取指示标记为 未读取的第一信息表项; 策略表项查找单元,用于根据所述信息表项查找单元查找到的第一信息表项中包含的 安全检测规则的ID,在数据读取策略表中查找对应的第一策略表项,其中,所述数据读取策 略表中包含有:安全检测规则的ID和第二读取指示标记,第二读取指示标记用于指示是否 需要针对命中对应安全检测规则的数据包读取数据流; 第一读取单元,用于若所述策略表项查找单元查找到的第一策略表项中包含的第二读 取指示标记为需要读取,则根据所述第一信息表项中包含的五元组信息,从所述缓存模块 中读取符合所述五元组信息的第一数据流; 信息表项更新单元,用于在所述第一读取单元从所述缓存模块中读取符合所述五元组 信息的第一数据流之后,将所述第一信息表项中包含的第一读取指示标记更新为已读取。11. 根据权利要求10所述的装置,其特征在于,所述数据读取策略表中还包含有:需要 读取的上文数据流的个数和需要读取的下文数据流的个数;则,所述数据流获取模块还包 括: 数据流确定单元,用于根据所述第一信息表项中包含的五元组信息中的三元组信息, 确定所述缓存模块中符合所述三元组信息的数据流;其中,所述三元组信息中包括:源因特 网协议IP地址、目的IP地址和协议号; 第二读取单元,用于根据所述第一策略表项中包含的上文数据流的个数M和下文数据 流的个数N,读取所述数据流确定单元确定的数据流中紧挨在所述第一数据流前面的M个数 据流,作为所述第一数据流的上文数据流,读取所述确定的数据流中紧挨在所述第一数据 流后面的N个数据流,作为所述第一数据流的下文数据流;其中,M和N为正整数。12. 根据权利要求11所述的装置,其特征在于,所述数据读取策略表中还包含有:读取 总次数和已读取次数;则,所述数据流获取模块还包括: 判断单元,用于在所述第二读取单元读取所述确定的数据流中紧挨在所述第一数据流 后面的N个数据流之后,将所述第一策略表项中包含的已读取次数加1,判断加1后的已读取 次数是否等于所述第一策略表项中包含的读取总次数; 策略表项更新单元,用于若所述判断单元判断出加1后的已读取次数等于所述第一策 略表项中包含的读取总次数,则将所述第一策略表项中包含的第二读取指示标记更新为不 需要读取。13. 根据权利要求11或12所述的装置,其特征在于,所述装置还包括:打包模块,其中: 所述打包模块,用于将所述数据流获取模块读取到的所述第一数据流、所述M个上文数 据流和所述N个下文数据流打包成一个文件,并对打包文件进行命名; 所述表项更新模块,还用于将所述打包模块打包得到的打包文件的文件名,添加到所 述第一信息表项中。14. 根据权利要求13所述的装置,其特征在于,所述恶意数据包信息表中还包含有第一 发送指示标记,所述数据读取策略表中还包含有第二发送指示标记,第一发送指示标记用 于指示是否已经将读取到的数据流发送给云端服务器,第二发送指示标记用于指示是否需 要将针对命中对应安全检测规则的数据包读取到的数据流发送给云端服务器;则,所述装 置还包括:表项查找模块、打包文件查找模块和发送模块,其中: 所述表项查找模块,用于从所述恶意数据包信息表中查找包含的第一发送指示标记为 未发送的第一信息表项,根据所述第一信息表项中包含的安全检测规则的ID,在所述数据 读取策略表中查找对应的第一策略表项; 所述打包文件查找模块,用于若所述表项查找模块查找到的第一策略表项中包含的第 二发送指示标记为需要发送,则根据所述第一信息表项中包含的文件名,查找到对应的打 包文件; 所述发送模块,用于将所述打包文件查找模块查找到的打包文件,发送给云端服务器; 所述表项更新模块,还用于在所述发送模块将所述打包文件查找模块查找到的打包文 件,发送给云端服务器之后,将所述第一信息表项中包含的第一发送指示标记更新为已发 送。
【文档编号】H04L29/06GK105915516SQ201610235743
【公开日】2016年8月31日
【申请日】2016年4月15日
【发明人】张惊申
【申请人】杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1