掌桥专利:专业的专利平台
掌桥专利
首页

用于linux系统的HTTPS报文检测方法及装置

文献发布时间:2024-01-17 01:13:28


用于linux系统的HTTPS报文检测方法及装置

技术领域

本公开涉及计算机信息处理领域,具体而言,涉及一种用于linux系统的HTTPS报文检测方法及装置。

背景技术

HTTP协议存在安全缺陷,由于其数据的明文传送和消息完整性检测的缺乏,HTTPS协议开始被广泛运用,HTTPS协议是由HTTP协议加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。

HTTPS协议虽然保护了报文传输的安全,但是,并不能避免通过HTTPS协议传输恶意代码等数据,如果一个报文威胁检测设备无法获取HTTPS报文的秘钥,则无法对HTTPS报文传输的加密数据进行解密,从而也无法对其进行安全检测。当前第三方对HTTPS报文的威胁识别的设备,仍需获取HTTPS报文的密钥从而对其进行解密检测。但是这种方式,需要客户提供证书给第三方检测设备,这样的做法实际增大了密钥泄漏的风险。由于种种限制,而基于特征分析HTTPS报文这一安全检测技术停滞不前,传统检测方法对来自HTTPS报文攻击基本无计可施。

因此,需要一种新的用于linux系统的HTTPS报文检测方法及装置。

在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

有鉴于此,本申请提供一种用于linux系统的HTTPS报文检测方法及装置,能够绕过证书认证,对HTTPS解密后报文进行提取组装,形成可被常用IDS/IPS引擎检测的报文,提升报文检测效率和准确度。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请的一方面,提出一种用于linux系统的HTTPS报文检测方法,该方法包括:linux系统捕获HTTPS报文;提取所述HTTPS报文的应用层明文数据和环境数据;提取所述HTTPS报文的skb结构体数据;基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;利用IDS/IPS入侵检测引擎对所述明文报文进行检测。

在本申请的一种示例性实施例中,提取所述HTTPS报文的应用层明文数据和环境数据,包括:在SSL共享库中使用uprobe技术提取所述HTTPS报文的应用层明文数据和环境数据。

在本申请的一种示例性实施例中,在SSL共享库中使用uprobe技术提取所述HTTPS报文的应用层明文数据和环境数据之前,还包括:获取linux系统的ELF文件;解析所述ELF文件获取SSL/TLS加密/解密函数位移;通过uprobe勾住SSL/TLS加密/解密函数的入口和出口;创建perf事件资源。

在本申请的一种示例性实施例中,在SSL共享库中使用uprobe技术提取所述HTTPS报文的应用层明文数据和环境数据,包括:基于SSL共享库创建链表依次轮训匹配;基于所述轮训匹配获取ELF动态符号表;基于所述ELF动态符号表轮询至获取指定函数及偏移;基于所述指定函数及偏移获取所述HTTPS报文的应用层明文数据和环境数据。

在本申请的一种示例性实施例中,在SSL共享库中使用uprobe技术提取所述HTTPS报文的应用层明文数据和环境数据之后,还包括:将所述应用层明文数据和所述环境数据通过perf事件发送给用户层应用。

在本申请的一种示例性实施例中,提取所述HTTPS报文的skb结构体数据,包括:在内核网络驱动中使用cls_bpf技术提取所述HTTPS报文的skb结构体数据。

在本申请的一种示例性实施例中,在内核网络驱动中使用cls_bpf技术提取所述HTTPS报文的skb结构体数据之前,还包括:通过流量控制器中的分类器勾住Qos中的ingress函数和egress函数;创建perf事件资源。

在本申请的一种示例性实施例中,在内核网络驱动中使用cls_bpf技术提取所述HTTPS报文的skb结构体数据,包括:在内核网络驱动将cls_bpf代码插入至classifier函数中的ingress函数和egress函数;基于ingress函数和egress函数提取所述HTTPS报文的skb结构体数据。

在本申请的一种示例性实施例中,在内核网络驱动中使用cls_bpf技术提取所述HTTPS报文的skb结构体数据之后,还包括:将所述skb结构体数据通过perf事件发送给用户层应用。

在本申请的一种示例性实施例中,在匹配成功后将所述应用层明文数据和所述skb结构体数据进行拼接生成明文报文,包括:在匹配成功后基于所述skb结构体数据提取所述HTTPS报文中加密的应用层数据;将加密的实时应用层数据使用所述应用层明文数据替换,生成所述明文报文。

根据本申请的一方面,提出一种用于linux系统的HTTPS报文检测装置,该装置包括:捕获模块,用于linux系统捕获HTTPS报文;明文模块,用于提取所述HTTPS报文的应用层明文数据和环境数据;结构模块,用于提取所述HTTPS报文的skb结构体数据;匹配模块,用于基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;拼接模块,用于在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;检测模块,用于利用IDS/IPS入侵检测引擎对所述明文报文进行检测。

根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。

根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。

根据本申请的用于linux系统的HTTPS报文检测方法及装置,通过linux系统捕获HTTPS报文;提取所述HTTPS报文的应用层明文数据和环境数据;提取所述HTTPS报文的skb结构体数据;基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;利用IDS/IPS入侵检测引擎对所述明文报文进行检测的方式,能够绕过证书认证,对HTTPS解密后报文进行提取组装,形成可被常用IDS/IPS引擎检测的报文,提升报文检测效率和准确度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法及装置的系统示意图。

图2是根据一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法及装置的系统框图。

图3是根据一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法的流程图。

图4是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法的流程图。

图5是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法的示意图。

图6是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测装置的框图。

图7是根据一示例性实施例示出的一种电子设备的框图。

图8是根据一示例性实施例示出的一种计算机可读介质的框图。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。

本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。

本申请涉及的技术缩略语解释如下:

uprobe,基于linux内核的应用探测。通过ftrace的/sys/debug/tracinginterface(基于debugfs的用户空间层面的API)执行各种跟踪和分析。

BPF(Berkeley Packet Filter)伯克利包过滤器。使用该工具包可以让技术人员无需深入了解linux内核技术,而使用该工具更轻松的在内核中执行自己的代码段。

libbpf,是一组用于构建BPF应用程序的替代工具。它生成简单的二进制文件,编译一次就可以在任何地方运行。

tc(Traffic Control)流量控制模块。该模块根据不同算法对网络设备上的流量进行控制(限速、设置优先级等等),且可以从入口与出口取出原报文。

ELF(Executable and Linkable Format)可执行与可链接格式文件。elf文件为unix系统的目标文件,包括可重定位目标文件、可执行目标文件与共享目标文件;该文件的结构可被汇编器、链接器或加载器识别,用于链接或加载。

本案申请人通过对现有技术的研究发现,由于需要维护linux内核的强安全、高性能及持续交付的能力,从1992年发布以来,bpf技术受到了极大的关注及发展。其中bpf技术分支中的bpftrace工具拥有kprobe和uprobe探测功能,可用来对内核函数及库函数注入字节码,此类技术同样给报文检测带来了福音。

在linux系统对HTTPS报文应用层的解码过程中,libssl/libgnutls等类似的库文件将被调用,他们使用连接web时获取的密钥或证书解密报文。而对于高于4.1版本的linux内核所拥有的bpf技术,于目标文件中插入字节码仿佛是可行的。

现有技术中,从libpcap中获取HTTPS报文后,cisco研发出的joy可对其做特征分析。Joy用于从实时网络流量或pcap文件中提取数据特征,使用类似于IPFIX或Netflow的面向流的模型,然后用JSON表示这些数据特征,它还包含可以应用于这些数据文件的分析工具。

Joy利用machine learn,根据原始加密的HTTPS数据元素提取原始特征后通过数据集进行多个算法模型的测试验证得到较为可靠的模型,报文通过模型的检测来判断是否为威胁,并予以处置。

相对类似wireshark需要从客户服务器获取密钥或证书的方法,joy不失为更好的解决方案,根据特征模型可检测出大多数威胁报文。

但使用joy将需要维护更多的代码及额外的机器学习开销。以DPI为基础的如IDS、IPS等报文处理软件已有许多,理论上我们仅需将解密后的报文传入这些软件引擎中即可完成威胁的感知处理,而使用joy将需要我们另起炉灶,重新搭建并维护一整套解决方案,这对人力的开销是巨大的。而机器学习产生的不确定性也可能导致客户的不信任。

有鉴于先有技术中存在的技术困境,本申请提出了一种用于linux系统的HTTPS报文检测方法,基于ebpf技术,绕过证书认证,对HTTPS解密后报文进行提取组装,形成可被常用IDS/IPS引擎检测的报文,减少了对实际报文威胁的关注度。本申请中的方法,可以在Linux系统中已有IDS/IPS方案的情况下,使用第三方软件对HTTPS报文进行单独处理形成明文数据提供给检测引擎,无需提供密钥或证书。

下面借助于具体的实施例,对本申请的内容进行详细说明。

图1是根据一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法及装置的系统框图。

如图1所示,系统架构10可以包括终端设备101、102、103,网络104和服务器105、远端平台106。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与远端平台106交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供报文安全检测的服务器,可在用户利用终端设备101、102、103访问远端平台106的过程中,服务器105可以对终端设备101、102、103发送的HTTPS报文进行分析等处理,并将处理结果(是否包含恶意代码)反馈给管理员。

服务器105可例如为基于linux系统设置;服务器105可例如提取所述HTTPS报文的应用层明文数据和环境数据;服务器105可例如提取所述HTTPS报文的skb结构体数据;服务器105可例如基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;服务器105可例如在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;服务器105可例如利用IDS/IPS入侵检测引擎对所述明文报文进行检测。

服务器105可以是一个实体的服务器,还可例如为多个服务器组成,需要说明的是,本申请实施例所提供的用于linux系统的HTTPS报文检测方法可以由服务器105执行,相应地,用于linux系统的HTTPS报文检测装置可以设置于服务器105中。

图2是根据一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法及装置的示意图。如图2所示,可根据本申请中的技术建立基于ebpf技术针对HTTPS加密协议报文的威胁感知系统。在该系统中可包括共享库文件及函数定位程序模块,ELF文件解析程序模块,应用层数据捕获程序模块,HTTPS报文捕获程序模块,报文组装机处理程序模块,报文检测引擎模块。

其中,共享库文件及函数定位程序模块,可实现非标准路径解析、标准路径获取、共享路径储存、共享库匹配等功能。

ELF文件解析程序模块,可实现ELF文件路径获取、ELF文件函数偏移获取等功能。

应用层数据捕获程序模块,可实现uprobe载入、应用层数据获取分析、uprobe程序数据获取、应用数据储存及处理等功能。

HTTPS报文捕获程序模块,可实现过cls_bdf载入、内核网络数据获取、cls_bdf程序数据获取、内核网络数据等功能。

报文组装机处理程序模块,可实现报文匹配机制、报文组装、报文储存、报文回放等功能。

报文检测引擎模块,可包括HTTPS明文报文处理程序,HTTPS威胁检测程序,HTTPS威胁日志上报程序,实现报文检测识别的各种功能。

图3是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法的流程图。用于linux系统的HTTPS报文检测方法30至少包括步骤S302至S312。

如图3所示,在S302中,linux系统捕获HTTPS报文。如图2所示,可通过cls_bdf载入、内核网络数据获取、cls_bdf程序数据获取、内核网络数据等方式捕获HTTPS报文。

在S304中,提取所述HTTPS报文的应用层明文数据和环境数据。可在SSL共享库中使用uprobe技术提取所述HTTPS报文的应用层明文数据和环境数据。

在一个实施例中,可例如包括:获取linux系统的ELF文件;解析所述ELF文件获取SSL/TLS加密/解密函数位移;通过uprobe勾住SSL/TLS加密/解密函数的入口和出口;创建perf事件资源。

在一个实施例中,可例如包括:基于SSL共享库创建链表依次轮训匹配;基于所述轮训匹配获取ELF动态符号表;基于所述ELF动态符号表轮询至获取指定函数及偏移;基于所述指定函数及偏移获取所述HTTPS报文的应用层明文数据和环境数据。

在一个实施例中,可例如包括:将所述应用层明文数据和所述环境数据通过perf事件发送给用户层应用。

在S306中,提取所述HTTPS报文的skb结构体数据。可在内核网络驱动中使用cls_bpf技术提取所述HTTPS报文的skb结构体数据。

在一个实施例中,可例如包括:通过流量控制器中的分类器勾住Qos中的ingress函数和egress函数;创建perf事件资源。

在一个实施例中,可例如包括:在内核网络驱动将cls_bpf代码插入至classifier函数中的ingress函数和egress函数;基于ingress函数和egress函数提取所述HTTPS报文的skb结构体数据。

在一个实施例中,可例如包括:将所述skb结构体数据通过perf事件发送给用户层应用。

在S308中,基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配。环境数据可将明文应用层明文数据和skb结构体进行匹配。

在S310中,在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文。可在匹配成功后基于所述skb结构体数据提取所述HTTPS报文中加密的应用层数据;将加密的实时应用层数据使用所述应用层明文数据替换,生成所述明文报文。

更具体的,可将完整报文中加密的应用层数据使用明文数据代替,这样即可获得完整的明文HTTPS报文,可直接存储为报文格式或回放提供给常见IPS/IDS服务检测威胁。

在S312中,利用IDS/IPS入侵检测引擎对所述明文报文进行检测。可例如,利用libpcap扩展库回放报文后,使用IDS/IPS引擎获取指定网卡数据,并对HTTPS会话报文进行过滤解析,使用攻击规则匹配获取攻击后提供攻击日志。

根据本申请的用于linux系统的HTTPS报文检测方法,通过linux系统捕获HTTPS报文;提取所述HTTPS报文的应用层明文数据和环境数据;提取所述HTTPS报文的skb结构体数据;基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;利用IDS/IPS入侵检测引擎对所述明文报文进行检测的方式,能够绕过证书认证,对HTTPS解密后报文进行提取组装,形成可被常用IDS/IPS引擎检测的报文,提升报文检测效率和准确度。

应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。

图4是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法的流程图。图4所示的流程40是对图2所示的流程中S102“”的详细描述。

如图4所示,在S402中,获取系统中的SSL/TLS库文件(ELF文件)。

在S404中,解析ELF文件并找到SSL/TLS加密/解密函数位移。

在S406中,使用uprobe勾住(hook)SSL/TLS加密/解密函数的入口和出口。

在S408中,创建perf事件。

在S410中,用户侧应用获取perf事件。

在S412中,获取perf事件中的应用层明文数据和其他相关数据。

在S414中,使用流量控制器TC中的分类器勾住ingress函数和egress函数。

在S416中,创建perf事件。

在S418中,用户侧应用获取perf事件。

在S420中,获取perf事件中的报文数据和其他相关数据。

在S422中,根据报文td匹配两侧数据并拼接成明文报文。

在S424中,IPS/IDS对明文报文进行检测。

申请的用于linux系统的HTTPS报文检测方法,直接利用linux的动态链接库管理机制及拆解ELF文件,仅需提供所需库文件模糊名称及其函数即可定位库文件及其函数偏移。

申请的用于linux系统的HTTPS报文检测方法,使用uprobe技术直接获取HTTPS应用层明文数据并使用cls_bpf获取完整报文,故无需提供密钥或证书便能得到完整明文HTTPS报文。

申请的用于linux系统的HTTPS报文检测方法,使用libpcap扩展包回放功能,让ids/ips快速处理获取到的HTTPS报文,形成完整的无需密钥/证书的HTTPS攻击检测系统。

综上而言,本申请的用于linux系统的HTTPS报文检测方法,有益效果在于:

(1)不依赖指定linux系统,不依赖共享库路径情况或假象中自定义生成的共享库。

(2)通过使用ebpf技术,在无法获取到密钥/证书的情况下,我们也可以获取HTTPS明文数据。

(3)可在原有IPS/IDS服务下,仅进行明文报文获取的第三方软件开发,减少了重复功能的二次开发

原本Linux获取库函数偏移通过手动执行shell命令的方式直接从指定库文件得到,这需要开发者熟悉ssl库文件与相应的shell命令,并手动添加至配置文件。一旦切换系统、更改文件位置或升级文件等都可能导致原配置不生效。

对于库文件,Linux通用的做法是优先查找非标准路径,即存入/etc/ld.so.conf文件中,再通过ldconfig生成/etc/ld.so.cache,ld.so加载共享库的时候先从ld.so.cache查找,再查找标准库文件(/lib/、/usr/lib/或/lib64/、/usr/lib64/)。

在本申请中,通过解析Linux系统配置文件”/etc/ld.conf.d”获取库文件所在目录,并同时获取标准库文件。图5是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测方法的示意图。

如图5所示,首先创建并初始化链表,更具体的,创建库文件目录链表和匹配链表。

其中,库文件目录链表中包括库文件目录和下一节点信息。

其中,匹配链表包括所需匹配的库文件名、匹配库文件路径、下一节点信息、库文件函数链表。

其中,库文件函数链表中包括函数名,函数偏移,下一节点信息。

之后,获取总配置文件的配置,该配置中包含所有库文件匹配文件的目录。

将这些匹配文件所指向的目标保存至库文件目录链表。

获取所需的匹配库文件名及其函数。

将信息保存至匹配链表和库文件函数链表。

轮询库文件目录列表,获取库文件路径及函数偏移,将其存入匹配链表及函数链表。在之后的流程中,根据需求使用库文件及函数偏移。

在实际应用过程中,创建链表依次轮询匹配的库文件名并根据库文件结构(ELF结构)中的符号表寻找相关函数在库文件中的偏移。该方法支持所有Linux系统来完整寻找目标文件函数的文件位置及函数在文件中的偏移,通过轮询ELF节头表,获取ELF动态符号表后再轮询至获取指定函数及其偏移。

更具体的,上文中通过ebpf技术获取的库文件(libssl.so/libgnutls.so等)函数偏移,将代码插入其中的函数(SSL_write、SSL_read),在该函数执行前、后获取HTTPS应用层明文数据及相关环境数据,并通过perf事件发送给用户层应用。本方案可绕过HTTPS解密步骤,直接获取明文的应用层数据。

由于cls_bpf让tc(流量控制器)中的classifier(分类器)支持了潜在编程的可能性,通过ebpf的编程即可实现对分类器中函数的控制。本专利将通过ebpf插入代码至classifier中的ingress(入报文)和egress(出报文)来获取内核skb结构体并通过perf事件发送给用户层应用。该skb结构体包含HTTPS完整报文及环境数据。

本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

图6是根据另一示例性实施例示出的一种用于linux系统的HTTPS报文检测装置的框图。如图6所示,用于linux系统的HTTPS报文检测装置60包括:捕获模块602,明文模块604,结构模块606,匹配模块608,拼接模块610,检测模块612。

捕获模块602用于linux系统捕获HTTPS报文;

明文模块604用于提取所述HTTPS报文的应用层明文数据和环境数据;明文模块604还用于在SSL共享库中使用uprobe技术提取所述HTTPS报文的应用层明文数据和环境数据。

结构模块606用于提取所述HTTPS报文的skb结构体数据;结构模块606还用于在内核网络驱动中使用cls_bpf技术提取所述HTTPS报文的skb结构体数据。

匹配模块608用于基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;

拼接模块610用于在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;拼接模块610还用于在匹配成功后基于所述skb结构体数据提取所述HTTPS报文中加密的应用层数据;将加密的实时应用层数据使用所述应用层明文数据替换,生成所述明文报文。

检测模块612用于利用IDS/IPS入侵检测引擎对所述明文报文进行检测。

根据本申请的用于linux系统的HTTPS报文检测装置,通过linux系统捕获HTTPS报文;提取所述HTTPS报文的应用层明文数据和环境数据;提取所述HTTPS报文的skb结构体数据;基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;利用IDS/IPS入侵检测引擎对所述明文报文进行检测的方式,能够绕过证书认证,对HTTPS解密后报文进行提取组装,形成可被常用IDS/IPS引擎检测的报文,提升报文检测效率和准确度。

图7是根据一示例性实施例示出的一种电子设备的框图。

下面参照图7来描述根据本申请的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图3,图4,图5中所示的步骤。

所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。

所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备700也可以与一个或多个外部设备700’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备700交互的设备通信,和/或该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。

所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:linux系统捕获HTTPS报文;提取所述HTTPS报文的应用层明文数据和环境数据;提取所述HTTPS报文的skb结构体数据;基于所述环境数据将所述应用层数据和所述skb结构体数据进行匹配;在匹配成功后将所述应用层数据和所述skb结构体数据进行拼接生成明文报文;利用IDS/IPS入侵检测引擎对所述明文报文进行检测。

本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。

以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

相关技术
  • 用于检测爆管检测装置的压降速率检测装置及检测方法
  • 用于Linux系统的本机协议报文的处理方法及装置
  • 用于网络攻击检测的IP分片报文重组方法及装置
技术分类

06120116062910