CN112653609B - 一种vpn识别应用方法、装置、终端及存储介质 - Google Patents
一种vpn识别应用方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112653609B CN112653609B CN202011474203.6A CN202011474203A CN112653609B CN 112653609 B CN112653609 B CN 112653609B CN 202011474203 A CN202011474203 A CN 202011474203A CN 112653609 B CN112653609 B CN 112653609B
- Authority
- CN
- China
- Prior art keywords
- port
- vpn
- application
- request
- source
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种VPN识别应用方法、装置、终端及存储介质。该方法包括:在向VPN端发送网络通信请求时,调用设定的钩子函数,通过设定的钩子函数在内存中记录网络通信请求对应的源端口的端口信息;当接收到VPN端发送的端口来源请求时,查询内存中是否存在端口来源请求中源端口的端口信息;若存在,发送包含应用标识的反馈消息给VPN端,以指示VPN端根据反馈消息中的应用标识确定端口来源请求中的源端口所属的沙箱应用端。本发明实施例通过调用钩子函数记录***分配给本次网络通信的源端口,并根据VPN端发送的端口来源请求中的端口信息查询源端口是否属于本沙箱应用端,实现了不需要激活MDM且不经过VPN服务器的情况下设备级VPN能够精确识别应用。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种VPN识别应用方法、装置、终端及存储介质。
背景技术
苹果移动设备操作***(iOS)***中基于设备级虚拟专用网络(Virtual PrivateNetwork,VPN)的接口,只能在激活移动设备管理(Mobile Device Management,MDM)的情况下识别出网际互连协议(Internet Protocol,IP)数据报所属的应用,对于普通的VPN应用无法识别当前的IP数据报来自于哪个应用,只能做IP地址的控制。然而,在这种情况下,不同的应用程序(Application,APP)可能会存在访问同一个IP地址或者端口的情况,这种方法可能存在识别错误的情况,从而将不应该走VPN的数据发送到VPN服务器,进而造成VPN服务器压力变大,以及应用通过VPN服务器后不能正常使用的情况。
另外,由于MDM对用户的要求很高,所以常见的方案是通过服务端下发一个策略,通过IP地址和端口的方式来识别数据,进而将满足策略条件的数据通过VPN转发。然而,在这种情况下,如果需要识别的应用存在访问多个业务服务器的情况,容易漏掉特定IP地址或端口的策略配置,进而造成应用不可用甚至信息泄露的风险。
因此,如何在不需要激活MDM且不经过VPN服务器的情况下实现设备级VPN精确识别应用成为亟待解决的问题。
发明内容
本发明实施例提供一种VPN识别应用方法、装置、终端及存储介质,可以在不需要激活MDM且不经过VPN服务器的情况下实现设备级VPN精确识别应用。
第一方面,本发明实施例提供了一种VPN识别应用方法,应用于沙箱应用端,包括:
在向VPN端发送网络通信请求时,调用设定的钩子函数,通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息;
当接收到所述VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息;
若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。
第二方面,本发明实施例还提供了一种VPN识别应用方法,应用于VPN端,包括:
从VPN接口中读取IP数据报,基于传输层协议解析所述IP数据报,得到源端口的端口信息;
发送包含所述端口信息的端口来源请求给各个应用端,以通过各个所述应用端查询所述应用端的内存中是否存在所述源端口的端口信息,并在存在所述端口信息时,发送包含应用标识的反馈消息给所述VPN端;
若接收到包含应用标识的反馈消息,根据所述反馈消息中的应用标识确定所述源端口所属的沙箱应用端。
第三方面,本发明实施例还提供了一种沙箱应用端装置,应用于沙箱应用端,包括:
端口记录模块,用于在向VPN端发送网络通信请求时,调用设定的钩子函数,通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息;
端口查询模块,用于当接收到所述VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息;
消息反馈模块,用于若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。
第四方面,本发明实施例还提供了一种沙箱应用端装置,应用于VPN端,包括:
数据报解析模块,用于从VPN接口中读取IP数据报,基于传输层协议解析所述IP数据报,得到源端口的端口信息;
请求发送模块,用于发送包含所述端口信息的端口来源请求给各个应用端,以通过各个所述应用端查询所述应用端的内存中是否存在所述源端口的端口信息,并在存在所述端口信息时,发送包含应用标识的反馈消息给所述VPN端;
端口确定模块,用于若接收到包含应用标识的反馈消息,根据所述反馈消息中的应用标识确定所述源端口所属的沙箱应用端。
第五方面,本发明实施例还提供了一种移动终端,所述移动终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例提供的VPN识别应用方法。
第六方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例提供的VPN识别应用方法。
本发明实施例通过在向VPN端发送网络通信请求时,调用设定的钩子函数,通过设定的钩子函数在内存中记录网络通信请求对应的源端口的端口信息,当接收到VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息,若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。本发明实施例通过调用钩子函数记录***分配给本次网络通信的源端口,并根据VPN端发送的端口来源请求中的端口信息查询源端口是否属于本沙箱应用端,实现了不需要激活MDM且不经过VPN服务器的情况下设备级VPN能够精确识别应用,且由于交互过程中不涉及VPN服务器,减轻了VPN服务器的压力,避免了因VPN服务器策略配置繁杂而可能造成的信息泄露风险。
附图说明
图1是本发明实施例一提供的一种VPN识别应用方法的流程图;
图2是本发明实施例二提供的另一种VPN识别应用方法的流程图;
图3是本发明实施例三提供的又一种VPN识别应用方法的流程图;
图4是本发明实施例四提供的一种VPN识别应用装置的结构示意图;
图5是本发明实施例五提供的另一种VPN识别应用装置的结构示意图;
图6是本发明实施例六提供的一种移动终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种VPN识别应用方法的流程图,本实施例可适用于在自带设备办公(Bring Your Own Device,BYOD)等场景下应用被***VPN识别的情况,该方法可以由沙箱应用端上的VPN识别应用装置来执行,该装置可以采用软件和/或硬件的方式实现。该装置可配置于移动终端中。如图1所示,该方法包括:
步骤S110、在向VPN端发送网络通信请求时,调用设定的钩子函数,通过设定的钩子函数在内存中记录网络通信请求对应的源端口的端口信息。
VPN端可以是搭建在移动终端上的虚拟专用网络,用于转发应用端的网络通信请求。例如,可以通过软件的方式在移动终端上搭建VPN端,移动终端上的应用端可以通过VPN端实现网络通信请求的转发。其中,移动终端可以是手机、平板电脑或电脑等终端设备。
沙箱应用端可以是通过钩子(Hook)技术处理过的应用端。例如,沙箱应用端可以是用户重点关注的、不受信任的或者存在历史违规上网行为等的应用端。
网络通信请求可以是沙箱应用端在与VPN端建立网络通信时向VPN发送的通信请求。例如,网络通信请求可以是沙箱应用端向VPN端发送的网络连接请求或数据传输请求等,以与VPN端建立连接或者通过VPN端转发数据。基于传输层协议确保网络通信请求在沙箱应用端和VPN端的安全传输。传输层协议包括但不限于基于超文本传输协议(HyperTextTransfer Protocol,HTTP)、基于传输控制协议(TCP,Transmission Control Protocol)的网络通信请求、基于用户数据报协议(UDP,User Datagram Protocol)或传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)等。
设定的钩子函数可以用于在沙箱应用端与VPN端建立网络通信时在内存中记录***分配给本次网络通信的源端口的端口信息。源端口是移动终端的一种***资源,在某一特定时刻,源端口只能被一个网络通信所占用。端口信息是用于标识源端口的信息。例如,设定的钩子函数可以是设定的用于解析网络通信请求的内核函数获得该网络通信请求对应的源端口的钩子函数。其中,***可以理解为移动终端的配置***,例如,***可以是iOS***或安卓***。
内存可以是沙箱应用端的运行内存,用于存储源端口的端口信息。各个沙箱应用端可以通过设定的钩子函数在各自的内存中记录***分配给本次网络通信的源端口的端口信息。
示例性地,当不受信任的沙箱应用端向VPN端发送网络连接请求或数据传输请求时,通过调用设定的钩子函数,通过设定的钩子函数在内存中记录该网络连接请求或数据传输请求对应的源端口的端口信息,以使VPN端能够在接收到该沙箱应用端的IP数据报时,通过解析IP数据报中源端口的端口信息,并在向该沙箱应用端发送端口来源请求时,根据该沙箱应用端的反馈消息识别出IP数据报来自该不受信任的沙箱应用端,进而可以实现设备级VPN达到应用级VPN的效果。
步骤S120、当接收到VPN端发送的端口来源请求时,查询内存中是否存在端口来源请求中源端口的端口信息,若是,执行步骤S130,否则,执行步骤S140。
端口来源请求可以是由VPN端发送的包含源端口的端口信息的请求,用于查询端口来源请求中的源端口与应用端的所属关系。
具体地,当接收到VPN端发送的端口来源请求时,获取端口来源请求中源端口的端口信息,将该端口信息与内存中存储的端口信息进行比较,判断内存中是否存在该端口信息。若本沙箱应用端的内存中存在该端口信息,说明该源端口属于本沙箱应用端,若本沙箱应用端的内存中不存在该端口信息,说明该源端口不属于本沙箱应用端。
步骤S130、发送包含应用标识的反馈消息给VPN端,以指示VPN端根据反馈消息中的应用标识确定端口来源请求中的源端口所属的沙箱应用端。
应用标识可以用于唯一标识沙箱应用端。
具体地,若沙箱应用端的内存中存在端口来源请求中的端口信息,即沙箱应用端历史记录过该端口信息,该端口信息对应的源端口属于本沙箱应用端。沙箱应用端可以向VPN端发送反馈消息,该反馈消息包含本沙箱应用端的应用标识,该反馈消息可以用于指示VPN端根据该应用标识确定该端口来源请求中的源端口属于本沙箱应用端。
示例性地,当VPN端需要识别源端口属于哪一个应用端时,可以向各个应用端发送端口来源请求。若沙箱应用端查询到源端口属于本沙箱应用端,沙箱应用端可以向VPN端发送包含应用标识的反馈消息给VPN端。VPN端根据反馈消息中的应用标识可以确定该源端口属于本沙箱应用端。
示例性地,当VPN端需要判断源端口是否属于某一个特定的沙箱应用端时,可以定向发送端口来源请求给该特定的沙箱应用端。若源端口属于该沙箱应用端,则该沙箱应用端可以发送反馈消息给VPN端,以指示VPN端源端口属于本沙箱应用端。
步骤S140、结束。
可替换地,若内存中不存在端口来源请求中的端口信息,可以发送包含应用标识的非本端反馈消息给VPN端,以指示VPN端根据该非本端反馈消息中的应用标识确定端口来源请求中的源端口不属于本沙箱应用端。
示例性地,当VPN端需要识别源端口属于哪一个应用端时,可以向各个应用端发送端口来源请求。若沙箱应用端查询到源端口不属于本沙箱应用端,沙箱应用端可以向VPN端发送非本端反馈消息。若VPN端获取到所有沙箱应用端的非本端反馈消息,便于VPN端获知该源端口并不属于各个沙箱应用端。
示例性地,当VPN端需要判断源端口是否属于某一个特定的沙箱应用端时,可以定向发送端口来源请求给该特定的沙箱应用端。若源端口不属于该沙箱应用端,则该沙箱应用端发送非本端反馈消息给VPN端,以指示VPN端源端口不属于本沙箱应用端。通过将反馈消息或非本端反馈消息发送给VPN端,便于VPN端获知该源端口是否属于特定的沙箱应用端。
本发明实施例通过在向VPN端发送网络通信请求时,调用设定的钩子函数,通过设定的钩子函数在内存中记录网络通信请求对应的源端口的端口信息,当接收到VPN端发送的端口来源请求时,查询内存中是否存在端口来源请求中源端口的端口信息,若存在,发送包含应用标识的反馈消息给VPN端,以指示VPN端根据反馈消息中的应用标识确定端口来源请求中的源端口所属的沙箱应用端。本发明实施例通过调用钩子函数记录***分配给本次网络通信的源端口,并根据VPN端发送的端口来源请求中的端口信息查询源端口是否属于本沙箱应用端,实现了不需要激活MDM且不经过VPN服务器的情况下设备级VPN能够精确识别应用,且由于交互过程中不涉及VPN服务器,减轻了VPN服务器的压力,避免了因VPN服务器策略配置繁杂而可能造成的信息泄露风险。
实施例二
图2是本发明实施例二提供的另一种VPN识别应用方法的流程图,本实施例在上述实施例的基础上进行优化,如图2所示,该方法包括:
步骤S210、在向VPN端发送网络通信请求时,调用设定的钩子函数,通过设定的钩子函数在内存中记录网络通信请求对应的源端口的端口信息。
可选地,在向VPN端发送网络通信请求时,调用设定的钩子函数,通过钩子函数获取网络连接请求或数据传输请求的内核函数,解析内核函数获得网络连接请求或数据传输请求对应的源端口,在内存中存储源端口的端口信息。
网络通信请求可以包括网络连接请求和数据传输请求。其中,网络连接请求可以用于建立沙箱应用端与VPN端的连接。数据传输请求可以用于通过VPN端转发数据。
内核函数可以是***内部设置的用于实现各种***功能的子程序,以供应用端进行调用。例如,网络连接请求的内核函数可以是连接函数,数据传输请求的内核函数可以是传输函数。其中,网络连接请求的连接函数可以调用***中用于实现连接VPN端功能的子程序。数据传输请求的传输函数可以调用***中用于实现利用VPN端传输数据功能的子程序。
示例性地,沙箱应用端在向VPN端发送网络连接请求或数据传输请求时,通过调用用于处理该网络连接请求或数据传输请求的内核函数的钩子函数,解析内核函数获得网络连接请求或数据传输请求对应的源端口,并在本沙箱应用端的内存中存储该源端口的端口信息。本实施例利用钩子函数解析网络连接请求或数据传输请求的内核函数,在沙箱应用端建立网络连接或传输数据的时机记录***分配给本次网络通信的源端口的端口信息,利用了源端口作为一种***资源,在某一特定时刻只能被一个网络通信所占用的特性,从而创造性地提出可以利用源端口识别网络数据所属应用。
可替换地,在向VPN端发送网络连接请求或数据传输请求时,跟踪网络连接请求或数据传输请求的内核函数,在检测到该内核函数被调用时,调用该内核函数对应的设定的钩子函数,通过该钩子函数解析内核函数获得网络连接请求或数据传输请求对应的源端口,在内存中存储源端口的端口信息。
具体地,沙箱应用端可以不通过钩子函数获取网络连接请求或数据传输请求的内核函数,只跟踪该内核函数,并在检测到该内核函数被调用,即沙箱应用端向VPN端发送网络连接请求或数据传输请求时,直接调用该内核函数对应的设定的钩子函数,能够加快沙箱应用端调用设定的钩子函数的速度。
步骤S220、在内存中关联存储端口信息和网络通信请求的请求标识。
请求标识用于唯一标识网络通信请求。在通过设定的钩子函数在内存中记录网络通信请求对应的源端口的端口信息之后,在内存中关联存储端口信息和网络通信请求的请求标识,便于VPN端除了能够查询源端口来自哪个应用端,还能查询源端口来自应用端的哪个网络通信请求。
可选地,在在内存中关联存储端口信息和网络通信请求的请求标识之时,还包括:
在内存中关联存储请求标识和对应的进程信息;
当接收到VPN端发送的进程查询请求时,从内存中获取进程查询请求中请求标识对应的进程信息;
发送包含进程信息的进程反馈消息给VPN端。
其中,进程信息可以是与网络通信请求中各个进程相关的信息。例如,进程信息可以包括进程名称、进程路径、进程的执行参数、进程对应的用户组、用户名和进程启动时间等。
示例性地,沙箱应用端可以在内存中关联存储请求标识和对应的进程信息。当VPN端已经确定端口来源请求中的源端口属于本沙箱应用端之后,VPN端可以向沙箱应用端发送进程查询请求。沙箱应用端在接收到VPN端发送的进程查询请求时,从内存中获取该进程查询请求中请求标识对应的进程信息,并将包含进程信息的进程反馈消息给VPN端。本实施例通过在内存中存储网络通信请求对应的进程信息,便于VPN端能够进一步查询网络通信请求的进程信息。
步骤S230、当接收到VPN端发送的端口来源请求时,查询内存中是否存在端口来源请求中源端口的端口信息,若是,执行步骤S240,否则,执行步骤S250。
步骤S240、根据端口来源请求中源端口的端口信息确定对应的请求标识,发送包含应用标识和请求标识的反馈消息给VPN端,以指示VPN端根据反馈消息中的应用标识和请求标识,确定端口来源请求中的源端口被应用标识对应的沙箱应用端中请求标识对应的网络通信请求占用。
具体地,沙箱应用端可以根据端口来源请求中源端口的端口信息确定对应的请求标识,从内存中获取该请求标识,并将应用标识和请求标识均基于反馈消息发送给VPN端。VPN端可以根据反馈消息中的应用标识可以确定该源端口属于应用标识对应的沙箱应用端,VPN端还可以进一步根据反馈消息中的请求标识确定该源端口被该沙箱应用端中该请求标识对应的网络通信请求占用。
示例性地,沙箱应用端A将包含应用标识a1和请求标识a2的反馈消息发送给VPN端,其中,应用标识a1用于唯一标识沙箱应用端A,请求标识a2用于唯一标识沙箱应用端A向VPN端发送的网络连接请求A2。VPN端接收该反馈消息,并根据反馈消息中的应用标识a1和请求标识a2确定源端口被沙箱应用端A中网络连接请求A2占用。
步骤S250、结束。
本发明实施例通过在向VPN端发送网络通信请求时,通过设定的钩子函数记录网络通信请求对应的源端口的端口信息,在内存中关联存储端口信息和网络通信请求的请求标识,并在接收到VPN端发送的端口来源请求时,查询内存中是否存在端口来源请求中源端口的端口信息,若存在,根据端口来源请求中源端口的端口信息确定对应的请求标识,发送包含应用标识和请求标识的反馈消息给VPN端,以指示VPN端根据反馈消息中的应用标识和请求标识,确定端口来源请求中的源端口被应用标识对应的沙箱应用端中请求标识对应的网络通信请求占用。本发明实施例通过调用钩子函数记录***分配给本次网络通信的源端口,关联存储端口信息和请求标识,若源端口属于本沙箱应用端,发送包含应用标识和请求标识的反馈消息给VPN端,实现了普通的设备级VPN端在不需要激活MDM的情况下也可以识别应用级数据。解决了如果需要识别的应用端存在访问多个业务服务器而使服务器间交互频繁,导致VPN服务器容易漏掉特定的策略配置的问题,使VPN端实现应用级数据的准确识别,从而提高了移动终端上的网络数据传输更精确,保证了应用端的稳定网络访问。
实施例三
图3是本发明实施例三提供的又一种VPN识别应用方法的流程图,本实施例可适用于在自带设备办公(Bring Your Own Device,BYOD)等场景下***VPN识别应用的情况,该方法可以由VPN端上的VPN识别应用装置来执行,该装置可以采用软件和/或硬件的方式实现。该装置可配置于移动终端中。如图3所示,该方法包括:
步骤S310、从VPN接口中读取IP数据报,基于传输层协议解析IP数据报,得到源端口的端口信息。
VPN接口可以是VPN端的虚拟网络接口。VPN端可以从VPN接口中读取IP数据报。
传输层协议可以用于为解析IP数据报提供协议依据。例如,传输层协议可以包括但不限于TCP、UDP和TCP/IP等。VPN端可以基于传输层协议解析IP数据报,可以得到IP数据报中源端口的端口信息。
步骤S320、发送包含端口信息的端口来源请求给各个应用端,以通过各个应用端查询应用端的内存中是否存在源端口的端口信息,并在存在端口信息时,发送包含应用标识的反馈消息给VPN端。
其中,应用端可以是移动终端上的应用,可以包括沙箱应用端和其他应用端。其他应用端可以是用户非重点关注的、受信任的或者历史上网行为良好等的应用端。
具体地,VPN端发送端口来源请求给各个应用端,其中,端口来源请求中至少包括解析出的端口信息。各个应用端可以根据端口来源请求中的端口信息查询各自的内存中是否存在该端口信息,若能够查询到该端口信息,说明该应用端为沙箱应用端,该沙箱应用端可以发送包含应用标识的反馈消息给VPN端。
步骤S330、若接收到包含应用标识的反馈消息,根据反馈消息中的应用标识确定源端口所属的沙箱应用端。
具体地,若VPN端接收到包含应用标识的反馈消息,可以根据该反馈消息确定IP数据报来自沙箱应用端,进一步可以根据反馈消息中的应用标识确定IP数据报中的源端口所属的沙箱应用端。
可选地,在根据反馈消息中的应用标识确定源端口对应的沙箱应用端之后,还包括:
判断沙箱应用端的应用标识是否在应用白名单中,根据判断结果确定沙箱应用端的IP数据报是否为需要拦截的违规数据;
若沙箱应用端的应用标识不在应用白名单中,对沙箱应用端的IP数据报进行拦截处理;
若沙箱应用端的应用标识在应用白名单中,对沙箱应用端的IP数据报进行相应地处理。
应用白名单可以用于存储可信应用的应用标识。本实施例通过应用白名单对获取到的应用标识进行过滤处理,对于处于应用白名单中的应用标识对应的沙箱应用端,根据获取到的IP数据报进行相应地处理,例如,基于IP数据报转发数据。对于未处于应用白名单中的应用标识对应的沙箱应用端,对沙箱应用端的IP数据报进行拦截处理,减少了通信网络的安全隐患,提高了VPN端转发数据的安全性。
本发明实施例通过从VPN接口中读取IP数据报,基于传输层协议解析IP数据报,得到源端口的端口信息,发送包含端口信息的端口来源请求给各个应用端,以通过各个应用端查询应用端的内存中是否存在源端口的端口信息,并在存在端口信息时,发送包含应用标识的反馈消息给VPN端,若接收到包含应用标识的反馈消息,根据反馈消息中的应用标识确定源端口所属的沙箱应用端。在现有技术中,VPN端读取到的IP数据报的来源未知,在同一移动终端上,当VPN端接收到至少两个IP数据报,且均访问同一地址时,VPN端无法区分IP数据报所属的应用端。本实施例通过解析IP数据报中的源端口的端口信息,并根据沙箱应用端发送的反馈消息确定源端口所属的沙箱应用端,解决了同一移动终端上,不同应用端访问同一地址时,设备级VPN无法区分的问题,实现了不需要激活MDM且不经过VPN服务器的情况下设备级VPN能够精确识别应用,且由于交互过程中不涉及VPN服务器,减轻了VPN服务器的压力,避免了因VPN服务器策略配置繁杂而可能造成的信息泄露风险。
实施例四
图4是本发明实施例四提供的一种VPN识别应用装置的结构示意图。该装置可由软件和/或硬件实现,应用于沙箱应用端,一般可集成在移动终端中,可以通过执行VPN识别应用方法实现在不需要激活MDM且不经过VPN服务器的情况下实现设备级VPN精确识别应用。如图4所示,该装置包括:
端口记录模块410,用于在向VPN端发送网络通信请求时,调用设定的钩子函数,通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息;
端口查询模块420,用于当接收到所述VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息;
消息反馈模块430,用于若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。
可选地,所述端口记录模块410,具体用于:
通过所述钩子函数获取网络连接请求或数据传输请求的内核函数,解析所述内核函数获得所述网络连接请求或数据传输请求对应的源端口,在内存中存储所述源端口的端口信息。
可选地,所述装置还包括:
请求标识存储模块,用于在通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息之后,在内存中关联存储所述端口信息和所述网络通信请求的请求标识;
相应地,所述消息反馈模块430,具体用于:
根据所述端口来源请求中源端口的端口信息确定对应的请求标识,发送包含应用标识和所述请求标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识和请求标识,确定所述端口来源请求中的源端口被所述应用标识对应的沙箱应用端中所述请求标识对应的网络通信请求占用。
可选地,所述装置还包括:
进程存储模块,用于在在内存中关联存储所述端口信息和所述网络通信请求的请求标识之时,在内存中关联存储所述请求标识和对应的进程信息;
进程查询模块,用于当接收到所述VPN端发送的进程查询请求时,从所述内存中获取所述进程查询请求中请求标识对应的进程信息;
进程消息发送模块,用于发送包含所述进程信息的进程反馈消息给所述VPN端。
本发明实施例所提供的VPN识别应用装置可执行本发明任意实施例所提供的VPN识别应用方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五提供的另一种VPN识别应用装置的结构示意图。该装置可由软件和/或硬件实现,应用于VPN端,一般可集成在移动终端中,可以通过执行VPN识别应用方法实现在不需要激活MDM且不经过VPN服务器的情况下实现设备级VPN精确识别应用。如图5所示,该装置包括:
数据报解析模块510,用于从VPN接口中读取IP数据报,基于传输层协议解析所述IP数据报,得到源端口的端口信息;
请求发送模块520,用于发送包含所述端口信息的端口来源请求给各个应用端,以通过各个所述应用端查询所述应用端的内存中是否存在所述源端口的端口信息,并在存在所述端口信息时,发送包含应用标识的反馈消息给所述VPN端;
端口确定模块530,用于若接收到包含应用标识的反馈消息,根据所述反馈消息中的应用标识确定所述源端口所属的沙箱应用端。
可选地,所述装置还包括:
白名单判断模块,用于在根据所述反馈消息中的应用标识确定所述源端口对应的沙箱应用端之后,判断所述沙箱应用端的应用标识是否在应用白名单中,根据判断结果确定所述沙箱应用端的IP数据报是否为需要拦截的违规数据;
数据报拦截处理,用于若所述沙箱应用端的应用标识不在应用白名单中,对所述沙箱应用端的IP数据报进行拦截处理。
本发明实施例所提供的VPN识别应用装置可执行本发明任意实施例所提供的VPN识别应用方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6是本发明实施例六提供的一种移动终端的结构示意图,如图6所示,该移动终端包括处理器600、存储器610、输入装置620和输出装置630;移动终端中处理器600的数量可以是一个或多个,图6中以一个处理器600为例;移动终端中的处理器600、存储器610、输入装置620和输出装置630可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器610作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的VPN识别应用方法对应的程序指令和/或模块(例如,应用于沙箱应用端的VPN识别应用装置中的端口记录模块410、端口查询模块420和消息反馈模块430以及应用于VPN端的VPN识别应用装置中的数据报解析模块510、请求发送模块520和端口确定模块530)。处理器600通过运行存储在存储器610中的软件程序、指令以及模块,从而执行移动终端的各种功能应用以及数据处理,即实现上述的VPN识别应用方法。
存储器610可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器610可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器610可进一步包括相对于处理器600远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置620可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。输出装置630可包括显示屏等显示设备。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种VPN识别应用方法,该方法包括:
在向VPN端发送网络通信请求时,调用设定的钩子函数,通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息;
当接收到所述VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息;
若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的VPN识别应用方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述VPN识别应用装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种VPN识别应用方法,其特征在于,应用于沙箱应用端,包括:
在向虚拟专用网络VPN端发送网络通信请求时,调用设定的钩子函数,通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息;
当接收到所述VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息;
若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。
2.根据权利要求1所述的方法,其特征在于,所述通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息,包括:
通过所述钩子函数获取网络连接请求或数据传输请求的内核函数,解析所述内核函数获得所述网络连接请求或数据传输请求对应的源端口,在内存中存储所述源端口的端口信息。
3.根据权利要求1所述的方法,其特征在于,在通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息之后,还包括:
在内存中关联存储所述端口信息和所述网络通信请求的请求标识;
相应地,所述发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端,包括:
根据所述端口来源请求中源端口的端口信息确定对应的请求标识,发送包含应用标识和所述请求标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识和请求标识,确定所述端口来源请求中的源端口被所述应用标识对应的沙箱应用端中所述请求标识对应的网络通信请求占用。
4.根据权利要求3所述的方法,其特征在于,在在内存中关联存储所述端口信息和所述网络通信请求的请求标识之时,还包括:
在内存中关联存储所述请求标识和对应的进程信息;
当接收到所述VPN端发送的进程查询请求时,从所述内存中获取所述进程查询请求中请求标识对应的进程信息;
发送包含所述进程信息的进程反馈消息给所述VPN端。
5.一种VPN识别应用方法,其特征在于,应用于VPN端,包括:
从VPN接口中读取网际互连协议IP数据报,基于传输层协议解析所述IP数据报,得到源端口的端口信息;
发送包含所述端口信息的端口来源请求给各个应用端,以通过各个所述应用端查询所述应用端的内存中是否存在所述源端口的端口信息,并在存在所述端口信息时,发送包含应用标识的反馈消息给所述VPN端;
若接收到包含应用标识的反馈消息,根据所述反馈消息中的应用标识确定所述源端口所属的沙箱应用端。
6.根据权利要求5所述的方法,其特征在于,在根据所述反馈消息中的应用标识确定所述源端口对应的沙箱应用端之后,还包括:
判断所述沙箱应用端的应用标识是否在应用白名单中,根据判断结果确定所述沙箱应用端的IP数据报是否为需要拦截的违规数据;
若所述沙箱应用端的应用标识不在应用白名单中,对所述沙箱应用端的IP数据报进行拦截处理。
7.一种沙箱应用端装置,其特征在于,应用于沙箱应用端,包括:
端口记录模块,用于在向VPN端发送网络通信请求时,调用设定的钩子函数,通过所述设定的钩子函数在内存中记录所述网络通信请求对应的源端口的端口信息;
端口查询模块,用于当接收到所述VPN端发送的端口来源请求时,查询所述内存中是否存在所述端口来源请求中源端口的端口信息;
消息反馈模块,用于若存在,发送包含应用标识的反馈消息给所述VPN端,以指示所述VPN端根据所述反馈消息中的应用标识确定所述端口来源请求中的源端口所属的沙箱应用端。
8.一种沙箱应用端装置,其特征在于,应用于VPN端,包括:
数据报解析模块,用于从VPN接口中读取IP数据报,基于传输层协议解析所述IP数据报,得到源端口的端口信息;
请求发送模块,用于发送包含所述端口信息的端口来源请求给各个应用端,以通过各个所述应用端查询所述应用端的内存中是否存在所述源端口的端口信息,并在存在所述端口信息时,发送包含应用标识的反馈消息给所述VPN端;
端口确定模块,用于若接收到包含应用标识的反馈消息,根据所述反馈消息中的应用标识确定所述源端口所属的沙箱应用端。
9.一种移动终端,其特征在于,所述移动终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的VPN识别应用方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6中任一所述的VPN识别应用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011474203.6A CN112653609B (zh) | 2020-12-14 | 2020-12-14 | 一种vpn识别应用方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011474203.6A CN112653609B (zh) | 2020-12-14 | 2020-12-14 | 一种vpn识别应用方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112653609A CN112653609A (zh) | 2021-04-13 |
CN112653609B true CN112653609B (zh) | 2022-05-27 |
Family
ID=75354032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011474203.6A Active CN112653609B (zh) | 2020-12-14 | 2020-12-14 | 一种vpn识别应用方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112653609B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037572B (zh) * | 2022-05-24 | 2023-11-14 | 成都天空卫士网络安全技术有限公司 | 一种应用请求的识别方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014047168A1 (en) * | 2012-09-18 | 2014-03-27 | Citrix Systems, Inc. | Mobile device management and security |
CN108509802A (zh) * | 2018-02-28 | 2018-09-07 | 郑州信大捷安信息技术股份有限公司 | 一种应用程序数据防泄密方法和装置 |
CN108667708A (zh) * | 2018-04-19 | 2018-10-16 | 国家计算机网络与信息安全管理中心 | 一种多种vpn流量的采集分析***及采集分析方法 |
CN111800490A (zh) * | 2020-06-23 | 2020-10-20 | 深信服科技股份有限公司 | 获取网络行为数据的方法、装置及终端设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1853013A1 (en) * | 2004-07-23 | 2007-11-07 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US8990901B2 (en) * | 2012-05-05 | 2015-03-24 | Citrix Systems, Inc. | Systems and methods for network filtering in VPN |
EP3033861A4 (en) * | 2013-08-15 | 2017-04-12 | Mocana Corporation | Gateway device for terminating a large volume of vpn connections |
US9735943B2 (en) * | 2015-05-11 | 2017-08-15 | Citrix Systems, Inc. | Micro VPN tunneling for mobile platforms |
US10051002B2 (en) * | 2015-08-28 | 2018-08-14 | Nicira, Inc. | Distributed VPN gateway for processing remote device management attribute based rules |
CN105323261A (zh) * | 2015-12-15 | 2016-02-10 | 北京奇虎科技有限公司 | 数据检测方法及装置 |
CN108063712B (zh) * | 2016-11-09 | 2021-01-08 | 北京国双科技有限公司 | 一种网络请求的发送方法及装置 |
CN110300045A (zh) * | 2018-03-23 | 2019-10-01 | 腾讯科技(深圳)有限公司 | 应用程序的网络加速方法、装置、设备及可读介质 |
US10742595B2 (en) * | 2018-04-20 | 2020-08-11 | Pulse Secure, Llc | Fully qualified domain name-based traffic control for virtual private network access control |
CN109347817B (zh) * | 2018-10-12 | 2021-06-25 | 厦门安胜网络科技有限公司 | 一种网络安全重定向的方法及装置 |
-
2020
- 2020-12-14 CN CN202011474203.6A patent/CN112653609B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014047168A1 (en) * | 2012-09-18 | 2014-03-27 | Citrix Systems, Inc. | Mobile device management and security |
CN108509802A (zh) * | 2018-02-28 | 2018-09-07 | 郑州信大捷安信息技术股份有限公司 | 一种应用程序数据防泄密方法和装置 |
CN108667708A (zh) * | 2018-04-19 | 2018-10-16 | 国家计算机网络与信息安全管理中心 | 一种多种vpn流量的采集分析***及采集分析方法 |
CN111800490A (zh) * | 2020-06-23 | 2020-10-20 | 深信服科技股份有限公司 | 获取网络行为数据的方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112653609A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110445770B (zh) | 网络攻击源定位及防护方法、电子设备及计算机存储介质 | |
CN106936791B (zh) | 拦截恶意网址访问的方法和装置 | |
US20210144120A1 (en) | Service resource scheduling method and apparatus | |
KR102580898B1 (ko) | Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법 | |
US20140189861A1 (en) | System and method for correlating network information with subscriber information in a mobile network environment | |
CN110519265B (zh) | 一种防御攻击的方法及装置 | |
CN113301012B (zh) | 一种网络威胁的检测方法、装置、电子设备及存储介质 | |
US20120030351A1 (en) | Management server, communication cutoff device and information processing system | |
US9338657B2 (en) | System and method for correlating security events with subscriber information in a mobile network environment | |
CN108429739B (zh) | 一种识别蜜罐的方法、***及终端设备 | |
CN109246078B (zh) | 一种数据交互方法及服务器 | |
CN112653609B (zh) | 一种vpn识别应用方法、装置、终端及存储介质 | |
CN113923008B (zh) | 一种恶意网站拦截方法、装置、设备及存储介质 | |
US9942766B1 (en) | Caller validation for end service providers | |
CN111064729B (zh) | 报文的处理方法及装置、存储介质和电子装置 | |
CN105306755A (zh) | 联络中心质检方法及装置 | |
CN114070624A (zh) | 一种报文监测的方法、装置、电子设备及介质 | |
CN114050917A (zh) | 音频数据的处理方法、装置、终端、服务器及存储介质 | |
CN113259386A (zh) | 恶意请求拦截方法、装置及计算机设备 | |
CN114726763A (zh) | Dpi***的业务识别能力的检测方法及*** | |
CN110768983B (zh) | 一种报文处理方法和装置 | |
CN117294672A (zh) | 相同ip地址并行网络通讯的方法、装置、介质及设备 | |
KR20120012229A (ko) | 불필요한 패킷 송수신 차단 장치 및 그 방법 | |
CN118041674A (zh) | 流量检测方法和装置 | |
CN117857112A (zh) | Dns污染处理方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |