CN118316656A - 数据包处理方法、装置、电子设备及存储介质 - Google Patents

数据包处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN118316656A
CN118316656A CN202410323992.5A CN202410323992A CN118316656A CN 118316656 A CN118316656 A CN 118316656A CN 202410323992 A CN202410323992 A CN 202410323992A CN 118316656 A CN118316656 A CN 118316656A
Authority
CN
China
Prior art keywords
data packet
target application
information
application program
determining
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.)
Pending
Application number
CN202410323992.5A
Other languages
English (en)
Inventor
高温广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202410323992.5A priority Critical patent/CN118316656A/zh
Publication of CN118316656A publication Critical patent/CN118316656A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及计算机技术领域,尤其涉及通信技术、网络安全防护等技术领域,具体涉及一种数据包处理方法、装置、电子设备及存储介质。具体实现方案:在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理。采用本公开可以在确保终端设备上安装的应用程序能够正常工作的前提下,有效地降低终端设备所受到的网络安全威胁。

Description

数据包处理方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及通信技术、网络安全防护等技术领域,具体涉及一种数据包处理方法、装置、电子设备及存储介质。
背景技术
随着互联网时代的迅猛发展,网络技术已深入渗透到社会生活的各个领域,为人们提供了前所未有的便捷与高效。然而,与此同时,网络安全问题也日益凸显。特别是随着云计算、大数据、物联网等技术的广泛应用,在终端设备上,基于应用程序实现的数据泄露、身份盗用、恶意攻击、流量滥用等事件频发,这使得安装有应用程序的终端设备在网络安全方面受到了前所未有的威胁。目前,针对安装有应用程序的终端设备,如何在确保其上安装的应用程序能够正常工作的前提下,有效地降低终端设备所受到的网络安全威胁,成为了亟待解决的技术难题。
发明内容
本公开提供了一种数据包处理方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种数据包处理方法,包括:
在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
基于内核系统的进程上下文,确定发送数据包的目标应用程序;
获取与目标应用程序相关的第一安全管控策略;
按照第一安全管控策略,对数据包进行处理。
根据本公开的另一方面,提供了另一种数据包处理方法,包括:
在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
对数据包进行解析,得到数据包的五元组信息;
获取内核系统的连接跟踪信息;
在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,确定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理;
或者,在连接跟踪信息中不存在与数据包的五元组信息对应的历史连接记录的情况下,基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理。
根据本公开的另一方面,提供了一种数据包处理装置,包括:
拦截单元,用于在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
确定单元,用于在内核子系统中,基于内核系统的进程上下文,确定发送数据包的目标应用程序;
获取单元,用于获取与目标应用程序相关的第一安全管控策略;
处理单元,用于按照第一安全管控策略,对数据包进行处理。
根据本公开的另一方面,提供了另一种数据包处理装置,包括:
拦截单元,用于在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
解析单元,用于对数据包进行解析,得到数据包的五元组信息;
跟踪查询单元,用于获取内核系统的连接跟踪信息;
第一处理单元,用于在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,确定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理;
第二处理单元,用于在连接跟踪信息中不存在与数据包的五元组信息对应的历史连接记录的情况下,基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;
与该至少一个处理器通信连接的存储器;
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开实施例所提供的任一方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行本公开实施例所提供的任一方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现本公开实施例所提供的任一方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的一种数据包处理方法的流程示意图;
图2为本公开实施例提供的一种内核系统的示意性结构框图;
图3为本公开实施例提供的一种内核子系统的示意性结构框图;
图4为本公开实施例提供的另一种数据包处理方法的流程示意图;
图5为本公开实施例提供的一种数据包处理方法的完整性流程示意图;
图6A和图6B为本公开实施例提供的一种数据包处理方法的场景示意图;
图7为本公开实施例提供的一种数据包处理装置的示意性结构框图;
图8为本公开实施例提供的另一种数据包处理装置的示意性结构框图;
图9为本公开实施例提供的一种电子设备的示意性结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如背景技术所述的,网络技术已深入渗透到社会生活的各个领域,为人们提供了前所未有的便捷与高效。然而,与此同时,网络安全问题也日益凸显。特别是随着云计算、大数据、物联网等技术的广泛应用,在终端设备上,基于应用程序实现的数据泄露、身份盗用、恶意攻击、流量滥用等事件频发,这使得安装有应用程序的终端设备在网络安全方面受到了前所未有的威胁。
更具体来说,目前,网络安全威胁包括分布式拒绝(Distributed Denial ofService,DDOS)攻击、结构化查询语言(Structured Query Language,SQL)注入攻击、跨站脚本(Cross-Site Scripting,XSS)等。进一步地,对于安装有应用程序的终端设备而言,由于以下几点原因,其通常更容易受到网络安全威胁。
(1)由于安装有应用程序,终端设备需要频繁与互联网相连,而互联网可能会带来各种网络安全威胁;
(2)终端设备(例如,移动终端)中存储了大量的个人信息和敏感数据,例如,联系人目录、个人身份信息、图像数据等;
(3)使用公共的无线保真(Wireless Fidelity,WiFi)或不受信任的网络时,容易受到中间人的攻击或网络嗅探;
(4)应用市场中存在一些恶意的应用程序,它们可能会通过一些恶意代码执行恶意行为,或请求过多的权限,从而引发一系列网络安全问题。
通过网络安全防护可以检测和阻止网络攻击,例如,可以通过限制应用程序的网络访问权限,降低其所受到的网络安全威胁。
目前,对于安装有应用程序的终端设备而言,安卓(Android)系统是其使用非常广泛的操作系统之一,且已经扩展到不同的设备领域,包括计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。基于此,以操作系统为Android系统的终端设备为例,目前,其通常采用以下数据包处理方法,以实现限制终端设备上安装的应用程序的网络访问权限的目的:通过用户标识符(User Identifoer,UID)识别正在发送数据包的目标应用程序,并获取与目标应用程序相关的安全管控策略,再按照该安全管控策略,对目标应用程序所发送的数据包进行处理,例如,丢弃数据包,以实现限制目标应用程序的网络访问权限的目的。
然而,经发明人研究发现,在实际应用中,往往会出现多个应用程序共用同一UID的情况下,这将大大降低针对应用程序的数据安全管控的准确性;另外,在实际应用中,由于数据包处理方法的实施节点并不合理,使得在终端设备上,无法确保针对应用程序的数据安全管控的及时性和有效性。基于这些原因,针对安装有应用程序的终端设备而言,无法在确保其上安装的应用程序能够正常工作的前提下,有效地降低终端设备所受到的网络安全威胁。
基于以上背景,本公开实施例提供了一种数据包处理方法,其可以应用于电子设备。其中,电子设备可以表示各种形式的终端设备,例如,计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。以下,将结合图1所示流程示意图,对本公开实施例提供的一种数据包处理方法进行说明。需要说明的是,虽然在流程示意图中示出了逻辑顺序,但是,在某些情况下,也可以以其他顺序执行所示出或描述的步骤。
步骤S101,在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截。
其中,数据包可以是基于某一应用程序得到数据集合,其可以在通过内核系统之后,利用外部网络发送给服务器或其它设备,而内核系统可以理解为电子设备所使用的操作系统的核心组成部分。
示例性地,电子设备所使用的操作系统为Android系统,那么,其内核系统可以是林纳斯(Linux)系统。请结合图2,Linux系统包括用于与多个候选应用程序(例如,第一候选应用程序、第二候选应用程序和第三候选应用程序等)连接的应用层,以及与应用层连接的网络层、与网络层连接的链路层和与链路层连接的网络接口层,且网络接口层还用于利用外部网络,连接到服务器或其它设备。其中,应用层也称传输控制协议(TransmissionControl Protocol,TCP)/用户数据报协议(User Datagram Protocol,UDP)层。
在检测到有数据包到达内核系统的网络层(例如,在内核系统中,通过应用层到达网络层)的情况下,可以对数据包进行拦截。例如,将数据包拦截至内核系统的内核子系统中,以便在内核子系统中执行后续步骤(例如,步骤S102、步骤S103和步骤S104)。其中,内核子系统可以基于网络过滤器框架搭建,以用于实现数据包过滤。示例性地,电子设备所使用的操作系统为Android系统,且内核系统为Linux系统,那么,Linux系统可以基于网络过滤器(例如,NetFilter)框架搭建,以用于实现数据包过滤。
此外,本公开实施例中,可以通过钩子(Hook)函数,对数据包进行拦截。
步骤S102,基于内核系统的进程上下文,确定发送数据包的目标应用程序。
其中,内核系统的进程上下文用于存储与特定进程(例如,正在内核系统中执行的当前进程)相关的各种信息。这些信息可以包括特定进程的进程标识号、进程名称、命令行参数、至少一级父进程、进程状态、相关变量、内存管理数据、寄存器值等。基于此,本公开实施例中,可以基于内核系统的进程上下文,确定发送数据包的目标应用程序。具体地,可以基于内核系统的进程上下文,从多个候选应用程序中确定发送数据包的目标应用程序。
步骤S103,获取与目标应用程序相关的第一安全管控策略。
其中,第一安全管控策略可以是放行、丢弃或告警。
步骤S104,按照第一安全管控策略,对数据包进行处理。
采用本公开实施例提供的以上数据包处理方法,可以在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理。一方面,由于本公开中,发送数据包的目标应用程序是基于内核系统的进程上下文确定的,而基于内核系统的进程上下文,能够准确地确定出唯一的目标应用程序,这相对于“一刀切”式的安全管控策略而言,能够提高针对目标应用程序的数据安全管控的准确性;另一方面,由于本公开中,会在检测到有数据包到达内核系统的网络层时立即进行拦截,以确保数据包在由网络层依次发送给链路层和网络接口层,并在网络接口层利用外部网络,发送给服务器或其它设备之前,就已经得到迅速,且有效的处理,从而避免了潜在的数据泄露、身份盗用、恶意攻击、流量滥用等网络安全风险,确保了针对目标应用程序的数据安全管控的及时性和有效性。由于采用本公开可以提高针对目标应用程序的数据安全管控的准确性,同时,确保针对目标应用程序的数据安全管控的及时性和有效性,因此,对于安装有应用程序的终端设备而言,也就可以在确保终端设备上安装的应用程序能够正常工作的前提下,有效地降低终端设备所受到的网络安全威胁。
如前所述的,本公开实施例中,第一安全管控策略可以是放行、丢弃或告警。基于此,在一些可选的实施方式中,“按照第一安全管控策略,对数据包进行处理”可以包括以下之一:
在第一安全管控策略为放行的情况下,对数据包进行放行处理;
在第一安全管控策略为丢弃的情况下,丢弃数据包;
在第一安全管控策略为告警的情况下,基于数据包生成告警信息。
对于“对数据包进行放行”,本公开实施例中,可以理解为,使得数据包继续向前传输,直至发送给服务器或其它设备。示例性地,电子设备所使用的操作系统为Android系统,且内核系统为Linux系统,Linux系统包括用于与多个候选应用程序连接的应用层,以及与应用层连接的网络层、与网络层连接的链路层和与链路层连接的网络接口层,且网络接口层还用于利用外部网络,连接到服务器或其它设备。基于此,在对数据包进行放行处理时,数据包可以由内核系统的内核子系统依次发送给链路层和网络接口层,并在网络接口层利用外部网络,发送给服务器或其它设备。
对于“丢弃数据包”,本公开实施例中,可以理解为,将数据包删除。
此外,本公开实施例中,告警信息可以用于提示用户目标应用程序所发送的数据包可能会带来数据泄露、身份盗用、恶意攻击、流量滥用等网络安全风险,并请求用户指示。其中,用户指示可以是对数据包进行放行处理,也可以是丢弃数据包。
通过“按照第一安全管控策略,对数据包进行处理”包括的以上步骤,本公开实施例中,可以在第一安全管控策略为放行的情况下,对数据包进行放行处理,在第一安全管控策略为丢弃的情况下,丢弃数据包,以及在第一安全管控策略为告警的情况下,基于数据包生成告警信息。也就是说,本公开实施例中,可以根据不同的安全管控策略,灵活处理数据包,且无论是放行、丢弃还是告警,都可以根据应用需求和应用场景灵活设置,提高了数据包处理方法的灵活性。
以下,再对内核子系统的结构和搭建过程进行说明。
该示例中,电子设备所使用的操作系统为Android系统、内核系统为Linux系统、内核子系统是基于NetFilter框架搭建的。
请结合图3,具体地,基于NetFilter框架搭建的内核子系统可以包括第一挂载点(例如,Pre-Routing)、第一路由选择点(例如,第一Route)、本地挂载输入链(例如,Localin)、第二挂载点(例如,Forward)、第二路由选择点(例如,第二Route)、本地挂载输出链(例如,Localout)和第三挂载点(例如,Post-Routing)。其中,第一挂载点、第一路由选择点和本地挂载输入链依次连接,且数据传输方向为从第一挂载点到本地挂载输入链;第二挂载点分别与第一路由选择点和第三挂载点连接,且数据传输方向为从第一路由选择点到第三挂载点;第二路由选择点、本地挂载输出链和第三挂载点依次连接,,且数据传输方向为从第二路由选择点到第三挂载点。
基于此,本公开实施例中,在对数据包进行拦截,例如,将数据包拦截至Linux系统的内核子系统中之后,数据包可以通过第二路由选择点,进入本地挂载输出链,并在本地挂载输出链中,执行“基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理”的步骤。具体地,在第一安全管控策略为放行的情况下,对数据包进行放行处理,以使数据包在通过第三挂载点之后,依次通过Linux系统的链路层和网络接口层,并在网络接口层利用外部网络,发送给服务器或其它设备;在第一安全管控策略为丢弃的情况下,丢弃数据包;在第一安全管控策略为告警的情况下,基于数据包生成告警信息,并将告警信息通过第三挂载点发送给目标应用程序进行显示,以提示用户目标应用程序所发送的数据包可能会带来数据泄露、身份盗用、恶意攻击、流量滥用等网络安全风险,并请求用户指示。
进一步地,内核子系统的搭建过程包括:
(1)提供防火墙服务。其中,防火墙服务用于提供管理模块、内核驱动和规则配置文件。
(2)启动防火墙服务,并通过预设脚本文件,将内核驱动加载到基于NetFilter框架搭建的内核子系统中,以便内核驱动将Hook函数捕获至内核子系统中。此时,内核驱动不会执行其它任何操作;管理模块会加载规则配置文件。
(3)启动管理模块,以检测防火墙服务的当前运行环境是否符合安全预期。其中,符合安全预期包括规则配置文件完整、内核驱动完整、内核系统中不存在权限更变工具(例如,Root工具)、数据存储权限正常等。在防火墙服务的当前运行环境符合安全预期的情况下,管理模块可以调用解密模块,对规则配置文件进行解密处理,得到规则配置信息;在防火墙服务的当前运行环境不符合安全预期的情况下,可以产生告警日志。
其中,规则配置信息可以用于表征与多个候选应用程序(例如,第一候选应用程序、第二候选应用程序和第三候选应用程序等)中的每个候选应用程序相关的安全管控策略。示例性地,规则配置信息可以如表1所示:
表1
其中,与第一候选应用程序相关的安全管理处理为放行,也即,在发送数据包的目标应用程序为第一候选应用程序的情况下,可以确定与目标应用程序相关的第一安全管控策略为放行;与第二候选应用程序相关的安全管理处理为丢弃,也即,在发送数据包的目标应用程序为第二候选应用程序的情况下,可以确定与目标应用程序相关的第一安全管控策略为丢弃;与第三候选应用程序相关的安全管理处理为告警,也即,在发送数据包的目标应用程序为第三候选应用程序的情况下,可以确定与目标应用程序相关的第一安全管控策略为告警。
进一步地,在一些可选的实施方式中,“基于内核系统的进程上下文,确定发送数据包的目标应用程序”可以包括:
基于内核系统的进程上下文,确定正在内核系统中执行的当前进程;
获取与当前进程对应的进程信息;
基于进程信息,确定发送数据包的目标应用程序。
在一示例中,在得到内核系统的进程上下文之后,可以基于内核系统的进程上下文查看内核系统的调度器状态,并根据内核系统的调度器状态确定正在内核系统中执行的当前进程;或者,基于内核系统的进程上下文查看内核系统的运行队列,并根据内核系统的运行队列确定正在内核系统中执行的当前进程。
此外,本公开实施例中,进程信息可以是与正在内核系统中执行的当前进程相关的各种信息。这些信息可以包括正在内核系统中执行的当前进程的进程标识号、进程名称、命令行参数、父进程、进程状态、相关变量、内存管理数据、寄存器值等。基于此,在一示例中,在得到进程信息之后,可以基于从进程信息中提取的命令行参数,确定发送数据包的目标应用程序。例如,可以通过读取/proc/[pid]/cmdline文件,获取进程信息中的命令行参数,并在命令行参数中存在应用程序路径的情况下,根据应用程序路径,确定发送数据包的目标应用程序。在另一示例中,在得到进程信息之后,可以基于根据进程信息构建的进程树,确定发送数据包的目标应用程序。例如,可以基于进程信息中的至少一级父进程,构建进程树,并基于进程树,确定发送数据包的目标应用程序。
以上两个示例是通过直接分析命令行参数或进程树,确定发送数据包的目标应用程序。一方面,相对于通过模糊匹配确定目标应用程序的方法而言,可以减少误判的可能性,从而提高所确定的目标应用程序的准确性;另一方面,通过直接分析命令行参数或进程树,确定发送数据包的目标应用程序不依赖于特定的应用程序或匹配协议,且不受编程语言和程序开发框架的限制,因此,具有很好的可扩展性和灵活性。
此外,通过“基于内核系统的进程上下文,确定发送数据包的目标应用程序”包括的以上步骤,本公开实施例中,一方面,可以基于内核系统的进程上下文,高效、准确地确定正在内核系统中执行的当前进程,以便后续获取与当前进程对应的进程信息,并基于进程信息,确定发送数据包的目标应用程序的步骤可以被快速执行,从而提高目标应用程序的确定速度,以实现提高数据包处理方法的执行效率的目的;另一方面,在确定当前进程之后,会获取与当前进程对应的进程信息,并基于进程信息,确定发送数据包的目标应用程序。由于进程信息可以是与正在内核系统中执行的当前进程相关的各种信息,而这些信息可以包括正在内核系统中执行的当前进程的进程标识号、进程名称、命令行参数、父进程、进程状态、相关变量、内存管理数据、寄存器值等,因此,进程信息可以为目标应用程序的确定提供丰富的数据支持,以进一步提高所确定的目标应用程序的准确性。
如前所述的,本公开实施例中,第一安全管控策略可以是放行、丢弃或告警。在一些可选的实施方式中,在第一安全处理为放行的情况下,数据包处理方法还可以包括:
确定数据包的数据传输量;
获取与目标应用程序相关的历史流量消耗数据;
基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。
其中,数据传输量用于表征数据包大小(比如,可以以字节为单位进行表示)。在一示例中,可以通过读取数据包的头部信息或计算数据包的整体长度,得到数据包的数据传输量。此外,本公开实施例中,与目标应用程序相关的历史流量消耗数据可以通过查看内核子系统中的流量记录表格获取,在此不作赘述。
在确定数据包的数据传输量,并获取与目标应用程序相关的历史流量消耗数据之后,可以基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。例如,可以计算数据传输量和历史流量消耗数据的和,作为目标应用程序的当前流量消耗数据。
通过以上步骤,本公开实施例中,数据包处理方法还可以提供对目标应用程序当前流量消耗的全面了解和监控,有助于实现更有效的网络管理、资源优化和成本控制。
除图1所示的数据包处理方法以外,本公开实施例还提供了另一种数据包处理方法,其可以应用于电子设备。其中,电子设备可以表示各种形式的终端设备,例如,计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。以下,将结合图4所示流程示意图,对本公开实施例提供的一种数据包处理方法进行说明。需要说明的是,虽然在流程示意图中示出了逻辑顺序,但是,在某些情况下,也可以以其他顺序执行所示出或描述的步骤。
步骤S401,在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截。
其中,对于步骤S401的描述,可以参见上述方法实施例中相似步骤(例如,步骤S101)的相关描述,在此不作赘述。
此外,需要说明的是,本公开实施例中,可以将数据包拦截至内核系统的内核子系统中,以便在内核子系统中执行后续步骤(例如,步骤S402~步骤S408)。
步骤S402,对数据包进行解析,得到数据包的五元组信息。
其中,五元组信息可以包括源网络互联协议(Internet Protocol,IP)地址、源端口、目的IP地址、目的端口和传输层协议。
此外,在一示例中,“对数据包进行解析,得到数据包的五元组信息”可以包括:
确定数据包的数据包类型;
基于数据包类型,从多个数据解析库中选取目标解析库;
利用目标解析库,从数据包中提取数据包的五元组信息。
其中,数据包类型可以包括IP包、TCP包或UDP包等;数据解析库用于处理、构建和解析数据包。
在实际应用中,由于不同类型的数据包可能具有不同的数据包格式和内部数据结构,因此,每种类型的数据包都最好利用不同的数据解析库进行解析。也就是说,可以基于数据包类型,从多个数据解析库中选取目标解析库,并利用目标解析库,从数据包中提取数据包的五元组信息,以提高五元组信息的提取效率,同时,提高所提取的五元组信息的准确性。示例性地,数据包的数据包类型为IP包,基于IP包,从多个数据解析库中选取Python解析库作为目标解析库,并利用目标解析库,从数据包中提取数据包的五元组信息可以提高五元组信息的提取效率,同时,提高所提取的五元组信息的准确性。
步骤S403,获取内核系统的连接跟踪信息。
其中,连接跟踪信息用于表征内核系统的历史连接情况,具体可以用于存储内核系统的多条成功连接记录(例如,第一成功连接记录、第二成功连接记录和第三成功连接记录等),以及与每条成功连接记录对应的五元组信息。基于此,在一示例中,连接跟踪信息可以如表2所示:
表2
在另一示例中,连接跟踪信息可以通过以下方式进行更新:
在检测到对某一数据包进行放行的情况下,将数据包作为安全数据包;
在连接跟踪信息中存在与安全数据包对应的五元组信息的情况下,保持连接跟踪信息不变;
在连接跟踪信息中不存在与安全数据包对应的五元组信息的情况下,将与安全数据包对应的五元组信息添加到连接跟踪信息中,以实现对连接跟踪信息的更新。
进一步地,本公开实施例中,在连接跟踪信息中存在与安全数据包对应的五元组信息的情况下,对连接跟踪信息所采取的更新操作具体可以包括:刷新连接跟踪信息中与安全数据包对应的五元组信息,但保持连接跟踪信息不变,并将刷新时间记录为第一时间点;对应地,在连接跟踪信息中不存在与安全数据包对应的五元组信息的情况下,对连接跟踪信息所采取的更新操作具体可以包括:将与安全数据包对应的五元组信息添加到连接跟踪信息中,以实现对连接跟踪信息的更新,并将更新时间记录为第二时间点。
本公开实施例中,还可以对连接跟踪信息进行定期清理,以去除连接跟踪信息中存储的超时元组信息。其中,超时元组信息可以是对应的第一时间点或第二时间点与当前时间之间的时间差值超过预设时长阈值的五元组信息。这里,预设时长阈值可以根据应用需求和应用场景设置,本公开实施例对此不作限制。
步骤S404,判断连接跟踪信息中是否存在与数据包的五元组信息对应的成功连接记录,并在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,执行步骤S405,或者,在连接跟踪信息中不存在与数据包的五元组信息对应的成功连接记录的情况下,依次执行步骤S406、步骤S407和步骤S408。
步骤S405,确定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理。
也就是说,在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,可以直接判定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理。
步骤S406,基于内核系统的进程上下文,确定发送数据包的目标应用程序。
其中,对于步骤S406的描述,可以参见上述方法实施例中相似步骤(例如,步骤S102)的相关描述,在此不作赘述。
步骤S407,获取与目标应用程序相关的第一安全管控策略。
其中,对于步骤S407的描述,可以参见上述方法实施例中相似步骤(例如,步骤S103)的相关描述,在此不作赘述。
步骤S408,按照第一安全管控策略,对数据包进行处理。
其中,对于步骤S408的描述,可以参见上述方法实施例中相似步骤(例如,步骤S104)的相关描述,在此不作赘述。
采用本公开实施例提供的以上数据包处理方法,可以在内核系统的连接跟踪信息中存在与五元组信息对应的成功连接记录的情况下,认定之前已经建立过一个与数据包的五元组信息相关的有效的连接,以便直接将与数据包相关的第二安全管控策略确定为放行,并对数据包进行放行处理。如此,可以这大大减少数据包在内核子系统中的处理时间和延迟,从而提高数据包处理方法的执行效率。
进一步地,在一些可选的实施方式中,“获取与目标应用程序相关的第一安全管控策略”可以包括:
获取与目标应用程序对应的安全管控指示;
从五元组信息中提取地址信息;
从安全管控指示中查找与地址信息对应的安全管控策略,作为与目标应用程序相关的第一安全管控策略。
其中,安全管控指示可以包括地址信息,以及与地址信息对应的安全管控策略。这里,地址信息可以是目的IP地址。基于此,可以理解的是,本公开实施例中,规则配置信息除可以如表1所示以外,也可以用于表征与多个候选应用程序(例如,第一候选应用程序、第二候选应用程序和第三候选应用程序等)中的每个候选应用程序相关的地址信息,以及与该地址信息对应的安全管控策略。示例性地,规则配置信息也可以如表3所示:
表3
其中,与第一候选应用程序相关的地址信息包括地址信息:203.0.113.1、203.0.113.2和203.0.113.3,也即,在从五元组信息中提取地址信息为203.0.113.1的情况下,可以确定与目标应用程序相关的第一安全管控策略为放行;在从五元组信息中提取地址信息为203.0.113.2的情况下,可以确定与目标应用程序相关的第一安全管控策略为丢弃;在从五元组信息中提取地址信息为203.0.113.3的情况下,可以确定与目标应用程序相关的第一安全管控策略为告警。
通过“获取与目标应用程序相关的第一安全管控策略”包括的以上步骤,本公开实施例中,可以获取与目标应用程序对应的安全管控指示,并从五元组信息中提取地址信息,再从安全管控指示中查找与地址信息对应的安全管控策略,作为与目标应用程序相关的第一安全管控策略。如此,相对于以目标应用程序整体作为数据包处理粒度的方案而言,可以以更小粒度实现数据包的处理,使得本公开实施例提供的数据包处理方法可以满足更个性化的应用需求,或适用于更广泛的应用场景。
在一些可选的实施方式中,“基于内核系统的进程上下文,确定发送数据包的目标应用程序”可以包括:
基于内核系统的进程上下文,确定正在内核系统中执行的当前进程;
获取与当前进程对应的进程信息;
基于进程信息,确定发送数据包的目标应用程序。
在一示例中,在得到内核系统的进程上下文之后,可以基于内核系统的进程上下文查看内核系统的调度器状态,并根据内核系统的调度器状态确定正在内核系统中执行的当前进程;或者,基于内核系统的进程上下文查看内核系统的运行队列,并根据内核系统的运行队列确定正在内核系统中执行的当前进程。
此外,本公开实施例中,进程信息可以是与正在内核系统中执行的当前进程相关的各种信息。这些信息可以包括正在内核系统中执行的当前进程的进程标识号、进程名称、命令行参数、父进程、进程状态、相关变量、内存管理数据、寄存器值等。基于此,在一示例中,在得到进程信息之后,可以基于从进程信息中提取的命令行参数,确定发送数据包的目标应用程序。例如,可以通过读取/proc/[pid]/cmdline文件,获取进程信息中的命令行参数,并在命令行参数中存在应用程序路径的情况下,根据应用程序路径,确定发送数据包的目标应用程序。在另一示例中,在得到进程信息之后,可以基于根据进程信息构建的进程树,确定发送数据包的目标应用程序。例如,可以基于进程信息中的至少一级父进程,构建进程树,并基于进程树,确定发送数据包的目标应用程序。
以上两个示例是通过直接分析命令行参数或进程树,确定发送数据包的目标应用程序。一方面,相对于通过模糊匹配确定目标应用程序的方法而言,可以减少误判的可能性,从而提高所确定的目标应用程序的准确性;另一方面,通过直接分析命令行参数或进程树,确定发送数据包的目标应用程序不依赖于特定的应用程序或匹配协议,且不受编程语言和程序开发框架的限制,因此,具有很好的可扩展性和灵活性。
此外,通过“基于内核系统的进程上下文,确定发送数据包的目标应用程序”包括的以上步骤,本公开实施例中,一方面,可以基于内核系统的进程上下文,高效、准确地确定正在内核系统中执行的当前进程,以便后续获取与当前进程对应的进程信息,并基于进程信息,确定发送数据包的目标应用程序的步骤可以被快速执行,从而提高目标应用程序的确定速度,以实现提高数据包处理方法的执行效率的目的;另一方面,在确定当前进程之后,会获取与当前进程对应的进程信息,并基于进程信息,确定发送数据包的目标应用程序。由于进程信息可以是与正在内核系统中执行的当前进程相关的各种信息,而这些信息可以包括正在内核系统中执行的当前进程的进程标识号、进程名称、命令行参数、父进程、进程状态、相关变量、内存管理数据、寄存器值等,因此,进程信息可以为目标应用程序的确定提供丰富的数据支持,以进一步提高所确定的目标应用程序的准确性。
此外,本公开实施例中,第一安全管控策略可以是放行、丢弃或告警。基于此,在一些可选的实施方式中,“按照第一安全管控策略,对数据包进行处理”可以包括以下之一:
在第一安全管控策略为放行的情况下,对数据包进行放行处理;
在第一安全管控策略为丢弃的情况下,丢弃数据包;
在第一安全管控策略为告警的情况下,基于数据包生成告警信息。
对于“对数据包进行放行”,本公开实施例中,可以理解为,使得数据包继续向前传输,直至发送给服务器或其它设备。示例性地,电子设备所使用的操作系统为Android系统,且内核系统为Linux系统,Linux系统包括用于与多个候选应用程序连接的应用层,以及与应用层连接的网络层、与网络层连接的链路层和与链路层连接的网络接口层,且网络接口层还用于利用外部网络,连接到服务器或其它设备。基于此,在对数据包进行放行处理时,数据包可以由内核系统的内核子系统依次发送给链路层和网络接口层,并在网络接口层利用外部网络,发送给服务器或其它设备。
对于“丢弃数据包”,本公开实施例中,可以理解为,将数据包删除。
此外,本公开实施例中,告警信息可以用于提示用户目标应用程序所发送的数据包可能会带来数据泄露、身份盗用、恶意攻击、流量滥用等网络安全风险,并请求用户指示。其中,用户指示可以是对数据包进行放行处理,也可以是丢弃数据包。
通过“按照第一安全管控策略,对数据包进行处理”包括的以上步骤,本公开实施例中,可以在第一安全管控策略为放行的情况下,对数据包进行放行处理,在第一安全管控策略为丢弃的情况下,丢弃数据包,以及在第一安全管控策略为告警的情况下,基于数据包生成告警信息。也就是说,本公开实施例中,可以根据不同的安全管控策略,灵活处理数据包,且无论是放行、丢弃还是告警,都可以根据应用需求和应用场景灵活设置,提高了数据包处理方法的灵活性。
如前所述的,本公开实施例中,第一安全管控策略可以是放行、丢弃或告警。在一些可选的实施方式中,在第一安全处理为放行的情况下,数据包处理方法还可以包括:
确定数据包的数据传输量;
获取与目标应用程序相关的历史流量消耗数据;
基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。
其中,数据传输量用于表征数据包大小(比如,可以以字节为单位进行表示)。在一示例中,可以通过读取数据包的头部信息或计算数据包的整体长度,得到数据包的数据传输量。此外,本公开实施例中,与目标应用程序相关的历史流量消耗数据可以通过查看内核子系统中的流量记录表格获取,在此不作赘述。
在确定数据包的数据传输量,并获取与目标应用程序相关的历史流量消耗数据之后,可以基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。例如,可以计算数据传输量和历史流量消耗数据的和,作为目标应用程序的当前流量消耗数据。
通过以上步骤,本公开实施例中,数据包处理方法还可以提供对目标应用程序当前流量消耗的全面了解和监控,有助于实现更有效的网络管理、资源优化和成本控制。
以下,再结合图5,对本公开实施例提供的数据包处理方法的完整性流程进行详细介绍。
步骤S501,在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截。
其中,对于步骤S501的描述,可以参见上述方法实施例中相似步骤(例如,步骤S101或步骤S401)的相关描述,在此不作赘述。
此外,需要说明的是,本公开实施例中,可以将数据包拦截至内核系统的内核子系统中,以便在内核子系统中执行后续步骤(例如,步骤S502~步骤S510)。
步骤S502,对数据包进行解析,得到数据包的五元组信息。
其中,对于步骤S502的描述,可以参见上述方法实施例中相似步骤(例如,步骤S402)的相关描述,在此不作赘述。
步骤S503,获取内核系统的连接跟踪信息。
其中,对于步骤S503的描述,可以参见上述方法实施例中相似步骤(例如,步骤S403)的相关描述,在此不作赘述。
步骤S504,判断连接跟踪信息中是否存在与数据包的五元组信息对应的成功连接记录,并在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,执行步骤S505,或者,在连接跟踪信息中不存在与数据包的五元组信息对应的成功连接记录的情况下,依次执行步骤S506、步骤S507、步骤S508和步骤S509(这里,步骤S509可以理解为步骤S509-1、步骤S509-2和步骤S509-3中的一者)。
其中,对于步骤S504的描述,可以参见上述方法实施例中相似步骤(例如,步骤S404)的相关描述,在此不作赘述。
步骤S505,确定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理,再执行步骤S510。
其中,对于步骤S505的描述,可以参见上述方法实施例中相似步骤(例如,步骤S405)的相关描述,在此不作赘述。
步骤S506,基于内核系统的进程上下文,确定正在内核系统中执行的当前进程,并获取与当前进程对应的进程信息,再基于进程信息,确定发送数据包的目标应用程序。
其中,对于步骤S506的描述,可以参见上述方法实施例中相似步骤(例如,步骤S102或步骤S406)的相关描述,在此不作赘述。
步骤S507,获取与目标应用程序相关的第一安全管控策略。
其中,对于步骤S507的描述,可以参见上述方法实施例中相似步骤(例如,步骤S103或步骤S407)的相关描述,在此不作赘述。
步骤S508,确定第一安全管控策略为放行、丢弃或告警中的哪一者;在第一安全管控策略为放行的情况下,执行步骤S509-1;在第一安全管控策略为丢弃的情况下,执行步骤S509-2;在第一安全管控策略为告警的情况下,执行步骤S509-3。
步骤S509-1,对数据包进行放行处理,并执行步骤S510。
对于“对数据包进行放行”,本公开实施例中,可以理解为,使得数据包继续向前传输,直至发送给服务器或其它设备。示例性地,电子设备所使用的操作系统为Android系统,且内核系统为Linux系统,Linux系统包括用于与多个候选应用程序连接的应用层,以及与应用层连接的网络层、与网络层连接的链路层和与链路层连接的网络接口层,且网络接口层还用于利用外部网络,连接到服务器或其它设备。基于此,在对数据包进行放行处理时,数据包可以由内核系统的内核子系统依次发送给链路层和网络接口层,并在网络接口层利用外部网络,发送给服务器或其它设备。
步骤S509-2,丢弃数据包。
对于“丢弃数据包”,本公开实施例中,可以理解为,将数据包删除。
步骤S509-3,基于数据包生成告警信息。
本公开实施例中,告警信息可以用于提示用户目标应用程序所发送的数据包可能会带来数据泄露、身份盗用、恶意攻击、流量滥用等网络安全风险,并请求用户指示。其中,用户指示可以是对数据包进行放行处理,也可以是丢弃数据包。
步骤S510,确定数据包的数据传输量,并获取与目标应用程序相关的历史流量消耗数据,再基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。
其中,数据传输量用于表征数据包大小(比如,可以以字节为单位进行表示)。在一示例中,可以通过读取数据包的头部信息或计算数据包的整体长度,得到数据包的数据传输量。此外,本公开实施例中,与目标应用程序相关的历史流量消耗数据可以通过查看内核子系统中的流量记录表格获取,在此不作赘述。
在确定数据包的数据传输量,并获取与目标应用程序相关的历史流量消耗数据之后,可以基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。例如,可以计算数据传输量和历史流量消耗数据的和,作为目标应用程序的当前流量消耗数据。
进一步地,请参阅图6A和图6B,为本公开实施例提供的一种数据包处理方法的场景示意图。
如前所述的,本公开实施例提供的数据包处理方法应用于电子设备。电子设备可以表示各种形式的终端设备,例如,计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。
如图6A所示,电子设备可以用于:
在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
基于内核系统的进程上下文,确定发送数据包的目标应用程序;
获取与目标应用程序相关的第一安全管控策略;
按照第一安全管控策略,对数据包进行处理。
其中,第一安全管控策略可以是放行、丢弃或告警。
如图6B所示,或者,电子设备也可以用于:
在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
对数据包进行解析,得到数据包的五元组信息;
获取内核系统的连接跟踪信息;
在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,确定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理;
或者,在连接跟踪信息中不存在与数据包的五元组信息对应的历史连接记录的情况下,基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理。
需要说明的是,第一安全管控策略可以是放行、丢弃或告警。
在第一安全管控策略为放行的情况下,对数据包进行放行处理;
在第一安全管控策略为丢弃的情况下,丢弃数据包;
在第一安全管控策略为告警的情况下,基于数据包生成告警信息。
对于“对数据包进行放行”,本公开实施例中,可以理解为,使得数据包继续向前传输,直至发送给服务器或其它设备。示例性地,电子设备所使用的操作系统为Android系统,且内核系统为Linux系统,Linux系统包括用于与多个候选应用程序连接的应用层,以及与应用层连接的网络层、与网络层连接的链路层和与链路层连接的网络接口层,且网络接口层还用于利用外部网络,连接到服务器或其它设备。基于此,在对数据包进行放行处理时,数据包可以由内核系统的内核子系统依次发送给链路层和网络接口层,并在网络接口层利用外部网络,发送给服务器或其它设备。
对于“丢弃数据包”,本公开实施例中,可以理解为,将数据包删除。
此外,本公开实施例中,告警信息可以用于提示用户目标应用程序所发送的数据包可能会带来数据泄露、身份盗用、恶意攻击、流量滥用等网络安全风险,并请求用户指示。其中,用户指示可以是对数据包进行放行处理,也可以是丢弃数据包。
还需要说明的是,本公开实施例中,图6A和图6B所示的场景示意图仅为示意性而非限制性的,本领域技术人员可以基于图6A和图6B示例进行各种显而易见的变化和/或替换,获得的技术方案仍属于本公开实施例的公开范围。
为了更好地实施数据包处理方法(例如,图1所示的数据包处理方法),本公开实施例还提供一种数据包处理装置,其可以集成在电子设备。其中,电子设备可以表示各种形式的终端设备,例如,计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。以下,将结合图7所示结构示意图,对公开实施例提供的一种数据包处理装置700进行说明。
数据包处理装置700,包括:
拦截单元701,用于在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
确定单元702,用于基于内核系统的进程上下文,确定发送数据包的目标应用程序;
获取单元703,用于获取与目标应用程序相关的第一安全管控策略;
处理单元704,用于按照第一安全管控策略,对数据包进行处理。
在一些可选的实施方式中,确定单元702用于:
基于内核系统的进程上下文,确定正在内核系统中执行的当前进程;
获取与当前进程对应的进程信息;
基于进程信息,确定发送数据包的目标应用程序。
在一些可选的实施方式中,确定单元702用于:
基于从进程信息中提取的命令行参数,确定发送数据包的目标应用程序;
或者,基于根据进程信息构建的进程树,确定发送数据包的目标应用程序。
在一些可选的实施方式中,获取单元703用于:
获取与目标应用程序对应的安全管控指示;
从五元组信息中提取地址信息;
从安全管控指示中查找与地址信息对应的安全管控策略,作为与目标应用程序相关的第一安全管控策略。
在一些可选的实施方式中,处理单元704用于执行以下之一:
在第一安全管控策略为放行的情况下,对数据包进行放行处理;
在第一安全管控策略为丢弃的情况下,丢弃数据包;
在第一安全管控策略为告警的情况下,基于数据包生成告警信息。
在一些可选的实施方式,数据包处理装置700还包括流量统计单元,用于:
确定数据包的数据传输量;
获取与目标应用程序相关的历史流量消耗数据;
基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。
本公开实施例的数据包处理装置700的各单元的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不作赘述。
为了更好地实施数据包处理方法(例如,图4所示的数据包处理方法),本公开实施例还提供一种数据包处理装置,其可以集成在电子设备。其中,电子设备可以表示各种形式的终端设备,例如,计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。以下,将结合图8所示结构示意图,对公开实施例提供的一种数据包处理装置800进行说明。
数据包处理装置800,包括:
拦截单元801,用于在检测到有数据包到达内核系统的网络层的情况下,对数据包进行拦截;
解析单元802,用于对数据包进行解析,得到数据包的五元组信息;
跟踪查询单元803,用于获取内核系统的连接跟踪信息;
第一处理单元804,用于在连接跟踪信息中存在与数据包的五元组信息对应的成功连接记录的情况下,确定与数据包相关的第二安全管控策略为放行,并对数据包进行放行处理;
第二处理单元805,用于在连接跟踪信息中不存在与数据包的五元组信息对应的历史连接记录的情况下,基于内核系统的进程上下文,确定发送数据包的目标应用程序;获取与目标应用程序相关的第一安全管控策略;按照第一安全管控策略,对数据包进行处理。
在一些可选的实施方式中,解析单元802用于:
确定数据包的数据包类型;
基于数据包类型,从多个数据解析库中选取目标解析库;
利用目标解析库,从数据包中提取数据包的五元组信息。
在一些可选的实施方式中,第二处理单元805用于:
获取与目标应用程序对应的安全管控指示;
从五元组信息中提取地址信息;
从安全管控指示中查找与地址信息对应的安全管控策略,作为与目标应用程序相关的第一安全管控策略。
在一些可选的实施方式中,第二处理单元805用于:
基于内核系统的进程上下文,确定正在内核系统中执行的当前进程;
获取与当前进程对应的进程信息;
基于进程信息,确定发送数据包的目标应用程序。
在一些可选的实施方式中,第二处理单元805用于:
基于从进程信息中提取的命令行参数,确定发送数据包的目标应用程序;
或者,基于根据进程信息构建的进程树,确定发送数据包的目标应用程序。
在一些可选的实施方式中,第二处理单元805用于:
在第一安全管控策略为放行的情况下,对数据包进行放行处理;
在第一安全管控策略为丢弃的情况下,丢弃数据包;
在第一安全管控策略为告警的情况下,基于数据包生成告警信息。
在一些可选的实施方式中,数据包处理装置800还包括流量统计单元,用于:
确定数据包的数据传输量;
获取与目标应用程序相关的历史流量消耗数据;
基于数据传输量和历史流量消耗数据,得到目标应用程序的当前流量消耗数据。
本公开实施例的数据包处理装置800的各单元的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不作赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,计算机(台式计算机、笔记本电脑等)、个人数字处理、蜂窝电话、智能手机、平板电脑、穿戴设备、影音设备(比如,电视机)、汽车娱乐设备(比如,车机)、游戏机、物联网设备或其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(Read-OnlyMemory,ROM)902中的计算机程序或从存储单元909加载到随机访问存储器(Random AccessMemory,RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(Input/Output,I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元909,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、各种专用的人工智能(ArtificialIntelligence,AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(Digital Signal Process,DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如,数据包处理方法。例如,在一些实施例中,数据包处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的数据包处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据包处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(ApplicationSpecific Standard Product,ASSP)、芯片上系统的系统(System On Chip,SOC)、负载可编程逻辑设备(Complex Programmable Logic Device,CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或多个计算机程序中,该一个或多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)或快闪存储器、光纤、便捷式紧凑盘只读存储器(Compact Disc Read-OnlyMemory,CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(Cathode Ray Tube,CRT)显示器或液晶显示器(Liquid Crystal Display,LCD));以及键盘和指向装置(例如,鼠标或轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可以用任何形式(包括声输入、语音输入、或触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或包括中间件部件的计算系统(例如,应用服务器)、或包括前端部件的计算系统(例如,具有图形用户界面或网络浏览器的用户计算机,用户可以通过该图形用户界面或该网络浏览器来与此处描述的系统和技术的实施方式交互)、或包括这种后台部件、中间件部件、或前端部件的任何组合的计算系统中。可以通过任何形式或介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local AreaNetwork,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或是结合了区块链的服务器。
本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行数据包处理方法。
本公开实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现数据包处理方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。此外,本公开中,诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或暗示这些实体或操作之间存在任何这种实际的关系或顺序。此外,本公开中“多个”,可以理解为至少两个。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (27)

1.一种数据包处理方法,包括:
在检测到有数据包到达内核系统的网络层的情况下,对所述数据包进行拦截;
基于所述内核系统的进程上下文,确定发送所述数据包的目标应用程序;
获取与所述目标应用程序相关的第一安全管控策略;
按照所述第一安全管控策略,对所述数据包进行处理。
2.根据权利要求1所述的方法,其中,所述基于所述内核系统的进程上下文,确定发送所述数据包的目标应用程序,包括:
基于所述内核系统的进程上下文,确定正在所述内核系统中执行的当前进程;
获取与所述当前进程对应的进程信息;
基于所述进程信息,确定发送所述数据包的目标应用程序。
3.根据权利要求2所述的方法,其中,所述基于所述进程信息,确定发送所述数据包的目标应用程序,包括:
基于从所述进程信息中提取的命令行参数,确定发送所述数据包的目标应用程序;
或者,基于根据所述进程信息构建的进程树,确定发送所述数据包的目标应用程序。
4.根据权利要求1所述的方法,其中,所述按照所述第一安全管控策略,对所述数据包进行处理,包括以下之一:
在所述第一安全管控策略为放行的情况下,对所述数据包进行放行处理;
在所述第一安全管控策略为丢弃的情况下,丢弃所述数据包;
在所述第一安全管控策略为告警的情况下,基于所述数据包生成告警信息。
5.根据权利要求1所述的方法,还包括:
确定所述数据包的数据传输量;
获取与所述目标应用程序相关的历史流量消耗数据;
基于所述数据传输量和所述历史流量消耗数据,得到所述目标应用程序的当前流量消耗数据。
6.一种数据包处理方法,包括:
在检测到有数据包到达内核系统的网络层的情况下,对所述数据包进行拦截;
对所述数据包进行解析,得到所述数据包的五元组信息;
获取所述内核系统的连接跟踪信息;
在所述连接跟踪信息中存在与所述数据包的五元组信息对应的成功连接记录的情况下,确定与所述数据包相关的第二安全管控策略为放行,并对所述数据包进行放行处理;
或者,在所述连接跟踪信息中不存在与所述数据包的五元组信息对应的历史连接记录的情况下,基于所述内核系统的进程上下文,确定发送所述数据包的目标应用程序;获取与所述目标应用程序相关的第一安全管控策略;按照所述第一安全管控策略,对所述数据包进行处理。
7.根据权利要求6所述的方法,其中,所述对所述数据包进行解析,得到所述数据包的五元组信息,包括:
确定所述数据包的数据包类型;
基于所述数据包类型,从多个数据解析库中选取目标解析库;
利用所述目标解析库,从所述数据包中提取所述数据包的五元组信息。
8.根据权利要求6所述的方法,其中,所述获取与所述目标应用程序相关的第一安全管控策略,包括:
获取与所述目标应用程序对应的安全管控指示;
从所述五元组信息中提取地址信息;
从所述安全管控指示中查找与所述地址信息对应的安全管控策略,作为与所述目标应用程序相关的第一安全管控策略。
9.根据权利要求6~8中任一项所述的方法,其中,所述基于所述内核系统的进程上下文,确定发送所述数据包的目标应用程序,包括:
基于所述内核系统的进程上下文,确定正在所述内核系统中执行的当前进程;
获取与所述当前进程对应的进程信息;
基于所述进程信息,确定发送所述数据包的目标应用程序。
10.根据权利要求9所述的方法,其中,所述基于所述进程信息,确定发送所述数据包的目标应用程序,包括:
基于从所述进程信息中提取的命令行参数,确定发送所述数据包的目标应用程序;
或者,基于根据所述进程信息构建的进程树,确定发送所述数据包的目标应用程序。
11.根据权利要求6所述的方法,其中,所述按照所述第一安全管控策略,对所述数据包进行处理,包括以下之一:
在所述第一安全管控策略为放行的情况下,对所述数据包进行放行处理;
在所述第一安全管控策略为丢弃的情况下,丢弃所述数据包;
在所述第一安全管控策略为告警的情况下,基于所述数据包生成告警信息。
12.根据权利要求6所述的方法,还包括:
确定所述数据包的数据传输量;
获取与所述目标应用程序相关的历史流量消耗数据;
基于所述数据传输量和所述历史流量消耗数据,得到所述目标应用程序的当前流量消耗数据。
13.一种数据包处理装置,包括:
拦截单元,用于在检测到有数据包到达内核系统的网络层的情况下,对所述数据包进行拦截;
确定单元,用于基于所述内核系统的进程上下文,确定发送所述数据包的目标应用程序;
获取单元,用于获取与所述目标应用程序相关的第一安全管控策略;
处理单元,用于按照所述第一安全管控策略,对所述数据包进行处理。
14.根据权利要求13所述的装置,其中,所述确定单元用于:
基于所述内核系统的进程上下文,确定正在所述内核系统中执行的当前进程;
获取与所述当前进程对应的进程信息;
基于所述进程信息,确定发送所述数据包的目标应用程序。
15.根据权利要求14所述的装置,其中,所述确定单元用于:
基于从所述进程信息中提取的命令行参数,确定发送所述数据包的目标应用程序;
或者,基于根据所述进程信息构建的进程树,确定发送所述数据包的目标应用程序。
16.根据权利要求13所述的装置,其中,所述处理单元用于执行以下之一:
在所述第一安全管控策略为放行的情况下,对所述数据包进行放行处理;
在所述第一安全管控策略为丢弃的情况下,丢弃所述数据包;
在所述第一安全管控策略为告警的情况下,基于所述数据包生成告警信息。
17.根据权利要求13所述的装置,还包括流量统计单元,用于:
确定所述数据包的数据传输量;
获取与所述目标应用程序相关的历史流量消耗数据;
基于所述数据传输量和所述历史流量消耗数据,得到所述目标应用程序的当前流量消耗数据。
18.一种数据包处理装置,包括:
拦截单元,用于在检测到有数据包到达内核系统的网络层的情况下,对所述数据包进行拦截;
解析单元,用于对所述数据包进行解析,得到所述数据包的五元组信息;
跟踪查询单元,用于获取所述内核系统的连接跟踪信息;
第一处理单元,用于在所述连接跟踪信息中存在与所述数据包的五元组信息对应的成功连接记录的情况下,确定与所述数据包相关的第二安全管控策略为放行,并对所述数据包进行放行处理;
第二处理单元,用于在所述连接跟踪信息中不存在与所述数据包的五元组信息对应的历史连接记录的情况下,基于所述内核系统的进程上下文,确定发送所述数据包的目标应用程序;获取与所述目标应用程序相关的第一安全管控策略;按照所述第一安全管控策略,对所述数据包进行处理。
19.根据权利要求18所述的装置,其中,所述解析单元用于:
确定所述数据包的数据包类型;
基于所述数据包类型,从多个数据解析库中选取目标解析库;
利用所述目标解析库,从所述数据包中提取所述数据包的五元组信息。
20.根据权利要求18所述的装置,其中,所述第二处理单元用于:
获取与所述目标应用程序对应的安全管控指示;
从所述五元组信息中提取地址信息;
从所述安全管控指示中查找与所述地址信息对应的安全管控策略,作为与所述目标应用程序相关的第一安全管控策略。
21.根据权利要求18~20中任一项所述的装置,其中,所述第二处理单元用于:
基于所述内核系统的进程上下文,确定正在所述内核系统中执行的当前进程;
获取与所述当前进程对应的进程信息;
基于所述进程信息,确定发送所述数据包的目标应用程序。
22.根据权利要求21所述的装置,其中,所述第二处理单元用于:
基于从所述进程信息中提取的命令行参数,确定发送所述数据包的目标应用程序;
或者,基于根据所述进程信息构建的进程树,确定发送所述数据包的目标应用程序。
23.根据权利要求18所述的装置,其中,所述第二处理单元用于:
在所述第一安全管控策略为放行的情况下,对所述数据包进行放行处理;
在所述第一安全管控策略为丢弃的情况下,丢弃所述数据包;
在所述第一安全管控策略为告警的情况下,基于所述数据包生成告警信息。
24.根据权利要求18所述的装置,还包括流量统计单元,用于:
确定所述数据包的数据传输量;
获取与所述目标应用程序相关的历史流量消耗数据;
基于所述数据传输量和所述历史流量消耗数据,得到所述目标应用程序的当前流量消耗数据。
25.一种电子设备,包括:
至少一个处理器;
与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~12中任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1~12中任一项所述的方法。
27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1~12中任一项所述的方法。
CN202410323992.5A 2024-03-20 2024-03-20 数据包处理方法、装置、电子设备及存储介质 Pending CN118316656A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410323992.5A CN118316656A (zh) 2024-03-20 2024-03-20 数据包处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410323992.5A CN118316656A (zh) 2024-03-20 2024-03-20 数据包处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN118316656A true CN118316656A (zh) 2024-07-09

Family

ID=91727391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410323992.5A Pending CN118316656A (zh) 2024-03-20 2024-03-20 数据包处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN118316656A (zh)

Similar Documents

Publication Publication Date Title
US11750631B2 (en) System and method for comprehensive data loss prevention and compliance management
US20210092150A1 (en) Advanced cybersecurity threat mitigation using behavioral and deep analytics
US20240080338A1 (en) Detecting and mitigating forged authentication attacks within a domain
US11005824B2 (en) Detecting and mitigating forged authentication object attacks using an advanced cyber decision platform
US20240267402A1 (en) Detecting kerberos ticket attacks within a domain
US20220377093A1 (en) System and method for data compliance and prevention with threat detection and response
US20100325685A1 (en) Security Integration System and Device
CN111314328A (zh) 网络攻击防护方法、装置、存储介质及电子设备
CN113014571B (zh) 一种访问请求处理的方法、装置及存储介质
WO2019018829A1 (en) MITIGATING IMPROVED CYBERSECURITY THREATS USING DEEP AND BEHAVIORAL ANALYTICS
US11895148B2 (en) Detection and mitigation of denial of service attacks in distributed networking environments
CN111404956A (zh) 一种风险信息获取方法、装置、电子设备及存储介质
CN114726633B (zh) 流量数据处理方法及装置、存储介质及电子设备
CN114598512A (zh) 一种基于蜜罐的网络安全保障方法、装置及终端设备
CN113259429A (zh) 会话保持管控方法、装置、计算机设备及介质
CN113645233A (zh) 流量数据的风控智能决策方法、装置、电子设备和介质
CN111447199A (zh) 服务器的风险分析方法、服务器的风险分析装置及介质
CN114726579B (zh) 防御网络攻击的方法、装置、设备、存储介质及程序产品
CN113709136B (zh) 一种访问请求验证方法和装置
CN118316656A (zh) 数据包处理方法、装置、电子设备及存储介质
WO2019113492A1 (en) Detecting and mitigating forged authentication object attacks using an advanced cyber decision platform
CN114338175B (zh) 数据收集管理系统及数据收集管理方法
CN116938605B (zh) 网络攻击防护方法、装置、电子设备及可读存储介质
CN115412359B (zh) Web应用安全防护方法和装置、电子设备、存储介质
CN116248340A (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