容器安全的常见风险与防护实践

news2024/11/22 14:56:12

在这里插入图片描述
运行在云平台上的容器产品,因为具备一个完整的可移植应用程序环境,能够帮助用户轻松地完成对应用程序的开关控制,提升应用程序的敏捷性,同时节约企业的IT建设成本。在巨大优势作用下,容器产品的采用率在2021年达到了新高,容器编排引擎工具的使用也不断攀升。与此同时,容器也面临更大的安全风险。

常见容器安全风险

据Red Hat公司调查数据显示:有94%的受访者在过去12个月内遭遇过Kubernetes安全事件。而Akamai日前也进行了一项实验,将一个简单的Docker容器蜜罐用于攻击测试,结果显示该容器在24小时内被攻击者用于四起不同的犯罪活动,这些攻击的目的各不相同:一起攻击试图使用容器作为代理,以访问数据流或其他服务,另一起企图让目标感染僵尸网络,还有一起执行加密货币挖掘,最后一起是通过容器针对居家办公用户实施诈骗。

研究发现,牟利仍是网络犯罪分子攻击容器的主要动机。不法分子企图访问随后可以牟利的资源或数据。CPU时间和带宽等资源可以出售给其他犯罪分子用于地下服务,甚至直接用于挖掘加密货币,这些动机在使用容器的环境中大量存在。

风险一:错误配置

影响容器安全的因素有很多,但配置错误是最常见的原因。Gartner近期的一项分析显示,到2025年,99%以上云安全事件的根源将是用户配置错误或配置不当造成的。

容器常常大批量部署在非常动态的环境中,访问、网络及其他设置一旦出现错误配置,就会给网络犯罪份子留下可乘之机。另外,很多公司在配置容器时,通常会选择默认配置设置,不能充分利用更精细化的配置功能,配置错误或采用安全性远不如自定义设置的默认配置方案,都可能造成安全问题。配置错误的问题不仅局限于容器本身,容器编排引擎工具的配置错误也需关注。

风险二:镜像感染

除了错误配置外,被感染的镜像是容器面临的另一大风险。镜像由开源存储库提供,是随带的可执行代码的预制静态文件,可以在计算系统上创建容器,方便用户部署。攻击者会通过植入恶意软件或将挖矿软件预先安装在镜像中来破坏容器,用户在部署了这些镜像之后,攻击者就可以通过恶意软件来访问受害者的资源。

这种攻击事件已经发生了多起。例如,2020年Containerd运行过程中,曝出存在工具漏洞,该工具用于管理主机系统的整个容器生命周期。这个漏洞(CVE-2020-15157)存在于容器镜像拉取过程中,攻击者通过构建专用的容器镜像成功实施了攻击活动。

风险三:漏洞攻击

此外,影响容器安全的另一个因素是漏洞。2021年研究人员曾发现了多个容器漏洞,这些漏洞可以让攻击者渗入到公有云的多租户容器即服务产品当中。虽然云供应商投入了大量资金来保护云平台,但未知的零日漏洞层出不穷,容器所面临的漏洞安全风险始终存在。

容器安全防御的最佳实践

鉴于当前普遍应用的容器环境,企业需要具备数据分析能力,发现容器环境下的异常行为,以下梳理总结了容器安全防护中采用的有效实践经验,供大家参考:

•确保集群基础架构的补丁程序能够及时更新;

•定期修改容器运行参数,避免默认配置;

•使用强密码,并定期进行密码和权限的变更;

•避免将特权服务账户的令牌发送到API服务器以外的任何方,防止攻击者伪装成令牌所有者;

•启用“BoundServiceAccountTokenVolume”功能,尽量减小令牌被盗的影响;

•部署策略执行器以监控和防止容器集群内的可疑活动,尤其是查询SelfSubjectAccessReview或SelfSubjectRulesReview API以获得许可的服务账户或节点;

•从信誉良好的来源拉取容器镜像,存储在安全存储库中,用信任证书加以标记和签名,将过时的版本从镜像存储库移除;

•评估编排系统的最低权限配置,确保持续集成/持续交付(CI/CD)中的移动得到验证、记录和监控;

•全方位了解云应用程序环境以及传统IT基础架构的风险;

•部署数据分析工具和可以对分析结果做出反应的自动化操作手册;

•为安全运营人员及时提供容器运行数据,以便他们及时对告警信息进行处置;

•在容器的出口处部署数据泄露防护措施。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/849311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬虫来介绍ChromeF12 谷歌开发者工具 -Network

了解网页基础(HTML、CSS、JavaScript) 了解HTTP基本原理 了解JSON格式 了解Ajax请求 了解爬虫基本原理 (一)、Chrome开发者工具面板概述 Elements 查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。 比如我们在Event Listener…

UML-A 卷-知识考卷

UML-A 卷-知识考卷 UML有多少种图,请列出每种图的名字: 常用的几种UML图: 类图(Class Diagram):类图是描述类、接口、关联关系和继承关系的图形化表示。它展示了系统中各个类之间的静态结构和关系。时序…

WEB集群——负载均衡集群

目录 一、 LVS-DR 群集。 1、LVS-DR工作原理 2、LVS-DR模式的特点 3、部署LVS-DR集群 3.1 配置负载调度器(192.168.186.100) 3.2 第一台web节点服务器(192.168.186.103) 3.3 第二台web节点服务器(192.168.186.…

高温老化房软件使用教程

高温老化炉软件通常具有以下几个模块: 1. 参数设置模块:该模块用于设置高温老化炉的相关参数,包括温度、时间、压力等。用户可以通过输入框、滑动条或下拉菜单等方式设定参数,并将参数发送给高温老化炉。 2. 监控模块:…

认识http的方法、Header、状态码以及简单实现一个http的业务逻辑

文章目录 http的方法http状态码http重定向http常见Header实现简单业务逻辑Protocol.hppUtil.hppServer.hppServer.cc 效果 http的方法 方法说明支持的HTTP版本GET获取资源1.0/1.1POST传输实体主体1.0/1.1PUT传输文件1.0/1.1HEAD获得报文首部1.0/1.1DELETE删除文件1.0/1.1OPTIO…

Centos7.6安装mysql8.0.20

安装前 1.安装mysql前,需将系统自带的mariadb卸载。 [rootk8s01 ~]#  rpm ‐qa|grep mariadbmariadb‐libs.x86_643[rootk8s01 ~]#  rpm ‐e ‐‐nodeps mariadb‐libs.x86_643[rootk8s01 ~]#  rpm ‐qa|grep mariadb 2. 下载mysql8.0.20 [rootk8s-01…

【王树森】深度强化学习(DRL)课程笔记:P1 基本概念(含gym安装)

课程信息 课程主讲:王树森(史蒂文斯理工学院计算机科学系的终身制助理教授) 课程内容:基本概念、价值学习、策略学习、Actor-Critic方法、AlphaGo、Monte Carlo (蒙特卡洛) 课程资料:https://github.com/wangshusen/D…

【MATLAB第66期】#源码分享 | 基于MATLAB的PAWN全局敏感性分析模型(有条件参数和无条件参数)

【MATLAB第66期】#源码分享 | 基于MATLAB的PAWN全局敏感性分析模型(有条件参数和无条件参数) 文献参考 Pianosi, F., Wagener, T., 2015. A simple and efficient method for global sensitivity analysis based on cumulative distribution functions.…

python多线程及协程

目录 进程和线程 串行和并行 多线程编程 Thread类 创建线程参数 具体案例 继承Thread类 具体案例 线程池 具体案例 协程 协程的使用 协程函数写法 调用多个协程函数 main函数的写法 案例 进程和线程 进程:就是一个程序,运行在系统之上…

[每日习题]年终奖(动态规划) 迷宫问题(DFS+回溯)——牛客习题

hello,大家好,这里是bang___bang_,本篇记录2道牛客习题,年终奖(简单),迷宫问题(中等),如有需要,希望能有所帮助! 目录 1️⃣年终奖 2️⃣迷宫问…

Linux学习-1

Linux学习-1 1.文件系统的常识 本文主要引用鸟哥的Linux私房菜 1.1 常见的标识介绍 > [-][rwx][r-x][r--] > 1 234 567 890 1 为:代表这个文件名为目录或文件,本例中为文件(-); 234为:拥有者的权限…

MongoDB数据库操作及操作命令

目录 一、基础概念 二、安装mongod 三、命令交互数据库 (1)数据库命令 (2)集合命令 (3)文档命令 四、Mongoose (1)增加一条数据 (2)插入多个数据 &am…

React实现关键字高亮

先看效果&#xff1a; 实现很简单通过以下这个函数&#xff1a; highLight (text, keyword ) > {return text.split(keyword).flatMap(str > [<span style{{ color: red, fontWeight: bold }}>{keyword}</span>, str]).slice(1);}展示某段文本时调用该函数…

【从零开始学习JAVA | 第四十二篇】初学网络编程

目录 前言&#xff1a; 什么是网络编程&#xff1a; 网络编程的应用场景&#xff1a; 常见的软件架构&#xff1a; CS架构&#xff1a; BS架构&#xff1a; 网络编程三要素&#xff1a;​ 总结&#xff1a; 前言&#xff1a; 当今互联网已经渗透到我们日常生活的方方面…

【MongoDB】万字长文,命令与代码一一对应SpringBoot整合MongoDB之MongoTemplate

目录 一、导入依赖与配置信息 二、导入测试数据创建实体类 三、插入数据 1、Insert默认集合插入 2、Insert指定集合插入 3、Insert批量插入数据 4、save默认集合插入 5、save指定集合插入 6、insert与save的区别 四、修改数据 1、修改符合条件的第一条数据 2、全…

单例模式-java实现

介绍 单例模式的意图&#xff1a;保证某个类在系统中有且仅有一个实例。 我们可以看到下面的类图&#xff1a;一般的单例的实现&#xff0c;是属性中保持着一个自己的私有静态实例引用&#xff0c;还有一个私有的构造方法&#xff0c;然后再开放一个静态的获取实例的方法给外界…

golang内存对齐

为什么要内存对齐&#xff1f; CPU访问内存时&#xff0c;以CPU的位数为单位进行访问。 如果访问未对齐的内存&#xff0c;处理器需要做两次内存访问&#xff0c;对齐的内存的访问可能仅需要一次&#xff0c;利用内存对齐后提升读取速度。 golang结构体内存对齐规则 在代码编译…

MySql学习3:常用函数

常用字符串函数 CHAR_LENGTH(s)&#xff1a;返回字符串的长度 select *, char_length(name) as nameLength from emp;CONCAT(s1,s2…sn)&#xff1a;字符串拼接 select name,concat(name,入职时间&#xff1a;,entrydata) as 入职时间 from emp;CONCAT_WS(x, s1,s2…sn)&a…

24v转3.3v输出3A用什么芯片

问&#xff1a;客户需要一个能够将24V输入电压转换为3.3V输出电压&#xff0c;并且能够提供1-3A的电流输出的芯片。还希望它能够内置MOS管。有什么推荐的型号吗&#xff1f;&#xff08;vin24v、5v&#xff0c;vout3.3v&#xff0c;Io1-3A&#xff09; 答&#xff1a;推荐使用…

Unity游戏源码分享-塔防游戏保卫兔子的食物CarrotFantasy

Unity游戏源码分享-塔防游戏保卫兔子的食物CarrotFantasy 经典塔防游戏&#xff0c;可发布PC、Andoid、IOS、Web等 下载地址&#xff1a;https://download.csdn.net/download/Highning0007/88189987