CN115514583A - 一种流量采集及阻断方法、系统、设备及存储介质 - Google Patents
一种流量采集及阻断方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115514583A CN115514583A CN202211457917.5A CN202211457917A CN115514583A CN 115514583 A CN115514583 A CN 115514583A CN 202211457917 A CN202211457917 A CN 202211457917A CN 115514583 A CN115514583 A CN 115514583A
- Authority
- CN
- China
- Prior art keywords
- session
- data
- program
- request
- blocking
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种流量采集及阻断方法、系统、设备及存储介质,通过代理端安装于业务服务器的用户态程序中,利用用户态程序编译eBPF程序并将编译后的eBPF程序加载至务服务器的内核态程序,由内核态程序将eBPF程序附加到指定的用户代码路径中,基于eBPF探针监听会话读取事件/会话写入事件,获取客户端随机数和主密钥/会话密钥,对加密流量数据进行解密;通过对流量数据还原进行阻断检测,以对恶意请求或响应对象实现阻断。本申请实施例无需对业务服务器进行逻辑修改,同时能实现流量镜像解密服务可解密TLS ECDH类流量。
Description
技术领域
本发明实施例涉及网络通信技术领域,具体涉及一种流量采集及阻断方法、系统、设备及存储介质。
背景技术
当前透明代理模式下,如果需要代理服务器解密SSL/TLS类流量,需要在代理服务器上配置SSL证书。当业务服务器的证书需要修改时,需要同步更新代理服务器的证书。如果不配置SSL证书,则无法解密SSL/TLS类流量内容。流量镜像的场景下,当业务服务器配置了使用ECDH类的加密套件时,即使解密程序拿到了服务器使用的证书及私钥依然无法解密流量,因为ECDH类流量每个会话都有单独的会话密钥。
目前SSL/TLS类的流量采集阻断实现技术需要修改服务(非硬件服务器,这里指网页服务、API服务)的逻辑,例如在NGINX增加自定义模块,在 HTTPS 流量卸载证书后转发到收集服务,并根据规则进行判断,从而确定放行或拒绝该请求/响应。现有方式需要针对每一类服务器进行单独开发流量采集和阻断方案,对原有业务逻辑进行了修改,属于侵入式的方案。
发明内容
为此,本发明实施例提供一种流量采集及阻断方法、系统、设备及存储介质,以解决目前SSL/TLS类的流量采集阻断实现技术需要修改服务逻辑的技术问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提出了一种流量采集及阻断方法,所述方法应用于代理端,所述代理端安装于业务服务器的用户态程序中,利用所述用户态程序编译eBPF程序并将编译后的eBPF程序加载至所述业务服务器的内核态程序,由所述内核态程序将所述eBPF程序附加到指定的用户代码路径中,所述方法包括:
在客户端与业务服务器之间建立TCP连接;
判断会话请求是否为SSL/TLS协议连接请求;
如果会话请求为SSL/TLS协议连接请求,则在客户端与业务服务器之间完成SSL/TLS协议握手,并建立会话连接;
基于第一eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数;
利用所述第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥;
将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据;
对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象;
将所述HTTP请求对象或所述HTTP响应对象发送至WAF检测服务端进行阻断检测,以对恶意请求对象或响应对象实现阻断。
进一步地,所述方法还包括:
如果会话请求不为SSL/TLS协议连接请求,基于第二eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数和第二事件执行参数,所述第二事件执行参数为待读取/写入的明文流量数据。
进一步地,利用所述第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥,包括:
所述第一事件执行参数为socket文件描述符;
根据所述会话协议类型结构体指针,判断当前会话协议版本是否达到预设会话协议版本;
如果当前会话协议版本未达到预设会话协议版本,则获取当前会话的客户端随机数和主密钥;
如果当前会话协议版本达到预设会话协议版本,则获取当前会话的客户端随机数以及会话解密参数,利用会话解密参数得到会话密钥。
进一步地,将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据,包括:
在透明网桥/流量镜像解密服务器判断是否收到所述客户端随机数和主密钥/会话密钥;
如果透明网桥/流量镜像解密服务器收到所述客户端随机数和主密钥/会话密钥,则对加密流量数据进行解密;
获取当前会话数据包的流量特征;
根据获取的流量特征判断发送数据是否是响应的最后一部分/接收数据是否是请求的最后一部分;
如果发送数据不是响应的最后一部分/接收数据不是请求的最后一部分,则接收下一流量数据;
如果发送数据是响应的最后一部分/接收数据是请求的最后一部分,则流量数据采集完成。
进一步地,将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据,还包括:
如果所述透明网桥/流量镜像解密服务器未收到所述客户端随机数和主密钥/会话密钥,则判断等待时长是否超过预设时间阈值;
如果等待时长未超过预设时间阈值,则在所述透明网桥/流量镜像解密服务器继续等待接收所述客户端随机数和主密钥/会话密钥;
如果等待时长超过预设时间阈值,则直接获取当前会话数据包的流量特征;
根据获取的流量特征判断发送数据是否是响应的最后一部分/接收数据是否是请求的最后一部分;
如果发送数据不是响应的最后一部分/接收数据不是请求的最后一部分,则接收下一流量数据;
如果发送数据是响应的最后一部分/接收数据是请求的最后一部分,则流量数据采集完成。
进一步地,对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象,包括:
根据所述第一事件执行参数,判断当前会话连接是否属于已知连接;
如果当前会话连接属于已知连接,则选取已知连接对应的HTTP对象还原程序;
如果当前会话连接不属于已知连接,则根据会话连接ID为当前会话连接创建一个新的HTTP对象还原程序;
利用所述HTTP 对象还原程序,将收到的明文流量数据暂存;
将暂存的二进制数据按顺序还原成HTTP请求对象或HTTP响应对象。
进一步地,将所述HTTP请求对象或所述HTTP响应对象发送至WAF检测服务端,以实现阻断检测,具体包括:
基于所述HTTP请求对象或所述HTTP响应对象,在WAF检测服务端判断是否需要进行阻断;
若需要进行阻断,则向对所述HTTP请求对象或所述HTTP响应对象对应连接发送阻断报文,关闭对应连接。
根据本发明实施例的第二方面,提出了一种流量采集及阻断系统,所述系统应用于代理端,所述代理端安装于业务服务器的用户态程序中,利用所述用户态程序编译eBPF程序并将编译后的eBPF程序加载至所述业务服务器的内核态程序,由所述内核态程序将所述eBPF程序附加到指定的用户代码路径中,所述系统包括:
TCP连接模块,用于在客户端与业务服务器之间建立TCP连接;
握手模块,用于判断会话请求是否为SSL/TLS协议连接请求;如果会话请求为SSL/TLS协议连接请求,则在客户端与业务服务器之间完成SSL/TLS协议握手,并建立会话连接;
密钥获取模块,用于基于第一eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数;利用所述第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥;
采集模块,用于将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据;
还原模块,用于对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象;
阻断模块,用于将所述HTTP请求对象或所述HTTP响应对象发送至WAF检测服务端进行阻断检测,以对恶意请求对象或响应对象实现阻断。
根据本发明实施例的第三方面,提出了一种流量采集及阻断设备,所述设备包括:处理器和存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种流量采集及阻断方法的步骤。
根据本发明实施例的第四方面,提出了一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种流量采集及阻断方法的步骤。
本发明实施例具有如下优点:
本发明实施例提出的一种流量采集及阻断方法、系统、设备及存储介质,通过代理端安装于业务服务器的用户态程序中,利用用户态程序编译eBPF程序并将编译后的eBPF程序加载至务服务器的内核态程序,由内核态程序将eBPF程序附加到指定的用户代码路径中,基于eBPF探针监听会话读取事件/会话写入事件,获取客户端随机数和主密钥/会话密钥,对加密流量数据进行解密;通过对流量数据还原进行阻断检测,以对恶意请求或响应对象实现阻断。透明代理无需配置证书即可解密SSL/TLS 流量数据,并可对解密后数据进行分析,如果其中包含恶意内容可以进行非侵入式的安全检测和阻断,无需对业务服务器进行逻辑修改,同时能支持在流量镜像模式下解密 TLS ECDH类流量。
附图说明
为了更清楚地说明本发明实施例的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本发明实施例提供的一种流量采集及阻断系统在透明代理模式下的架构示意图;
图2为本发明实施例提供的一种流量采集及阻断系统在流量镜像的模式下的架构示意图;
图3为本发明实施例提供的一种流量采集及阻断系统的逻辑模块示意图;
图4为本发明实施例提供的一种流量采集及阻断方法的流程示意图;
图5为本发明实施例提供的一种流量采集及阻断方法中得到客户端随机数和主密钥/会话密钥以及对加密流量数据进行解密的流程示意图;
图6为本发明实施例提供的一种流量采集及阻断方法中对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象的流程示意图。
具体实施方式
以下由特定的具体实施例说明本发明实施例的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明实施例的其他优点及功效,显然,所描述的实施例是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
参考图1和图2,本发明实施例提供了一种流量采集及阻断系统,该系统应用于代理端3,代理端3安装于业务服务器2的用户态程序4中,利用用户态程序4编译eBPF 程序5并将编译后的eBPF程序5加载至业务服务器2的内核态程序6,由内核态程序6将eBPF程序5附加到指定的用户代码路径中。
eBPF(extended Berkeley Packet Filter,扩展的伯克利包过滤器)程序会附加到业务服务器2内核指定用户代码路径中,当执行该代码路径时,会执行对应的eBPF程序。
在本发明实施例中,eBPF程序5的工作原理如下:
用户态程序4负责编译eBPF程序5,将编译后的eBPF程序5加载到业务服务器2的内核态程序6中;内核态程序6负责将eBPF程序5附加到指定的用户代码路径中,当执行该代码路径时,会执行对应的eBPF程序5;eBPF程序5负责在用户态程序4执行时,获取用户态程序4的上下文信息,如寄存器、栈、堆等,然后将这些信息发送到内核态程序6;内核态程序6负责接收eBPF程序5发送的信息,然后将这些信息发送到用户态程序4;用户态程序4负责接收内核态程序6发送的信息。
在本发明实施例中,如上所述,一种流量采集及阻断系统应用于代理端3,代理端3安装在业务服务器2上,运行时需要指定业务服务使用的OpenSSL动态库路径,业务服务器无需进行任何修改。具体地,用户态程序4中使用OpenSSL技术。OpenSSL是一个开源的加密软件,它提供了一套完整的加密、解密、签名、验证和密钥管理等功能。BoringSSL、GnuTLS、NSS与OpenSSL处理加密通信的方式是类似的。
例如,OpenSSL提供了SSL_read函数和SSL_write函数,SSL_read函数和SSL_write函数分别用来执行会话读取事件和会话写入事件,即SSL_write函数用于向套接字写入待加密数据,SSL_read函数用于从套接字读取数据。SSL_read函数和SSL_write函数的第一个参数是会话协议类型结构体指针,此时会话协议类型结构体指针为SSL类型结构体的指针,即第一事件执行参数,该类型结构体包含当前 SSL会话的所有信息,更具体地,第一事件执行参数为socket文件描述符。SSL_read函数和SSL_write函数的第二个参数是待读取和待写入的数据,即第二事件执行参数。socket一般指套接字,所谓套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。
参考图3,本发明实施例提供的一种流量采集及阻断系统具体包括:TCP连接模块31、握手模块32、密钥获取模块33、采集模块34、还原模块35和阻断模块36。
进一步地,参考图1至图3,TCP连接模块31用于在客户端1与业务服务器2之间建立TCP连接;握手模块32用于判断会话请求是否为SSL/TLS协议连接请求;如果会话请求为SSL/TLS协议连接请求,则在客户端1与业务服务器2之间完成SSL/TLS协议握手,并建立会话连接;密钥获取模块33用于基于第一eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数;利用第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥;采集模块34用于将客户端随机数和主密钥/会话密钥发送至透明网桥7/流量镜像解密服务器9,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据;还原模块35用于对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象;阻断模块36用于将HTTP请求对象或HTTP响应对象发送至WAF检测服务端8进行阻断检测,以对恶意请求对象或响应对象实现阻断。
本发明实施例提出的一种流量采集及阻断系统,通过代理端安装于业务服务器的用户态程序中,利用用户态程序编译eBPF程序并将编译后的eBPF程序加载至务服务器的内核态程序,由内核态程序将eBPF程序附加到指定的用户代码路径中,基于eBPF探针监听会话读取事件/会话写入事件,获取客户端随机数和主密钥/会话密钥,对加密流量数据进行解密;通过对流量数据还原进行阻断检测,以对恶意请求或响应对象实现阻断。透明代理无需配置证书即可解密SSL/TLS 流量数据,并可对解密后数据进行分析,如果其中包含恶意内容可以进行非侵入式的安全检测和阻断,无需对业务服务器进行逻辑修改;同时能实现流量镜像解密服务可解密TLS ECDH类流量。
与上述公开的一种流量采集及阻断系统相对应,本发明实施例还公开了一种流量采集及阻断方法。以下结合上述描述的一种流量采集及阻断系统详细介绍本发明实施例中公开的一种流量采集及阻断方法。
参考图4,以下对本发明实施例提供的一种流量采集及阻断方法的具体步骤进行描述。
通过TCP连接模块31在客户端1与业务服务器2之间建立TCP连接。
通过握手模块32判断会话请求是否为SSL/TLS协议连接请求;如果会话请求为SSL/TLS协议连接请求,则在客户端1与业务服务器2之间完成SSL/TLS协议握手,并建立会话连接。
通过密钥获取模块33基于第一eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数。
在本发明实施例中,第一eBPF探针具体是指:使用eBPF程序5提供的 uprobe能力,通过插入一条调试陷阱指令(在X86上为int3)来拦截用户空间的程序,从而触发软中断。eBPF程序5加载在业务服务器2的内核态程序6中,利用eBPF程序5的uprobe函数拦截SSL动态库中的SSL_read/SSL_write函数,当执行SSL_write或 SSL_read函数时,会将SSL类型结构体的指针和待写入或待读取的数据发送到内核态程序5,然后内核态程序5将这些信息发送到用户态程序。
通过密钥获取模块33利用第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥。
进一步地,参考图5,第一事件执行参数为socket文件描述符;根据会话协议类型结构体指针,判断当前会话协议版本是否达到预设会话协议版本;如果当前会话协议版本未达到预设会话协议版本,则获取当前会话的客户端随机数和主密钥;如果当前会话协议版本达到预设会话协议版本,则获取当前会话的客户端随机数以及会话解密参数,利用会话解密参数得到会话密钥。
在本发明实施例中,以预设会话协议版本为TLSv1.3版本为例,上述过程具体如下:根据会话协议类型结构体指针,判断当前会话协议版本是否达到TLSv1.3版本;如果当前会话协议版本为TLSv1.3以下版本,则获取当前会话的客户端随机数和主密钥;如果当前会话协议版本为TLSv1.3版本,则获取当前会话的客户端随机数以及会话解密参数,会话解密参数包括:early secret, handshake secret, master secret, server finishedhash, handshake traffic hash, exporter master secret 数据;利用上述会话解密参数计算得到会话密钥。
通过采集模块34将客户端随机数和主密钥/会话密钥发送至透明网桥7/流量镜像解密服务器9,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据。
参考图1,在透明代理模式下,透明网桥7部署在客户端1与业务服务器2之间,透明网桥7对客户端1和业务服务器2透明,对于SSL/TLS流量,透明网桥7在SSL/TLS协议握手后等待代理端3发送的客户端随机数(client random)和主密钥(master key)或会话密钥,然后将对应SSL/TLS流量解密。
参考图2,在流量镜像的模式下,交换机10部署在客户端1与业务服务器2之间,流量镜像解密服务器9从交换机10导出明文和加密的混合流量,对于SSL/TLS流量,透明网桥7在SSL/TLS协议握手后等待代理端3发送的客户端随机数(client random)和主密钥(master key)或会话密钥,然后将对应SSL/TLS流量解密。
另外,如果会话请求不为SSL/TLS协议连接请求,基于第二eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数和第二事件执行参数,第二事件执行参数为待读取/写入的明文流量数据。
在本发明实施例中,第二eBPF探针具体是指:使用eBPF程序5提供的 kProbe能力,通过插入一条调试陷阱指令(在X86上为int3)来拦截用户空间的程序,从而触发软中断。eBPF程序5加载在业务服务器2的内核态程序6中,利用eBPF程序5的uprobe函数到Linux内核提供的accept/accept4,read,write,close等系统调用,通过进程ID(PID)及任务ID(TID)过滤指定进程/线程产生的所有会话读取事件和会话写入事件,将SSL类型结构体的指针和待写入或待读取的数据发送到内核态程序5,然后内核态程序5将这些信息发送到用户态程序。
进一步地,参考图5,在透明网桥7/流量镜像解密服务器9判断是否收到客户端随机数和主密钥/会话密钥;如果透明网桥7/流量镜像解密服务器9收到客户端随机数和主密钥/会话密钥,则对加密流量数据进行解密;获取当前会话数据包的流量特征;根据获取的流量特征判断发送数据是否是响应的最后一部分/接收数据是否是请求的最后一部分;如果发送数据不是响应的最后一部分/接收数据不是请求的最后一部分,则接收下一流量数据;如果发送数据是响应的最后一部分/接收数据是请求的最后一部分,则流量数据采集完成。
进一步地,参考图5,如果透明网桥7/流量镜像解密服务器9未收到客户端随机数和主密钥/会话密钥,则判断等待时长是否超过预设时间阈值;如果等待时长未超过预设时间阈值,则在透明网桥7/流量镜像解密服务器9继续等待接收客户端随机数和主密钥/会话密钥;如果等待时长超过预设时间阈值,则直接获取当前会话数据包的流量特征;根据获取的流量特征判断发送数据是否是响应的最后一部分/接收数据是否是请求的最后一部分;如果发送数据不是响应的最后一部分/接收数据不是请求的最后一部分,则接收下一流量数据;如果发送数据是响应的最后一部分/接收数据是请求的最后一部分,则流量数据采集完成。
通过还原模块35对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象。
进一步地,参考图6,根据第一事件执行参数,判断当前会话连接是否属于已知连接;如果当前会话连接属于已知连接,则选取已知连接对应的HTTP对象还原程序;如果当前会话连接不属于已知连接,则根据会话连接ID为当前会话连接创建一个新的HTTP对象还原程序;HTTP对象还原程序实现了完整HTTP协议栈,利用所述HTTP 对象还原程序,将收到的明文流量数据暂存;将暂存的二进制数据按顺序还原成HTTP请求对象或HTTP响应对象。
通过阻断模块36将HTTP请求对象或HTTP响应对象发送至WAF检测服务端8进行阻断检测,以对恶意请求对象或响应对象实现阻断。
进一步地,基于所述HTTP请求对象或所述HTTP响应对象,在WAF检测服务端8判断是否需要进行阻断;若需要进行阻断,则向对HTTP请求对象或所述HTTP响应对象对应连接发送阻断报文(rst包),关闭对应连接。
本发明实施例提出的一种流量采集及阻断方法,通过代理端安装于业务服务器的用户态程序中,利用用户态程序编译eBPF程序并将编译后的eBPF程序加载至务服务器的内核态程序,由内核态程序将eBPF程序附加到指定的用户代码路径中,基于eBPF探针监听会话读取事件/会话写入事件,获取客户端随机数和主密钥/会话密钥,对加密流量数据进行解密;通过对流量数据还原进行阻断检测,以对恶意请求或响应对象实现阻断。透明代理无需配置证书即可解密SSL/TLS 流量数据,并可对解密后数据进行分析,如果其中包含恶意内容可以进行非侵入式的安全检测和阻断,无需对业务服务器进行逻辑修改;同时能实现流量镜像解密服务可解密TLS ECDH类流量。
另外,本发明实施例还提供了一种流量采集及阻断设备,所述设备包括:处理器和存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种流量采集及阻断方法的步骤。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种流量采集及阻断方法的步骤。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
虽然,上文中已经用一般性说明及具体实施例对本发明实施例作了详尽的描述,但在本发明实施例基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明实施例精神的基础上所做的这些修改或改进,均属于本发明实施例要求保护的范围。
Claims (10)
1.一种流量采集及阻断方法,其特征在于,所述方法应用于代理端,所述代理端安装于业务服务器的用户态程序中,利用所述用户态程序编译eBPF 程序并将编译后的eBPF程序加载至所述业务服务器的内核态程序,由所述内核态程序将所述eBPF程序附加到指定的用户代码路径中,所述方法包括:
在客户端与业务服务器之间建立TCP连接;
判断会话请求是否为SSL/TLS协议连接请求;
如果会话请求为SSL/TLS协议连接请求,则在客户端与业务服务器之间完成SSL/TLS协议握手,并建立会话连接;
基于第一eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数;
利用所述第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥;
将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据;
对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象;
将所述HTTP请求对象或所述HTTP响应对象发送至WAF检测服务端进行阻断检测,以对恶意请求对象或响应对象实现阻断。
2.根据权利要求1所述的一种流量采集及阻断方法,其特征在于,所述方法还包括:
如果会话请求不为SSL/TLS协议连接请求,基于第二eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数和第二事件执行参数,所述第二事件执行参数为待读取/写入的明文流量数据。
3.根据权利要求1所述的一种流量采集及阻断方法,其特征在于,利用所述第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥,包括:
所述第一事件执行参数为socket文件描述符;
根据所述会话协议类型结构体指针,判断当前会话协议版本是否达到预设会话协议版本;
如果当前会话协议版本未达到预设会话协议版本,则获取当前会话的客户端随机数和主密钥;
如果当前会话协议版本达到预设会话协议版本,则获取当前会话的客户端随机数以及会话解密参数,利用会话解密参数得到会话密钥。
4.根据权利要求1所述的一种流量采集及阻断方法,其特征在于,将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据,包括:
在透明网桥/流量镜像解密服务器判断是否收到所述客户端随机数和主密钥/会话密钥;
如果所述透明网桥/流量镜像解密服务器收到所述客户端随机数和主密钥/会话密钥,则对加密流量数据进行解密;
获取当前会话数据包的流量特征;
根据获取的流量特征判断发送数据是否是响应的最后一部分/接收数据是否是请求的最后一部分;
如果发送数据不是响应的最后一部分/接收数据不是请求的最后一部分,则接收下一流量数据;
如果发送数据是响应的最后一部分/接收数据是请求的最后一部分,则流量数据采集完成。
5.根据权利要求1所述的一种流量采集及阻断方法,其特征在于,将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据,还包括:
如果透明网桥/流量镜像解密服务器未收到所述客户端随机数和主密钥/会话密钥,则判断等待时长是否超过预设时间阈值;
如果等待时长未超过预设时间阈值,则在所述透明网桥/流量镜像解密服务器继续等待接收所述客户端随机数和主密钥/会话密钥;
如果等待时长超过预设时间阈值,则直接获取当前会话数据包的流量特征;
根据获取的流量特征判断发送数据是否是响应的最后一部分/接收数据是否是请求的最后一部分;
如果发送数据不是响应的最后一部分/接收数据不是请求的最后一部分,则接收下一流量数据;
如果发送数据是响应的最后一部分/接收数据是请求的最后一部分,则流量数据采集完成。
6.根据权利要求1所述的一种流量采集及阻断方法,其特征在于,对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象,包括:
根据所述第一事件执行参数,判断当前会话连接是否属于已知连接;
如果当前会话连接属于已知连接,则选取已知连接对应的HTTP对象还原程序;
如果当前会话连接不属于已知连接,则根据会话连接ID为当前会话连接创建一个新的HTTP对象还原程序;
利用所述HTTP 对象还原程序,将收到的明文流量数据暂存;
将暂存的二进制数据按顺序还原成HTTP请求对象或HTTP响应对象。
7.根据权利要求1所述的一种流量采集及阻断方法,其特征在于,将所述HTTP请求对象或所述HTTP响应对象发送至WAF检测服务端,以实现阻断检测,具体包括:
基于所述HTTP请求对象或所述HTTP响应对象,在WAF检测服务端判断是否需要进行阻断;
若需要进行阻断,则向对所述HTTP请求对象或所述HTTP响应对象对应连接发送阻断报文,关闭对应连接。
8.一种流量采集及阻断系统,其特征在于,所述系统应用于代理端,所述代理端安装于业务服务器的用户态程序中,利用所述用户态程序编译eBPF 程序并将编译后的eBPF程序加载至所述业务服务器的内核态程序,由所述内核态程序将所述eBPF程序附加到指定的用户代码路径中,所述系统包括:
TCP连接模块,用于在客户端与业务服务器之间建立TCP连接;
握手模块,用于判断会话请求是否为SSL/TLS协议连接请求;如果会话请求为SSL/TLS协议连接请求,则在客户端与业务服务器之间完成SSL/TLS协议握手,并建立会话连接;
密钥获取模块,用于基于第一eBPF探针监听会话读取事件/会话写入事件,获取第一事件执行参数;利用所述第一事件执行参数作为会话协议类型结构体指针,得到客户端随机数和主密钥/会话密钥;
采集模块,用于将所述客户端随机数和主密钥/会话密钥发送至透明网桥/流量镜像解密服务器,以实现对加密流量数据进行解密,得到待读取/写入的明文流量数据;
还原模块,用于对接收到的明文流量数据进行还原得到HTTP请求对象或HTTP响应对象;
阻断模块,用于将所述HTTP请求对象或所述HTTP响应对象发送至WAF检测服务端进行阻断检测,以对恶意请求对象或响应对象实现阻断。
9.一种流量采集及阻断设备,其特征在于,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1至7任一项所述的一种流量采集及阻断方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述一种流量采集及阻断方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457917.5A CN115514583B (zh) | 2022-11-21 | 2022-11-21 | 一种流量采集及阻断方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457917.5A CN115514583B (zh) | 2022-11-21 | 2022-11-21 | 一种流量采集及阻断方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115514583A true CN115514583A (zh) | 2022-12-23 |
CN115514583B CN115514583B (zh) | 2023-03-24 |
Family
ID=84513952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211457917.5A Active CN115514583B (zh) | 2022-11-21 | 2022-11-21 | 一种流量采集及阻断方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115514583B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116032657A (zh) * | 2023-02-15 | 2023-04-28 | 北京锐服信科技有限公司 | 一种流量监控方法、系统和电子设备 |
CN116107764A (zh) * | 2023-04-03 | 2023-05-12 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116302618A (zh) * | 2023-05-17 | 2023-06-23 | 上海云脉芯联科技有限公司 | 一种会话信息处理方法及装置 |
CN117938549A (zh) * | 2024-03-22 | 2024-04-26 | 道普信息技术有限公司 | 一种针对tls和ssl加密连接的用户无感知解密方法 |
CN118509252A (zh) * | 2024-07-12 | 2024-08-16 | 国网思极网安科技(北京)有限公司 | 一种加密流量镜像外发方法及装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231653A1 (en) * | 2010-03-19 | 2011-09-22 | F5 Networks, Inc. | Secure distribution of session credentials from client-side to server-side traffic management devices |
CN102255924A (zh) * | 2011-08-29 | 2011-11-23 | 浙江中烟工业有限责任公司 | 基于可信计算的多级安全互联平台及其处理流程 |
CN103490891A (zh) * | 2013-08-23 | 2014-01-01 | 中国科学技术大学 | 一种电网ssl vpn中密钥更新和使用的方法 |
US20150052349A1 (en) * | 2013-05-03 | 2015-02-19 | Akamai Technologies, Inc. | Splicing into an active TLS session without a certificate or private key |
US20160119374A1 (en) * | 2014-10-28 | 2016-04-28 | International Business Machines Corporation | Intercepting, decrypting and inspecting traffic over an encrypted channel |
CN108156178A (zh) * | 2018-01-30 | 2018-06-12 | 上海天旦网络科技发展有限公司 | 一种ssl/tls数据监控系统和方法 |
US20190190950A1 (en) * | 2017-12-18 | 2019-06-20 | Akamai Technologies, Inc. | Bot detection in an edge network using Transport Layer Security (TLS) fingerprint |
CN111510453A (zh) * | 2020-04-15 | 2020-08-07 | 深信服科技股份有限公司 | 业务系统访问方法、装置、系统及介质 |
CN111787073A (zh) * | 2020-06-18 | 2020-10-16 | 多加网络科技(北京)有限公司 | 一种统一服务的限流熔断平台及其方法 |
CN112383546A (zh) * | 2020-11-13 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 一种处理网络攻击行为的方法、相关设备及存储介质 |
CN113518067A (zh) * | 2021-03-25 | 2021-10-19 | 国网浙江省电力有限公司金华供电公司 | 一种基于原始报文的安全分析方法 |
CN114363073A (zh) * | 2022-01-07 | 2022-04-15 | 中国联合网络通信集团有限公司 | Tls加密流量分析方法、装置、终端设备及存储介质 |
CN114598740A (zh) * | 2022-03-04 | 2022-06-07 | 北京优炫软件股份有限公司 | 一种微隔离数据抓取方法以及系统 |
CN114978584A (zh) * | 2022-04-12 | 2022-08-30 | 深圳市蔚壹科技有限公司 | 基于单位单元的网络安全防护安全方法及系统 |
-
2022
- 2022-11-21 CN CN202211457917.5A patent/CN115514583B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231653A1 (en) * | 2010-03-19 | 2011-09-22 | F5 Networks, Inc. | Secure distribution of session credentials from client-side to server-side traffic management devices |
CN102255924A (zh) * | 2011-08-29 | 2011-11-23 | 浙江中烟工业有限责任公司 | 基于可信计算的多级安全互联平台及其处理流程 |
US20150052349A1 (en) * | 2013-05-03 | 2015-02-19 | Akamai Technologies, Inc. | Splicing into an active TLS session without a certificate or private key |
CN103490891A (zh) * | 2013-08-23 | 2014-01-01 | 中国科学技术大学 | 一种电网ssl vpn中密钥更新和使用的方法 |
US20160119374A1 (en) * | 2014-10-28 | 2016-04-28 | International Business Machines Corporation | Intercepting, decrypting and inspecting traffic over an encrypted channel |
US20190190950A1 (en) * | 2017-12-18 | 2019-06-20 | Akamai Technologies, Inc. | Bot detection in an edge network using Transport Layer Security (TLS) fingerprint |
CN108156178A (zh) * | 2018-01-30 | 2018-06-12 | 上海天旦网络科技发展有限公司 | 一种ssl/tls数据监控系统和方法 |
CN111510453A (zh) * | 2020-04-15 | 2020-08-07 | 深信服科技股份有限公司 | 业务系统访问方法、装置、系统及介质 |
CN111787073A (zh) * | 2020-06-18 | 2020-10-16 | 多加网络科技(北京)有限公司 | 一种统一服务的限流熔断平台及其方法 |
CN112383546A (zh) * | 2020-11-13 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 一种处理网络攻击行为的方法、相关设备及存储介质 |
CN113518067A (zh) * | 2021-03-25 | 2021-10-19 | 国网浙江省电力有限公司金华供电公司 | 一种基于原始报文的安全分析方法 |
CN114363073A (zh) * | 2022-01-07 | 2022-04-15 | 中国联合网络通信集团有限公司 | Tls加密流量分析方法、装置、终端设备及存储介质 |
CN114598740A (zh) * | 2022-03-04 | 2022-06-07 | 北京优炫软件股份有限公司 | 一种微隔离数据抓取方法以及系统 |
CN114978584A (zh) * | 2022-04-12 | 2022-08-30 | 深圳市蔚壹科技有限公司 | 基于单位单元的网络安全防护安全方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116032657A (zh) * | 2023-02-15 | 2023-04-28 | 北京锐服信科技有限公司 | 一种流量监控方法、系统和电子设备 |
CN116107764A (zh) * | 2023-04-03 | 2023-05-12 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116107764B (zh) * | 2023-04-03 | 2023-09-26 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116302618A (zh) * | 2023-05-17 | 2023-06-23 | 上海云脉芯联科技有限公司 | 一种会话信息处理方法及装置 |
CN116302618B (zh) * | 2023-05-17 | 2023-09-12 | 上海云脉芯联科技有限公司 | 一种会话信息处理方法及装置 |
CN117938549A (zh) * | 2024-03-22 | 2024-04-26 | 道普信息技术有限公司 | 一种针对tls和ssl加密连接的用户无感知解密方法 |
CN118509252A (zh) * | 2024-07-12 | 2024-08-16 | 国网思极网安科技(北京)有限公司 | 一种加密流量镜像外发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115514583B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115514583B (zh) | 一种流量采集及阻断方法、系统、设备及存储介质 | |
US20200287873A1 (en) | Virtualized Application Performance Through Disabling of Unnecessary Functions | |
CN110166459B (zh) | 反序列化漏洞的防护方法、装置、设备及可读存储介质 | |
JP2013232219A (ja) | マイクロコントローラにおけるデータの安全な取扱いのための方法および装置 | |
CN111917540B (zh) | 一种数据加解密方法、装置、移动终端和存储介质 | |
EP1811415A1 (en) | Secure system-on-chip | |
US20040176068A1 (en) | Architecture for encrypted application installation | |
CN113992642B (zh) | 网关代理服务器的流量审计方法、装置及相关设备 | |
Taubmann et al. | DroidKex: Fast extraction of ephemeral TLS keys from the memory of Android apps | |
CN111737718A (zh) | 一种jar包的加解密方法、装置、终端设备和存储介质 | |
CN110855433A (zh) | 基于加密算法的数据加密方法、装置及计算机设备 | |
CN101504622B (zh) | 进程间信息交互的方法及装置 | |
CN113014545B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN110855656B (zh) | 可实现应用服务器防护的插件流量代理方法、装置及系统 | |
WO2016047111A1 (ja) | 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記憶媒体 | |
US11227032B1 (en) | Dynamic posture assessment to mitigate reverse engineering | |
CN114996730A (zh) | 一种数据加解密系统、方法、计算机设备及存储介质 | |
CN109995526A (zh) | 一种密钥的存储方法和装置、密钥的调用方法和装置 | |
CN114915503A (zh) | 基于安全芯片的数据流拆分处理加密方法及安全芯片装置 | |
CN108304729B (zh) | 一种客户端上报日志的方法以及电子设备 | |
US11038844B2 (en) | System and method of analyzing the content of encrypted network traffic | |
KR102050797B1 (ko) | 미들박스 장치 및 이의 암호화된 패킷 처리 방법 | |
CN111641497A (zh) | 一种对敏感参数进行自动解密的方法及装置 | |
CN111193712A (zh) | 一种基于企业浏览器的代理访问方法和装置 | |
CN109711207A (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 |