CN116628696A - 一种基于代理客户端的漏洞检测方法及相关设备 - Google Patents
一种基于代理客户端的漏洞检测方法及相关设备 Download PDFInfo
- Publication number
- CN116628696A CN116628696A CN202210133870.0A CN202210133870A CN116628696A CN 116628696 A CN116628696 A CN 116628696A CN 202210133870 A CN202210133870 A CN 202210133870A CN 116628696 A CN116628696 A CN 116628696A
- Authority
- CN
- China
- Prior art keywords
- container
- vulnerability
- configuration
- version
- detection result
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 221
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000006870 function Effects 0.000 claims description 62
- 238000003860 storage Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 18
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提出了一种基于代理客户端的漏洞检测方法及相关设备,可以应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,其中方法包括:对目标容器进行扫描,得到目标容器的特征信息,特征信息包括内核版本、容器版本和容器配置中的一种或多种;根据目标容器的特征信息确定目标容器的漏洞检测结果;发送目标容器的漏洞检测结果,漏洞检测结果用于发送漏洞告警信息。采用本申请实施例,可以从多个维度对目标容器进行扫描从而可以在发生漏洞逃逸攻击前准确、及时的发现容器漏洞并且进行告警,进而避免因容器漏洞逃逸攻击的发生而造成的损失。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于代理客户端的漏洞检测方法及相关设备。
背景技术
随着计算机技术的发展,容器技术凭借着可以有效的将单个操作系统的资源划分到孤立的组中,从而使得更好的在孤立的组之间平衡有冲突的资源使用需求,在各个领域中得到了广泛的应用。但是,使用容器技术存在容器逃逸的安全问题。容器逃逸会对使用容器技术的设备的保密性、可用性、稳定性造成极大的威胁。
目前,常用的检测容器逃逸的方式是通过对宿主机进行检测,当发现容器漏洞逃逸攻击发生时,再对其进行阻断。然而这种在已经发生漏洞逃逸后再阻断的方式,依然容易造成损失。
发明内容
本申请实施例提供了一种基于代理客户端的漏洞检测方法及相关设备,可以实现准确、及时的发现容器漏洞并且进行告警,从而避免因容器漏洞逃逸攻击的发生而造成的损失。
一方面,本申请实施例提供了一种基于代理客户端的漏洞检测方法,所述方法包括:
对目标容器进行扫描,得到所述目标容器的特征信息,所述特征信息包括内核版本、容器版本和容器配置中的一种或多种;
根据所述目标容器的特征信息确定所述目标容器的漏洞检测结果;
发送所述目标容器的漏洞检测结果,所述漏洞检测结果用于发送漏洞告警信息。
另一方面,本申请实施例提供了一种基于代理客户端的漏洞检测装置,所述装置包括:
获取模块,用于对目标容器进行扫描,得到所述目标容器的特征信息,所述特征信息包括内核版本、容器版本和容器配置中的一种或多种;
确定模块,用于根据所述目标容器的特征信息确定所述目标容器的漏洞检测结果;
通信模块,用于发送所述目标容器的漏洞检测结果,所述漏洞检测结果用于发送漏洞告警信息。
再一方面,本申请实施例提供了一种计算机设备,该计算机设备包括:处理器、存储器以及网络接口;处理器与存储器、网络接口相连,其中,网络接口用于提供网络通信功能,存储器用于存储程序代码,处理器用于调用程序代码,以执行本申请实施例中的基于代理客户端的漏洞检测方法。
相应地,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的基于代理客户端的漏洞检测方法。
相应地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现本申请实施例提供的基于代理客户端的漏洞检测方法的步骤。
相应地,本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行本申请实施例提供的基于代理客户端的漏洞检测方法。
本申请实施例通过对目标容器进行扫描,以得到目标容器的特征信息,特征信息包括内核版本、容器版本和容器配置中的一种或多种,然后根据目标容器的特征信息确定目标容器的漏洞检测结果,最后发送目标容器的漏洞检测结果,以使得在目标容器存在漏洞的情况下,发送目标容器的漏洞告警信息。本申请从多个维度对目标容器进行扫描从而可以在发生漏洞逃逸攻击前准确、及时的发现容器漏洞并且进行告警,进而避免因容器漏洞逃逸攻击的发生而造成的损失。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的漏洞检测系统的架构示意图;
图2是本申请实施例提供的基于代理客户端的漏洞检测方法的流程示意图;
图3是本申请实施例提供的漏洞检测系统的内部结构示意图;
图4是本申请实施例提供的漏洞检测系统的工作流程示意图;
图5是本申请实施例提供的代理客户端中扫描模块的工作流程示意图;
图6是本申请实施例提供的内核扫描模块的工作流程示意图;
图7是本申请实施例提供的版本扫描模块的工作流程示意图;
图8是本申请实施例提供的访问接口配置扫描模块的工作流程示意图;
图9是本申请实施例提供的嵌套功能配置扫描模块的工作流程示意图;
图10是本申请实施例提供的特权功能配置扫描模块的工作流程示意图;
图11是本申请实施例提供的基于代理客户端的漏洞检测装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本申请实施例,下面先对本申请实施例涉及的一些专业术语进行介绍:
漏洞:计算机系统安全方面的缺陷,使得系统或其应用数据的保密性、完整性、可用性、访问控制等面临威胁。
Docker:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Agent(个人软件代理):是一种在分布式系统或者协作系统中,能够持续自主地发挥作用的计算实体,简称为“智能体”。广义上,agent指具有智能的任何实体,可以是计算机硬件和自能软件,在本方案中agent可以理解为一个小型扫描器,定时扫描,如果扫描到问题,就向上(例如控制设备或者管理设备)汇报。
本申请实施例提供了一种基于代理客户端的漏洞检测方法,以实现自动并且及时发现漏洞。本申请实施例提供的基于代理客户端的漏洞检测方法涉及云技术。其中,云技术中的云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为基础设施即服务(Infrastructure as a Service,IaaS)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
本申请实施例提供的基于代理客户端的漏洞检测方法涉及区块链技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营检测等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营检测模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、检测网络情况、检测节点设备健康状态等。
如图1所示,图1是本申请实施例提供的漏洞检测系统的架构示意图,该漏洞检测系统主要包括控制设备102和待检测设备101。其中,该待检测设备中包括至少一个容器,待检测设备101中部署有代理客户端。该代理客户端用于对待检测设备101中的目标容器进行漏洞检测。控制设备102可以包含代理客户端分发模块,该代理客户端分发模块用于分发代理客户端给待检测设备。控制设备102还可以包括消息接收模块,该消息接收模块可以接收待检测设备发送的消息,也可以接收代理客户端发送的消息。控制设备102还可以包括告警模块,该告警模块用于当检测到待检测设备101中存在容器漏洞时,向管理设备发送告警信息。
在一种可能的实施例中,待检测设备101中目标容器中部署的代理客户端可以对待检测设备101中的容器进行扫描,得到容器的特征信息;该代理客户端还可以根据目标容器的特征信息确定目标容器的漏洞检测结果;该代理客户端还可以向控制设备102发送目标容器的漏洞检测结果。需要说明的是,代理客户端可以对待检测设备101中的所有容器进行扫描、检测。
在一种可能的实施例中,在待检测设备101中部署代理客户端可以是:待检测设备101向控制设备102发送漏洞检测请求,控制设备102接收该漏洞检测请求后从多个代理客户端中选择出任意一个代理客户端分配给该待检测设备101。目标代理客户端对该待检测设备101进行漏洞检测后将结果反馈给控制设备102,由控制设备102将结果再反馈给管理设备。
可选的,在待检测设备101中部署代理客户端还可以是:控制设备102可以根据配置的漏洞检测任务,确定该漏洞检测任务对应的一个或多个待检测设备101,并自动分发代理客户端给各个待检测设备101。
可选的,待检测设备101为提供漏洞检测功能平台的客户端所在设备,也是需要进行漏洞检测的设备,是具有通信功能的设备,包括但不限于:多个物理服务器构成的服务器集群或者分布式系统、提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器以及笔记本电脑、智能家电、车载终端等设备。控制设备102包括漏洞检测芯片、多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选的,上述的待检测设备、管理设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
需要说明的是,图1所示的场景中基于代理客户端的漏洞检测装置102和待检测设备101的数量可以为一个或者多个,本申请不做限制。
下面将结合图2至图10对本申请实施例提供的基于代理客户端的漏洞检测方法进行详细说明。
请参见图2,图2为本申请实施例提供的基于代理客户端的漏洞检测方法的流程示意图。该图像处理方法包括步骤S201~S203。
S201、对目标容器进行扫描,得到目标容器的特征信息,特征信息包括内核版本、容器版本和容器配置中的一种或多种。
其中,上述容器为对应用程序及其依赖关系的封装,该容器与主机的操作系统共享资源。由于该容器通过操作系统层的虚拟化实现隔离,所以该容器在运行时,不需要格外的操作系统开销。从而可以达到提高效率,降低性能损耗的效果。一个待检测设备中可以同时允许一个或多个容器,目标容器为待检测设备中任意一个容器。
可选的,特征信息可以只包括内核版本、容器版本和容器配置中的任意一种(例如该特征信息只包括内核版本,或者该特征信息只包括容器版本,又或者该特征信息只包括容器配置)。该特征信息也可以包括内核版本、容器版本和容器配置中的任意两种(例如该特征信息包括内核版本和容器版本,或者该特征信息包括内核版本和容器配置,又或者该特征信息包括容器版本和容器配置)。该特征信息还可以三种都包括(例如该特征信息包括内核版本、容器版本和容器配置)。
S202、根据目标容器的特征信息确定目标容器的漏洞检测结果。
可选的,可以根据目标容器的特征信息确定目标容器对应的漏洞检测结果(例如根据目标容器的内核版本,确定目标容器的内核漏洞检测结果,再例如根据目标容器的内核版本和容器版本,确定目标容器的内核漏洞检测结果和版本漏洞检测结果)。
在一种可能的实施例中,根据目标容器的特征信息确定待检测容器的漏洞检测结果,具体为:首先获取漏洞判定条件,漏洞判定条件包括内核漏洞判定条件、版本漏洞判定条件和配置漏洞判定条件中的一种或多种;然后将目标容器的特征信息与漏洞判定条件进行匹配,得到匹配结果,匹配结果包括内核检测结果、版本检测结果和配置检测结果中的一种或多种;最后根据匹配结果确定目标容器的漏洞检测结果,漏洞检测结果包括漏洞的标识信息,例如漏洞检测结果可以包括内核检测结果、版本检测结果和配置检测结果中的一种或多种。
可选的,漏洞判定条件为一个预设的条件,可以是一个固定值,也可以是一个范围,在此不做限制。漏洞判定条件可以为内核漏洞判定条件、版本漏洞判定条件和配置漏洞判定条件中的任意一种或多种,例如,漏洞判定条件可以为内核漏洞判定条件,漏洞判定条件也可以为内核漏洞判定条件和版本漏洞判定条件,漏洞判定条件还可以为内核漏洞判定条件、版本漏洞判定条件和配置漏洞判定条件。
可选的,将目标容器的特征信息与漏洞判定条件进行匹配,可以是判定目标容器的特征信息与漏洞判定条件之间是否相等,也可以是对比目标容器的特征信息与漏洞判定条件之间的相对关系(例如版本高低关系)等。匹配结果可以是内核检测结果、版本检测结果和配置检测结果中的任意一种或任意多种,例如匹配结果可以是内核检测结果,该匹配结果也可以是内核检测结果版本检测结果和配置检测结果,该匹配结果还可以是内核检测结果、版本检测结果和配置检测结果。需要说明的是,目标容器的特征信息与漏洞判定条件以及匹配结果三者之间是一一对应的,也就是说,如果目标容器的特征信息为内核版本,那么漏洞判定条件是内核漏洞判定条件,则匹配结果也是相关的漏洞匹配结果。
可选的,漏洞检测结果可以包括漏洞的标识信息,也可以包括漏洞的相关信息(例如该漏洞发生的位置等)。其中,漏洞的标识信息可以为漏洞的名称(例如内核漏洞),也可以为该类漏洞的对应的编码(例如CVE-2019-14271)等。当没有漏洞检测到时,漏洞检测结果还可以包括一条安全信息。
通过漏洞判定条件与特征信息进行匹配,以判断该目标容器是否存在漏洞。可以使得在未发生容器逃逸前,及时发现漏洞。
在一种可能的实施例中,将目标容器的特征信息与漏洞判定条件进行匹配,得到匹配结果,具体为:首先获取目标容器的特征信息包括的内核版本;然后将内核版本与内核漏洞判定条件包括的第一预设版本进行比较;若内核版本低于第一预设版本,则确定匹配结果包括的内核检测结果为存在内核漏洞,内核检测结果包括内核版本以及内核漏洞的标识信息。
其中,因为目标容器是运行在与待检测设备共享的内核上,所以该内核版本即可以为目标容器的内核的版本,也可以表示待检测设备的内核的版本。内核漏洞会使得攻击者可以在某些版本系统中,通过远程入侵待检测设备并获取低权限后,利用该内核漏洞在入侵的待检测设备系统中实现本地提取,从而获取到管理员权限,进而对该入侵的设备造成损失。例如,Linux系统中的Dirty Cow(脏牛)漏洞。
在一种可能的实施例中,为了防止上述内核漏洞对待检测设备造成损害,可以通过获取目标容器的内核版本,确定该目标容器对应的待检测设备的系统的内核版本。从而根据该待检测设备的系统的内核版本与第一预设版本进行对比,当该待检测设备的系统的内核低于该第一预设版本时,则确定存在内核漏洞,并将该内核漏洞的标识信息以及该待检测设备的系统的内核版本作为内核检测结果。例如,在Linux系统中,在Linux内核版本小于3.9的内核版本存在内核漏洞(Dirty Cow漏洞)。也就是说,如果获取得到的目标容器的内核版本为3.7,该内核版本小于第一预设版本3.9,则确定内核检测结果为存在漏洞,内核检测结果包括内核版本3.7以及内核漏洞。
在一种可能的实施例中,将目标容器的特征信息与漏洞判定条件进行匹配,得到匹配结果,还可以具体为:首先获取目标容器的特征信息包括的容器版本和容器插件版本,容器插件版本为目标容器内的目标插件的版本;然后将容器版本和容器插件版本中的一种或两种与版本漏洞判定条件包括的第二预设版本进行匹配,第二预设版本包括第一容器版本阈值、第二容器版本阈值、第三容器版本阈值以及容器插件版本阈值中的一种或多种;最后若容器版本和容器插件版本中的一种或两种与版本漏洞判定条件包括的第二预设版本匹配,则确定匹配结果包括的版本检测结果为存在版本漏洞,版本检测结果包括容器版本、容器插件版本以及版本漏洞的标识信息中的一种或多种。
可选的,在容器为Docker容器的情况下,目标插件可以是runC工具,该runC工具是一个运行容器的轻量级工具,可以视为一个命令行工具。runC工具是Docker容器中最为核心的部分,Docker容器的创建、运行以及销毁等操作都是通过调用runC工具完成。
可选的,将容器版本和容器插件版本中的一种或两种与版本漏洞判定条件包括的第二预设版本进行匹配,可以是将容器版本与版本漏洞判定条件包括的第二预设版本进行匹配,也可以是将容器版本和容器插件版本与版本漏洞判定条件包括的第二预设版本进行匹配。第二预设版本可以是第一容器版本阈值,第二预设版本也可以是第二容器版本阈值和容器插件版本阈值,第二预设版本还可以是第三容器版本阈值,第二预设版本还可以是第一容器版本阈值、第二容器版本阈值和容器插件版本阈值。需要说明的是,第二容器版本阈值需要与容器插件版本阈值一起做为版本漏洞判定条件。
可选的,第一容器版本阈值用于确定是否存在Shocker攻击漏洞,第二容器版本阈值和容器插件版本阈值用于确定是否存在runC逃逸漏洞,第三容器版本阈值用于确定是否存在Docker cp命令导致的容器漏洞逃逸。为了更好的理解容器版本漏洞,下面对于上述三种关于容器版本的漏洞进行详细的解释。首先,Shocker攻击:由于在第一容器版本阈值之前的容器版本赋予Shocker程序调用特定函数的能力,所以攻击者可以通过调用该特定的函数对待检测设备文件系统进行暴力扫描,以获取待检测设备的目标文件内容,也就是发生容器逃逸。其次,runC逃逸漏洞:在目标容器版本在第二容器版本阈值之前并且容器插件版本在容器插件版本阈值之前的情况下,允许攻击者重写待检测设备上runC二进制文件,从而导致攻击者可以在待检测设备上以管理员身份执行命令,也就是发生容器逃逸。最后,Docker cp命令导致的容器漏洞逃逸:在第三容器版本阈值之前的版本中,当待检测设备使用拷贝命令(cp命令)时,会调用辅助进程,该辅助进程没有被容器化,且会在运行时动态加载一些特定的库。攻击者可以通过在容器中替换这些特定的库,将代码注入到上述辅助进程中。当尝试从容器中拷贝文件时将会执行上述代码,从而发送容器逃逸,对待检测设备造成损害。
在一种可能的实施例中,为了防止上述版本漏洞对待检测设备造成损失,将目标容器的容器版本与第一容器版本阈值进行比较,如果目标容器的容器版本低于第一容器版本阈值,则判断可能存在Shocker攻击,从而确定匹配结果包括的版本检测结果为存在版本漏洞,该版本检测结果包括该目标容器的容器版本以及版本漏洞的标识信息(例如Shocker攻击)。同理,也可以将目标容器的容器版本与第二容器版本阈值进行比较并且目标容器的容器插件版本与容器插件版本阈值进行比较,如果目标容器的容器版本低于第二容器版本阈值并且目标容器的容器插件版本低于容器插件版本阈值,则判断可能存在runC逃逸漏洞,从而确定匹配结果包括的版本检测结果为存在版本漏洞,该版本检测结果包括该目标容器的容器版本(例如Docker版本-18.09.1,runC版本1.0-rc6)以及版本漏洞的标识信息(例如runC逃逸漏洞,或者CVE-2019-5736)。同理,还可以将目标容器的容器版本与第三容器版本阈值进行比较,如果目标容器的容器版本等于第三容器版本阈值,则判断可能存在Docker cp命令导致的容器漏洞逃逸,从而确定匹配结果包括的版本检测结果为存在版本漏洞,该版本检测结果包括该目标容器的容器版本(例如Docker版本-19.03.0)以及版本漏洞的标识信息(例如Docker cp命令导致的容器漏洞逃逸,或者CVE-2019-14271)。
在一种可能的实施例中,所述特征信息包括容器配置,将目标容器的特征信息与漏洞判定条件进行匹配,得到匹配结果,具体为:首先获取目标容器的容器配置,容器配置包括访问接口配置、嵌套功能配置以及特权功能配置中的一种或多种;然后将目标容器的容器配置与配置漏洞判定条件进行匹配,得到配置检测结果,配置检测结果包括访问接口配置检测结果、嵌套功能配置检测结果以及特权功能配置检测结果中的一种或多种。
可选的,容器配置可以是访问接口配置、嵌套功能配置以及特权功能配置中的任意一个(例如容器配置是访问配置,再例如容器配置是特权功能配置),容器配置也可以是访问接口配置、嵌套功能配置以及特权功能配置中的任意两个(例如容器配置是访问接口配置和特权功能配置),容器配置还可以是访问接口配置、嵌套功能配置以及特权功能配置。
可选的,配置检测结果可以是访问接口配置检测结果、嵌套功能配置检测结果以及特权功能配置检测结果中的任意一个(例如配置检测结果可以是访问接口配置检测结果),配置检测结果也可以是访问接口配置检测结果、嵌套功能配置检测结果以及特权功能配置检测结果中的任意两个(例如配置检测结果可以是访问接口配置检测结果和特权功能配置检测结果),配置检测结果还可以是访问接口配置检测结果、嵌套功能配置检测结果以及特权功能配置检测结果。需要说明的是,容器配置与配置检测结果是一一对应的。也就是说,如果容器配置是访问配置,则配置检测结果是访问接口配置检测结果;如果容器配置是访问接口配置和特权功能配置,则配置检测结果是访问接口配置检测结果和特权功能配置检测结果。
在一种可能的实施例中,配置漏洞判定条件包括访问漏洞判定条件,访问接口配置包括目标容器中远程访问接口对应的默认端口的开启状态;将目标容器的容器配置与配置漏洞判定条件进行匹配,得到配置检测结果,具体为:首先根据默认端口的开启状态和目标进程对应的端口中的一种或两种,确定远程访问接口对应的目标端口;然后通过目标端口调用远程访问接口访问目标容器内的指定资源;最后若访问成功,则确定访问接口配置与访问漏洞判定条件匹配,并确定配置检测结果包括的访问接口配置检测结果为存在访问接口配置漏洞,访问接口配置检测结果包括目标端口的端口标识以及访问漏洞的标识信息。
可选的,默认端口的开启状态包括开启与未开启(关闭)两种状态。根据默认端口的开启状态和目标进程对应的端口中的一种或两种,确定远程访问接口对应的目标端口,可以具体为:首先判断默认端口的开启状态,如果默认端口的开启状态为开启,则直接确定远程访问接口对应的目标端口为默认端口。其中,默认端口可以是2375端口。根据默认端口的开启状态和目标进程中的一种或两种,确定远程访问接口对应的目标端口,还可以具体为:首先判断默认端口的开启状态,如果默认端口的开启状态为未开启,则扫描目标容器的进程以确定目标进程是否存在(远程访问接口的进程是否存在),如果该目标进程存在,则将该目标进程对应的端口确定为远程访问接口对应的目标端口。
可选的,目标容器内的指定资源可以是http://xxx.xxx.xxx.xxx/info、http://xxx.xxx.xxx.xxx/images/json、http://xxx.xxx.xxx.xxx/containers/json。访问接口配置检测结果包括的目标端口的端口标识可以是端口号(如2375端口),访问漏洞的标识信息可以是该漏洞的名称(如远程访问接口配置漏洞)。其中,访问目标容器内的指定资源(例如http://xxx.xxx.xxx.xxx/info)是为了确定是否存在远程访问接口未授权访问。
可选的,目标容器的远程访问接口可以是Docker容器的Docker Remote API。因为该Docker Remote API可以执行Docker命令,所以攻击者可以通过直接调用该DockerRemote API来操作Docker,从而发送容器逃逸,进而造成对待检测设备的损害。
示例性的,首先判断默认端口2375是否开启。当确定端口2375未开启后,扫描目标容器的进程,判断是否存在Docker Remote API进程。当扫描得到存在Docker Remote API进程,则尝试访问目标容器的资源http://xxx.xxx.xxx.xxx/images/json。当访问成功后,则确定Docker Remote API为未授权访问,进而确定配置检测结果包括的访问接口配置检测结果为存在访问接口配置漏洞,并将远程访问漏洞以及Docker Remote API开放在的端口号作为访问接口配置检测结果。
在一种可能的实施例中,配置漏洞判定条件包括嵌套漏洞判定条件,嵌套功能配置包括目标容器中套接字文件的配置信息;将目标容器的容器配置与配置漏洞判定条件进行匹配,得到配置检测结果,具体为:首先根据目标容器中套接字文件的配置信息在目标容器中查询套接字文件;然后若查询到套接字文件,则获取待检测设备的目标资源信息,目标资源信息包括网络资源以及容器镜像;最后若获取成功,则确定嵌套功能配置与嵌套漏洞判定条件匹配,并确定配置检测结果包括的嵌套配置检测结果为存在嵌套配置漏洞,嵌套检测结果包括套接字文件的文件路径以及嵌套漏洞的标识信息。
可选的,目标容器中的套接字文件可以是Docker容器中的docker.sock文件,该目标容器中套接字文件(Docker容器中的docker.sock文件)用于在目标容器内部守护进程通信。目标容器中套接字文件的配置信息可以是是否存在套接字文件以及该套接字文件是否可以获取待检测设备信息。容器镜像可以是待检测设备系统的文件系统(RootFileSystem),该文件系统里面包含可以运行在该系统内核的程序以及相应的数据。
可选的,攻击者可以利用暴露的目标容器中的套接字文件,在待检测设备上运行的任意容器中执行任何操作。从而造成容器逃逸,进而对待检测设备造成损害。
在一种可能的实施例中,为了防止上述情况的发生,可以通过下述方式排查该嵌套功能漏洞。首先对目标容器进行扫描,以查看是否存在套接字文件;如果存在套接字文件,则使用docker-H unix:///var/run/docker.sock info,尝试获取待检测设备的信息。如果可以获取到该待检测设备的信息,确定嵌套功能配置与嵌套漏洞判定条件匹配,并且确定配置检测结果包括的嵌套配置检测结果为存在嵌套配置漏洞。
在一种可能的实施例中,配置漏洞判定条件包括特权漏洞判定条件,特权功能配置包括目标容器对待检测设备的磁盘的访问权限配置;将目标容器的容器配置与配置漏洞判定条件进行匹配,得到配置检测结果,具体为:首先若访问权限配置指示目标容器具备访问权限,则获取待检测设备的磁盘的标识信息;然后根据待检测设备的磁盘的标识信息,将待检测设备的磁盘挂载到目标容器;最后若挂载成功,则确定特权功能配置与特权漏洞判定条件匹配,并确定配置检测结果包括的特权功能配置检测结果为存在特权配置漏洞,特权功能配置检测结果包括特权漏洞的标识信息。
其中,挂载也就是将宿主机的目录与容器内的目录进行映射,从而实现宿主机和容器目录的双向数据自动同步。在本方案中,是将待检测设备的磁盘与目标容器内目录进行映射。其中,挂载可以是单目录挂载,也可以是多目录挂载,还可以是只读目录挂载。
可选的,将待检测设备的磁盘成功挂载到目标容器后,确定配置检测结果包括的特权功能配置检测结果为存在特权配置漏洞之前,还包括步骤:将待检测设备的磁盘取消挂载。或者,在确定配置检测结果包括的特权功能配置检测结果为存在特权配置漏洞之后,将待检测设备的磁盘取消挂载。
可选的,在特权功能配置有漏洞时,攻击者可以通过特定的命令(如mount命令)将待检测设备的磁盘挂载进容器内部,因为挂载后的宿主机(待检测设备)和容器(目标容器)目录的双向数据会自动同步,所以攻击者可以通过这种挂载的方式获取对整个待检测设备的文件的读写权限。除此之外攻击者还可以通过写入计划任务等方式在待检测设备中执行命令。进而对待检测设备造成损害。
在一种可能的实施例中,为了防止上述情况的发生,可以通过下述方式排查该特权功能漏洞。首先根据该访问权限配置检测能否访问待检测设备的磁盘,如果可以访问则尝试将待检测设备的磁盘挂载到容器上,如果可以成功挂载,则将该挂载取消,并且确定配置检测结果包括的特权功能配置检测结果为存在特权配置漏洞。
S203、发送目标容器的漏洞检测结果,漏洞检测结果用于发送漏洞告警信息。
可选的,代理客户端根据目标容器的漏洞检测结果确定出漏洞告警信息,例如漏洞检测结果指示目标容器存在漏洞时,生成对应的告警信息,再发送该告警信息以实现在漏洞逃逸发生前进行告警。
可选的,代理客户端将目标容器的漏洞检测结果发送给控制设备,该控制设备根据目标容器的漏洞检测结果结果确定出漏洞告警信息,例如该控制设备在漏洞检测结果指示目标容器存在漏洞时,生成对应的告警信息,并发送该漏洞告警信息进行告警。
可选的,代理客户端将目标容器的漏洞检测结果发送给控制设备,该控制设备根据目标容器的漏洞检测结果结果确定出漏洞告警信息,例如该控制设备在漏洞检测结果指示目标容器存在漏洞时,生成对应的告警信息,该控制设备将该漏洞告警信息发送给管理设备,由管理设备发送该漏洞告警信息进行告警。
可选的,控制设备在待检测设备存在漏洞的情况下,向管理设备发送待检测设备的漏洞告警信息的同时,控制设备还可以将本次漏洞检测结果作为历史漏洞检测结果进行存储。控制设备在待检测设备一定时间内不存在漏洞的情况下,可以定时向管理设备发送待检测设备的安全信息。例如,设定在一周内未发现漏洞存在的情况,也就是控制设备一周内都未收到目标容器的漏洞检测结果。控制设备可以向管理设备发送一条安全信息,以告知管理设备近期待检测设备环境安全。
为了更好的理解本方案,下面结合图3-图9,利用一个示例性的实施例进一步的对本方案解释:
首先如图3所示,图3为一应用本方案的Docker容器逃逸漏洞检测系统,该系统包括控制器30(对应图1中的控制设备)和代理客户端31。其中,控制器301包含三个模块,分别为:代理客户端分发模块301,该代理客户端分发模块301用于从多个代理客户端中选择出代理客户端分发给待检测设备;消息接收模块302,该消息接收模块302用于接收代理客户端发送的消息,或者向代理客户端31发送消息;告警模块303,该告警模块303用于在待检测设备存在漏洞的情况下,向待检测设备发送告警消息。其中,代理客户端31包含两个模块,分别为:通信模块311,该通信模块311用于与控制端进行通信;扫描模块312,该扫描模块312用于执行本方案中的步骤。如图4所示,该系统的运作流程为:首先启动并且运行控制端(图4中的步骤402),从该控制端获取代理客户端,然后将该代理客户端在容器中执行(图4中的步骤403)。代理客户端使用扫描模块对容器进行扫描(图4中的步骤404),检测该容器是否存在容器逃逸漏洞(图4中的步骤405),如果检测到容器逃逸漏洞,就使用该代理客户端的通信模块将相关信息发送到控制端(图4中的步骤406)。控制端收到信息后,启动告警模块,将告警信息发送给待检测设备(图4中的步骤407)。
其中,该代理客户端31中的扫描模块312包括内核扫描模块3121、配置扫描模块3122以及版本扫描模块3123,该代理客户端31中的扫描模块312的工作流程如图5所示:通过扫描内核版本确定是否存在内核漏洞(图5中的步骤502),通过扫描网络接口、特点文件、高危启动项等方式,确定是否存在配置错误,导致的容器逃逸漏洞(图5中的步骤503);通过扫描Docker版本,确定当前使用的是否是存在容器逃逸漏洞的版本(图5中的步骤504)。汇总上述扫描结果,如果存在漏洞,则输出相关的信息(图5中的步骤505以及506)。需要说明的是,内核扫描、配置扫描以及版本扫描三者之间没有进行扫描的先后顺序,也就是说,可以以任意顺序进行三种扫描,例如先进行版本扫描,再进行配置扫描,最后进行内核扫描,或者可以先进行配置扫描,再进行内核扫描,最后进行版本扫描。
其中,内核扫描模块3121的工作流程如图6所示,首先获取内核版本(图6中的步骤601),判断该内核版本是否存在版本问题(图6中的步骤602),如果存在版本问题则输出相关信息(图6中的步骤604)。其中,因为宿主机(待检测设备)和docker容器(目标容器)中的Linux是共用内核的,所以确定容器中的内核版本,就可以确定宿主机的内核版本。示例性的,如果内核版本2.6.22<3.9(x86/x64),则存在Dirty Cow漏洞(CVE-2016-5195)。
其中,版本扫描模块的工作流程如图7所示,首先获取版本(图7中的步骤702),需要说明的是容器版本与上述内核版本并不相同,容器版本是容器的版本,内核版本是容器的内核的版本。然后判断该版本是否存在问题(图7中的步骤703),如果存在问题则输出相关信息(图7中的步骤704)。示例性的,首先根据获取到的Docker容器的版本,确认当前使用的是否存在Shocker攻击(Docker版本<1.0,存在于Docker 1.0之前的绝大多数版本)、runC逃逸漏洞(CVE-2019-5736)(Docker版本<18.09.2,runc版本<1.0-rc6)、Docker cp命令可导致容器逃逸攻击漏洞(CVE-2019-14271)(Docker 19.03.0)等漏洞,如果存在则进行下一步,如果不存在,则直接结束。2、如果确定存在相关漏洞,则输出相关信息,包括漏洞名称、docker版本、runc版本信息等。
其中,配置扫描模块3122包括Docker Remote API未授权访问配置扫描模块31221(也可以称为远程访问配置扫描模块)、Docker in Docker配置扫描模块31222(也可以称为嵌套功能配置扫描模块)以及特权配置扫描模块31223(也可以称为特权功能配置扫描模块)。
其中,Docker Remote API未授权访问配置扫描模块31221的工作流程如图8所示,首先检测访问接口是否开启(图8中的步骤802),如果开启,则检测访问接口是否为未授权访问(图8中的步骤803),如果是未授权访问则输出相关信息(图8中的步骤804)。示例性的,首先通过扫描进程信息和端口开放情况,确认是否开启了Docker Remote API接口,DockerRemote API默认是开放在2375端口。如果开启了Docker Remote API接口,则尝试访问http://xxx.xxx.xxx.xxx/info,如果可以访问成功,则确定其存在Docker Remote API未授权访问漏洞,最后确定漏洞存在后输出相关信息,包括漏洞名称,开放端口等信息。
其中,Docker in Docker配置扫描模块31222的工作流程如图9所示,首先检测是否存在套接字文件(图9中的步骤902),如果存在,则尝试获取待检测设备容器信息(图9中的步骤903),如果获取成功,则输出相关信息(图9中的步骤904)。示例性的,首先扫描容器中的文件,查看是否存在docker.sock文件,然后如果存在docker.sock文件,则使用docker-H unix:///var/run/docker.sock info,尝试获取宿主机docker的信息,包括网络、镜像等信息,如果能够获取宿主机的信息,说明可以在Docker容器中调用和执行宿主机的Docker,将Docker宿主机的docker文件和docker.sock文件挂载到容器中,则确定其存在Docker in Docker漏洞。最后,确定漏洞存在后输出相关信息,包括漏洞名称和docker.sock文件路径等信息。
其中,特权配置扫描模块31223的工作流程如图10所示,首先检测能否访问待检测设备磁盘(图10中的步骤1002),如果可以访问,则尝试是否可以将待检测设备挂载到容器上(图10中的步骤1003),如果可以挂载则输出相关信息后结束(图10中的步骤1004以及1005)。
参见图11,图11是本申请实施例提供的基于代理客户端的漏洞检测装置的结构示意图。本申请实施例提供的基于代理客户端的漏洞检测装置包括:
如图11所示的1101为获取模块1101,用于对目标容器进行扫描,得到目标容器的特征信息,特征信息包括内核版本、容器版本和容器配置中的一种或多种;1102为确定模块1102,用于根据目标容器的特征信息确定目标容器的漏洞检测结果;1103为通信模块1103,用于发送目标容器的漏洞检测结果,漏洞检测结果用于发送漏洞告警信息。
在另一种实现中,获取模块1101,还用于获取漏洞判定条件,漏洞判定条件包括内核漏洞判定条件、版本漏洞判定条件和配置漏洞判定条件中的一种或多种;确定模块1102,还用于将目标容器的特征信息与漏洞判定条件进行匹配,得到匹配结果,匹配结果包括内核检测结果、版本检测结果和配置检测结果中的一种或多种;确定模块1102,还用于根据匹配结果确定目标容器的漏洞检测结果,漏洞检测结果包括漏洞的标识信息。
在另一种实现中,获取模块1101,还用于获取目标容器的特征信息包括的内核版本;确定模块1102,还用于将内核版本与内核漏洞判定条件包括的第一预设版本进行比较;确定模块1102,还用于若内核版本低于第一预设版本,则确定匹配结果包括的内核检测结果为存在内核漏洞,内核检测结果包括内核版本以及内核漏洞的标识信息。
在另一种实现中,获取模块1101,还用于获取目标容器的特征信息包括的容器版本和容器插件版本,容器插件版本为目标容器内的目标插件的版本;确定模块1102,还用于将容器版本和容器插件版本中的一种或两种与版本漏洞判定条件包括的第二预设版本进行匹配,第二预设版本包括第一容器版本阈值、第二容器版本阈值、第三容器版本阈值以及容器插件版本阈值中的一种或多种;确定模块1102,还用于若容器版本和容器插件版本中的一种或两种与版本漏洞判定条件包括的第二预设版本匹配,则确定匹配结果包括的版本检测结果为存在版本漏洞,版本检测结果包括容器版本、容器插件版本以及版本漏洞的标识信息中的一种或多种。
在另一种实现中,获取模块1101,还用于获取目标容器的容器配置,容器配置包括访问接口配置、嵌套功能配置以及特权功能配置中的一种或多种;确定模块1102,还用于将目标容器的容器配置与配置漏洞判定条件进行匹配,得到配置检测结果,配置检测结果包括访问接口配置检测结果、嵌套功能配置检测结果以及特权功能配置检测结果中的一种或多种。
在另一种实现中,确定模块1102,还用于根据默认端口的开启状态和目标进程对应的端口中的一种或两种,确定远程访问接口对应的目标端口;确定模块1102,还用于通过目标端口调用远程访问接口访问目标容器内的指定资源;确定模块1102,还用于若访问成功,则确定访问接口配置与访问漏洞判定条件匹配,并确定配置检测结果包括的访问接口配置检测结果为存在访问接口配置漏洞,访问接口配置检测结果包括目标端口的端口标识以及访问漏洞的标识信息。
在另一种实现中,确定模块1102,还用于若查询到套接字文件,则获取待检测设备的目标资源信息,目标资源信息包括网络资源以及容器镜像;确定模块1102,还用于若获取成功,则确定嵌套功能配置与嵌套漏洞判定条件匹配,并确定配置检测结果包括的嵌套配置检测结果为存在嵌套配置漏洞,嵌套检测结果包括套接字文件的文件路径以及嵌套漏洞的标识信息。
在另一种实现中,获取模块1101,还用于若访问权限配置指示目标容器具备访问权限,则获取待检测设备的磁盘的标识信息;确定模块1102,还用于根据待检测设备的磁盘的标识信息,将待检测设备的磁盘挂载到目标容器;确定模块1102,还用于若挂载成功,则确定特权功能配置与特权漏洞判定条件匹配,并确定配置检测结果包括的特权功能配置检测结果为存在特权配置漏洞,特权功能配置检测结果包括特权漏洞的标识信息。
可以理解的是,本申请实施例提供的基于代理客户端的漏洞检测装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例中的相关描述,此处不再赘述。
在可行的实施例中,本申请实施例提供的基于代理客户端的漏洞检测装置可以采用软件方式实现,基于代理客户端的漏洞检测装置可以存储在存储器中,其可以是程序和插件等形式的软件,并包括一系列的单元,包括获取单元和处理单元;其中,获取单元和处理单元用于实现本申请实施例提供的基于代理客户端的漏洞检测方法。
在其它可行的实施例中,本申请实施例提供的基于代理客户端的漏洞检测装置也可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的基于代理客户端的漏洞检测装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的基于代理客户端的漏洞检测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
请参见图12,是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备120可以包括处理器1201、存储器1202、网络接口1203和至少一个通信总线1204。其中,处理器1201用于调度计算机程序,可以包括中央处理器、控制器、微处理器;存储器1202用于存储计算机程序,可以包括高速随机存取存储器,非易失性存储器,例如磁盘存储器件、闪存器件;网络接口1203可选的可以包括标准的有线接口、无线接口(如WI-FI接口),提供数据通信功能,通信总线1204负责连接各个通信元件。该计算机设备120可以对应于前文的基于代理客户端的漏洞检测装置100。存储器1202用于存储计算机程序,该计算机程序包括程序指令,处理器1201用于执行存储器1202存储的程序指令,以执行上述实施例中步骤S201至步骤S203中描述的过程,执行如下操作:
具体实现中,上述计算机设备可通过其内置的各个功能模块执行如上述图2至图10中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2中各个步骤所提供的基于代理客户端的漏洞检测方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的推荐模型训练装置或者上述终端设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请的具体实施方式中,涉及到用户信息(如内核版本、容器版本等)相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程基于代理客户端的漏洞检测设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
Claims (12)
1.一种基于代理客户端的漏洞检测方法,其特征在于,所述方法包括:
对目标容器进行扫描,得到所述目标容器的特征信息,所述特征信息包括内核版本、容器版本和容器配置中的一种或多种;
根据所述目标容器的特征信息确定所述目标容器的漏洞检测结果;
发送所述目标容器的漏洞检测结果,所述漏洞检测结果用于发送漏洞告警信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标容器的特征信息确定所述待检测容器的漏洞检测结果,包括:
获取漏洞判定条件,所述漏洞判定条件包括内核漏洞判定条件、版本漏洞判定条件和配置漏洞判定条件中的一种或多种;
将所述目标容器的特征信息与所述漏洞判定条件进行匹配,得到匹配结果,所述匹配结果包括内核检测结果、版本检测结果和配置检测结果中的一种或多种;
根据所述匹配结果确定所述目标容器的漏洞检测结果。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标容器的特征信息与所述漏洞判定条件进行匹配,得到匹配结果,包括:
获取所述目标容器的特征信息包括的内核版本;
将所述内核版本与所述内核漏洞判定条件包括的第一预设版本进行比较;
若所述内核版本低于所述第一预设版本,则确定匹配结果包括的内核检测结果为存在内核漏洞,所述内核检测结果包括所述内核版本以及内核漏洞的标识信息。
4.根据权利要求2所述的方法,其特征在于,所述将所述目标容器的特征信息与所述漏洞判定条件进行匹配,得到匹配结果,包括:
获取所述目标容器的特征信息包括的容器版本和容器插件版本,所述容器插件版本为所述目标容器内的目标插件的版本;
将所述容器版本和所述容器插件版本中的一种或两种与所述版本漏洞判定条件包括的第二预设版本进行匹配,所述第二预设版本包括第一容器版本阈值、第二容器版本阈值、第三容器版本阈值以及容器插件版本阈值中的一种或多种;
若所述容器版本和所述容器插件版本中的一种或两种与所述版本漏洞判定条件包括的第二预设版本匹配,则确定匹配结果包括的版本检测结果为存在版本漏洞,所述版本检测结果包括所述容器版本、所述容器插件版本以及版本漏洞的标识信息中的一种或多种。
5.根据权利要求2所述的方法,其特征在于,所述特征信息包括容器配置,所述将所述目标容器的特征信息与所述漏洞判定条件进行匹配,得到匹配结果,包括:
获取所述目标容器的容器配置,所述容器配置包括访问接口配置、嵌套功能配置以及特权功能配置中的一种或多种;
将所述目标容器的容器配置与所述配置漏洞判定条件进行匹配,得到所述配置检测结果,所述配置检测结果包括访问接口配置检测结果、嵌套功能配置检测结果以及特权功能配置检测结果中的一种或多种。
6.根据权利要求5所述的方法,其特征在于,所述配置漏洞判定条件包括访问漏洞判定条件,所述访问接口配置包括所述目标容器中远程访问接口对应的默认端口的开启状态;所述将所述目标容器的容器配置与所述配置漏洞判定条件进行匹配,得到所述配置检测结果,包括:
根据所述默认端口的开启状态和目标进程对应的端口中的一种或两种,确定所述远程访问接口对应的目标端口;
通过所述目标端口调用所述远程访问接口访问所述目标容器内的指定资源;
若访问成功,则确定所述访问接口配置与所述访问漏洞判定条件匹配,并确定配置检测结果包括的访问接口配置检测结果为存在访问接口配置漏洞,所述访问接口配置检测结果包括所述目标端口的端口标识以及访问漏洞的标识信息。
7.根据权利要求5所述的方法,其特征在于,所述配置漏洞判定条件包括嵌套漏洞判定条件,所述嵌套功能配置包括所述目标容器中套接字文件的配置信息;所述将所述目标容器的容器配置与所述配置漏洞判定条件进行匹配,得到所述配置检测结果,包括:
根据所述目标容器中套接字文件的配置信息在所述目标容器中查询所述套接字文件;
若查询到所述套接字文件,则获取所述待检测设备的目标资源信息,所述目标资源信息包括网络资源以及容器镜像;
若获取成功,则确定所述嵌套功能配置与所述嵌套漏洞判定条件匹配,并确定配置检测结果包括的嵌套配置检测结果为存在嵌套配置漏洞,所述嵌套检测结果包括所述套接字文件的文件路径以及嵌套漏洞的标识信息。
8.根据权利要求5所述的方法,其特征在于,所述配置漏洞判定条件包括特权漏洞判定条件,所述特权功能配置包括所述目标容器对所述待检测设备的磁盘的访问权限配置;所述将所述目标容器的容器配置与所述配置漏洞判定条件进行匹配,得到所述配置检测结果,包括:
若所述访问权限配置指示所述目标容器具备访问权限,则获取所述待检测设备的磁盘的标识信息;
根据所述待检测设备的磁盘的标识信息,将所述待检测设备的磁盘挂载到所述目标容器;
若挂载成功,则确定所述特权功能配置与所述特权漏洞判定条件匹配,并确定配置检测结果包括的特权功能配置检测结果为存在特权配置漏洞,所述特权功能配置检测结果包括特权漏洞的标识信息。
9.一种基于代理客户端的漏洞检测装置,其特征在于,所述装置包括:
获取模块,用于对目标容器进行扫描,得到所述目标容器的特征信息,所述特征信息包括内核版本、容器版本和容器配置中的一种或多种;
确定模块,用于根据所述目标容器的特征信息确定所述目标容器的漏洞检测结果;
通信模块,用于发送所述目标容器的漏洞检测结果,所述漏洞检测结果用于发送漏洞告警信息。
10.一种计算机设备,其特征在于,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行如权利要求1-8中任一项所述的基于代理客户端的漏洞检测方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的基于代理客户端的漏洞检测方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现如权利要求1-8中任一项所述的基于代理客户端的漏洞检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210133870.0A CN116628696A (zh) | 2022-02-14 | 2022-02-14 | 一种基于代理客户端的漏洞检测方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210133870.0A CN116628696A (zh) | 2022-02-14 | 2022-02-14 | 一种基于代理客户端的漏洞检测方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116628696A true CN116628696A (zh) | 2023-08-22 |
Family
ID=87608697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210133870.0A Pending CN116628696A (zh) | 2022-02-14 | 2022-02-14 | 一种基于代理客户端的漏洞检测方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116628696A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117354060A (zh) * | 2023-12-04 | 2024-01-05 | 彩讯科技股份有限公司 | 一种针对云计算IaaS层漏洞检测方法、系统和介质 |
-
2022
- 2022-02-14 CN CN202210133870.0A patent/CN116628696A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117354060A (zh) * | 2023-12-04 | 2024-01-05 | 彩讯科技股份有限公司 | 一种针对云计算IaaS层漏洞检测方法、系统和介质 |
CN117354060B (zh) * | 2023-12-04 | 2024-02-13 | 彩讯科技股份有限公司 | 一种针对云计算IaaS层漏洞检测方法、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110310205B (zh) | 一种区块链数据监控方法、装置、设备和介质 | |
JP6559694B2 (ja) | 自動sdk受容 | |
CN111433775B (zh) | 安全性增强方法及其电子设备 | |
CN110363026B (zh) | 文件操作方法、装置、设备、系统及计算机可读存储介质 | |
CN112016106B (zh) | 开放接口的认证调用方法、装置、设备和可读存储介质 | |
CN112073400A (zh) | 一种访问控制方法、系统、装置及计算设备 | |
CN107220083A (zh) | 一种安卓系统中免安装运行应用程序的方法和系统 | |
CN103607385A (zh) | 基于浏览器进行安全检测的方法和装置 | |
CN104021339A (zh) | 移动终端的安全支付方法及装置 | |
CN104486086B (zh) | 数字签名方法及移动终端和服务器 | |
CN110059007B (zh) | 系统漏洞扫描方法、装置、计算机设备及存储介质 | |
CN111090581A (zh) | 智能合约测试方法、装置、计算机设备和存储介质 | |
CN115701019A (zh) | 零信任网络的访问请求处理方法、装置及电子设备 | |
CN111783051A (zh) | 身份认证方法及装置和电子设备 | |
CN116628696A (zh) | 一种基于代理客户端的漏洞检测方法及相关设备 | |
Pecka et al. | Privilege escalation attack scenarios on the devops pipeline within a kubernetes environment | |
WO2024125108A1 (zh) | 移动端安全切面的按需开启方法及装置 | |
CN112615864A (zh) | 用区块链实施的基于角色的访问控制管理系统及方法 | |
CN105760164B (zh) | 一种用户空间文件系统中acl权限的实现方法 | |
CN114567678B (zh) | 一种云安全服务的资源调用方法、装置及电子设备 | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
CN106485104B (zh) | 终端安全策略的自动修复方法和装置、系统 | |
US9633207B2 (en) | Method for downloading at least one software component onto a computing device, and associated computer program product, computing device and computer system | |
CN114301682A (zh) | 数据处理方法、装置和终端设备 | |
CN110597557B (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 |