云原生安全系列2:关于镜像安全必须知道的事儿

news2024/11/17 16:42:20

1.避免特权容器

Docker 提供了一种特权模式,它允许容器在本地计算机上以 root 身份运行。在特权模式下运行容器提供了该主机的功能,包括:

  • 对所有设备的根访问权限
  • 能够篡改 AppArmor 和 SELinux 等 Linux 安全模块
  • 能够使用主机的内核功能安装 Docker 平台的新实例,并在 Docker 中运行 Docker。

特权容器会带来重大安全风险——使攻击者能够在容器受到威胁时轻松提升特权。因此,不建议在生产环境中使用特权容器。最重要的是,切勿在任何环境中使用它们。

要检查容器是否在特权模式下运行,请使用以下命令(如果容器有特权则返回 true,否则返回错误消息):

docker inspect --format =''[container_id]

2.隔离容器网络

Docker 容器需要网络层通过主机上的网络接口与外界通信。默认桥接网络存在于所有 Docker 主机上——如果您没有指定不同的网络,新容器会自动连接到它。

强烈建议不要依赖默认的桥接网络——使用自定义桥接网络来控制哪些容器可以在它们之间通信,并启用从容器名称到 IP 地址的自动 DNS 解析。您可以根据需要创建任意数量的网络,并决定每个容器应该连接到哪些网络(如果有的话)。

确保容器只有在绝对必要时才能相互连接,并避免将敏感容器连接到面向公众的网络。

Docker 提供网络驱动程序,让您可以创建自己的桥接网络、覆盖网络或 macvlan 网络。如果您需要更多的控制,您可以创建一个 Docker 网络插件。

3.定期更新 Docker 和主机

确保 Docker 和主机是最新的,定期进行漏洞扫描,补丁更新。始终确保 Docker 是最新版本。使用更新的操作系统和容器化软件来阻止安全问题。每个更新都有保护主机和 Docker 所必需的安全升级。

4.配置资源配额

容器应该有资源限制。设置资源限制会降低容器消耗大量系统资源的能力。限制分配给每个容器的资源可增强发生攻击时的安全性。

资源配额由 Docker 基于每个容器配置。它们使您能够限制容器可以消耗的资源(内存和 CPU)数量。

在容器上配置资源配额可以提高 docker 环境的效率。也防止了环境中整体容器的资源不平衡。

此功能增强了容器安全性并使它们以预期的速度运行。如果一个容器感染了恶意代码,它不会让很多资源进入,因为配额会切断它。这进一步有助于最大限度地减少攻击。

以  docker 为例:

e003290274b2a7b31ac711bbadec3df1.jpeg

5.保持图像最轻量化

尽量使用最小的基础镜像,同时应安装最少的必须软件包,这可以减小图像大小,还可以减少可能存在漏洞或可能被用于恶意目的的包/组件的数量

从不受信任的来源和供应商下载容器镜像可能会在容器中引入安全漏洞,您应该确保从在线平台下载的图像来自可信和安全的来源:

  • 使用真实的容器镜像。在Docker Hub上查看它们。它是最大的 Docker 镜像注册中心,拥有多个容器镜像。
  • 使用经过Docker Content Trust验证的图像。
  • 使用 Docker 安全扫描工具帮助您识别容器映像中的漏洞。

6.监控 API 和网络安全

网络和 API 在 Docker 安全性中发挥着重要作用。Docker 容器使用 API 和网络进行通信。通信对于容器正确部署和运行至关重要。因此,需要适当的监控和安全措施。

API 和网络安全是与 Docker 一起使用的资源。这些资源也是 Docker 安全性的一个公开风险。应该很好地监控和配置 API 和网络安全,以增强 Docker 的安全性。

7.不要将任何秘密、密码或密钥写入 Dockerfile

储敏感信息以纯文本的方式写入 Dockerfile 很容易造成数据泄露,当他人获取到您的镜像时,甚至可以通过 `docke history` 命令查看您的镜像构建情况,从而查看到您 DockerFile 中的 ARG、ENV映射的敏感数据。

8.除非特别需要,否则不要打开端口 22 或包括 SSH

SSH(Secure Shell)是一种加密的网络传输协议,它允许用户通过Internet 控制和修改远程服务器,但是在容器中这将是一个潜在的攻击媒介,黑客可以通过ssh登录到容器,以容器为攻击起点,在网络环境中展开以南北向、散射状进行网络攻击和病毒入侵。

9.通过特定版本标签引用基础映像,而不是“latest”:

您需要知道您正在使用的特定版本,以便组件跟踪和重建映像。“latest”图像是一个“活动版本”,使用者每次更新latest版本的镜像时,可能获得的结果都不一样,从而产生很多意想不到的后果!

10.总结

保护 Docker 容器是必不可少的,但也可能很复杂。通过以上提示,您可以为容器化应用程序管理一个大型且安全的平台。上述做法至关重要,因为它们将帮助您防止容器化环境中的安全漏洞和攻击

最后,应根据更新的漏洞数据库持续扫描在环境中使用的图像,以确保管理新漏洞。

关于 HummerRisk

HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和K8S容器云安全检测。

512dc9dfa2c4ac317ec5232c97882da1.jpeg

Github 地址:https://github.com/HummerRisk/HummerRisk

Gitee 地址:https://gitee.com/hummercloud/HummerRisk

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

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

相关文章

pytorch神经网络基本骨架nn.module的使用

1.Containers 首先查看官方文档中nn.module骨架,其中有六个模块。 1.1Module import torch.nn as nn import torch.nn.functional as F class Module(nn.Module):def __init__(self):super(Module, self).__init__()self.conv1nn.Conv2d(1, 20, 5)self.conv2nn.C…

ESP32学习笔记 - 基于 ESP32 移植 LVGL8.3

以前写过一篇文章,讲述了如何基于ESP32 芯片移植LVGL这个GUI框架,当时是在LVGL移植好的工程lv_port_esp32上进行的,这个工程最新支持到LVGL7.9版本,关于之前的移植文章,可以参考以下链接: ESP32学习笔记 - 移植LVGL 随着LVGL不断在高频率地迭代大版本,LVGL8.x已经比以…

java基于springboot+vue的酒店预订网站——计算机毕业设计

运行环境: 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架springbootvue 项目介绍 民宿管理平台系统,主要的模块包括管理员;首页、个人中心、用户管理、商家管理、民宿信息管理、房间类型管理、房间信息管理、…

基于Springboot+Mybatis+mysql+vue技术交流博客论坛系统

基于SpringbootMybatismysqlvue技术交流博客论坛系统一、系统介绍二、功能展示1.主页(普通用户)2.登陆、注册(普通用户)3.博客(普通用户)4.文章详情(点赞、评论)(普通用户)5.我的文章(普通用户&…

模拟电子技术(六)信号的运算与处理

(六)信号的运算与处理基本运算电路概述比例运算电路反向比例运算电路同相比例运算电路电压跟随器加减运算电路求和运算电路加减运算电路积分运算电路微分运算电路基本微分运算电路逆函数型微分运算电路对数运算电路采用二极管的对数运算电路利用晶体管的…

配置中心微服务(Spring Cloud Config)

为什么需要配置服务中心&#xff1f; 1、统一维护2、配置内容安全与权限微服务之config server 注册到注册中心启动类加注解&#xff1a;EnableConfigServerSpringCloudApplicationEnableDiscoveryClient/{name}-{profiles}.yml <>name 微服务名称 profiles…

【electron】 打包应用修改图标和进程名字

文章目录导读开发环境打包流程制作一个大于等于256*256的icon修改package.json执行 *npm run build* 生成应用效果图踩坑icon必现大于等于 256*256图片有损icon图标要包含各种分辨率的resources\app.asar占用参考资料导读 以下内容在https://gitee.com/zkyt/electron-vue-eleme…

CobaltStrike木马免杀代码篇之python反序列化分离免杀(一)

前言 本篇文章主要用到python来对CobaltStrike生成的Shellcode进行分离免杀处理, 因此要求读者要有一定的python基础, 下面我会介绍pyhon反序列化免杀所需用到的相关函数和库 exec函数 exec函数是python的内置函数, 其功能与eval()函数相同, 但不同的是exec函数支持多行pyth…

Metabase学习教程:提问-3

时间序列比较 如何使用自定义表达式进行同比或逐月比较。 一个强大但也许不明显的东西自定义表达式让我们做的就是创造时间序列比较。例如&#xff0c;如果我们想比较2019年和2018年的每月收入或每天的用户数&#xff0c;我们可以使用Sumif和Countif 聚合功能。 第一步&…

(HAL库)实验1 点亮一个LED

1、实验准备 实验目标&#xff1a;点亮LED 器材&#xff1a;海创stm32开发板和数据线 2、CubeMX初始化 2.1 新建工程 打开STM32CubeMX软件&#xff08;V6.6.1&#xff09;&#xff0c;点击左上角"File"&#xff0c;再点击“New Project”。 在出现的左上角搜索框…

【C语言】初识指针(二)

你可以改变你的行为&#xff0c;但改变不了你想要什么——《浴血黑帮》 目录 1、指针类型 1.1指针加减(、-)整数 1.2指针的解引用 2、野指针 2.1什么叫野指针 2.1.1指针未初始化 2.1.2指针越界访问 2.1.3指针指向的空间被释放了 2.2如何避免野指针 前言&#xff1a; 大…

150. 以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

以笔者本套教材为例,每一步骤的源代码都托管在本人 Github 仓库里,每次上传之前,都确保本地测试通过。 但笔者编写过程中发现,之前测试通过的代码,可能几个月之后再执行,就会遇到白屏现象,即应用无法正常加载,或者无法在调试模式下正常加载。 举个具体的例子。本文写…

渗透测试——找寻绝对路径的方法总结

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

Nignx部署前端页面

1.在Linux找到nginx的配置 2.使用vim命令打开nginx.conf vim nginx.conf 3.找到server块 将server_name改为服务器ip地址 4.按照原有的location块新建一个同样的location块 如果有多个就新建多个 5.将要部署的前端页面上传到自己知道的linux中的位置 我这里是存放在 data/w…

靶场-DC

文章目录主机发现端口扫描扫描目录登录网页查看users库查看staff库&#xff08;密码正确&#xff09;爆破ssh端口敲门服务利用提权主机发现 nmap -sP 192.168.111.1/24 arpscan -l netdiscover -p 发现除了本机ip&#xff0c;速度快发现目标机的ip&#xff1a;192.168.111.140…

Go 语言变量

变量来源于数学&#xff0c;是计算机语言中能储存计算结果或能表示值抽象概念。 变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成&#xff0c;其中首个字符不能为数字。 声明变量的一般形式是使用 var 关键字&#xff1a; var identifier type 可以一次声…

基于PHP+MySQL新生报到管理系统(含论文)

每年都有大量的新生需要报到,但是很多时候因为是第一次到本校进行报到,不知道具体的报到流程和学校的安排,如果挨个的去通知无形之间会给工作人员增加工作量,目前最好的办法就是开发一套新生报到系统,让新生可以自己去查看具体的工作流程和安排 本系统是基于PHP和mysql来进行开…

九、数据库的备份还原

九、数据库的备份还原 1、归档管理 使用DM Manager&#xff1a; 点击注册的实例连接->右键->管理服务器 点击系统管理->点击配置->点击转换 点击归档配置->归档 使用DISQL&#xff1a; #创建文件夹存放日志文件 mkdir /dm/dmarch#登录disql disql SYSDBA SY…

细胞衰老——酪氨酸激酶抑制剂

20 世纪 60 年代&#xff0c;Hayflick 和 Moorhea 首次引入细胞衰老的概念&#xff0c;以描述正常的人类二倍体细胞株在连续培养后出现的不可逆的生长停滞现象。后来的研究表明&#xff0c;细胞衰老可由端粒缩短或功能障碍、致癌基因激活、DNA 损伤和突变&#xff0c;以及许多不…

外汇天眼:如果你想成为前5%的交易者

如一个交易者在世界5%的交易俱乐部中&#xff0c;那就意味着其账户获得持续的收益&#xff0c;并且达到全球95%的交易者所达不到高度。而我们需要明确的是这些成功交易者是通过小而稳定的收益建立一个账户&#xff0c;并以可控的速度构建来完成的。 那么天眼君给大家抛出一个问…