CN117494115A - 容器环境下的反弹shell检测方法、装置、设备和介质 - Google Patents

容器环境下的反弹shell检测方法、装置、设备和介质 Download PDF

Info

Publication number
CN117494115A
CN117494115A CN202311501826.1A CN202311501826A CN117494115A CN 117494115 A CN117494115 A CN 117494115A CN 202311501826 A CN202311501826 A CN 202311501826A CN 117494115 A CN117494115 A CN 117494115A
Authority
CN
China
Prior art keywords
detected
container
rebound shell
program
related information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311501826.1A
Other languages
English (en)
Inventor
杨强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202311501826.1A priority Critical patent/CN117494115A/zh
Publication of CN117494115A publication Critical patent/CN117494115A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种容器环境下的反弹shell检测方法、装置、设备和介质,其中,方法包括:在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用;获取主动上传信息程序上传的待检测进程的相关信息;根据所述待检测进程建立和容器匹配的进程树;根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。上述方法使进程主动上报相关信息,基于相关信息进行内反弹shell检测,并且在容器环境下快速确认当前受到反弹shell攻击的容器。

Description

容器环境下的反弹shell检测方法、装置、设备和介质
技术领域
本申请涉及技术领域,具体而言,涉及一种容器环境下的反弹shell检测方法、装置、电子设备和计算机可读存储介质。
背景技术
反弹shell(reverse shell)是主控端监听TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端的行为。反弹shell通过命令执行/网络通信接口调用的方式产生双向连接,完成主控端对受控端的控制。即主控端可以发起对受控端的攻击操作。
现有技术在进行反弹shell攻击检测时需要在进程活动的时候一直监控着进程是否打开交互式终端以及是否打开网络连接。但是,当进程潜藏一段时间之后才开始攻击,或者攻击者将进程隐藏时,现有技术不能检测该进程是否受到反弹shell攻击。
发明内容
本申请实施例的目的在于提供一种容器环境下的反弹shell检测方法、装置、电子设备和计算机可读存储介质,能够使进程主动上报相关信息,基于相关信息进行内反弹shell检测,并且在容器环境下快速确认当前受到反弹shell攻击的容器。
第一方面,本申请实施例提供了一种容器环境下的反弹shell检测方法,包括:
在内核函数添加主动上传信息程序,所述内核函数在待检测进程工作时被所述待检测进程调用;
获取主动上传信息程序上传的待检测进程的相关信息;
根据所述待检测进程建立和容器匹配的进程树;
根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;
当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。
在上述实现过程中,在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用,使进程主动上报相关信息,无需时刻监控进程,进程树具有明确的层级关系,通过基于待检测进程建立和容器匹配的进程数,当对待检测进程进行内反弹shell检测,发现待检测进程受到反弹shell攻击时,通过进程树可以快速确定受到攻击的进程容器。
进一步地,所述根据所述待检测进程建立和容器匹配的进程树,包括:
判断所述待检测进程是否为预设进程;
若是,获取所述待检测进程所属的容器,将所述待检测进程作为进程树的根节点;
若否,确定所述待检测进程的父进程,将所述待检测进程作为所述待检测进程的父进程的子节点。
在上述实现过程中,每个容器具有匹配的预设进程,容器所属的进程都是基于预设进程建立的,将预设进程作为根节点,根据待检测进程和其父进程的关系将待检测进程添加到进程树中,使得整个进程树体现了进程之间的依赖关系,当检测到待检测进程受到反弹shell攻击时,可以基于进程树快速确定受到反弹shell攻击的容器。
进一步地,所述根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器,包括:
将所述待检测进程所属的进程树的根节点匹配的容器确定为受到反弹shell攻击的容器。
在上述实现过程中,每个容器具有匹配的预设进程,进程具有明确的层级结构和存储架构,通过进程树的层级结构和存储架构可以快速确定出待检测进程所属的进程树的根节点,从而进一步确定出受到反弹shell攻击的进程容器。
进一步地,在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用,包括:
在系统内核的sched_process_fork函数添加tracepoint类型的eBPF程序,以使所述tracepoint类型的eBPF程序在所述待检测进程在被创建时获取所述待检测进程的第一相关信息;
所述获取主动上传信息程序上传的待检测进程的相关信息,包括:
获取所述tracepoint类型的eBPF程序获取的所述待检测进程的第一相关信息。
在上述实现过程中,现有技术中在对进程进行反弹shell攻击检测时需要主动监听,即对待检测进程持续间隔监听。但是,伪装的进程可能会潜藏一段时间之后才开始攻击,攻击者可能将进程隐藏,在这两种情况下,持续检测的方式难以检测到进程容器是否受到反弹shell攻击。通过在系统内核的sched_process_fork函数添加tracepoint类型的eBPF程序,以使所述tracepoint类型的eBPF程序在所述待检测进程在被创建时获取所述待检测进程的第一相关信息,可以实现待检测进程主动上报第一相关信息,解决上述两种问题。
进一步地,所述获取主动上传信息程序上传的待检测进程的相关信息之前,还包括:
在内核态的sys_connect()函数添加kprobe类型的eBPF程序,所述kprobe类型的eBPF程序用于获取所述待检测进程的第二相关信息;
所述获取主动上传信息程序上传的待检测进程的相关信息,包括:
获取所述kprobe类型的eBPF程序获取的所述待检测进程的第二相关信息。
在上述实现过程中,现有技术中在对进程进行反弹shell攻击检测时需要主动监听,即对待检测进程持续间隔监听。但是,伪装的进程可能会潜藏一段时间之后才开始攻击,攻击者可能将进程隐藏,在这两种情况下,持续检测的方式难以检测到进程容器是否受到反弹shell攻击。在内核态的sys_connect()函数添加kprobe类型的eBPF程序,所述kprobe类型的eBPF程序用于获取所述待检测进程的第二相关信息,可以实现待检测进程主动上报第二相关信息,解决上述两种问题。
进一步地,所述第一相关信息包括:所述待检测进程的进程号和进程的启动命令行;
所述根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果,包括:
判断所述待检测进程的进程号和进程的启动命令行是否包括预设指令;
若是,判定所述待检测进程受到反弹shell攻击。
在上述实现过程中,攻击方可能通过启动命令行实现反弹攻击,通过上述方式可以快速判断待检测进程是否受到反弹shell攻击。
进一步地,所述第二相关信息包括:所述待检测进程的数据包的五元组信息;
所述根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果,包括:
根据待检测进程的数据包的五元组信息对所述待检测进程进行内反弹shell检测,得到所述检测结果。
在上述实现过程中,反弹shell攻击通过被控制方主动建立网络连接而对主机进行攻击,因此可以根据待检测进程的数据包的五元组信息对所述待检测进程进行内反弹shell检测,得到所述检测结果。
第二方面,本申请实施例提供一种容器环境下的反弹shell检测装置,包括:
植入模块,用于在内核函数添加主动上传信息程序,所述内核函数在待检测进程工作时被所述待检测进程调用;
待检测进程获取模块,用于获取主动上传信息程序上传的待检测进程的相关信息;
进程树构建模块,用于根据所述待检测进程建立和容器匹配的进程树;
检测模块,用于根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;
容器确定模块,用于当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。
第三方面,本申请实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法的步骤。
第四方面,本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
本申请公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本申请公开的上述技术即可得知。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的容器环境下的反弹shell检测方法的流程示意图;
图2为本申请实施例提供的容器环境下的反弹shell检测装置的结构示意图;
图3为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参见图1,本申请实施例提供一种容器环境下的反弹shell检测方法,可应用于服务器或电子设备中,用于对业务数据进行反弹shell攻击检测。其中,服务器可以是独立的服务器或者是多个服务器组成的服务器集群来实现,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能采样点设备等基础云计算服务的云服务器。参见图1,方法包括:
S1:在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用;
S2:获取主动上传信息程序上传的待检测进程的相关信息;
S3:根据所述待检测进程建立和容器匹配的进程树;
S4:根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;
S5:当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。
在一些实施例中,容器为Docker容器或kubernetes。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
在上述实现过程中,在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用,使进程主动上报相关信息,无需时刻监控进程,进程树具有明确的层级关系,通过基于待检测进程建立和容器匹配的进程数,当对待检测进程进行内反弹shell检测,发现待检测进程受到反弹shell攻击时,通过进程树可以快速确定受到攻击的进程容器。进一步地,所述根据所述待检测进程建立和容器匹配的进程树,包括:
判断所述待检测进程是否为预设进程;若是,获取所述待检测进程所属的容器,将所述待检测进程作为进程树的根节点;若否,确定所述待检测进程的父进程,将所述待检测进程作为所述待检测进程的父进程的子节点。
上述实施例中,预设进程可以为containerd-shim。容器应每次启动一个容器,都会创建一个新的containerd-shim进程来运行容器,持续存在直到容器内实例进程退出为止,将容器的退出状态反馈给containerd。
在上述实现过程中,每个容器具有匹配的预设进程,容器所属的进程都是基于预设进程建立的,将预设进程作为根节点,根据待检测进程和其父进程的关系将待检测进程添加到进程树中,使得整个进程树体现了进程之间的依赖关系,当检测到待检测进程受到反弹shell攻击时,可以基于进程树快速确定受到反弹shell攻击的容器。
进一步地,所述根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器,包括:
将所述待检测进程所属的进程树的根节点匹配的容器确定为受到反弹shell攻击的容器。
在上述实现过程中,每个容器具有匹配的预设进程,进程具有明确的层级结构和存储架构,通过进程树的层级结构和存储架构可以快速确定出待检测进程所属的进程树的根节点,从而进一步确定出受到反弹shell攻击的进程容器。
进一步地,在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用,包括:
在系统内核的sched_process_fork函数添加tracepoint类型的eBPF程序,以使所述tracepoint类型的eBPF程序在所述待检测进程在被创建时获取所述待检测进程的第一相关信息;
所述获取主动上传信息程序上传的待检测进程的相关信息,包括:
获取所述tracepoint类型的eBPF程序获取的所述待检测进程的第一相关信息。
上述实施例中,eBPF是针对传统BPF(Berkeley Packet Filter)的扩展(ExtendBPF),在较高版本的linux kernel里已经默认支持。eBPF程序通过Map实现内核以及用户空间应用程序之间数据存储和共享。Map是一种键值对,能够支持多种数据结构,eBPF程序能够通过辅助函数在Map中发送和接收数据。eBPF程序在内核中的执行是事件驱动的,目前所支持的事件类型有很多,如kprobe/kretprobe。kprobe/kretprobe是Linux内核提供的函数探针,可以动态对指定的内核函数进行探测。kprobe是用于函数执行入口,kretprobe则是函数执行返回。eBPF通过kprobe/kretprobe,可以在观测的内核函数执行入口或者执行返回时,触发执行eBPF程序。kprobe可以在内核几乎任意地方注入代码,同时内核在固定位置也预埋了一些tracepoint,tracepoint是由内核开发人员在代码中设置的静态hook点,具有稳定的API接口,不会随着内核版本的变化而变化,可以提高内核跟踪程序的可移植性。
Linux系统通过调用do_fork()函数来创建进程,进程调用sys_connect()函数打开一个网络连接。内核在do_fork()函数里面设置了静态hook点,该hook点是在创建完进程后再调用的,该hook点的函数名称为sched_process_fork,使用perf list可以看到。
在该hook点上可以获取到创建的子进程的进程描述符结构体和父进程的进程描述符结构体,在Linux内核中,进程使用struct task_struct这个结构体描述的,进程描述符记录了进程的进程号PID和描述进程的地址空间的结构体struct mm_struct,进程的命令行存储在mm_struct结构体里。
基于以上原理,可以通过hook内核的tracepoint点sched_process_fork()函数调用和kprobe内核的sys_connect()函数的方式实现监控进程的创建以及检测进程打开的网络连接。
在上述实现过程中,现有技术中在对进程进行反弹shell攻击检测时需要主动监听,即对待检测进程持续间隔监听。但是,伪装的进程可能会潜藏一段时间之后才开始攻击,攻击者可能将进程隐藏,在这两种情况下,持续检测的方式难以检测到进程容器是否受到反弹shell攻击。通过在系统内核的sched_process_fork函数添加tracepoint类型的eBPF程序,以使所述tracepoint类型的eBPF程序在所述待检测进程在被创建时获取所述待检测进程的第一相关信息,可以实现待检测进程主动上报第一相关信息,解决上述两种问题。
进一步地,所述获取主动上传信息程序上传的待检测进程的相关信息之前,还包括:
在内核态的sys_connect()函数添加kprobe类型的eBPF程序,所述kprobe类型的eBPF程序用于获取所述待检测进程的第二相关信息;
所述获取主动上传信息程序上传的待检测进程的相关信息,包括:
获取所述kprobe类型的eBPF程序获取的所述待检测进程的第二相关信息。
在上述实现过程中,现有技术中在对进程进行反弹shell攻击检测时需要主动监听,即对待检测进程持续间隔监听。但是,伪装的进程可能会潜藏一段时间之后才开始攻击,攻击者可能将进程隐藏,在这两种情况下,持续检测的方式难以检测到进程容器是否受到反弹shell攻击。在内核态的sys_connect()函数添加kprobe类型的eBPF程序,所述kprobe类型的eBPF程序用于获取所述待检测进程的第二相关信息,可以实现待检测进程主动上报第二相关信息,解决上述两种问题。
进一步地,所述第一相关信息包括:所述待检测进程的进程号和进程的启动命令行;
所述根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果,包括:
判断所述待检测进程的进程号和进程的启动命令行是否包括预设指令;
若是,判定所述待检测进程受到反弹shell攻击。
在上述实现过程中,攻击方可能通过启动命令行实现反弹攻击,通过上述方式可以快速判断待检测进程是否受到反弹shell攻击。
进一步地,所述第二相关信息包括:所述待检测进程的数据包的五元组信息;
所述根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果,包括:
根据待检测进程的数据包的五元组信息对所述待检测进程进行内反弹shell检测,得到所述检测结果。
在上述实现过程中,反弹shell攻击通过被控制方主动建立网络连接而对主机进行攻击,因此可以根据待检测进程的数据包的五元组信息对所述待检测进程进行内反弹shell检测,得到所述检测结果。
参见图2,本申请实施例提供一种内反弹shell检测装置,包括:
植入模块1,用于在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用;
待检测进程获取模块2,用于获取主动上传信息程序上传的待检测进程的相关信息;
进程树构建模块3,用于根据所述待检测进程建立和容器匹配的进程树;
检测模块4,用于根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;
容器确定模块5,用于当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。
在一些实施例中,还用于判断所述待检测进程是否为预设进程;
若是,获取所述待检测进程所属的容器,将所述待检测进程作为进程树的根节点;
若否,确定所述待检测进程的父进程,将所述待检测进程作为所述待检测进程的父进程的子节点。
在一些实施例中,还用于将所述待检测进程所属的进程树的根节点匹配的容器确定为受到反弹shell攻击的容器。
在一些实施例中,还用于在系统内核的sched_process_fork函数添加tracepoint类型的eBPF程序,以使所述tracepoint类型的eBPF程序在所述待检测进程在被创建时获取所述待检测进程的第一相关信息;
还用于获取所述tracepoint类型的eBPF程序获取的所述待检测进程的第一相关信息。
在一些实施例中,所述第一相关信息包括:所述待检测进程的进程号和进程的启动命令行;还用于判断所述待检测进程的进程号和进程的启动命令行是否包括预设指令;
若是,判定所述待检测进程受到反弹shell攻击。
在一些实施例中,所述第二相关信息包括:所述待检测进程的数据包的五元组信息;还用于根据待检测进程的数据包的五元组信息对所述待检测进程进行内反弹shell检测,得到所述检测结果。
本申请还提供一种电子设备,请参见图3,图3为本申请实施例提供的一种电子设备的结构框图。电子设备可以包括处理器31、通信接口32、存储器33和至少一个通信总线34。其中,通信总线34用于实现这些组件直接的连接通信。其中,本申请实施例中电子设备的通信接口32用于与其他节点设备进行信令或数据的通信。处理器31可以是一种集成电路芯片,具有信号的处理能力。
上述的处理器31可以是通用处理器,包括中央处理器(CPU,Central ProcessingUnit)、网络处理器(NP,Network Processor)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器31也可以是任何常规的处理器等。
存储器33可以是,但不限于,随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read Only Memory),可编程只读存储器(PROM,Programmable Read-OnlyMemory),可擦除只读存储器(EPROM,Erasable Programmable Read-Only Memory),电可擦除只读存储器(EEPROM,Electric Erasable Programmable Read-Only Memory)等。存储器33中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器31执行时,电子设备可以执行上述方法实施例涉及的各个步骤。
可选地,电子设备还可以包括存储控制器、输入输出单元。
所述存储器33、存储控制器、处理器31、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线34实现电性连接。所述处理器31用于执行存储器33中存储的可执行模块,例如电子设备包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
可以理解,图3所示的结构仅为示意,所述电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现方法实施例所述的方法,为避免重复,此处不再赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种容器环境下的反弹shell检测方法,其特征在于,包括:
在内核函数添加主动上传信息程序,所述内核函数在待检测进程工作时被所述待检测进程调用;
获取主动上传信息程序上传的待检测进程的相关信息;
根据所述待检测进程建立和容器匹配的进程树;
根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;
当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。
2.根据权利要求1所述的容器环境下的反弹shell检测方法,其特征在于,所述根据所述待检测进程建立和容器匹配的进程树,包括:
判断所述待检测进程是否为预设进程;
若是,获取所述待检测进程所属的容器,将所述待检测进程作为进程树的根节点;
若否,确定所述待检测进程的父进程,将所述待检测进程作为所述待检测进程的父进程的子节点。
3.根据权利要求1所述的容器环境下的反弹shell检测方法,其特征在于,所述根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器,包括:
将所述待检测进程所属的进程树的根节点匹配的容器确定为受到反弹shell攻击的容器。
4.根据权利要求2所述的容器环境下的反弹shell检测方法,其特征在于,在内核函数添加主动上传信息程序,所述内核函数在所述待检测进程工作时被所述待检测进程调用,包括:
在系统内核的sched_process_fork函数添加tracepoint类型的eBPF程序,以使所述tracepoint类型的eBPF程序在所述待检测进程在被创建时获取所述待检测进程的第一相关信息;
所述获取主动上传信息程序上传的待检测进程的相关信息,包括:
获取所述tracepoint类型的eBPF程序获取的所述待检测进程的第一相关信息。
5.根据权利要求4所述的容器环境下的反弹shell检测方法,其特征在于,所述获取主动上传信息程序上传的待检测进程的相关信息之前,还包括:
在内核态的sys_connect()函数添加kprobe类型的eBPF程序,所述kprobe类型的eBPF程序用于获取所述待检测进程的第二相关信息;
所述获取主动上传信息程序上传的待检测进程的相关信息,包括:
获取所述kprobe类型的eBPF程序获取的所述待检测进程的第二相关信息。
6.根据权利要求4所述的容器环境下的反弹shell检测方法,其特征在于,所述第一相关信息包括:所述待检测进程的进程号和进程的启动命令行;
所述根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果,包括:
判断所述待检测进程的进程号和进程的启动命令行是否包括预设指令;
若是,判定所述待检测进程受到反弹shell攻击。
7.根据权利要求5所述的容器环境下的反弹shell检测方法,其特征在于,所述第二相关信息包括:所述待检测进程的数据包的五元组信息;
所述根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果,包括:
根据待检测进程的数据包的五元组信息对所述待检测进程进行内反弹shell检测,得到所述检测结果。
8.一种容器环境下的反弹shell检测装置,其特征在于,包括:
植入模块,用于在内核函数添加主动上传信息程序,所述内核函数在待检测进程工作时被所述待检测进程调用;
待检测进程获取模块,用于获取主动上传信息程序上传的待检测进程的相关信息;
进程树构建模块,用于根据所述待检测进程建立和容器匹配的进程树;
检测模块,用于根据所述待检测进程的相关信息对所述待检测进程进行内反弹shell检测,得到检测结果;
容器确定模块,用于当所述检测结果为异常时,根据所述待检测进程所属的进程树确定受到反弹shell攻击的容器。
9.一种电子设备,其特征在于,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-7任一项所述的方法。
CN202311501826.1A 2023-11-10 2023-11-10 容器环境下的反弹shell检测方法、装置、设备和介质 Pending CN117494115A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311501826.1A CN117494115A (zh) 2023-11-10 2023-11-10 容器环境下的反弹shell检测方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311501826.1A CN117494115A (zh) 2023-11-10 2023-11-10 容器环境下的反弹shell检测方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN117494115A true CN117494115A (zh) 2024-02-02

Family

ID=89668727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311501826.1A Pending CN117494115A (zh) 2023-11-10 2023-11-10 容器环境下的反弹shell检测方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN117494115A (zh)

Similar Documents

Publication Publication Date Title
CN113661693B (zh) 经由日志检测敏感数据暴露
US10083302B1 (en) System and method for detecting time-bomb malware
US10552610B1 (en) Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10469512B1 (en) Optimized resource allocation for virtual machines within a malware content detection system
US9438613B1 (en) Dynamic content activation for automated analysis of embedded objects
US10581879B1 (en) Enhanced malware detection for generated objects
US9781144B1 (en) Determining duplicate objects for malware analysis using environmental/context information
US11943238B1 (en) Process tree and tags
US20170083703A1 (en) Leveraging behavior-based rules for malware family classification
CN108664793B (zh) 一种检测漏洞的方法和装置
EP3488346B1 (en) Anomaly detection using sequences of system calls
CN112534432A (zh) 不熟悉威胁场景的实时缓解
CN112528296B (zh) 漏洞检测方法、装置和存储介质及电子设备
CN110505246B (zh) 客户端网络通讯检测方法、装置及存储介质
CN108595957B (zh) 浏览器主页篡改检测方法、装置及存储介质
CN113486277A (zh) Web应用访问方法、装置、电子设备及存储介质
CN117494115A (zh) 容器环境下的反弹shell检测方法、装置、设备和介质
CN106709331B (zh) 一种消息钩子防注入方法、装置以及客户端
US11360871B1 (en) Automatic optimization and hardening of application images
CN115051867A (zh) 一种非法外联行为的检测方法、装置、电子设备及介质
CN114662102A (zh) 一种文件处理方法、装置及存储介质
CN114064597A (zh) 一种日志处理方法、系统、电子设备及存储介质
US11763004B1 (en) System and method for bootkit detection
CN112217770A (zh) 一种安全检测方法、装置、计算机设备及存储介质
CN117056030B (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