CN113986459A - 一种容器访问的控制方法、系统、电子设备及存储介质 - Google Patents

一种容器访问的控制方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN113986459A
CN113986459A CN202111227654.4A CN202111227654A CN113986459A CN 113986459 A CN113986459 A CN 113986459A CN 202111227654 A CN202111227654 A CN 202111227654A CN 113986459 A CN113986459 A CN 113986459A
Authority
CN
China
Prior art keywords
access
program
pod
user mode
ebpf
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
CN202111227654.4A
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.)
Inspur Electronic Information Industry Co Ltd
Guangdong Inspur Smart Computing Technology Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202111227654.4A priority Critical patent/CN113986459A/zh
Publication of CN113986459A publication Critical patent/CN113986459A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种容器访问的控制方法,应用于Kubernetes集群,所述控制方法包括:在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;判断是否存在外部流量访问所述Kubernetes集群的pod;若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。本申请能够提高容器访问控制的效率。本申请还公开了一种容器访问的控制系统、一种电子设备及一种存储介质,具有以上有益效果。

Description

一种容器访问的控制方法、系统、电子设备及存储介质
技术领域
本申请涉及云计算技术领域,特别涉及一种容器访问的控制方法、系统、电子设备及存储介质。
背景技术
在云计算时代,大量的微服务应用被部署到云平台上,如何对其进行网络管理就变得非常重要。相关技术中通常为集群内每一个pod增加sidecar代理容器实现对于外部流量访问pod的控制。上述pod内封装有集群内的多个容器。在上述方式中,每个通过pod的流量都要先经过sidecar容器,这大大的增加了资源消耗和响应时长,存在较大的性能问题。
因此,如何提高容器访问控制的效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种容器访问的控制方法、系统、一种电子设备及一种存储介质,能够提高容器访问控制的效率。
为解决上述技术问题,本申请提供一种容器访问的控制方法,应用于Kubernetes集群,该容器访问的控制方法包括:
在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;其中,所述访问权限表由所述用户态程序和Linux系统内核共享;
利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;
判断是否存在外部流量访问所述Kubernetes集群的pod;其中,所述pod用于封装所述Kubernetes集群中的容器;
若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。
可选的,利用所述用户态程序维护访问权限表,包括:
利用所述用户态程序维护哈希表形式的访问权限表;其中,所述访问权限表的键key包括源地址、源端口、目标地址和目标端口,所述访问权限表的值value包括所述控制动作。
可选的,在所述Kubernetes集群中部署用户态程序,包括:
通过daemonset的方式在所述Kubernetes集群中部署所述用户态程序。
可选的,还包括:
控制所述用户态程序利用list-watch机制监控所述pod的IP变化信息;
根据所述IP变化信息更新所述访问权限表。
可选的,所述判断是否存在外部流量访问所述Kubernetes集群的pod,包括:
判断所述pod的套接字socket的接收消息事件是否被触发;
若是,则判定存在所述外部流量访问所述Kubernetes集群的pod;
若否,则判定不存在所述外部流量访问所述Kubernetes集群的pod。
可选的,在将所述eBPF程序注入至所述Linux系统内核之后,还包括:
判断是否存在访问外部IP地址的内部流量;
若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述内部流量对应的控制动作。
可选的,利用所述用户态程序维护访问权限表,包括:
利用所述用户态程序获取pod访问策略,并根据所述获取pod访问策略维护所述访问权限表。
本申请还提供了一种容器访问的控制系统,应用于Kubernetes集群,所述控制系统包括:
用户态程序部署模块,用于在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;其中,所述访问权限表由所述用户态程序和Linux系统内核共享;
内核程序注入模块,用于利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;
判断模块,用于判断是否存在外部流量访问所述Kubernetes集群的pod;其中,所述pod用于封装所述Kubernetes集群中的容器;
访问控制模块,用于若存在所述外部流量访问所述Kubernetes集群的pod,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述容器访问的控制方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述容器访问的控制方法执行的步骤。
本申请提供了一种容器访问的控制方法,应用于Kubernetes集群,所述控制方法包括:在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;其中,所述访问权限表由所述用户态程序和Linux系统内核共享;利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;判断是否存在外部流量访问所述Kubernetes集群的pod;其中,所述pod用于封装所述Kubernetes集群中的容器;若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。
本申请在Kubernetes集群中部署用户态程序,并通过用户态程序维护由用户态程序和Linux系统内核共享的访问权限表。在将eBPF程序注入至所述Linux系统内核后,eBPF程序可以利用与用户态程序共享的访问权限表对外部流量进行过滤,以便对外部流量访问pod的动作进行允许或拒绝。本申请基于eBPF在内核层面实现外部流量对容器的访问,能够提高容器访问控制的效率。本申请同时还提供了一种容器访问的控制系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种容器访问的控制方法的流程图;
图2为本申请实施例所提供的一种eBPF程序注入方式示意图;
图3为本申请实施例所提供的一种访问策略生效过程的示意图;
图4为本申请实施例所提供的一种基于ebpf技术的Kubernetes内pod的网络安全控制方案的原理图;
图5为本申请实施例所提供的一种容器访问的控制系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种容器访问的控制方法的流程图。
具体步骤可以包括:
S101:在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;
本实施例可以应用于Kubernetes集群,具体可以在Kubernetes集群的节点设备上实现。Kubernetes又称K8S,一个开源的、用于管理云平台中多个主机上的容器化的应用,Kubernetes集群的目标是让部署容器化的应用简单且高效,Kubernetes集群提供了应用部署、规划、更新和维护的机制。
本实施例可以通过daemonset的方式在所述Kubernetes集群中部署上述用户态程序。在部署用户态程序后,本申请可以利用所述用户态程序维护哈希表形式的访问权限表;其中,所述访问权限表的键key包括源地址、源端口、目标地址和目标端口,所述访问权限表的值value包括所述控制动作(如允许和拒绝)。具体的,用户态程序可以先确定用户创建的访问规则,并基于该访问规则维护访问权限表。
上述访问权限表由所述用户态程序和Linux系统内核共享,即用户态程序和内核态程序均能够对访问权限表进行读写。
S102:利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;
其中,eBPF(Extended BPF)是Linux 4.x+中的内核技术,相当于一种轻量级的沙盒虚拟机,eBPF程序运行在Linux内核内部,可以提供对内核内存的验证访问。eBPF允许内核运行BPF字节码,虽然使用的前端语言可以不同,但通常都是C语言的限制子集,通常先用Clang将C代码编译成BPF字节码,然后对字节码进行验证以确保其安全执行。这些严格的验证保证了机器代码不会故意或意外地危害Linux内核,并且保证了BPF探针每次被触发时都能在一定数量的指令中执行,这些保证使得eBPF程序能够用于性能关键型的工作负载,如数据包过滤、网络监控等。
eBPF程序可以使用代码工具编写,然后编写好的程序通过bpf()加载到linux系统内核中,注入程序bpf_load_program()加入了更复杂的verifier机制,在运行注入程序之前,可以先进行一系列的安全检查,最大限度的保证系统的安全。经过安全检查的bpf字节码使用内核JIT进行编译,生成本机汇编指令,附加到内核特定挂钩的程序,最终内核态与用户态通过高效的map机制进行通信。用户态程序可以用户创建的访问规则创建上述eBPF程序,并将eBPF程序注入至所述Linux系统内核。
S103:判断是否存在外部流量访问所述Kubernetes集群的pod;若是,则进入S104;若否,则结束流程;
其中,Kubernetes集群包括多个pod,上述pod用于封装所述Kubernetes集群中的容器;外部流量通过访问Kubernetes集群的pod实现对容器的访问。本实施例可以按照预设周期判断是否存在外部流量访问所述Kubernetes集群的pod,若否,则可以结束本实施例的操作流程并在预设时间段后重新执行S103~S104的相关操作。
S104:利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;
其中,本实施例建立在已经检测到外部流量访问pod的操作,本实施例可以利用运行于Linux内核的eBPF程序从所述访问权限表中查询该外部流量对应的控制动作,并执行上述控制动作。当控制动作为允许访问时,允许该外部流量发送至pod;当控制动作为拒绝访问时,禁止将该外部流量发送至pod。
本实施例在Kubernetes集群中部署用户态程序,并通过用户态程序维护由用户态程序和Linux系统内核共享的访问权限表。在将eBPF程序注入至所述Linux系统内核后,eBPF程序可以利用与用户态程序共享的访问权限表对外部流量进行过滤,以便对外部流量访问pod的动作进行允许或拒绝。本实施例基于eBPF在内核层面实现外部流量对容器的访问,能够提高容器访问控制的效率。
作为对于图1对于实施例的进一步介绍,用户创建的访问规则具体可以为pod访问策略,上述实施例可以利用所述用户态程序获取pod访问策略,并根据所述获取pod访问策略维护所述访问权限表。
作为对于图1对于实施例的进一步介绍,由于Kubernetes集群的IP地址实时变化,访问权限表需要进行相应的调整,因此在容器访问的控制方法的实现过程中,还可以控制所述用户态程序利用list-watch机制监控所述pod的IP变化信息;根据所述IP变化信息更新所述访问权限表。上述IP变化信息包括pod的身份标识、原IP地址和新IP地址的对应关系,因此在检测到某一pod的IP变化时,可以根据pod的身份标识将访问权限表中的原IP地址修改为新IP地址,上述IP变化信息中包括原IP地址的作用为提高访问权限表更新操作的可靠性,避免误操作。
作为对于图1对应实施例的进一步介绍,可以通过以下方式判断是否存在外部流量访问pod:判断所述pod的套接字socket的接收消息事件是否被触发;若是,则判定存在所述外部流量访问所述Kubernetes集群的pod;若否,则判定不存在所述外部流量访问所述Kubernetes集群的pod。
作为对于图1对应实施例的进一步介绍,在将eBPF程序注入至Linux系统内核之前,还可以对所述eBPF程序进行安全检查;若所述eBPF程序通过安全检查,则进入将eBPF程序注入至Linux系统内核的步骤。通过上述方式能够提高Linux系统内核的安全性,避免将恶意程序注入Linux系统内核。
作为对于图1对应实施例的进一步介绍,在将所述eBPF程序注入至所述Linux系统内核之后,还可以判断是否存在访问外部IP地址的内部流量;若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述内部流量对应的控制动作。上述内部流量为Kubernetes内pod向外部IP地址发送的流量,本申请利用eBPF程序从所述访问权限表对内部流量进行过滤,提高了网络安全新。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
Kubernetes是一种关于pod间及pod与其他网络端点间所允许的通信规则的规范,其能够较为精确的控制pod间互相访问,也能够控制集群内的pod访问公网的地址,但是无法做到控制外部IP通过nodeport或者ingress对pod的访问。如果Kubernetes集群内的app开启了nodeport或ingress,相关技术中无法实现基于IP的黑白名单访问控制,istio服务网格中的ingress-gateway可以实现IP黑白名单控制,但是其在每个pod中增加了一个sidecar代理容器,每个通过pod的流量都要先经过sidecar容器,这大大的增加了资源消耗和响应时长,存在较大的性能问题。
针对上述相关技术存在的问题,本申请提供了一种基于eBPF的k8s集群容器网络安全控制方案,本方案利用eBPF技术通过编写ebpf程序注入内核,对pod进入和发出的流量进行监听,根据设置的进出站规则从而实现对pod的网络安全控制。本方案将eBPF技术应用到Kubernetes集群的容器网络控制中,相对于原有的iptable方式和sidecar的方式效率更高,本方案能够对外部访问pod的情况进行黑白名单控制,比传统的networkpolicy功能更加强大。
请参见图2,图2为本申请实施例所提供的一种eBPF程序注入方式示意图,图2中BPF Program为编写好的eBPF程序,BPF Program通过LLVM(Low Level Virtual Machine,底层虚拟机)或Clang(轻量级编译器)将eBPF程序编译成BPF字节码(Bytecode)prog.bpf,将上述BPF字节码通过bpf()的方式从用户态空间userspace加载到内核kernel。内核中的BPF字节码使用verifier的安全验证和内核JIT的编译,得到本机汇编指令Native Code,将本机汇编指令Native Code附加到内核特定挂钩的程序Kernel Functions。用户reader可以通过bpf()的方式更新用户态程序与eBPF程序共享的访问权限表BPF Maps。
请参见图3,图3为本申请实施例所提供的一种访问策略生效过程的示意图,图3中Client表示客户端、socket表示套接字,客户端流量的源地址Client ip为10.48.51.100、源端口Client port为30001、目标地址Remote ip为10.233.10.100、目标端口Remote port为20120。map为访问权限表,访问权限表的key为流量的源地址、源端口、目标地址和目标端口构成的四元组(4-tuple),访问权限表的value为允许allow和拒绝deny这两种动作。图3中pod ip为pod的ip地址。用户态程序可以根据用户设置的pod访问策略更新访问权限表。eBPF程序根据访问权限表判断客户端流量的四元组对应的动作为允许allow,则允许客户端流量进入pod。
如图3所示,本实施例的实现思想如下:
(1)编写eBPF程序;上述eBPF程序涉及的eBPF类型为BPF_PROG_TYPE_SOCKET_FILTER,该类型的eBPF程序可以实现对数据包的filter操作。
(2)用户态创建维护一个访问权限表hashmap,访问权限表hashmap的key是流量的源地址、源端口、目标地址和目标端口组成的四元组,value是此流量访问的权限,分为allow和deny两种,访问权限表实现了用户态和内核态的数据共享,让内核在收到流量的时候根据访问权限表中的权限设定对网络流量进行对应的filter操作。
(3)eBPF程序在内核中根据指定内核事件会做出对应的响应,本实施例使用的BPF_PROG_TYPE_SOCKET_FILTER类型的程序在内核接收到消息的时候触发ebpf程序执行,如果判断流量的源地址属于黑名单ip,则在程序中返回0,并丢弃报文。
请参见图4,图4为本申请实施例所提供的一种基于ebpf技术的Kubernetes内pod的网络安全控制方案的原理图,图4中update表示更新访问权限表的操作,creat表示创建eBPF程序的操作,kernal表示Linux系统内核,apiserver用于提供Kubernetes集群中各类资源对象的增删改查的接口。图4所示的容器网络安全控制的方案的实现过程如下:
用户态程序以daemonset的方式部署在k8s集群中,用户态程序根据用户设置的pod访问策略(即用户创建的规则)创建eBPF程序、更新用户态和内核共享的访问权限表。当用户创建pod访问策略的时候,daemonset会创建相应的eBPF程序并注入至内核中,同时更新内核中的访问权限表。
用户态程序利用Kubernetes的listwatch机制,实时监控pod的IP地址变化,一旦检测到pod的IP地址变化则将变化后的IP地址同步到访问权限表。
当流量从外部访问pod的时候,eBPF程序会因为socket的接收消息事件触发,触发后执行的内核程序包括以下步骤:读取访问权限表中的allow和deny信息,根据读取的结果来确定是将报文丢弃还是继续执行。
本实施例实现了Kubernetes集群中容器的安全控制,使用eBPF技术对k8s集群中的app的流量进行监听。本实施例先根据预先配置的pod访问策略实现类似黑白名单的效果;若外部流量的四元组包括预先配置的黑名单IP,将禁止进入或者流出该app。与传统的k8s控制策略不同的是,本实施例的控制策略不仅可以控制Kubernetes集群内部的流量进出,还可以做到对集群外部流量访问集群内的app和app访问集群外部的IP的控制。
本实施例基于eBPF技术直接在内核层面对容器的网络访问进行控制,不仅可以对集群内的pod之间进行访问控制,还可以对外部访问的IP进行访问控制,本实施例可以支持amd64、arm和mips等多种架构。本实施例使用eBPF技术在内核级别实现容器网络过滤,使得过滤效率更高。
请参见图5,图5为本申请实施例所提供的一种容器访问的控制系统的结构示意图,该系统应用于Kubernetes集群,具体可以包括:
用户态程序部署模块501,用于在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;其中,所述访问权限表由所述用户态程序和Linux系统内核共享;
内核程序注入模块502,用于利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;
判断模块503,用于判断是否存在外部流量访问所述Kubernetes集群的pod;其中,所述pod用于封装所述Kubernetes集群中的容器;
访问控制模块504,用于若存在所述外部流量访问所述Kubernetes集群的pod,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。
本实施例在Kubernetes集群中部署用户态程序,并通过用户态程序维护由用户态程序和Linux系统内核共享的访问权限表。在将eBPF程序注入至所述Linux系统内核后,eBPF程序可以利用与用户态程序共享的访问权限表对外部流量进行过滤,以便对外部流量访问pod的动作进行允许或拒绝。本实施例基于eBPF在内核层面实现外部流量对容器的访问,能够提高容器访问控制的效率。
进一步的,用户态程序部署模块501包括:
权限表维护单元,用于利用所述用户态程序维护哈希表形式的访问权限表;其中,所述访问权限表的键key包括源地址、源端口、目标地址和目标端口,所述访问权限表的值value包括所述控制动作。
进一步的,用户态程序部署模块501包括:
部署单元,用于通过daemonset的方式在所述Kubernetes集群中部署所述用户态程序。
进一步的,还包括:
权限表更新模块,用于控制所述用户态程序利用list-watch机制监控所述pod的IP变化信息;还用于根据所述IP变化信息更新所述访问权限表。
进一步的,判断模块503用于判断所述pod的套接字socket的接收消息事件是否被触发;若是,则判定存在所述外部流量访问所述Kubernetes集群的pod;若否,则判定不存在所述外部流量访问所述Kubernetes集群的pod。
进一步的,还包括:
内部流量控制模块,用于在将所述eBPF程序注入至所述Linux系统内核之后,判断是否存在访问外部IP地址的内部流量;若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述内部流量对应的控制动作。
进一步的,用户态程序部署模块501利用所述用户态程序维护访问权限表的过程包括:利用所述用户态程序获取pod访问策略,并根据所述获取pod访问策略维护所述访问权限表。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种容器访问的控制方法,其特征在于,应用于Kubernetes集群,所述控制方法包括:
在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;其中,所述访问权限表由所述用户态程序和Linux系统内核共享;
利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;
判断是否存在外部流量访问所述Kubernetes集群的pod;其中,所述pod用于封装所述Kubernetes集群中的容器;
若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。
2.根据权利要求1所述容器访问的控制方法,其特征在于,利用所述用户态程序维护访问权限表,包括:
利用所述用户态程序维护哈希表形式的访问权限表;其中,所述访问权限表的键key包括源地址、源端口、目标地址和目标端口,所述访问权限表的值value包括所述控制动作。
3.根据权利要求1所述容器访问的控制方法,其特征在于,在所述Kubernetes集群中部署用户态程序,包括:
通过daemonset的方式在所述Kubernetes集群中部署所述用户态程序。
4.根据权利要求1所述容器访问的控制方法,其特征在于,还包括:
控制所述用户态程序利用list-watch机制监控所述pod的IP变化信息;
根据所述IP变化信息更新所述访问权限表。
5.根据权利要求1所述容器访问的控制方法,其特征在于,所述判断是否存在外部流量访问所述Kubernetes集群的pod,包括:
判断所述pod的套接字socket的接收消息事件是否被触发;
若是,则判定存在所述外部流量访问所述Kubernetes集群的pod;
若否,则判定不存在所述外部流量访问所述Kubernetes集群的pod。
6.根据权利要求1所述容器访问的控制方法,其特征在于,在将所述eBPF程序注入至所述Linux系统内核之后,还包括:
判断是否存在访问外部IP地址的内部流量;
若是,则利用所述eBPF程序从所述访问权限表中查询并执行所述内部流量对应的控制动作。
7.根据权利要求1至6任一项所述容器访问的控制方法,其特征在于,利用所述用户态程序维护访问权限表,包括:
利用所述用户态程序获取pod访问策略,并根据所述获取pod访问策略维护所述访问权限表。
8.一种容器访问的控制系统,其特征在于,应用于Kubernetes集群,所述控制系统包括:
用户态程序部署模块,用于在所述Kubernetes集群中部署用户态程序,并利用所述用户态程序维护访问权限表;其中,所述访问权限表由所述用户态程序和Linux系统内核共享;
内核程序注入模块,用于利用所述用户态程序创建eBPF程序,并将所述eBPF程序注入至所述Linux系统内核;
判断模块,用于判断是否存在外部流量访问所述Kubernetes集群的pod;其中,所述pod用于封装所述Kubernetes集群中的容器;
访问控制模块,用于若存在所述外部流量访问所述Kubernetes集群的pod,则利用所述eBPF程序从所述访问权限表中查询并执行所述外部流量对应的控制动作;其中,所述控制动作包括允许访问或拒绝访问。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述容器访问的控制方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述容器访问的控制方法的步骤。
CN202111227654.4A 2021-10-21 2021-10-21 一种容器访问的控制方法、系统、电子设备及存储介质 Pending CN113986459A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111227654.4A CN113986459A (zh) 2021-10-21 2021-10-21 一种容器访问的控制方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111227654.4A CN113986459A (zh) 2021-10-21 2021-10-21 一种容器访问的控制方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113986459A true CN113986459A (zh) 2022-01-28

Family

ID=79740024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111227654.4A Pending CN113986459A (zh) 2021-10-21 2021-10-21 一种容器访问的控制方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113986459A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745307A (zh) * 2022-02-25 2022-07-12 网宿科技股份有限公司 一种容器流量的监控方法及bpf控制器
CN115277042A (zh) * 2022-05-11 2022-11-01 北京中安星云软件技术有限公司 一种基于xdp技术的数据库防火墙实现方法及系统
CN115712545A (zh) * 2023-01-09 2023-02-24 苏州浪潮智能科技有限公司 一种实现集群的服务拓扑感知的方法、装置、设备及介质
CN115766858A (zh) * 2022-11-11 2023-03-07 中国工商银行股份有限公司 流量处理方法、装置、计算机可读存储介质及电子设备
CN116107764A (zh) * 2023-04-03 2023-05-12 阿里云计算有限公司 数据处理方法及系统
CN116257841A (zh) * 2023-02-16 2023-06-13 北京未来智安科技有限公司 一种基于Kubernetes的函数处理方法及装置
CN117290857A (zh) * 2023-11-27 2023-12-26 中孚安全技术有限公司 基于eBPF实现云原生安全的系统、方法、设备及介质
CN117544506A (zh) * 2023-11-09 2024-02-09 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法
WO2024045646A1 (zh) * 2022-09-01 2024-03-07 京东科技信息技术有限公司 管理集群访问权限的方法、装置和系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745307B (zh) * 2022-02-25 2023-09-22 网宿科技股份有限公司 一种容器流量的监控方法及bpf控制器
CN114745307A (zh) * 2022-02-25 2022-07-12 网宿科技股份有限公司 一种容器流量的监控方法及bpf控制器
CN115277042A (zh) * 2022-05-11 2022-11-01 北京中安星云软件技术有限公司 一种基于xdp技术的数据库防火墙实现方法及系统
WO2024045646A1 (zh) * 2022-09-01 2024-03-07 京东科技信息技术有限公司 管理集群访问权限的方法、装置和系统
CN115766858A (zh) * 2022-11-11 2023-03-07 中国工商银行股份有限公司 流量处理方法、装置、计算机可读存储介质及电子设备
CN115712545A (zh) * 2023-01-09 2023-02-24 苏州浪潮智能科技有限公司 一种实现集群的服务拓扑感知的方法、装置、设备及介质
WO2024148877A1 (zh) * 2023-01-09 2024-07-18 苏州元脑智能科技有限公司 一种实现集群的服务拓扑感知的方法、装置、设备及介质
CN116257841A (zh) * 2023-02-16 2023-06-13 北京未来智安科技有限公司 一种基于Kubernetes的函数处理方法及装置
CN116257841B (zh) * 2023-02-16 2024-01-26 北京未来智安科技有限公司 一种基于Kubernetes的函数处理方法及装置
CN116107764A (zh) * 2023-04-03 2023-05-12 阿里云计算有限公司 数据处理方法及系统
CN116107764B (zh) * 2023-04-03 2023-09-26 阿里云计算有限公司 数据处理方法及系统
CN117544506A (zh) * 2023-11-09 2024-02-09 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法
CN117544506B (zh) * 2023-11-09 2024-05-24 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法
CN117290857A (zh) * 2023-11-27 2023-12-26 中孚安全技术有限公司 基于eBPF实现云原生安全的系统、方法、设备及介质
CN117290857B (zh) * 2023-11-27 2024-03-26 中孚安全技术有限公司 基于eBPF实现云原生安全的系统、方法、设备及介质

Similar Documents

Publication Publication Date Title
CN113986459A (zh) 一种容器访问的控制方法、系统、电子设备及存储介质
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
US8555404B1 (en) Connectivity-based authorization
KR20190111037A (ko) 컨소시엄 블록체인에 의한 스마트 계약 업그레이드 방법 및 시스템
CN106897611A (zh) 无需root权限的安全虚拟移动应用程序运行环境系统及方法与应用
CN107203715B (zh) 执行系统调用的方法及装置
US10867050B2 (en) Method and apparatus for generating dynamic security module
KR20090010872A (ko) CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
KR20140045502A (ko) 신뢰 레벨 활성화 기법
CN104751050A (zh) 一种客户端应用程序管理方法
CN104700026A (zh) 基于java字节码插桩和java方法挂钩检测java沙箱逃逸攻击
CN111400723A (zh) 基于tee扩展的操作系统内核强制访问控制方法及系统
CN111711631B (zh) 一种网络访问控制方法、装置、设备及存储介质
CN104735091A (zh) 一种基于Linux系统的用户访问控制方法和装置
US10430166B2 (en) Resource injection for application wrapping
CN104639650A (zh) 一种细粒度分布式接口访问控制方法及装置
CN103379481A (zh) 一种实现安全防护的方法及一种防火墙
CN106411814B (zh) 一种策略管理方法及系统
CN113672901A (zh) 访问请求处理方法、容器云平台、电子设备及存储介质
CN111028077B (zh) 一种基于输入过滤器的智能合约防护方法及系统
JP6859518B2 (ja) サーバへの攻撃を防ぐ方法及びデバイス
CN115186269A (zh) 一种漏洞挖掘方法、装置、存储介质及电子设备
CN106127054B (zh) 一种面向智能设备控制指令的系统级安全防护方法
US10387644B2 (en) Systems and methods for intrinsic runtime security
CN110765471A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231122

Address after: Room 2301, No. 395 Linjiang Avenue, Tianhe District, Guangzhou City, Guangdong Province, 510655 (Location: Self made Unit 01)

Applicant after: Guangdong Inspur Intelligent Computing Technology Co.,Ltd.

Applicant after: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd.

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Applicant before: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd.