容器安全——云原生中镜像容器全生命周期防护思路

news2024/11/25 0:43:00

文章目录

  • 容器简介
  • 容器镜像
  • 传统安全面对容器安全的表现
    • 无法匹配动态IP
    • 无法侦测到容器内的各种行为
    • 无法扫描各种分层存储的镜像文件
    • 无法适应新的容器引擎和框架
  • 镜像容器全生命周期的安全防护
    • Build防护
    • Ship防护
    • Run防护

容器简介

我们都知道,VM是通过Hypervisor虚拟化技术来模拟cpu等硬件资源,这样就可以模拟出一个Guest OS,软件开发在这种环境中隔离效果是很好的,但是这样的隔离效果需要付出一定代价,比如主机需要消耗资源消耗在虚拟化中,并且系统的安装需要占用大量的存储资源,同时这种方式启动比较慢,影响开发效率;
而容器是通过Cgroups的资源管理能力和Namespace的资源隔离能力结合在一起实现进程级别的隔离,本质上容器就是一个视图隔离、资源可限制并且具备独立文件系统的进程集合。
而K8S就是当前最常见的容器编排系统,主要围绕 pods 进行工作。 Pods 是 k8s 生态中最小的调度单位,可以包含一个或多个容器。
K8S全称是Kubernetes,由Google 基于 Borg 开源的容器编排调度系统,是一种基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,用户不需要再过度的关注资源的管理问题,降低操作的复杂度,提高了大规模容器集群管理的便捷性。

补充下官方的定义:
Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化;而k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能,别搞混啦。

容器镜像

在这里插入图片描述
众所周知,容器镜像分为三个形态:

  • Build(构建镜像) : 镜像就像是集装箱,包含文件以及运行环境等等资源
  • Ship(运输镜像) :在宿主机和仓库间进行运输,这里仓库就像是超级码头
  • Run (运行镜像) :运行的镜像就是一个容器,容器就是运行程序的地方

Docker 的运行过程,也就是去仓库把镜像拉到本地,然后用执行命令把镜像运行起来变成容器,这也就是为什么人们常常将 Docker 称为码头工人或码头装卸工;但是在威胁无处不在的今天,镜像生命周期的安全问题就成了云原生开发者不得不面对的问题,那么如何去做好镜像容器的全生命周期防护呢,传统安全产品如防火墙、EDR、漏扫、安全基线等产品是否还依旧有效呢?

传统安全面对容器安全的表现

无法匹配动态IP

容器化之后,容器都是微服务的实例,而这些微服务会伴随着容器的消亡,包括容器的扩容所容,最终会导致容器的IP地址(容器地址是取决于pod的地址)一直处于变动的状态,所以防火墙、WAF等安全设备是无法进行防护的,因为其无法进行动态匹配IP地址。

无法侦测到容器内的各种行为

传统安全设备针对的多是主机层面的防护,但是在云原生环境下,多是以容器形式存在,所以传统安全设备在这面前会显得力不从心,容器内发生了什么全然不知,也就无法进行防护了。

无法扫描各种分层存储的镜像文件

目前市面上多数漏扫产品都只能去扫描普通单独的文件,但是对于分层存储的镜像文件也无能为力,而在容器安全中很重要的一环就是镜像的安全,所以传统过漏扫在这种场景不适用。

无法适应新的容器引擎和框架

在部署应用程序的方式上,主要经历了三个时代:

  • 传统部署:互联网早期,会直接将应用程序部署在物理机上
  • 虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境
  • 容器化部署:与虚拟化类似,但是共享了操作系统

容器化部署方式给带来很多的便利,但是也会出现一些问题,比如说:一个容器故障停机了,怎么快速替补;当并发变大/变小,怎么样做到横向扩容/缩容;这些容器管理的问题统称为容器编排问题,为了解决这些容器编排问题,就产生了一些容器编排的软件如Swarm、Mesos、Kubernetes等,在面对这些容器编排面前,传统安全无从下手无法适应。

那么问题来了,如何才能有效针对容器镜像进行有效的安全防护呢?

镜像容器全生命周期的安全防护

结合上面提到镜像容器主要分为三个形态,Build、Ship和Run,本文也是从这三个形态/阶段进行分析

Build防护

在构建镜像时可以针对镜像文件进行脆弱性扫描,具体的实现方式一般首先是通过容器安全防护系统去获取镜像的数据,然后在平台对这个镜像包进行解析,扫描(扫描逻辑内容和传统漏扫类似)。

Ship防护

刚刚提到在build阶段已经对镜像进行扫描了,为啥在ship还需要扫描呢?很多时候镜像文件并不是由公司自己内部搭建的,而是直接从乙方去获取,build阶段只是针对自建的镜像,而乙方获取的镜像,build阶段我们无法干预,所以这部分镜像也是可能存在风险的。
ship阶段一般主要是分为两方面的扫描:1.对容器所运行的基础设施(编排引擎:K8S、 )进行扫描2.对主机镜像扫描和仓库镜像进行脆弱性扫描(因为镜像文件解析出来并非所有文件都是存在风险的,有些文件类型是属于几乎没有风险的,所以高阶的容器扫描产品一般具备只针对重要文件类型(rpm/packages/dpkg/status…)进行过滤扫描的功能,提高扫描效率)。

Run防护

Run阶段的防护主要由以下三个方面进行防护:

  1. 容器启动控制: 在生产环境中,我们是不希望去启动带有高危漏洞、配置CIS、特定有缺陷的软件包版本的镜像,所以在启动之前,需要对这些带有缺陷的镜像文件进行启动阻断,来预防对未来使用埋下伏笔。
  2. 网络访问控制 :在容器运行时会产生大量的东西向流量,而这些流量不仅是在主机上流动,也在容器侧流动,传统的WAF、微隔离产品要么只能检测南北向的流量,要么只能检测主机层面的东西向流量,在容器场景的检测都不是那么全面,所以需要一款能够去检测容器间流泪的产品去做这方面的控制,以防止恶意流量在容器间传播。
  3. 入侵检测控制:容器运行时通常具有单一性和不变性,所以通过各类型容器/产品的专家总结出广谱规则可以动态地对运行时的容器进行限制,比如一个mysql容器 ,它在运行时只会去监听3306端口,写入的文件类型也是有规律性的,一般来说它不会去监听一些比如80、8080这些非自身常规所需要的端口,,所以这方面可以通过基线建模去匹配对应服务的容器,进行动态限制。

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

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

相关文章

没有备份电脑照片怎么恢复?分享3种找回照片方法

随着科学技术的不断发展,越来越多的人喜欢使用手机或相机进行拍摄,但是这些设备存储照片量多后,容易导致卡顿甚至无法拍摄的情况发生,对此,婚纱/新闻/美食/广告摄影等职业人员,会习惯性将这些设备上的照片导…

VR如何改变办公场所,听一听Meta的预测

近期,为了更好的了解人们对于元宇宙、VR的看法,以及这对办公场景带来的影响,Meta对全球2000多名企业员工和400名企业领导进行调研。调查结果显示,66%的受调查者认为VR有助于还原线下办公的团结感(togetherness&#xf…

Linux系统Initramfs机制

概述 现代Linux系统都使用到了一种功能比较特殊的微型系统,作为Linux内核初始化完成但未进入最终系统时的过渡系统,主要的目的是为了将最终系统载入到根文件系统上,辅助内核启动最终系统,可以称之为“辅助系统”。 辅助系统的作…

【C语言数据结构(基础篇)】第三站:链表(一)

目录 一、动态顺序表的缺陷以及链表的引入 1.动态顺序表的缺陷,以及链表的引入 2. 链表的概念 3.链表的声明 4.链表的逻辑结构与物理结构 二、单链表的实现 1.单链表的创建 2.单链表的打印 3.单链表的尾插 4.单链表的头插 5.单链表的头删、尾删 6.查找链表…

WPF入门第四篇 WPF模板

WPF模板 1、ControlTemplate 上一篇已经试用过控件模板&#xff0c;我们知道WPF的控件都是继承自Control&#xff0c;在Control类中有一个Template属性&#xff0c;类型就是ControlTemplate。那么利用这个ControlTemplate就可以彻底的颠覆控件的默认外观。 <Window x:Cla…

如何使用Unity ARFoundation和XR Interaction Toolkit对Prefab进行选择、缩放、移动、和旋转操作?

本文分享一种很常见的AR体验的实现。这种AR体验即&#xff0c;手机相机检测到指定图片/平面/实物之后&#xff0c;虚拟模型随之出现&#xff0c;并允许用户在屏幕上使用手势&#xff08;例如双指捏合&#xff09;对该虚拟模型进行选择、缩放、移动、和旋转操作。 这种体验有很…

【Spring】——14、如何使用@Value注解为bean的属性赋值呢?

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

flask之g对象、flask-session使用、数据库连接池、信号

目录 g对象 flask-session的使用 数据库连接池 flask中集成mysql wtfroms使用(了解) 信号 g对象 全称global&#xff0c;是一个全局对象在此次请求过程中一直有效&#xff0c;其实就是请求的上下文从请求进来就一直存在直到请求结束&#xff0c;所以在当次请求过程中&…

华为云WeLink云空间,企业的多啦A梦「百宝袋」办公助手

我们知道&#xff0c;源自华为19万员工的数字化办公实践的华为云WeLink&#xff0c;作为新一代智能工作平台、远程办公平台、移动办公平台、协同办公软件&#xff0c;已经给成为企业数字化转型的连接器。今天&#xff0c;我们来聊一聊WeLink提供的一项优质服务——云空间。 We…

论文复现-2代码研读:Black-Box Tuning for Language-Model-as-a-Service

第一步&#xff1a;将作者所给代码跑通。 下载代码&#xff0c;放置在本地文件夹。 报错问题一&#xff1a; 使用hugging face 中loaddataset函数报错。显示connect error。 修改如下&#xff1a;将数据集下载文件.py文件在本地&#xff0c;然后从.py文件中加载数据集。 解决…

【深度学习】PyTorch深度学习实践 - Lecture_13_RNN_Classifier

文章目录一、问题描述二、OurModel三、准备数据3.1 Data Convert3.2 Padding Data3.3 Label Convert四、双向RNN五、PyTorch代码实现5.1 引入相关库5.2 创建Tensors函数5.3 将名字转化为字符列表函数5.4 国家名字数据集对象5.5 RNN&#xff08;GRU&#xff09;分类器对象5.6 训…

Nacos--多环境的实现方案

原文网址&#xff1a;Nacos--多环境的实现方案_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Nacos实现多环境的方案。 方案概述 多环境有很多方案&#xff0c;如下&#xff1a; 单租户方案&#xff08;适用于项目很少的场景&#xff09; 命名空间区分环境&#xff0c;GR…

Python简介

Python简介 目录1. 概述2. 安装3. 编译器4. 注释5. 缩进6. 编码规范7. 基本输入输出使用print()函数输出使用input()函数输入8. 练习1. 概述 Python的中文意思是蟒蛇&#xff0c;python是一种面向对象的解释型的计算机程序设计语言。支持面向过程&#xff0c;面向对象&#xff…

(十四)Vue之收集表单数据

文章目录v-model的三个修饰符收集文本框收集单选按钮收集复选框收集下拉列表收集文本域演示程序Vue学习目录 上一篇&#xff1a;&#xff08;十三&#xff09;Vue之监测数据改变的原理 v-model的三个修饰符 v-model的三个修饰符&#xff1a; lazy&#xff1a;失去焦点再收集…

MIT6.830-2022-lab2实验思路详细讲解

目录一、Exercise1.1、Exercise1&#xff1a; Filter and Join1.2、Exercise2&#xff1a; Aggregates1.3、Exercise 3&#xff1a;HeapFile Mutability1.4、Exercise 4&#xff1a;Insertion and deletion1.5、Exercise 5&#xff1a; Page eviction二、总结一、Exercise 1.1…

人工智能课后作业_python实现A*算法实现8数码问题(附源码)

3 A*算法实现8数码问题 3.1算法介绍3.2实验代码3.3实验结果3.4实验总结 3.1算法介绍 Astar算法是一种求解最短路径最有效的直接搜索方法&#xff0c;也是许多其他问题的常用启发式算法。它的启发函数为f(n)g(n)h(n),其中&#xff0c;f(n) 是从初始状态经由状态n到目标状态的…

竞拍拍卖管理系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 网站前台&#xff1a;关于我们、联系我门、公告信息、拍卖物品&#xff0c;拍卖完成 管理员功影&#xff1a; 1、管理关…

信贷反欺诈体系介绍及其策略规则应用

在信贷业务的风控体系中&#xff0c;反欺诈始终是一个重要话题&#xff0c;与信用评估构成的贷前风控两大模块&#xff0c;对于贷前风险的防范控制发挥着决定性作用。反欺诈虽然在理解层面上感觉略显简单&#xff0c;但由于场景的复杂性与丰富度&#xff0c;使得反欺诈在研究开…

PD QC快充诱骗取电方案:输出9V12V15V20V

手机快充充电器或充电宝&#xff0c;在没有与手机通讯时&#xff0c;快充充电器相当于普通的充电器只输出5V电压&#xff0c;要想得到充电器的9V/12V等电压&#xff0c;可以使用快充取电电路。 或者也可以使用电子元件来搭建诱骗电路&#xff0c;但是和专用的取电芯片方案相比&…

Part 1:RPA的发展历程

Robot一词的来源 捷克科幻小说家卡雷尔恰佩克创作&#xff0c;于1921 年在布拉格首映的《罗素姆万能机器人》作品中首次出现“robot”&#xff08;机器人&#xff09;一词。这个词源于捷克语的“robota”&#xff0c;意思是“苦力”。恰佩克的机器人原本是为它们的人类主人服务…