本申请涉及网络安全技术领域,尤其涉及一种数据包检测方法和装置。
背景技术:
为了保证数据安全性,防止中间人窃取数据或者发起攻击,网络设备之间多采用ssl(securesocketslayer,安全套接字协议)加密,ssl部署在传输层(主要为tcp/ip协议)和应用层之间,对应用层下发的数据进行加密形成加密数据后,再将加密数据交付给传输层。
考虑企业保密数据的安全性,避免保密数据发送到外部客户端,企业局域网设置有防火墙等网关设备。在企业部署防火墙等网关设备的情况下,并且内网设备和外网设备之间需要采用ssl加密数据包的情况下,网关设备作为代理服务器,分别建立与内网设备和外网设备的ssl连接;在网关设备在接收到采用ssl加密的数据包后,先对数据包进行ssl卸载得到还原数据,再对尝试采用应用层软件程序处理还原数据得到还原文件,并对还原文件进行安全性检测。
目前,为了能够实现较为有效地实现对ssl加密数据包的安全性检测,只能事先人为配置需要进行ssl代理的目的ip和目的端口,采用配置的目的ip和目的端口确定是否需要进行对接收到的数据包进行ssl代理。但是,在对于目的ip和目的端口多变的应用场景,前述方法存在命中结果比较差的问题。此时,只能配置精细度较粗的ssl代理策略,例如将目的ip配置为any,目的端口配置为any,或者将目的ip配置为10.10.0.0/16,目的端口为80-8080。而这样的配置策略,可能将原本不需要进行ssl代理的数据流量引入到代理转发中,导致转发效率的较低。从前文表述还可以确定,前述配置方法如果将目的ip、目的端口配置为某一区段的端口,可能造成某些ssl加密流量不被命中而漏检的问题。
技术实现要素:
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据包检测方法和装置。
一方面,本申请提供一种数据包检测方法,应用于网关设备,包括:
获取待检测数据包的第一五元组;所述第一五元组包括第一源ip、第一源端口、第一目的ip、第一目的端口和第一传输层协议;
根据所述第一五元组,查询第一信息表是否有对应的节点;所述第一信息表的节点包括已建立连接的五元组,以及已建立连接对应的处理流程;
在所述第一信息表中具有对应节点的情况下,采用已建立连接对应的处理流程处理所述待检测数据包;
在所述第一信息表中没有对应的节点的情况下,根据所述第一目的ip和第一目的端口查找第二信息表是否有对应节点;所述第二信息表的节点包括无需进行ssl代理的目的ip和目的端口;
在所述第二信息表中没有对应节点的情况下,采用ssl代理流程处理所述待检测数据包;以及,根据所述第一五元组和所述ssl代理流程在所述第一信息表中创建新节点;
在所述第二信息表中具有所述对应节点的情况下,采用快速转发流程处理所述待检测数据包;以及,根据所述第一五元组合所述快速转发流程在所述第一信息表中创建新节点。
可选地,采用ssl代理流程处理所述待检测数据包,包括:
判断所述待检测数据包是否包括握手ack信息;
在所述待检测数据包包括握手ack信息的情况下,建立与所述第一源ip表示的设备的tcp连接。
可选地,采用ssl代理流程处理所述待检测数据包,包括:
判断所述待检测数据包是否包括与ssl连接相关的信息;
在所述待检测数据包不包括ssl连接相关的信息的情况下,根据所述第一目的ip和第一目的端口,在所述第二信息表中添加新节点。
可选地,判断所述待检测数据包是否包括与ssl连接相关的信息,包括:
判断所述待检测数据包是否包括ssl连接建立信息,或者判断所述待检测数据包是否包括ssl加密信息。
可选地,在判定所述待检测数据包包括ssl连接建立信息的情况下,还包括:
建立与ip地址为所述第一源ip的源设备的的ssl连接。
可选地,在判定所述待检测数据包包括ssl加密信息的情况下,还包括:
对所述待检测数据包进行ssl卸载处理,得到还原数据;
在不确定所述网关设备是否可以根据所述还原数据得到还原文件的情况下,尝试解析所述还原数据得到还原文件;
在能够得到所述还原文件的情况下,对所述还原文件进行合法性检测;
在无法得到所述还原文件的情况下,根据所述第一目的ip和所述第一目的端口,在所述第二信息表中添加新的节点。
可选地,还包括:
所述第二信息表中的各个节点还包括最后ssl卸载时间和卸载执行次数;所述方法还包括:
在对所述待检测数据包进行ssl卸载处理时,更新所述最后ssl卸载时间和/或所述卸载执行次数;
判断所述第二信息表的节点数量是否超过阈值;
在所述第二信息表的节点数量超过阈值的情况下,根据所述第二信息表中节点的最后ssl卸载时间和/或所述卸载执行次数,删减所述第二信息表中的节点。
可选地,还包括:
在待检测数据包包括挥手ack信息的情况下,删除所述第一信息表中包括所述第一五元组的节点。
另一方面,本申请提供一种数据包检测装置,应用于网关设备,包括:
获取单元,用于获取待检测数据包的第一五元组;所述第一五元组包括第一源ip、第一源端口、第一目的ip、第一目的端口和第一传输层协议;
第一查询单元,用于根据所述第一五元组,查询第一信息表是否有对应的节点;所述第一信息表的节点包括已建立的连接的五元组,以及已建立连接对应的处理流程;
第二查询单元,用于在所述第一信息表中没有对应的节点的情况下,根据所述第一目的ip和第一目的端口查找第二信息表是否有对应节点;所述第二信息表的节点包括无需进行ssl代理的目的ip和目的端口;
ssl代理处理单元,用于在所述第二信息表中没有对应节点的情况下,采用ssl代理流程处理所述待检测数据包;以及,根据所述第一五元组和所述ssl代理流程在所述第一信息表中创建新节点;
快速转发处理单元,用于在所述第二信息表中具有所述对应节点的情况下,采用快速转发流程处理所述待检测数据包;以及,根据所述第一五元组合所述快速转发流程在所述第一信息表中创建新节点。
本申请实施例中提供的数据包检测方法和装置中,在第二信息表中设置了表征无需进行ssl代理的目的ip和目的端口的节点,如果第二信息表中没有对应的节点,则采用代理流程处理待检测数据包,也就可以对所有目的ip和目的端口的策略进行验证,避免出现背景技术采用人工设置ssl代理策略可能出现的漏洞问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的数据包检测方法流程图;
图2是本申请实施例中采用已建立代理流程在建立tcp连接后处理待检测数据包的流程图;
图3是本申请一个实施例提供的数据包检测装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图;
其中:11-获取单元,12-第一查询单元,13-第二查询单元,14-ssl代理处理单元,15-快速转发处理单元;21-处理器,22-存储器,23-通信接口,24-总线系统。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。
本申请实施例提供一种数据包检测方法,前述方法部署在网关设备上,用于判定是否对接收到的待检测数据包采用代理流程处理。
图1是本申请一个实施例提供的数据包检测方法流程图。如图1所示,本申请实施例提供的处理方法包括步骤s101-s106。
s101:获取待检测数据包的第一五元组。
本申请实施例中,待检测数据包是内网设备或者外网设备发送给网关设备的数据包。对待检测数据包进行解析可以第一五元组。第一五元组包括待检测数据包的第一源ip、第一源端口、第一目的ip、第一目的端口和第一传输层协议。
s102:根据第一五元组,查询第一信息表中是否有对应的节点。如果有,执行s103;如果没有,执行步骤s104。
本申请实施例中,第一信息表的各个节点均存储有已经和网关设备建立连接的五元组,以及各个已经建立连接对应的处理流程。
如果根据第一五元组查询到第一信息表中有对应的节点,则确定此五元组对应的源设备(也就是第一源ip和第一源端口表征的应用层程序)已经和客户端建立连接(此时可能是ssl代理连接,也可能为其他形式的连接),并且网关设备对此第一五元组对应的数据包的处理流程已经确定,此时只能按照对应的处理流程处理待检测数据包,因此执行步骤s103进入到对应的处理流程中,而不再执行步骤s104。应当注意的是,对应的处理流程可能是代理流程,也可能是快速转发流程。
具体应用中,第一信息表中的节点数量可以动态地变化。在网关设备刚刚上电接入到网络时,第一信息表中的节点数量为0;随着建立连接的增加,第一信息表中的节点数量会相应的增多;在某一连接断开时,对应的节点也会被删除。
s103:采用对应的已建立连接对应的处理流程处理待检测数据包。
s104:根据第一目的ip和第一目的端口查找第二信息表中是否具有对应节点。如果有,执行s105;如果没有,执行步骤s106。
本申请实施例中,第二信息表中的各个节点均包括无需进行ssl代理的目的ip和目的端口信息。
具体应用中,第二信息表中的节点并不是人工添加的,而是在处理历史数据包时自动地得到(后文中再对如何对自动得到第二信息表中的节点做介绍)。
实际应用中,第二信息表中节点的数量也会动态地变化。在网关设备刚刚接入网络时,第二信息表中节点数量为0;随着网关处理的数据包(也就是历史数据包)的增加,第二信息表中的节点数量会逐渐地增加。如果设置删除第二信息表中节点或对第二信息表进行初始化的操作,第二信息表中的某些节点还可能被删除。
s105:采用快速转发流程处理待检测数据包;以及,根据第一五元组和快速转发流程在第一信息表中创建新节点。
本申请实施例中,快速转发流程是不采用网关设备作为ssl代理服务器执行ssl代理的流程。应当注意的是,在快速转发流程中,待检测数据包并没有采用ssl加密,因此网关设备可以提取得到数据包中的应用层数据。在得到应用层数据后,网关设备会尝试对应用层数据进行解析得到还原文件。
如果得到还原文件则对还原文件进行合法性检测,在还原文件合法的情况下实现对待检测数据包其进行转发;如果还原文件不合法,则网关设备会阻断对待检测数据包的转发。
如果网关设备没有安装对应的应用层程序,则网关设备不能根据应用层数据得到还原文件,此时其可以根据预先设定的安全策略确定是否可以转发待检测数据包。
根据第一五元组和快速转发流程在第一信息表中创建新节点后,是用于在后续重新接受到第一五元组对应的待转发数据包后,直接按照对应的快速转发流程处理后续待转发数据包。
s106:采用ssl代理流程处理待检测数据包;以及,根据第一五元组和ssl代理流程在第一信息表中创建新节点。
本申请实施例中,代理流程是网关设备作为代理服务器,对内网设备和外网设备通信进行代理处理的流程。通过采用ssl待流程,网关设备可以解析采用ssl加密的待检测数据包获得还原数据,以尝试对还原数据进行合法性检测。
根据前述分析,如果第二信息表具有对应的节点,则表明无需对待检测数据包进行执行代理流程。如果第二信息表中没有对应的节点,则表明当前无法确定是否需要采用代理流程处理待检测数据包,为保证尽可能地进行合法性检测,采用代理流程处理待检测数据包。
在本申请实施例中提供的数据包检测方法,在第二信息表中设置表征无需进行ssl代理的目的ip和目的端口的节点;如果第二信息表中没有对应的节点,则采用代理流程处理待检测数据包,也就可以对所有目的ip和目的端口的策略进行验证,避免出现背景技术采用人工设置ssl代理策略可能出现的漏洞问题。
本申请实施例中,第二信息表中的节点是可以通过采用代理流程时处理历史待处理数据包时自动地得到,采用实际的代理流程实现了无需进行代理流程的目的ip和目的端口的自动筛选。
本申请实施例中,具体执行步骤s106采用代理流程处理待检测数据包包括步骤s1061和s1062。
s1061:判断待检测数据包是否为包括握手ack信息;如果是,执行步骤s1062。
实际应用中,如果内网设备和外网设备需要建立通信连接时,需要发送用于三次握手的连接建立报文(也就是连接建立用的待检测数据包)。网关设备在接收到用于待检测数据包后,提取其中信息确定包括用于三次握手的链接建立信息时,即可以判定需要作为代理服务器,执行步骤s1062。
s1062:建立源设备的tcp连接。
在确定待检测数据包包括握手ack信息的后,则表明网关设备已经通过三次握手,因此此时建立与第一源ip标识;应当注意的是,如果待检测数据包发送的是握手ack信息,则网关设备在前已经接收到包括握手syn信息的数据包,并且网关设备也向源设备发送过包括握手ack信息的数据包。
图2是本申请实施例中采用已建立代理流程在建立tcp连接后处理待检测数据包的流程图。本申请实施例中在执行步骤s103中,采用已经建立tcp连接的代理流程处理待检测数据包包括步骤s1031-s1033。
s1031:判断待检测数据包是否包括与ssl连接相关的信息;如果是,执行s1032;如果否,执行s1033。
本申请实施例中,与ssl连接相关联的信息包括:ssl连接信息或者ssl加密信息。
判断待检测数据包是否包括与ssl连接相关联的信息,即判断待检测数据包是否包括ssl连接建立信息,或者判断待检测数据包是否采用ssl加密信息。
s1032:执行与ssl连接相关信息对应的操作。
执行与ssl连接相关信息对应的操作,具体需要根据待检测数据包的具体类型选择对应的操作。
在待检测数据包中包括ssl连接建立信息的情况下,执行步骤a。
a:建立与ip地址为第一源ip的源设备的ssl连接,以及建立与ip地址为第一目标ip的目的设备的ssl连接。
应当注意的是,在执行步骤a的过程中,按照ssl连接建立过程,待检测数据包可能在建立ssl连接过程中各种可能的数据包,网关设备也可能向源设备发送相应的响应数据包。
为了能够实现向目标设备发送ssl加密数据,网关设备还可以与ip为第一目标ip的目标设备建立ssl连接。
在待检测数据包采用ssl加密的情况下,执行步骤b-e。
b:对待检测数据包进行ssl卸载处理,得到还原数据。
对待检测数据包进行ssl卸载处理,是在接收到待检测数据包并判定其采用ssl加密的情况下,由网关设备作为代理服务器采用自己的私钥对待检测数据包中的tcp报文进行ssl卸载,得到源设备中相应应用层生成的数据(此处称为还原数据)。
c:在不确定网关设备是否可以根据还原数据得到还原文件的情况下,尝试解析还原数据得到还原文件;若得到还原文件,执行步骤d;若否,执行步骤e。
步骤c中,判断是否可以解析还原数据得到还原文件,是网关设备采用已经安装的应用层程序,尝试处理还原数据得到还原文件。
本申请实施例中,可以建立一第三信息表,第三信息表中存储有不可识别的还原数据的标头标识信息;在得到还原数据后,可以将新得到还原数据的标头标识信息与第三数据表中的数据进行比对,确定是否可以对还原数据进行还原。如果已经确认不可以还原文件,则不再执行步骤c-e,直接将得到还原数据进行ssl再次加密后的转发;而如果不确定是否可以得到还原文件,则执行步骤c。
d:对还原文件进行合法性检测。
本申请实施例中,网关设备采用安全引擎对还原文件进行合法性检测;如果检测到还原文件非法,则阻断对待还原数据的代理转发;如果没有检测到还原文件非法,则可以对还原数据采用目的设备的ssl加密公钥进行加密,再代理转发给目的设备。
e:根据第一目的ip和第一目的端口,在第二信息表上添加新的节点。
本申请实施例中,如果无法针对还原数据得到还原文件,则网关设备没有对还原数据进行合法性检测的能力;此时,对针对向第一目的ip和第一目的端口发送的待检测数据包进行ssl代理是没有意义的,因此将此第一目的ip和第一目的端口添加到第二信息表中,使得后续再执行步骤104进行判断时,确定对新连接对应的待检测数据包可以直接执行步骤s106的处理。如此,可以无需针对此待检测数据包执行代理转发流程,而提高转发效率。
s1033:根据第一目的ip和第一目的端口,在第二信息表中添加新的节点。
本申请实施例中,如果待检测数据包并不包括与ssl连接相关的信息,则证明第一目的ip和第一目的端口对应的应用层程序下发的应用层数据无需采用ssl加密,待检测数据包可能为明文数据包,因此针对后续目的地址是第一目的ip,目的端口为第一目的端口的新连接对应的待检测数据包可以执行步骤s106的处理,不再对此类待检测数据包执行代理流程,提高转发效率。
本申请实施例中,采用前述方法,在第二信息表中的节点数量越来越多,当第二信息表中的节点数量过多时,执行步骤s104中的查询步骤将消耗大量的资源。此外,实际应用中,第一目的ip和第一目的端口对应的应用层程序可能发生变化,或者第一目的ip和第一目的端口至少之一被废弃不再使用,此时第二信息表中对应的节点不再具有存在意义。
针对前述问题,本申请实施例提供的数据包检测方法还包括步骤s107和s108。
s107:判断第二信息表中节点数量是否超过阈值;若是,执行s108。
s108:删减第二信息表中的节点。
步骤s107和s108中,第二信息表中的节点数量超过阈值,则即对第二信息表的节点进行删减处理,使得第二信息表中节点数量减小,以提高步骤s104的处理速度。
应当注意的是,步骤s107和s108与前文中的步骤s101-s106并没有执行顺序的限制,其可以在各种可能的时间点执行。
在本申请实施例中,步骤s108中删减第二信息表中的节点可以是删除第二信息表中的所有节点,删除第二信息表中部分节点。删除第二信息表中的部分节点可以是根据节点的生成时间、被查询命中的时间、最后查询命中时间中的至少一个为排序依据,删除部分节点。
在本申请实施例中,第二信息表中的各个节点除了包括前述的第一目的ip和第一目的端口外,还可以包括最后ssl卸载时间和卸载执行次数。
在步骤s107判断第二信息表中的节点数量超过阈值后,步骤s108可以为,根据第二信息表中节点的最后ssl卸载时间和卸载执行次数,删除第二信息表中的节点。
具体的,可以将最后ssl卸载时间与当前时间差的差值超过预设时长对应的节点删除,将卸载执行次数少于设定次数对应的节点删除。或者根据最后ssl卸载时间和卸载执行次数,筛选出中位的ssl卸载时间和中位的卸载执行次数,利用中位的ssl卸载时间和中位的卸载执行次数删除小于此类中位数据的节点。
在本申请其他实施例中,第二信息表中的节点还可以包括ssl建立时间,在对第二信息表中的节点进行删减时,可以根据ssl建立时间、最后ssl卸载时间和卸载执行次数作为依据,对第二信息表中的节点进行删除处理。
本申请实施例中,步骤s103在执行过程中,还可能出现待检测数据包包括挥手ack信息的情况,此时网关设备还可以执行删除第一信息表中包括第一五元组的节点。在删除第一五元组后,如果后续再次接收到包括此五元组的数据后,可以执行步骤s104-s106的操作,特别是第二信息表中存储此五元组中的第一目的ip和第一目的端口的情况下,直接执行s106的操作。
除了提供前述的数据包检测方法外,本申请还提供一种数据包检测装置。图3是本申请实施例提供的数据包检测装置的结构示意图。如图3所示,数据包检测装置包括获取单元11、第一查询单元12、第二查询单元13、ssl代理处理单元14和快速转发处理单元15。
获取单元11用于获取待检测数据包的第一五元组。本申请实施例中,待检测数据包是内网设备或者外网设备发送给网关设备的数据包。获取单元11根据对待检测数据包进行解析,可以得到第一五元组。第一五元组包括待检测数据包的第一源ip、第一源端口、第一目的ip、第一目的端口和第一传输层协议。
第一查询单元12用于根据斗殴五元组,查询第一信息表是否有对应的节点;第一信息表的节点包括已建立的连接的五元组,以及已建立连接对应的处理流程。
如果根据第一五元组查询到第一信息表中有对应的节点,则确定此五元组对应的源设备(也就是第一源ip和第一源端口表征的应用层程序)已经和客户端建立连接(此时可能是ssl代理连接,也可能为其他形式的连接),此时只能按照对应的处理流程处理待检测数据包。
本申请实施例中,第一信息表中的节点数量可以动态地变化。在网关设备刚刚上电接入到网络时,第一信息表中的节点数量为0;随着建立连接的增加,第一信息表中的节点数量会相应的增多;在某一连接断开时,对应的节点也会被删除。
第二查询单元13用于在第一信息表中没有对应的节点的情况下,根据第一目的ip和第一目的端口查找第二信息表是否有对应节点。
第二信息表中的各个节点均包括无需进行ssl代理的目的ip和目的端口信息。
具体应用中,第二信息表中的节点并不是人工添加的,而是在处理历史数据包时自动地得到。
实际应用中,第二信息表中节点的数量也会动态地变化。在网关设备刚刚接入网络时,第二信息表中节点数量为0;随着网关处理的数据包(也就是历史数据包)的增加,第二信息表中的节点数量会逐渐地增加。如果设置删除第二信息表中节点或对第二信息表进行初始化的操作,第二信息表中的某些节点还可能被删除。
ssl代理处理单元14用于在第一信息表中具有对应节点,或者在第二信息表中没有对应节点的情况下,采用代理流程处理待检测数据包。
快速转发处理单元15用于第一信息表中具有对应节点的情况下,采用快速转发流程处理待检测数据包。
本申请实施例中,快速转发流程是不采用网关设备作为ssl代理服务器执行ssl代理的流程。应当注意的是,在快速转发流程中,待检测数据包并没有采用ssl加密,因此网关设备可以提取得到数据包中的应用层数据。在得到应用层数据后,网关设备会尝试对应用层数据进行解析得到还原文件。
如果得到还原文件则对还原文件进行合法性检测,在还原文件合法的情况下实现对待检测数据包其进行转发;如果还原文件不合法,则网关设备会阻断对待检测数据包的转发。
如果网关设备没有安装对应的应用层程序,则网关设备不能根据应用层数据得到还原文件,此时其可以根据预先设定的安全策略确定是否可以转发待检测数据包。
如果第二信息表具有对应的节点,则表明通过历史检测数据包的分析,无需对待检测数据包进行执行代理流程。如果第二信息表中没有对应的节点,则表明当前无法对是否采用代理流程处理待检测数据包进行判断,为保证尽可能地进行合法性检测,采用代理流程处理待检测数据包。
采用本申请实施例提供的数据包检测装置,在第二信息表中设置了表征无需进行ssl代理的目的ip和目的端口的节点,并且第二信息表中的节点并不是人为设定,而是网关设备在采用代理流程处理历史数据包时自动地得到。
如果第二信息表中没有对应的节点,则采用代理流程处理待检测数据包,也就可以对所有目的ip和目的端口的策略进行验证,避免出现背景技术采用人工设置ssl代理策略可能出现的漏洞问题。
本申请实施例中,ssl代理处理单元14包括第一判断子单元和连接建立子单元。
其中,第一判断子单元用于判断待检测数据包是否为包括握手ack信息;连接建立子单元用于在待检测数据包包括握手ack信息的情况下,建立与源设备的tcp连接。源设备是发送待检测数据包的设备。
当根据第一五元组和代理流程在第一信息表中建立新节点后,其作用在于当接收到后续待检测数据包后,直接采用代理流程处理后续待检测数据包。
本申请实施例中,ssl代理处理单元14包括第二判断子单元、ssl连接建立子单元和节点添加子单元。
第二判断子单元用于判断待检测数据包是否包括与ssl连接相关的信息。
ssl处理子单元用于在第二判断子单元判定待检测数据包包括与ssl连接相关的信息的情况下,根据与ssl连接相关的信息,执行对应的与ssl连接相关的操作;以及,在第二判断子单元判定待检测数据包不是与ssl连接相关的数据包的情况下,根据第一目的ip和第一目的端口,在第二信息表中添加新的节点。
本申请实施例中,判断待检测数据包是否是包括与ssl连接关联的信息,可以为判断待检测数据包是否包括ssl连接建立信息,或者判断待检测数据包是否包括ssl加密信息。
在待检测数据包中包括ssl连接建立信息的情况下,ssl处理子单元建立与第一源ip表征的源设备的ssl连接,以及与第一目标ip表征的设备的ssl连接。
在待检测数据包采用ssl加密的情况下,ssl处理子单元包括处理内容包括步骤s301-s304。
s301:对待检测数据包进行ssl卸载处理,得到还原数据;
s302:在不确定网关设备是否可以根据还原数据得到还原文件的情况下,尝试解析还原数据得到还原文件;若得到还原文件,执行步骤s303;若否,执行步骤s304。
步骤s302中,判断是否可以解析还原数据得到还原文件,是网关设备采用已经安装的应用层程序,尝试处理还原数据得到还原文件
本申请实施例中,可以建立一第三信息表,第三信息表中存储有不可识别的还原数据的标头标识信息;在得到还原数据后,可以将新得到还原数据的标头标识信息与第三数据表中的数据进行比对,确定是否可以对还原数据进行还原。如果已经不可以得到还原文件,则不再执行步骤s303和s304,而是直接对还原数据进行ssl加密后转发。
应当注意的是,网关设备中可能没有安装源设备中对应的应用层程序,此时网关设备可能并不能得到还原文件。
s303:对还原文件进行合法性检测。
本申请实施例中,网关设备采用安全引擎对还原文件进行合法性检测;如果检测到还原文件非法,则阻断对待还原数据的代理转发;如果没有检测到还原文件非法,则可以对还原数据采用目的设备的ssl加密公钥进行加密,再代理转发给目的设备。
s304:根据第一目的ip和第一目的端口,在第二信息表上添加新的节点。
本申请实施例中,如果无法针对还原数据得到还原文件,则网关设备没有对还原数据进行合法性检测的能力;此时,对针对向第一目的ip和第一目的端口发送的待检测数据包进行ssl代理是没有意义的,因此将此第一目的ip和第一目的端口添加到第二信息表中。
在本申请一个实施例中,第二信息表中的节点还可以包括最后ssl卸载时间和卸载执行次数。ssl代理处理单元还可以包括数据更新子单元、判断子单元和删减子单元。
数据更新子单元用于在在对待检测数据包进行ssl卸载处理时,更新最后ssl卸载时间和/或卸载执行次数;
判断子单元用于判断第二信息表的节点数量是否超过阈值;
删减子单元用于在在第二信息表的节点数量超过阈值的情况下,根据第二信息表中节点的最后ssl卸载时间和/或卸载执行次数,删减第二信息表中的节点。
本申请实施例例中,ssl代理处理单元的删除单元还可以在已经建立与源设备的tcp连接的情况下,在待检测数据包包括挥手ack信息的情况下,删除第一信息表中包括第一五元组的节点。
基于前述的发明构思,本申请还提供一种电子设备。图4是本申请实施例提供的电子设备的结构示意图。如图4所示,第一服务器包括至少一个处理器21、至少一个存储器22和至少一个通信接口23。通信接口23,用于与外部设备之间的信息传输。
第一服务器中的各个组件通过总线系统24耦合在一起。可理解地,总线系统24用于实现这些组件之间的连接通信。总线系统24除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图4中将各种总线都标为总线系统24。
可以理解,本实施例中的存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。在一些实施方式中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用任务。实现本公开实施例提供的数包检测方法的程序可以包含在应用程序中。
在本公开实施例中,处理器21通过调用存储器22存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于执行本公开实施例提供的数包检测方法的各个步骤。
本公开实施例提供的数包检测方法可以应用于处理器21中,或者由处理器21实现。处理器21可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的数包检测方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成方法的步骤。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行数包检测方法的步骤各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种数据包检测方法,应用于网关设备,其特征在于,包括:
获取待检测数据包的第一五元组;所述第一五元组包括第一源ip、第一源端口、第一目的ip、第一目的端口和第一传输层协议;
根据所述第一五元组,查询第一信息表是否有对应的节点;所述第一信息表的节点包括已建立连接的五元组,以及已建立连接对应的处理流程;
在所述第一信息表中具有对应节点的情况下,采用已建立连接对应的处理流程处理所述待检测数据包;
在所述第一信息表中没有对应的节点的情况下,根据所述第一目的ip和第一目的端口查找第二信息表是否有对应节点;所述第二信息表的节点包括无需进行ssl代理的目的ip和目的端口;
在所述第二信息表中没有对应节点的情况下,采用ssl代理流程处理所述待检测数据包;以及,根据所述第一五元组和所述ssl代理流程在所述第一信息表中创建新节点;
在所述第二信息表中具有所述对应节点的情况下,采用快速转发流程处理所述待检测数据包;以及,根据所述第一五元组和所述快速转发流程在所述第一信息表中创建新节点。
2.根据权利要求1所述数据包检测方法,其特征在于,采用ssl代理流程处理所述待检测数据包,包括:
判断所述待检测数据包是否包括握手ack信息;
在所述待检测数据包包括握手ack信息的情况下,建立与源设备的tcp连接;所述源设备为发送所述待检测数据包的设备。
3.根据权利要求1所述数据包检测方法,其特征在于,在建立与源设备的tcp连接的情况下,采用ssl代理流程处理所述待检测数据包,包括:
判断所述待检测数据包是否包括与ssl连接相关的信息;
在所述待检测数据包不包括ssl连接相关的信息的情况下,根据所述第一目的ip和第一目的端口,在所述第二信息表中添加新节点。
4.根据权利要求3所述数据包检测方法,其特征在于,判断所述待检测数据包是否包括与ssl连接相关的信息,包括:
判断所述待检测数据包是否包括ssl连接建立信息,或者判断所述待检测数据包是否包括ssl加密信息。
5.根据权利要求4所述数据包检测方法,其特征在于,在判定所述待检测数据包包括ssl连接建立信息的情况下,还包括:
建立与ip地址为所述第一源ip的源设备的ssl连接。
6.根据权利要求4所述数据包检测方法,其特征在于,在判定所述待检测数据包包括ssl加密信息的情况下,还包括:
对所述待检测数据包进行ssl卸载处理,得到还原数据;
在不确定所述网关设备是否可以根据所述还原数据得到还原文件的情况下,尝试解析所述还原数据得到还原文件;
在能够得到所述还原文件的情况下,对所述还原文件进行合法性检测;
在无法得到所述还原文件的情况下,根据所述第一目的ip和所述第一目的端口,在所述第二信息表中添加新的节点。
7.根据权利要求6所述数据包检测方法,其特征在于,还包括:
所述第二信息表中的各个节点还包括最后ssl卸载时间和卸载执行次数;所述方法还包括:
在对所述待检测数据包进行ssl卸载处理时,更新所述最后ssl卸载时间和/或所述卸载执行次数;
判断所述第二信息表的节点数量是否超过阈值;
在所述第二信息表的节点数量超过阈值的情况下,根据所述第二信息表中节点的最后ssl卸载时间和/或所述卸载执行次数,删减所述第二信息表中的节点。
8.根据权利要求1所述数据包检测方法,其特征在于,在建立与源设备的tcp连接的情况下,还包括:
在待检测数据包包括挥手ack信息的情况下,删除所述第一信息表中包括所述第一五元组的节点。
9.一种数据包检测装置,应用于网关设备,其特征在于,包括:
获取单元,用于获取待检测数据包的第一五元组;所述第一五元组包括第一源ip、第一源端口、第一目的ip、第一目的端口和第一传输层协议;
第一查询单元,用于根据所述第一五元组,查询第一信息表是否有对应的节点;所述第一信息表的节点包括已建立的连接的五元组,以及已建立连接对应的处理流程;
第二查询单元,用于在所述第一信息表中没有对应的节点的情况下,根据所述第一目的ip和第一目的端口查找第二信息表是否有对应节点;所述第二信息表的节点包括无需进行ssl代理的目的ip和目的端口;
ssl代理处理单元,用于在所述第二信息表中没有对应节点的情况下,采用ssl代理流程处理所述待检测数据包;以及,根据所述第一五元组和所述ssl代理流程在所述第一信息表中创建新节点;
快速转发处理单元,用于在所述第二信息表中具有所述对应节点的情况下,采用快速转发流程处理所述待检测数据包;以及,根据所述第一五元组合所述快速转发流程在所述第一信息表中创建新节点。
10.一种电子设备,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至8任一项所述数据包检测方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至8任一项所述数据包检测方法的步骤。
技术总结