CN111988346B - 数据泄露防护设备及报文处理方法 - Google Patents

数据泄露防护设备及报文处理方法 Download PDF

Info

Publication number
CN111988346B
CN111988346B CN201910426343.7A CN201910426343A CN111988346B CN 111988346 B CN111988346 B CN 111988346B CN 201910426343 A CN201910426343 A CN 201910426343A CN 111988346 B CN111988346 B CN 111988346B
Authority
CN
China
Prior art keywords
message
module
packet
user data
tcp connection
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
Application number
CN201910426343.7A
Other languages
English (en)
Other versions
CN111988346A (zh
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.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security Technologies 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 New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN201910426343.7A priority Critical patent/CN111988346B/zh
Priority to US17/423,817 priority patent/US11973741B2/en
Priority to JP2021565789A priority patent/JP7395615B2/ja
Priority to PCT/CN2020/089040 priority patent/WO2020233412A1/zh
Priority to EP20808962.3A priority patent/EP3890278B1/en
Publication of CN111988346A publication Critical patent/CN111988346A/zh
Application granted granted Critical
Publication of CN111988346B publication Critical patent/CN111988346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种DLP设备及报文处理方法,DLP设备接收用户设备发送的IP报文,IP报文包括TCP端口信息;根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接;若未建立第一TCP连接,则在IP报文是数据报文时,将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议;当用于传输IP报文的应用层协议被监听时,根据TCP端口信息,建立TCP连接对,TCP连接对包括第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。应用本申请实施例提供的技术方案,能够实现对任一TCP端口的监听,并解决由网桥瘫痪甚至内核崩溃引起的用户无法访问网络的问题。

Description

数据泄露防护设备及报文处理方法
技术领域
本申请涉及网络安全技术领域,特别是涉及一种数据泄露防护设备及报文处理方法。
背景技术
随着信息技术的飞速发展,互联网已成为日常办公、通信交流和协作互动的必备途径。但是,互联网在提高人们工作效率的同时,也对信息的存储以及计算机的访问控制提出了安全需求。然而,公司的内部人员利用互联网有意或者无意操作,经常会发生网络泄密等重大损失事件。为了解决该问题,数据泄露防护(英文:Data Leakage Prevention,简称:DLP)技术被提出。
目前,采用DLP技术进行安全防护时,通过网桥将DLP设备作为代理设备连接在用户设备与服务器之间。DLP设备监听指定的一个或多个传输控制协议(英文:TransmissionControl Protocol,简称:TCP)端口。DLP设备接收到用户设备发送的握手报文后,通过预设的防火墙规则,向指定的TCP端口映射握手报文。同时,DLP设备通过指定的TCP端口与用户设备建立TCP连接。另外,DLP设备通过指定的TCP端口与服务器建立TCP连接。
因此,DLP设备通过指定的TCP端口,分别与用户设备、服务器建立TCP连接,进而使得用户设备、服务器通过DLP设备向对端传输报文。
在上述数据泄露防护过程中,DLP设备尽可对指定的TCP端口执行监听操作;再次,数据泄露防护的实现依赖于操作系统提供的网桥和防火墙规则,若网桥瘫痪甚至内核崩溃,将导致DLP设备分别与用户设备、服务器建立的TCP连接断开,出现用户设备无法访问网络的问题。
发明内容
有鉴于此,本申请提供一种数据泄露防护设备及报文处理方法,以实现对任一TCP端口的监听,并解决由网桥瘫痪甚至内核崩溃引起的用户无法访问网络的问题。具体技术方案如下:
第一方面,本申请公开了一种DLP设备,DLP设备包括:
网卡用于,接收用户设备发送的网络协议(英文:Internet Protocol,简称:IP)报文,并向驱动模块发送IP报文,IP报文包括TCP端口信息;
驱动模块用于,接收IP报文,并将IP报文缓存至用户态缓存器;
转发模块用于,从用户态缓存器读取IP报文,形成与IP报文对应的结构体,并向代理模块发送结构体;
代理模块用于,接收结构体;根据结构体,获取TCP端口信息;根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接;若未建立第一TCP连接,则在IP报文是数据报文时,向DPI模块发送结构体;
深度包检测(英文:Deep Packet Inspection,简称:DPI)模块用于,接收结构体;根据结构体,获取IP报文的报文特征;将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议;当用于传输IP报文的应用层协议被监听时,向代理模块发送第一消息;
代理模块还用于,在接收到第一消息后,根据TCP端口信息,建立TCP连接对,TCP连接对包括第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。
结合第一方面,在第一种可能的实现方式中,代理模块还用于,在IP报文是握手报文时,则向转发模块发送第二消息;
转发模块还用于,接收第二消息;根据第二消息,向服务器发送IP报文,以使服务器根据IP报文与用户设备建立TCP连接。
结合第一方面,在第二种可能的实现方式中,DPI模块还用于,
对IP报文包括的第一用户数据的位置进行标记;
对IP报文进行解封装处理,根据标记的第一用户数据的位置,获取并缓存与第一用户数据的位置对应的第一用户数据;
获取预设的安全策略,安全策略包括匹配项和动作项;
从安全策略中,查找与第一用户数据匹配的目标匹配项,并执行目标匹配项对应的动作项。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,DPI模块具体用于,
当目标匹配项对应的动作项为报文放行时,则向代理模块发送第三消息,第三消息包括第一用户数据的第一存储位置;
代理模块还用于,接收第三消息;根据第一存储位置,查找第一用户数据;根据第二TCP连接的TCP端口信息,对第一用户数据进行封装处理,得到第二用户数据,第二用户数据包括TCP头部以及第一用户数据,并向转发模块发送第四消息,第四消息包括第二用户数据的第二存储位置;
转发模块还用于,接收第四消息;根据第二存储位置,查找第二用户数据;对第二用户数据进行封装处理,得到IP报文,并向服务器发送IP报文。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,DPI模块具体用于,
当目标匹配项对应的动作项为报文阻断时,则向代理模块发送第五消息,第五消息包括第一用户数据的第一存储位置和第一阻断数据;
代理模块还用于,接收第五消息;根据第一存储位置,释放第一用户数据;根据第一TCP连接的TCP端口信息,对第一阻断数据进行封装处理,得到第二阻断数据,第二阻断数据包括TCP头部以及第一阻断数据;向转发模块发送第二阻断数据;
转发模块还用于,接收第二阻断数据;对第二阻断数据进行封装处理,得到阻断报文;向用户设备发送阻断报文。
结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,DPI模块还用于,
判断是否已接收到属于同一原始数据的全部用户数据;
若已接收到属于同一原始数据的全部用户数据,则获取预设的安全策略。
结合第一方面的第二至五任一项种可能的实现方式,在第六种可能的实现方式中,DPI模块还用于,
当用于传输IP报文的应用层协议未被监听时,向代理模块发送第六消息;
代理模块还用于,接收并向转发模块发送第六消息;
转发模块还用于,接收第六消息;根据第六消息向服务器发送IP报文。
结合第一方面,在第七种可能的实现方式中,代理模块还用于,
若IP报文为采用安全套接字层(英文:Secure Sockets Layer,简称:SSL)协议的加密报文,则分别调用开放式安全套接字层(英文:Open Secure Sockets Layer,简称:OpenSSL)密码库的第一接口以及第二接口;
将调用的第一接口与第一TCP连接绑定,将调用的第二接口与第二TCP连接绑定。
第二方面,本申请公开了一种报文处理方法,应用于DLP设备,该方法包括:
接收用户设备发送的IP报文,IP报文包括TCP端口信息;
根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接;
若未建立第一TCP连接,则在IP报文是数据报文时,将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议;
当用于传输IP报文的应用层协议被监听时,根据TCP端口信息,建立TCP连接对,TCP连接对包括第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。
结合第二方面,在第一种可能的实现方式中,在IP报文是数据报文时,方法还包括:
在IP报文是握手报文时,向服务器发送IP报文,以使服务器根据IP报文与用户设备建立TCP连接。
结合第二方面,在第二种可能的实现方式中,该方法还包括:
对IP报文包括的第一用户数据的位置进行标记;
对IP报文进行解封装处理,根据标记的第一用户数据的位置,获取并缓存与第一用户数据的位置对应的用户数据;
获取预设的安全策略,安全策略包括匹配项和动作项;
从安全策略中,查找与第一用户数据匹配的目标匹配项,并执行目标匹配项对应的动作项。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,执行目标匹配项对应的动作项,包括:
当目标匹配项对应的动作项为报文放行时,根据第二TCP连接的TCP端口信息,对第一用户数据进行封装处理,得到IP报文;
向服务器发送IP报文。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,执行目标匹配项对应的动作项,包括:
当目标匹配项对应的动作项为报文阻断时,根据第一TCP连接的TCP端口信息,生成阻断报文;
向用户设备发送阻断报文。
结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,获取预设的安全策略,包括:
判断是否已接收到属于同一原始数据的全部用户数据;
若已接收到属于同一原始数据的全部用户数据,则获取预设的安全策略。
结合第二方面的第二至五任一项种可能的实现方式,在第六种可能的实现方式中,该方法还包括:
当用于传输IP报文的应用层协议未被监听时,向服务器发送IP报文。
结合第二方面,在第七种可能的实现方式中,该方法还包括:
若IP报文为采用SSL协议的加密报文,则分别调用OpenSSL密码库的第一接口以及第二接口;
将调用的第一接口与第一TCP连接绑定,将调用的第二接口与第二TCP连接绑定。
因此,本申请提供的技术方案中,DLP设备在确定用于传输IP报文的应用层协议被监听时,基于IP报文包括的TCP端口信息,建立DLP设备与用户设备之间的第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。可见,在本申请中,DLP设备在实现数据泄露防护的过程中,实现了对任一TCP端口的监听。另外,DLP设备也无需设置额外的网桥和防火墙规则,解决了由网桥瘫痪甚至内核崩溃引起的用户无法访问网络的问题。
当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种DLP软件架构示意图;
图2为本申请实施例提供的一种DLP设备的结构示意图;
图3为本申请实施例提供的一种HTTP报文的处理流程示意图;
图4为本申请实施例提供的另一种DLP设备的结构示意图;
图5为本申请实施例提供的一种IP报文的处理流程示意图;
图6为本申请实施例提供的代理模块的报文处理过程示意图;
图7为本申请实施例提供的DLP业务扫描子模块、代理模块的报文处理过程示意图;
图8为本申请实施例提供的一种报文处理方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了实现DLP设备对任一TCP端口的监听,并解决由网桥瘫痪甚至内核崩溃引起的用户无法访问网络的问题。本申请实施例提供了一种DLP设备。如图1所示的DLP软件架构。该DLP软件架构包括DLP管理平台和DLP设备。DLP管理平台用于为用户提供了一个管理、操作DLP设备的平台。
具体的,DLP管理平台包括DLP事件展示模块和DLP策略制定模块。
其中,DLP事件展示模块用于,展示DLP设备发送的DLP事件。DLP事件为:DLP设备对DLP业务进行扫描处理后的处理结果。处理结果包括放行报文和阻断报文等。
DLP策略制定模块用于,接收用户输入的安全策略,并向DLP设备发送安全策略。
DLP设备包括驱动模块、IP报文转发模块、DLP预处理模块、应用(英文:Application,简称:App)代理入口、App代理出口、TCP代理与SSL卸载模块、DPI引擎、DLP业务扫描模块和DLP通信模块等。
其中,驱动模块用于,将网卡接收到IP报文映射至用户态缓存器中。
IP报文转发模块用于,转发IP报文。IP报文转发模块可以实现完整的DLP设备的IP报文的转发功能。
DLP预处理模块用于,对IP报文分片进行重组、TCP报文分片进行重组等报文预处理操作。
TCP代理与SSL卸载模块用于,管理TCP用户态协议栈和OpenSSL密码库。
中间缓存用于,缓存DLP设备在处理IP报文的过程中产生的数据。
TCP入口用于,在DLP设备接收到IP报文时,为App代理入口提供IP报文对应的结构体,其中,IP报文包括该TCP入口的TCP端口信息。
TCP出口用于,在DLP设备发送IP报文时,为App代理出口提供该TCP入口的TCP端口信息。
App代理入口用于,调用TCP用户态协议栈建立TCP入口和TCP出口;接收IP报文转发模块通过TCP入口向APP代理入口发送的IP报文对应的结构体;调用OpenSSL密码库,对IP报文的用户数据解密,缓存至中间缓存;向DPI引擎发送结构体。
DPI引擎用于,接收App代理入口发送的结构体,对IP报文进行协议分析,确定用于传输IP报文的应用层协议,并还原IP报文包括的用户数据。
DLP业务扫描模块用于,接收DPI引擎发送的扫描消息,对DLP业务进行扫描处理。具体的,从安全策略中,查找与用户数据匹配的目标匹配项;根据目标匹配项对应的动作项,向APP代理出口发送对应的消息。
APP代理出口用于,接收DLP业务扫描模块发送消息,调用TCP出口,指示IP报文转发模块转发报文,或释放缓存的IP报文。
DLP通信模块用于,获取DLP业务扫描模块对DLP业务进行扫描处理后的处理结果,向DLP管理平台发送处理结果;接收DLP管理平台发送安全策略。
在本申请实施例中,DLP设备在确定用于传输IP报文的应用层协议被监听时,基于IP报文包括的TCP端口信息,建立DLP设备与用户设备之间的第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。
可见,DLP设备在实现数据泄露防护的过程中,实现了对任一TCP端口的监听。另外,DLP设备也无需设置额外的网桥和防火墙规则,解决了由网桥瘫痪甚至内核崩溃引起的用户无法访问网络的问题。
下面通过具体实施例,对本申请实施例提供的DLP设备以及报文处理方法进行说明。
参考图2,图2为本申请实施例提供的一种DLP设备的示意图。该DLP设备包括:网卡104、驱动模块100、转发模块101、代理模块102和DPI模块103。其中,驱动模块100、转发模块101、代理模块102和DPI模块103可以为软件模块,即由中央处理器(英文:CentralProcessing Unit,简称:CPU)运行软件程序实现的模块。
其中,网卡104用于,接收用户设备发送的IP报文,并向驱动模块100发送IP报文。IP报文包括IP头部、TCP头部等信息。其中,TCP头包括TCP端口信息。IP报文可以为协议报文,也可以为数据报文。
驱动模块100用于,接收IP报文,并将IP报文缓存至用户态缓存器。
本申请实施例中,缓存器包括内核态缓存器和用户态缓存器。DLP设备向内核态缓存器缓存数据的速率高于向用户态缓存器缓存数据的速率。上层应用可直接调用用户态缓存器中存储的数据,但是无法调用内核态缓存器。
一个示例中,驱动模块100接收IP报文,可以将IP报文先存储至内核态缓存器。之后,驱动模块100再将IP报文从内核态缓存器拷贝至用户态缓存器中。
另一个示例中,驱动模块100接收IP报文,可以将IP报文存储至用户态缓存器。这样,驱动模块100不必将IP报文从内核态缓存器拷贝至用户态缓存器,有效提高了报文处理效率。
一个示例中,驱动模块100可以采用CPU提供的零拷贝技术驱动模块,如数据平面开发套件(英文:Data Plane Development Kit,简称:DPDK)驱动模块,这可以实现将接收的IP报文,跳过内核态缓存器,直接缓存至用户态缓存器。
转发模块101用于,从用户态缓存器读取IP报文,形成与IP报文对应的结构体,并向代理模块102发送结构体。
本申请实施例中,转发模块101用于实现IP报文的转发,并在转发的各个阶段调用上层业务端口对IP报文进行处理。
具体的,转发模块101可以从用户态缓存器读取IP报文,对IP报文进行分析,形成与IP报文对应的结构体。其中,IP报文的结构体可以包括IP报文的IP头信息、TCP头信息、IP报文的存储位置等。转发模块101将IP报文对应的结构体发送给代理模块102。
代理模块102用于,接收结构体;根据结构体,获取TCP端口信息;根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接;若未建立第一TCP连接,则在IP报文是数据报文时,向DPI模块103发送IP报文的结构体。
代理模块102接收到转发模块101上送的结构体后,可以从结构体中获取到TCP端口信息;也可以基于结构体确定IP报文的存储位置,并根据存储位置,找到IP报文,从IP报文中提取到TCP端口信息。代理模块102根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接。
在一个可选的实施例中,DLP设备可以设置TCP连接列表。TCP连接列表包括:DLP设备与用户设备之间建立的TCP连接的TCP端口信息。基于此,上述代理模块102根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接的过程,可通过下述方式实现。
具体地,代理模块102根据获取的TCP端口信息,检测TCP连接列表中是否包括该TCP端口信息。若包括,则代理模块102确定DLP设备与用户设备之间建立了第一TCP连接。若未包括,则代理模块102确定DLP设备与用户设备之间未建立第一TCP连接。
若已建立第一TCP连接,则代理模块102向DPI模块103发送IP报文的结构体。DPI模块103对IP报文进行协议识别。
若未建立第一TCP连接,则代理模块102检测IP报文的报文类型,即检测IP报文为协议报文,还是数据报文。在本申请实施例中,协议报文可具体为握手报文,下述实施例以握手报文为例进行说明。
握手报文为用于建立设备之间TCP连接的报文。如果IP报文是数据报文,则代理模块102向DPI模块103发送IP报文对应的结构体。
DPI模块103用于,接收结构体;根据结构体,获取IP报文的报文特征;将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议;当用于传输IP报文的应用层协议被监听时,向代理模块102发送第一消息。
其中,第一消息指示:用于传输IP报文的应用层协议被监听。IP报文的报文特征可以包括:IP报文的五元组信息、报文的长度、特征关键字等。
DPI模块103接收到结构体后,对IP报文进行协议识别。具体的,DPI模块103根据结构体,确定IP报文的存储位置,并根据存储位置,找到IP报文,获取IP报文的报文特征;将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议。
本申请实施例中,DLP设备中预先已配置了各个应用层协议对应的报文特征。例如,应用层协议有协议1和协议2。DLP设备中预先已配置了各个应用层协议对应的报文特征包括:协议1对应的报文特征为x和xx,协议2对应的报文特征为y和yy。
若DPI模块103获取到一个IP报文的报文特征为x和xx,则确定该IP报文的报文特征与协议1对应的报文特征匹配,协议1为用于传输该IP报文的应用层协议。
DPI模块103在确定用于传输IP报文的应用层协议后,检测用于传输IP报文的应用层协议是否为预设的被监听的应用层协议。若是,则DPI模块103向代理模块发送第一消息。
其中,作为示例而非限定,第一消息可以为一个函数返回值。该函数返回值具体为DPI模块103和代理模块102在先协商的结果。例如,0表示被监听,1表示未被监听。若DPI模块103确定用于传输IP报文的应用层协议被监听,则向代理模块102发送函数值0。
上述函数可以为Fun()函数、get()函数等。本申请实施例对此不做具体限定。本申请实施例中,仅以0表示被监听,1表示未被监听为例进行说明,并不起限定作用。例如,3表示被监听,4表示未被监听。
代理模块102还用于,在接收到第一消息后,根据IP报文的TCP端口信息,建立TCP连接对。其中,TCP连接对包括第一TCP连接,以及DLP设备与所述服务器之间的第二TCP连接。
代理模块102接收到第一消息后,确定用于传输IP报文的应用层协议被监听,利用TCP用户态协议栈,根据IP报文的TCP端口信息,与用户设备建立第一TCP连接,并且与服务器建立第二TCP连接。
可以理解的是,建立第一TCP连接所使用的TCP端口信息与IP报文包括的TCP端口信息相同;同理,建立第二TCP连接所使用的TCP端口信息与IP报文包括的TCP端口信息也相同。即使DLP设备将用户设备与服务器间的TCP连接划分为了第一TCP连接和第二TCP连接,即DLP设备打断用户设备与服务器间的TCP连接,也不会改变用户设备发送的IP报文的TCP端口等信息,降低了服务器发现IP报文被代理的风险。
在本申请实施例中,对于DLP设备建立的TCP连接,如上述第一TCP连接和第二TCP连接。DLP设备均可监听用于建立这些TCP连接的TCP端口。基于此,DLP设备在实现数据泄露防护的过程中,不再对指定的TCP端口进行监听,实现了对任一TCP端口的监听。
可选地,在本申请实施例中,代理模块102在检测IP报文的报文类型的过程中,如果IP报文是协议报文(例如,握手报文),则向转发模块101发送第二消息。
其中,第二消息用于指示IP报文为协议报文。
转发模块101在接收到第二消息后,根据第二消息,确定IP报文是协议报文。转发模块101从用户态缓存器中读取IP报文,并向服务器发送该IP报文。服务器根据该IP报文与用户设备建立TCP连接。这样,减少了DLP设备处理的报文数量,降低了DLP设备的负担,且用户设备直接与服务器建立TCP连接,降低了服务器发现IP报文被代理的风险。
其中,作为示例而非限定,第二消息可以为一个函数返回值。该函数返回值具体为代理模块102和转发模块101在先协商的结果。例如,0表示IP报文是协议报文,1表示IP报文是数据报文。若DPI模块103检测到IP报文为协议报文,则向代理模块102发送函数值0。若DPI模块103检测到IP报文为数据报文,则向代理模块102发送函数值1。
上述函数可以为Fun()函数、get()函数等。本申请实施例对此不做具体限定。本申请实施例中,仅以,0表示IP报文是协议报文,1表示IP报文是数据报文为例进行说明,并不起限定作用。例如,3表示IP报文是协议报文,4表示IP报文是数据报文。
可选地,在本申请实施例中,DPI模块103还用于执行深度包检测步骤,进而实现数据泄露防护。
具体地,IP报文还包括第一用户数据。首先,在DPI模块103确定用于传输IP报文的应用层协议被监听时,DPI模块103对第一用户数据的位置进行标记。也即是,DPI模块103对第一用户数据在IP报文中所处的具体字节标记。
然后,DPI模块103对IP报文进行解封装处理,得到去掉封装头部的内层报文。DPI模块103根据标记的第一用户数据的位置,获取并缓存与第一用户数据的位置对应的第一用户数据。
最后,DPI模块103获取预设的安全策略,安全策略包括匹配项和动作项。DPI模块103从安全策略中,查找与第一用户数据匹配的目标匹配项,并执行目标匹配项对应的动作项。
可选地,在本申请实施例中,DPI模块103还用于执行判断是否接收到属于同一原始数据的用户数据的步骤,进而实现准确的对原始数据进行深度包检测。
具体地,DPI模块103判断是否已接收到属于同一原始数据的全部用户数据。若已接收到属于同一原始数据的全部用户数据,即还原出原始数据,则DPI模块103获取预设的安全策略,从安全策略中,查找与用户数据匹配的目标匹配项。若未接收到属于同一原始数据的全部用户数据,则DPI模块103重复执行判断是否已接收到属于同一原始数据的全部用户数据的过程。
可以理解的是,发送端将待传输的原始数据放在一个应用层报文中进行传输。当待传输的原始数据的长度(或字节数)较大时,发送端需对应用层报文进行分片处理。也就是,发送端将一个应用层报文划分为多个IP包进行传输。上述一个IP包即为一个IP报文。接收端在接收到应用层报文的全部IP报文分片后,还原出待传输的原始数据。其中,应用层报文包括超文本传输协议(英文:Hyper Text Transport Protocol,简称:HTTP)报文、简单邮件传输协议(英文:Simple Mail Transfer Protocol,简称:SMTP)报文和文件传输协议(英文:File Transfer Protocol,简称:FTP)报文等。
一个示例中,DPI模块103可采用如下方式判断是否已接收到属于同一原始数据的全部用户数据。
具体的,一个应用层报文划分为多个IP报文时,第一个IP报文中携带有应用层报文的起始标记,最后一个IP报文中携带有应用层报文的结束标记。DPI模块103获取到属于同一应用层报文的起始标记和结束标记时,DPI模块103可确定接收到一个完整的应用层报文,进而确定接收到属于同一原始数据的全部用户数据。
例如,如图3所示的HTTP报文的处理流程。一个HTTP报文被划分为多个IP报文,DLP设备接收到第一个IP报文时,DPI模块103从第一个IP报文中提取到起始标记。可以理解的是,在HTTP报文传输时,设备只有将HTTP报文的一个IP报文放行,并接收到该IP报文对应的响应报文后,才会发送HTTP报文的下一个IP报文。
因此,DPI模块103缓存第一个IP报文中的用户数据,并放行第一个IP报文。同理,DLP设备接收到HTTP报文的最后一个IP报文前,缓存HTTP报文中每一个IP报文中的用户数据,并放行HTTP报文中每一个IP报文。DLP设备接收到HTTP报文的最后一个IP报文后,DPI模块103从HTTP报文的最后一个IP报文中提取到结束标记。此时,DPI模块103确定接收到完整的HTTP报文,即接收到属于同一原始数据的全部用户数据。DPI模块103获取预设的安全策略,从安全策略中,查找与原始数据匹配的目标匹配项,并执行目标匹配项对应的动作项。
可选地,在本申请实施例中,安全策略包括的动作项包括两种动作类型,即报文放行和报文阻断。
在一种实现方式中,当目标匹配项对应的动作项为报文放行时,则DPI模块103向代理模块102发送第三消息。第三消息用于指示放行IP报文,且第三消息包括第一用户数据的第一存储位置。
代理模块102接收到第三消息后,确定放行IP报文,根据第一存储位置查找第一用户数据。代理模块102根据第二TCP连接的TCP端口信息,对第一用户数据进行封装处理,得到第二用户数据。第二用户数据包括TCP头部以及第一用户数据。代理模块102向转发模块101发送第四消息。第四消息用于指示放行IP报文,且第四消息包括第二用户数据的第二存储位置。
转发模块101接收到第四消息后,确定放行IP报文,根据第二存储位置,查找第二用户数据。转发模块101对第二用户数据进行封装处理,得到IP报文,并向服务器发送IP报文。可以理解的是,转发模块101对第二用户数据进行封装处理得到的IP报文与上述网卡104接收到的IP报文相同。
在另一种实现方式中,当目标匹配项对应的动作项为报文阻断时,则DPI模块103向代理模块102发送第五消息,第五消息用于指示阻断IP报文,且第五消息包括第一用户数据的第一存储位置和第一阻断数据。其中,第一阻断数据可以为DLP设备预先设置的一个字符串。
代理模块102接收到第五消息后,根据第一存储位置,查找并释放第一用户数据。另外,代理模块102根据第一TCP连接的TCP端口信息,对第一阻断数据进行封装处理,得到第二阻断数据,第二阻断数据包括TCP头部以及第一阻断数据。代理模块102向转发模块发送第二阻断数据。
转发模块101接收到第二阻断数据后,对第二阻断数据进行封装处理,得到阻断报文。转发模块101代替服务器,向用户设备发送阻断报文。一个示例中,阻断报文可以为“403禁用(Forbidden)”阻断报文。其中,“403禁用(Forbidden)”可以理解为第一阻断数据。
用户设备接收到阻断报文后,可确定本次访问失败,访问数据出现错误。
其中,作为示例而非限定,第三消息和第五消息可以为一函数返回值。该函数返回值为DPI模块103和代理模块102在先协商的结果。例如,3表示放行报文,4表示阻断报文。若DPI模块103确定目标匹配项对应的动作项为报文放行,向代理模块102发送函数值3。若DPI模块103确定目标匹配项对应的动作项为报文阻断,向代理模块102发送函数值4。
上述函数可以为Fun()函数、get()函数等。本申请实施例对此不做具体限定。本申请实施例中,仅以3表示放行报文,4表示阻断报文为例进行说明,并不起限定作用。例如,1表示放行报文,0表示阻断报文。
同理,第四消息可以为一函数返回值。该函数返回值为转发模块101和代理模块102在先协商的结果。例如,3表示放行报文,4表示阻断报文。若代理模块102接收到第三消息后,向转发模块101发送发送函数值3。若代理模块102接收到第五消息后,向转发模块101发送发送函数值4。
上述函数可以为Fun()函数、get()函数等。本申请实施例对此不做具体限定。本申请实施例中,仅以3表示放行报文,4表示阻断报文为例进行说明,并不起限定作用。例如,1表示放行报文,0表示阻断报文。
可选地,在本申请实施例中,DPI模块103还用于执行当用于传输所述IP报文的应用层协议未被监听时,向代理模块102发送第六消息的过程,进而实现快速地转发IP报文。
具体的,当用于传输IP报文的应用层协议未被监听时,DPI模块103向代理模块102发送第六消息。第六消息指示:用于传输IP报文的应用层协议未被监听。
代理模块102接收并向转发模块101发送第六消息。转发模块101接收到第六消息后,根据第六消息,确定用于传输IP报文的应用层协议未被监听,从用户态缓存器中读取出IP报文,并向服务器发送IP报文。此时,DPI模块103未对IP报文进行深度包检测,提高了IP报文的转发效率。
其中,作为示例而非限定,第六消息可以为一个函数返回值。该函数返回值具体为DPI模块103和代理模块102在先协商的结果。例如,0表示被监听,1表示未被监听。若DPI模块103确定用于传输IP报文的应用层协议未被监听,则向代理模块102发送函数值1。
可选地,在本申请实施例中,如图4所示,DPI模块103可以包括DPI协议解析子模块1031、数据还原子模块1032和DLP业务扫描子模块1033。基于图4所示的DLP设备,IP报文的处理流程如图5所示。
具体的,驱动模块100接收IP报文,并将IP报文缓存至用户态缓存器。
转发模块101从用户态缓存器读取IP报文,形成与IP报文对应的结构体,并向代理模块发送结构体。
代理模块102接收结构体,根据结构体,获取TCP端口信息;根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接;若未建立第一TCP连接,则在IP报文是数据报文时,向DPI协议解析子模块1031发送结构体。
DPI协议解析子模块1031接收代理模块101发送的结构体。根据结构体确定IP报文的存储位置,并根据存储位置,找到IP报文。在传统的应用层协议识别的基础上,DPI协议解析子模块1031对IP报文进行协议识别,并确定用于传输IP报文的应用层协议。DPI协议解析子模块1031判断用于传输IP报文的应用层协议是否被监听。若用于传输IP报文的应用层协议被监听,则DPI协议解析子模块1031分析并标记IP报文包括的第一用户数据的位置,并向数据还原子模块1032发送标记的第一用户数据的位置。
数据还原子模块1032对IP报文进行解封装处理,根据标记的第一用户数据的位置,获取并缓存与第一用户数据的位置对应的第一用户数据。数据还原子模块1032判断是否已接收到属于同一原始数据的全部用户数据。若未接收到属于同一原始数据的全部用户数据,数据还原子模块1032缓存第一用户数据。若已接收到属于同一原始数据的全部用户数据,数据还原子模块1032并调用DLP业务扫描子模块1033注册的端口,向DLP业务扫描子模块1033发送扫描消息。扫描消息包括第一用户数据的第一存储位置。
DLP业务扫描子模块1033接收到扫描消息后,根据第一存储位置获取第一用户数据。DLP业务扫描子模块1033获取预设的安全策略,从安全策略中,查找与第一用户数据匹配的目标匹配项,根据目标匹配项对应的动作项,向代理模块102发送相应的消息。
例如,当目标匹配项对应的动作项为报文放行时,DLP业务扫描子模块1033向代理模块102发送第三消息。当目标匹配项对应的动作项为报文阻断时,DLP业务扫描子模块1033向代理模块102发送第五消息。
可选的,本申请实施例中,DLP业务扫描子模块1033查找到与第一用户数据匹配的目标匹配项后,目标匹配项对应的动作项,向DPI协议解析子模块1031发送目标匹配项对应的动作项。DPI协议解析子模块1031向代理模块102发送相应的消息。
例如,当目标匹配项对应的动作项为报文放行时,DPI协议解析子模块1031向代理模块102发送第三消息。当目标匹配项对应的动作项为报文阻断时,DPI协议解析子模块1031向代理模块102发送第五消息。
若代理模块102接收到第三消息,根据第一存储位置,查找第一用户数据;根据第二TCP连接的TCP端口信息,对第一用户数据进行封装处理,得到第二用户数据,第二用户数据包括TCP头部以及第一用户数据,并向转发模块101发送第四消息。转发模块101接收第四消息,根据第二存储位置,查找第二用户数据;对第二用户数据进行封装处理,得到IP报文,并向服务器发送IP报文。
若代理模块102接收到第五消息,根据第一存储位置,释放第一用户数据;根据第一TCP连接的TCP端口信息,对第一阻断数据进行封装处理,得到第二阻断数据,第二阻断数据包括TCP头部以及第一阻断数据;向转发模块101发送第二阻断数据。转发模块101接收第二阻断数据;对第二阻断数据进行封装处理,得到阻断报文;向用户设备发送阻断报文。
若代理模块102检测到DLP设备与用户设备之间未建立第一TCP连接,则在IP报文是握手报文时,向转发模块101发送第二消息。
转发模块101接收第二消息,根据第二消息,向服务器发送IP报文。
DPI协议解析子模块1031若确定用于传输IP报文的应用层协议未被监听,则向代理模块102发送第六消息。
代理模块102接收并向转发模块101发送第六消息。
转发模块101接收第六消息,根据第六消息向服务器发送IP报文。
为便于理解,结合图6所示的代理模块的报文处理过程示意图,对代理模块处理流程进行解释说明。
步骤601,代理模块102接收转发模块101发送的结构体,根据结构体,获取TCP端口信息。
步骤602,代理模块102根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接。若未建立第一TCP连接,则执行步骤603。若建立第一TCP连接,则执行步骤605。
步骤603,代理模块102检测IP报文是否是握手报文。若是握手报文,则执行步骤604。若不是握手报文,也就是IP报文是数据报文,则执行步骤605。
步骤604,代理模块102向转发模块101发送第二消息。
转发模块101接收到第二消息后,根据第二消息,向服务器发送IP报文。
步骤605,代理模块102向DPI模块103发送结构体。
DPI模块103根据结构体,获取IP报文的报文特征。DPI模块103将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议。当用于传输IP报文的应用层协议被监听时,DPI模块103向代理模块102发送第一消息。当用于传输IP报文的应用层协议未被监听时,DPI模块103向代理模块102发送第六消息。
步骤606,代理模块102若接收到第六消息,确定用于传输IP报文的应用层协议未被监听,执行步骤607。若接收到第一消息,确定用于传输IP报文的应用层协议被监听,执行步骤608。
步骤607,代理模块102向转发模块101发送第六消息。
转发模块101接收到第六消息后,根据第六消息,向服务器发送IP报文。
步骤608,代理模块102根据TCP端口信息,建立TCP连接对,TCP连接对包括第一TCP连接以及第二TCP连接。
上述步骤601-608部分的描述比较简单,具体的可参考图1-5部分的相关描述。
为便于理解,结合图7所示的DLP业务扫描子模块、代理模块的报文处理过程意图,对报文处理流程进行解释说明。
步骤701,DLP业务扫描子模块1033接收数据还原子模块1032发送的扫描消息。
步骤702,DLP业务扫描子模块1033根据扫描消息,获取预设的安全策略,从安全策略中,查找与第一用户数据匹配的目标匹配项。
步骤703,DLP业务扫描子模块1033若未查找目标匹配项,则执行步骤704。若查找目标匹配项,则执行步骤706。
步骤704,DLP业务扫描子模块1033调用代理模块102,向代理模块102发送第三消息。
步骤705,代理模块102查找第一用户数据;根据第二TCP连接的TCP端口信息,对第一用户数据进行封装处理,得到第二用户数据,并向转发模块101发送第四消息。
步骤706,DLP业务扫描子模块1033若确定目标匹配项对应的动作项为报文放行,则执行步骤704。DLP业务扫描子模块1033若确定目标匹配项对应的动作项为报文阻断,则执行步骤707。
步骤707,DLP业务扫描子模块1033调用代理模块102,向代理模块102发送第五消息。
步骤708,代理模块102释放第一用户数据;根据第一TCP连接的TCP端口信息,对第一阻断数据进行封装处理,得到第二阻断数据;向转发模块101发送第二阻断数据。
上述步骤701-708部分的描述比较简单,具体的可参考图1-5部分的相关描述。
可选地,在本申请实施例中,代理模块102还可以用于在IP报文为SSL协议的加密报文时,执行建立SSL协议连接的过程。通过建立SSL协议连接,实现对SSL协议的加密报文包括的用户数据进行解密处理,得到明文的用户数据,进而实现数据泄露防护的过程。
具体的,若IP报文为SSL协议的加密报文,则代理模块102分别调用OpenSSL密码库的第一接口和第二接口。代理模块102将调用的第一接口与第一TCP连接绑定,并将调用的第二接口与第二TCP连接绑定,从而完成SSL协议连接的建立。
代理模块102接收到IP报文对应的结构体后,根据结构体确定IP报文的存储位置,并根据存储位置,找到IP报文。代理模块102基于第一TCP连接绑定的第一接口调用OpenSSL密码库,对IP报文包括的用户数据进行解密处理,得到明文的用户数据。代理模块102将明文的用户数据的存储位置发送给DPI模块103。
代理模块102在接收到DPI模块103发送的第三消息后,基于第二TCP连接绑定的第二接口调用OpenSSL密码库,对IP报文包括的用户数据进行加密处理,得到密文的用户数据,并对密文的用户数据进行封装处理。
若代理模块102接收到IP报文是明文报文,如HTTP报文、SMTP报文和FTP报文等,则代理模块102可不对IP报文进行处理。
基于上述提供的DLP设备实施例,本申请实施例还提供了一种报文处理方法。参考图8,图8为本申请实施例提供的一种报文处理方法的流程示意图。该方法应用于DLP设备,该报文处理方法包括如下步骤。
步骤801,接收用户设备发送的IP报文。
其中,IP报文包括IP头、TCP头等信息。其中,TCP头包括TCP端口信息。IP报文可以为协议报文,也可以为数据报文。
DLP设备设置在用户设备和服务器之间。用户设备通过DLP设备向服务器发送IP报文。
步骤802,根据TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接。若未建立第一TCP连接,则DLP设备执行步骤803。
DLP设备接收到IP报文后,获取IP报文的TCP端口信息。DLP设备根据获取的TCP端口信息,检测DLP设备与用户设备之间是否建立第一TCP连接。若未建立第一TCP连接,则DLP设备执行步骤803。
步骤803,在IP报文是数据报文时,将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议。
DLP设备若检测到未建立第一TCP连接,则检测IP报文的报文类型,即检测IP报文是数据报文,还是协议报文。在本申请实施例中,协议报文可具体为握手报文,下述实施例以握手报文为例进行说明。若检测到IP报文是数据报文,则DLP设备将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议。
步骤804,当用于传输IP报文的应用层协议被监听时,根据TCP端口信息,建立TCP连接对,TCP连接对包括第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。
当用于传输IP报文的应用层协议被监听时,DLP设备根据TCP端口信息,与用户设备建立第一TCP连接。DLP设备根据TCP端口信息,与服务器建立第二TCP连接。DLP设备后续通过第一TCP连接和第二TCP连接传输IP报文,不改变IP报文的TCP端口信息,降低了服务器发现IP报文被代理的风险。
可选地,在本申请实施例中,在IP报文是握手报文时,DLP设备放行IP报文,即向服务器发送IP报文。服务器根据IP报文,与用户设备建立TCP连接。这样,减少了DLP设备处理的报文数量,降低了DLP设备的负担,且用户设备直接与服务器建立TCP连接,降低了服务器发现IP报文被代理的风险。
可选地,在本申请实施例中,若DLP设备检测到建立了第一TCP连接,则将IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输IP报文的应用层协议。DLP设备不需要检测IP报文的报文类型,减小了DLP设备的负担。
可选地,在本申请实施例中,当用于传输IP报文的应用层协议未被监听时,DLP设备放行IP报文,即向服务器发送IP报文。DLP设备不对IP报文进行处理,降低了DLP设备的负担。
可选地,在本申请实施例中,在IP报文是数据报文时,DLP设备还可以对IP报文包括的第一用户数据的位置进行标记,对IP报文进行解封装处理,根据标记的第一用户数据的位置,获取并缓存与第一用户数据的位置对应的第一用户数据。DLP设备获取预设的安全策略。安全策略包括匹配项和动作项。DLP设备从安全策略中,查找与第一用户数据匹配的目标匹配项,并执行目标匹配项对应的动作项。
其中,动作项包括报文放行和报文阻断。一个示例中,当目标匹配项对应的动作项为报文放行时,DLP设备根据第二TCP连接的TCP端口信息,对第一用户数据进行封装处理,得到IP报文,向服务器发送IP报文。
另一个示例中,当目标匹配项对应的动作项为报文阻断时,DLP设备根据第一TCP连接的TCP端口信息,生成阻断报文。DLP设备代替服务器,向用户设备发送阻断报文,提高了网络的安全性。
可选地,在本申请实施例中,若IP报文为采用SSL协议的加密报文,为了准确的对用户数据进行数据泄露防护处理,DLP设备分别调用OpenSSL密码库的第一接口以及第二接口,将调用的第一接口与第一TCP连接绑定,并将调用的第二接口与第二TCP连接绑定。这样DLP设备就可以完成对用户数据的SSL加解密的过程,能够得到明文的用户数据,正确的对用户数据进行数据泄露防护处理。
本申请实施例提供的技术方案中,DLP设备在确定用于传输IP报文的应用层协议被监听时,基于IP报文包括的TCP端口信息,建立DLP设备与用户设备之间的第一TCP连接,以及DLP设备与服务器之间的第二TCP连接。可见,在本申请中,DLP设备在实现数据泄露防护的过程中,实现了对任一TCP端口的监听。另外,DLP设备无需设置额外的网桥和防火墙规则,解决了由网桥瘫痪甚至内核崩溃引起的用户无法访问网络的问题。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于DLP设备实施例,所以描述的比较简单,相关之处参见DLP设备实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (16)

1.一种数据泄露防护DLP设备,其特征在于,所述DLP设备包括:
网卡用于,接收用户设备发送的网络协议IP报文,并向驱动模块发送所述IP报文,所述IP报文包括传输控制协议TCP端口信息;
驱动模块用于,接收所述IP报文,并将所述IP报文缓存至用户态缓存器;
转发模块用于,从所述用户态缓存器读取所述IP报文,形成与所述IP报文对应的结构体,并向代理模块发送所述结构体;
所述代理模块用于,接收所述结构体;根据所述结构体,获取所述TCP端口信息;根据所述TCP端口信息,检测所述DLP设备与所述用户设备之间是否建立第一TCP连接;若未建立所述第一TCP连接,则在所述IP报文是数据报文时,向DPI模块发送所述结构体;
所述DPI模块用于,接收所述结构体;根据所述结构体,获取所述IP报文的报文特征;将所述IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输所述IP报文的应用层协议;当用于传输所述IP报文的应用层协议被监听时,向所述代理模块发送第一消息;
所述代理模块还用于,在接收到所述第一消息后,根据所述TCP端口信息,建立TCP连接对,所述TCP连接对包括所述第一TCP连接,以及所述DLP设备与服务器之间的第二TCP连接。
2.根据权利要求1所述的DLP设备,其特征在于,所述代理模块还用于,在所述IP报文是握手报文时,则向所述转发模块发送第二消息;
所述转发模块还用于,接收所述第二消息;根据所述第二消息,向所述服务器发送所述IP报文,以使所述服务器根据所述IP报文与所述用户设备建立TCP连接。
3.根据权利要求1所述的DLP设备,其特征在于,所述DPI模块还用于,
对所述IP报文包括的第一用户数据的位置进行标记;
对所述IP报文进行解封装处理,根据标记的所述第一用户数据的位置,获取并缓存与所述第一用户数据的位置对应的所述第一用户数据;
获取预设的安全策略,所述安全策略包括匹配项和动作项;
从所述安全策略中,查找与所述第一用户数据匹配的目标匹配项,并执行所述目标匹配项对应的动作项。
4.根据权利要求3所述的DLP设备,其特征在于,所述DPI模块具体用于,
当所述目标匹配项对应的动作项为报文放行时,则向所述代理模块发送第三消息,所述第三消息包括所述第一用户数据的第一存储位置;
所述代理模块还用于,接收所述第三消息;根据所述第一存储位置,查找所述第一用户数据;根据所述第二TCP连接的TCP端口信息,对所述第一用户数据进行封装处理,得到第二用户数据,所述第二用户数据包括TCP头部以及所述第一用户数据,并向所述转发模块发送第四消息,所述第四消息包括所述第二用户数据的第二存储位置;
所述转发模块还用于,接收所述第四消息;根据所述第二存储位置,查找所述第二用户数据;对所述第二用户数据进行封装处理,得到所述IP报文,并向所述服务器发送所述IP报文。
5.根据权利要求3所述的DLP设备,其特征在于,所述DPI模块具体用于,
当所述目标匹配项对应的动作项为报文阻断时,则向所述代理模块发送第五消息,所述第五消息包括所述第一用户数据的第一存储位置和第一阻断数据;
所述代理模块还用于,接收所述第五消息;根据所述第一存储位置,释放所述第一用户数据;根据所述第一TCP连接的TCP端口信息,对所述第一阻断数据进行封装处理,得到第二阻断数据,所述第二阻断数据包括TCP头部以及所述第一阻断数据;向所述转发模块发送第二阻断数据;
所述转发模块还用于,接收所述第二阻断数据;对所述第二阻断数据进行封装处理,得到阻断报文;向所述用户设备发送所述阻断报文。
6.根据权利要求3所述的DLP设备,其特征在于,所述DPI模块还用于,
判断是否已接收到属于同一原始数据的全部用户数据;
若已接收到属于同一原始数据的全部用户数据,则获取预设的安全策略。
7.根据权利要求3-6任一项所述的DLP设备,其特征在于,所述DPI模块还用于,
当用于传输所述IP报文的应用层协议未被监听时,向所述代理模块发送第六消息;
所述代理模块还用于,接收并向所述转发模块发送所述第六消息;
所述转发模块还用于,接收所述第六消息;根据所述第六消息向所述服务器发送所述IP报文。
8.根据权利要求1所述的DLP设备,其特征在于,所述代理模块还用于,
若所述IP报文为采用安全套接字层SSL协议的加密报文,则分别调用开放式安全套接字层OpenSSL密码库的第一接口以及第二接口;
将调用的第一接口与所述第一TCP连接绑定,将调用的第二接口与所述第二TCP连接绑定。
9.一种报文处理方法,其特征在于,应用于DLP设备,包括:
接收用户设备发送的网络协议IP报文,所述IP报文包括传输控制协议TCP端口信息;
根据所述TCP端口信息,检测所述DLP设备与所述用户设备之间是否建立第一TCP连接;
若未建立所述第一TCP连接,则在所述IP报文是数据报文时,将所述IP报文的报文特征与各个应用层协议对应的报文特征匹配,确定用于传输所述IP报文的应用层协议;
当用于传输所述IP报文的应用层协议被监听时,根据所述TCP端口信息,建立TCP连接对,所述TCP连接对包括所述第一TCP连接,以及所述DLP设备与服务器之间的第二TCP连接。
10.根据权利要求9所述的方法,其特征在于,在所述IP报文是数据报文时,所述方法还包括:
在所述IP报文是握手报文时,向所述服务器发送所述IP报文,以使所述服务器根据所述IP报文与所述用户设备建立TCP连接。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
对所述IP报文包括的第一用户数据的位置进行标记;
对所述IP报文进行解封装处理,根据标记的所述第一用户数据的位置,获取并缓存与所述第一用户数据的位置对应的用户数据;
获取预设的安全策略,所述安全策略包括匹配项和动作项;
从所述安全策略中,查找与所述第一用户数据匹配的目标匹配项,并执行所述目标匹配项对应的动作项。
12.根据权利要求11所述的方法,其特征在于,所述执行所述目标匹配项对应的动作项,包括:
当所述目标匹配项对应的动作项为报文放行时,根据所述第二TCP连接的TCP端口信息,对所述第一用户数据进行封装处理,得到所述IP报文;
向所述服务器发送所述IP报文。
13.根据权利要求11所述的方法,其特征在于,所述执行所述目标匹配项对应的动作项,包括:
当所述目标匹配项对应的动作项为报文阻断时,根据所述第一TCP连接的TCP端口信息,生成阻断报文;
向所述用户设备发送所述阻断报文。
14.根据权利要求11所述的方法,其特征在于,所述获取预设的安全策略,包括:
判断是否已接收到属于同一原始数据的全部用户数据;
若已接收到属于同一原始数据的全部用户数据,则获取预设的安全策略。
15.根据权利要求11-14任一项所述的方法,其特征在于,所述方法还包括:
当用于传输所述IP报文的应用层协议未被监听时,向所述服务器发送所述IP报文。
16.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述IP报文为采用安全套接字层SSL协议的加密报文,则分别调用开放式安全套接字层OpenSSL密码库的第一接口以及第二接口;
将调用的第一接口与所述第一TCP连接绑定,将调用的第二接口与所述第二TCP连接绑定。
CN201910426343.7A 2019-05-21 2019-05-21 数据泄露防护设备及报文处理方法 Active CN111988346B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910426343.7A CN111988346B (zh) 2019-05-21 2019-05-21 数据泄露防护设备及报文处理方法
US17/423,817 US11973741B2 (en) 2019-05-21 2020-05-07 Data leakage prevention
JP2021565789A JP7395615B2 (ja) 2019-05-21 2020-05-07 データ漏洩防止
PCT/CN2020/089040 WO2020233412A1 (zh) 2019-05-21 2020-05-07 数据泄露防护
EP20808962.3A EP3890278B1 (en) 2019-05-21 2020-05-07 Data leakage prevention

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910426343.7A CN111988346B (zh) 2019-05-21 2019-05-21 数据泄露防护设备及报文处理方法

Publications (2)

Publication Number Publication Date
CN111988346A CN111988346A (zh) 2020-11-24
CN111988346B true CN111988346B (zh) 2021-10-22

Family

ID=73436243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910426343.7A Active CN111988346B (zh) 2019-05-21 2019-05-21 数据泄露防护设备及报文处理方法

Country Status (5)

Country Link
US (1) US11973741B2 (zh)
EP (1) EP3890278B1 (zh)
JP (1) JP7395615B2 (zh)
CN (1) CN111988346B (zh)
WO (1) WO2020233412A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988346B (zh) * 2019-05-21 2021-10-22 新华三信息安全技术有限公司 数据泄露防护设备及报文处理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561980B2 (ja) * 2004-11-08 2010-10-13 日本電気株式会社 セッション中継装置およびセッション中継方法
JP4855147B2 (ja) * 2006-05-30 2012-01-18 株式会社Into クライアント装置、メールシステム、プログラム及び記録媒体
JP2010200300A (ja) * 2009-01-28 2010-09-09 Meidensha Corp Tcp通信方式
US8291258B2 (en) * 2010-01-08 2012-10-16 Juniper Networks, Inc. High availability for network security devices
US9311495B2 (en) * 2010-12-09 2016-04-12 International Business Machines Corporation Method and apparatus for associating data loss protection (DLP) policies with endpoints
US9210127B2 (en) * 2011-06-15 2015-12-08 Mcafee, Inc. System and method for limiting data leakage
US9350644B2 (en) * 2012-04-13 2016-05-24 Zscaler. Inc. Secure and lightweight traffic forwarding systems and methods to cloud based network security systems
US9264365B2 (en) 2012-07-31 2016-02-16 International Business Machines Corporation Split transport control protocol (TCP) flow control management in a cellular broadband network
JP2016082438A (ja) 2014-10-17 2016-05-16 日本電気株式会社 通信制御装置、無線通信システム、通信制御方法及び無線基地局
US9509661B2 (en) * 2014-10-29 2016-11-29 Aruba Networks, Inc. Method and apparatus for displaying HTTPS block page without SSL inspection
US10015145B2 (en) * 2015-08-05 2018-07-03 Sonicwall Inc. Unified source user checking of TCP data packets for network data leakage prevention
CN105678188B (zh) * 2016-01-07 2019-01-29 杨龙频 数据库防泄露协议识别方法及装置
US10708233B2 (en) * 2017-03-30 2020-07-07 Zscaler, Inc. Identification of certificate pinned mobile applications in cloud based security systems
US10805352B2 (en) * 2017-04-21 2020-10-13 Netskope, Inc. Reducing latency in security enforcement by a network security system (NSS)
US20180331946A1 (en) * 2017-05-09 2018-11-15 vIPtela Inc. Routing network traffic based on performance
CN107592303B (zh) * 2017-08-28 2020-01-03 北京明朝万达科技股份有限公司 一种高速镜像网络流量中外发文件的提取方法及装置
CN111988346B (zh) * 2019-05-21 2021-10-22 新华三信息安全技术有限公司 数据泄露防护设备及报文处理方法

Also Published As

Publication number Publication date
EP3890278A4 (en) 2022-04-20
US11973741B2 (en) 2024-04-30
EP3890278A1 (en) 2021-10-06
US20220116363A1 (en) 2022-04-14
WO2020233412A1 (zh) 2020-11-26
JP2022531678A (ja) 2022-07-08
EP3890278B1 (en) 2023-12-27
CN111988346A (zh) 2020-11-24
JP7395615B2 (ja) 2023-12-11

Similar Documents

Publication Publication Date Title
CN100594690C (zh) 一种安全网关中进行安全策略统一处理的方法及装置
Tuexen et al. Datagram transport layer security (DTLS) for stream control transmission protocol (SCTP)
JP3954385B2 (ja) 迅速なパケット・フィルタリング及びパケット・プロセシングのためのシステム、デバイス及び方法
US8095789B2 (en) Unauthorized communication detection method
JP4596554B2 (ja) 暗号化されたhttpsネットワーク・パケットを、セキュアなウェブ・サーバ外部での復号なしに特定のurl名および他のデータにマッピングするための、方法およびシステム(マッピングすること)
US20090055930A1 (en) Content Security by Network Switch
US20040088537A1 (en) Method and apparatus for traversing a translation device with a security protocol
US20060090074A1 (en) Encryption communication system
CN110020955B (zh) 在线医保信息处理方法及装置、服务器和用户终端
AU2001241717A1 (en) System, device and method for rapid packet filtering and processing
CN104320378B (zh) 拦截网页数据的方法及系统
EP3716526A1 (en) Method of identity authentication for voice over internet protocol call and related device
US8490173B2 (en) Unauthorized communication detection method
CN103618726A (zh) 一种基于https协议实现移动数据业务识别的方法
CN111988346B (zh) 数据泄露防护设备及报文处理方法
US7181616B2 (en) Method of and apparatus for data transmission
CN111464550B (zh) 一种用于报文处理设备的https透明防护方法
CN107026828A (zh) 一种基于互联网缓存的防盗链方法及互联网缓存
US20060222013A1 (en) Systems, methods, and media for improving security of a packet-switched network
CN113824743B (zh) 一种适用私有加密通信的敏感数据阻断方法和系统
CN111447205B (zh) 一种数据处理方法、系统及相关设备
KR100522090B1 (ko) IPv6 계층에서의 패킷 보호 방법
JP3917557B2 (ja) ネットワーク攻撃防止装置、ネットワーク攻撃防止方法、ネットワーク攻撃防止プログラム及びそのプログラムを記録した記録媒体
KR20000054521A (ko) 해킹 로봇 프로그램의 공격 차단 시스템 및 그 방법
CN117319088A (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
GR01 Patent grant
GR01 Patent grant