什么是容器安全性,您如何提升自己的安全性?

news2025/2/4 13:05:58

容器无疑已成为部署应用程序的流行方式。这很棒,因为与部署到虚拟机相比,它们具有大量优势。其中一些优点包括便携、不可变和轻量级。您可以控制运行服务的容器内部的内容,这可以产生清晰、可审计的跟踪。

对于安全专业人员来说,这使您的工作更轻松,因为您了解正在发生的事情。保护容器并不可怕,但肯定有工作要做。

容器安全应该关注什么?

关于容器安全,您需要记住的第一件事是容器仍然只是运行软件。他们仍然运行某人编写的代码,而且通常是其他人编写的。 

您想从查看构成容器映像的部分开始。您需要确保所有东西实际上都需要在那里,并且您没有任何额外的东西可能会导致未来出现问题。接下来,查看实际运行容器的内容。容器编排器有需要查看和适当锁定的部分。如果容器容易受到您不知道的东西的攻击,这将防止攻击者进入您的网络太远。 

虽然容器与虚拟机不同,但可以分析它们的漏洞并以许多相同的方式进行保护。在运行时寻找东西以确保软件安全的工具存在重叠。在容器部署之前寻找漏洞的工具也存在重叠。 

因此,无论您的情况如何,都有很多工具和供应商可以更轻松地保护您的容器。有一些东西可以帮助您监视您的系统。这有助于确保作为安全专业人员,您可以做好自己的工作并做好。

获得容器安全性提升

现在我们来了解固定容器的具体细节。首先查看正在构建的容器映像中的内容。这意味着了解您开始的任何基本映像,然后了解您的软件是如何放置在其中的。

容器由不同的层组成。每一层都来自某个地方,了解它们的构建方式和内容将确保您能够了解它们的安全性。同样,有一些工具可以帮助完成这项工作,因为手动执行此操作将是一项艰巨的任务。

使用容器镜像

帮助确保图像正确的一种方法是对容器图像进行签名并确保这些图像来自受信任的来源。这建立了一个信任系统,构建的内容可以正确部署到您的容器编排器。通过只允许已知的良好签名,您可以确保系统构建的内容与交付到生产系统中的内容相同。这样,攻击者就无法在您不知情的情况下更改图像并将其分发到您的系统内部。至少,您会意识到系统的变化。

正确的另一部分是您开始的基本图像。尽可能使用 distroless 映像会有所帮助。许多基础镜像使用标准的 Linux 发行版,如 Ubuntu、Debian 或 Fedora。这意味着它们带有许多您可以在普通 Linux 机器上找到的标准工具。对于容器,这通常远远超过运行特定软件所需的量。Distroless 镜像试图限制作为图像一部分的辅助部件的数量。

例如,他们可能会从系统中删除一个 shell(即 bash 或 PowerShell)。这将限制攻击在被利用的图像内部旋转的能力。许多攻击使用其他类型的脚本或工具,这些脚本或工具依赖于存在的 shell 来实际执行攻击者的代码。这使得攻击者的工作变得更加困难,并且可能会减慢他们的速度,让他们放弃。

验证依赖项

了解不同的层意味着您了解将您正在运行的代码位带给您的供应链。这有助于确保您免受供应链攻击,这些攻击多年来一直在增加。如果您不了解软件物料清单(SBOM) 是什么,这将是一个很好的起点。尝试并确保您的依赖项具有这些,以便您知道您的软件供应链是安全的。

查看容器不同层的扫描仪非常重要。他们可以发现许多您甚至可能没有意识到的问题和漏洞。扫描程序多年来一直在研究软件依赖关系,将其扩展到容器是很自然的。这也提醒您容器通常有许多不同的部分,您应该了解软件旁边的内容。 

另一个不时发生的错误是不小心忘记了测试或开发依赖项。始终确保在构建将要投入生产的映像时,在发布映像之前删除任何开发或测试库或数据。开发和测试库尤其有很多已知问题,这些问题在本地可能不是问题,但可能会使您不必要地暴露于一些有害的攻击。减轻这种暴露就像防止这种数据或库泄漏到您的生产环境中一样容易。

确保安全运行时

现在您的容器已准备就绪,并且您已确保这是您要运行的软件。现在让我们专注于实际运行该软件。在容器环境中正确处理的第一件事就是正确隔离所有内容。这意味着要有良好的网络策略来确保已知容器与已知端点通信。甚至可以确保您遵循零信任政策。了解网络数据的流动方式和流向对于在威胁成为严重问题之前检测到它们至关重要。

一些容易实现的目标是你的秘密。确保这些秘密不在纯文本配置文件中,而是实际上使用了编排器的秘密机制。确保这些秘密实际上存储为正在运行的容器上的文件而不是环境变量也很重要。这样,如果攻击者确实突破了容器,他们就不能只在环境变量中找到您的秘密。相反,他们需要找到文件源。同样,这是一种减慢攻击者速度的方法,让他们为系统中的重要信息工作,而不是仅仅将信息交给他们。 

接下来要看的是在容器上锁定 root。这确保了如果容器受到威胁,它们无法逃脱您的容器并实际接管容器运行所在的机器。非常小心你的容器的权限是限制攻击者控制任何东西的能力的好方法。

遵循良好的安全策略

接下来,确保您为容器编排器遵循良好的安全策略。美国军方推荐了如何保护您的 Kubernetes 集群,并提供了可遵循的良好实践。例如,除了以非 root 身份运行之外,他们还建议:

  • 确保您拥有不可变的文件系统

  • 加密你的 etcd 数据库

  • 创建显式网络拒绝策略

  • 启用审核日志记录

这个列表只是一个开始。关于如何强化容器编排器有许多不同的指南。一些来自政府,一些来自私营公司。尝试并查看一些内容,以大致了解哪些是确保协调器安全的良好做法。

工具

考虑到所有这些因素,重要的是找到工具以确保在构建系统时一切都安全。有一些工具可以监视进入系统的所有内容,并在您需要采取行动时提醒您。尽早获得这些工具可以帮助您查明导致需要解决的问题的变化。但是,如果您的系统已经成熟,工具可以帮助您解决库存问题。他们还可以帮助您找出现在而不是以后需要修复的问题。

其他帮助您在容器在系统内部运行时持续监控它们的工具也很重要。发现异常或新的、意外的行为会创建一个早期检测离子系统。这可确保您越早发现攻击,您和您的客户的结果就越好。 

我希望这篇博文能够帮助您了解容器安全的含义以及如何提高容器的安全性。保护您的容器并不可怕,重要的是了解风险。 

与所有风险一样,有一些方法可以减轻它们。希望这篇博文能够展示一些风险,以及如何减轻这些风险。 

使用容器安全工具来帮助缓解这种情况。他们可以提供帮助并确保您的系统从一开始就是安全的,即使您的系统已经成熟,他们也会盘点正在发生的事情。确保您在正确的位置拥有正确的工具以将您带到您需要的地方总是很好的。

 

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

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

相关文章

模型复杂度与硬件性能的衡量

1. 模型复杂度的衡量 参数数量(Params):指模型含有多少参数,直接决定模型的大小,也影响推断时对内存的占用量 单位通常为 M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍左右参数数…

数据结构C语言版 —— 树和二叉树的概念

树和二叉树 一、树 1. 树的概念 树(Tree)是n(n>0)n(n>0)n(n>0)个节点的有限集,在任意一颗非空树中: (1) 有且仅有一个特定的称为根(Root)的节点,根节点是没有前驱节点的。 (2)当 n>1n > 1n>1时…

_11LeetCode代码随想录算法训练营第十一天-C++队列的应用

_11LeetCode代码随想录算法训练营第十一天-C队列的应用 239.滑动窗口最大值347.前K个高频元素 239.滑动窗口最大值 整体思路 要实现一个单调递减队列: 对于滑动窗口的滑动,移除前面的元素,加入后面的元素。当移除前面的元素时&#xff0…

监控物联网卡该如何选择,你都踩过哪些坑?

不知道大家有没有发现在自己的身边不知不觉多了很多新玩意,例如智能自动售货机、共享单车、智能监控设备等,它们让大家的生活变得越来越方便,那么大家知道它们为什么能起到这么大的作用吗,其实得得益于一个叫做物联网卡的东西。前…

通过kubeode安装k8s

文章目录通过kubeode安装k8s1、准备vmdk文件2、创建虚拟机3、进入虚拟机4、配置yum源5、清理6、 增加node服务器7、修改Ip8、下载下载通道01 走普通家庭宽带下载点下载通道02 走群友无私赞助电信机房专线服务器--高速稳定下载----强烈推荐下载并解压9、一键安装通过kubeode安装…

字符串函数剖析(1)

带你玩转字符串 1.strlen函数不一样的细节 1.1模拟实现strlen函数 2.strcpy函数的巧妙 2.2strcpy的模拟实现 3.strcmp函数的巧妙 3.2strcmp的模拟实现 详解strlen的细节 首先了解strlen 函数的参数 size_t strlen ( const char * str );size_t 是什么东西呢&#xff1f…

链表-------数据结构

链表(重点): 链表是物理存储结构上面非连续的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 1)在顺序表中,我们不光引入了一段连续的内存,还引入了一块连续的内存空间,叫做usedsize,来表示对应数组中…

PMP每年考几次,费用如何?

PMP每年考四次,整个考证一次通关大致需要 7000 元左右,主要是下面几项费用: 部分学习笔记: 一、考证费用 分为基础费用报班费用 基础费用:报名费续证费用(补考费 / 退考费) 报名费 3900 元是固…

【软件测试】测试人的内卷,掀起血雨腥风......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 铺天盖地的职场内卷…

如何利用深度学习中的AutoEncoder进行特征降维和特征可视化,pytorch代码

我们将使用 Pytorch 中的 AutoEncoder(自动编码器架构)来减少特征维度和可视化。 北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理 人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典 首先&#xff0c…

力扣(142.1002)补9.17

142.环形链表Ⅱ 不会,不过答案用了数学的想法,我以为计算机里只有暴力呢。 public class Solution { public ListNode detectCycle(ListNode head) { if(headnull||head.nextnull) return null; ListNode phead; ListNode p2head; while(true){ if(p2.ne…

Excel教程之学生成功所需的 5 个电子表格

作为一名学生,跟踪你盘子里的所有任务和责任可能会让人不知所措。 这就是为什么拥有一套组织良好的电子表格可以成为救命稻草的原因。出于多种原因,维护自己的电子表格可能是一项宝贵的技能。首先,它可以帮助您养成良好的习惯,例如组织和关注细节。通过创建和维护您自己的…

RabbitMQ之Exchange(交换机)

目录 一、Exchange简介 二、Exchange(交换机)的类型 1.直连交换机:Direct Exchange 2.主题交换机:Topic Exchange 3.扇形交换机:Fanout Exchange 4、默认交换机 5、Dead Letter Exchange(死信交换机) 三、交换机…

Conan 上传预编译的包

目录 1. 组织文件 2. 编写conanfile.py 3. 然后执行export 命令 4. 上传到自己的center 疫情肆虐,阳了一周,今天可以正常工作了,刚接触conan, 确实一脸懵逼,今天的任务是把项目转成Conan 管理,因为项目用到了第三方…

R语言学习笔记——扩展篇:第十九章-使用ggplot2进行高级绘图

R语言 R语言学习笔记——扩展篇:第十九章-使用ggplot2进行高级绘图 文章目录R语言一、R中的四种图形系统二、ggplot2包介绍三、用几何函数指定图的类型四、分组(重叠图形)五、刻面(并排图形)六、添加光滑曲线七、修改…

SpringMVC的AOP总结

SpringMVC的AOP总结 1、Filter 过滤器 Filter是Servlet规范中规定的,只能用于WEB中, 在Servlet前后起作用 它可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次 使用场景: 修改字符编码; 对入参进行校验, 校验不通过返回…

java实验报告之Employee类的设计

一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion:2022.12.20 Last edited: 2022.12.20 目录 一、实验目的 二、实验内容 三、总体设计(设计原理、设计方案及流程等) 四…

Python数据结构+算法全面讲解:定义函数、定义类

之前的过程抽象例子调用了 Python数学模块中的 sqrt 函数来计算平方根。通常来说,可以 通过定义函数来隐藏任何计算的细节。函数的定义需要一个函数名、一系列参数以及一个函数体。 函数也可以显式地返回一个值。例如,下面定义的简单函数会返回传入值的平方。 >>> …

使用 Appium 报错“... Could not find ‘adb‘ in ...”

使用 Appium 报错 “... Could not find adb in ...”1. 现象2. 问题定位3. 解决方案4. 验证1. 现象 在 Robot Framework 中使用 Open Application 关键字以通过 Appium 来打开模拟器上的应用报错: WebDriverException: Message: An unknown server-side error occ…

Transformer17

还是transformer 这次还是谷歌哈 又在机器人领域发力 谷歌机器人团队等在机器人领域构建了一个多任务 transformer 模型,显著改进了对新任务、环境和对象的零样本泛化。轻松完成700多条指令、成功率达97%!谷歌开源机器人领域 我们知道,机器…