容器安全的三大挑战

news2024/9/27 5:52:42

容器凭借其经济高效的优势改变了应用程序的交付方式,随着容器的普遍使用,管理应用程序基础设施的 IT 劳动力和资源也显著减少。然而,在保护容器和容器化生态系统时,软件团队遇到了许多障碍。尤其是习惯于更传统的网络安全流程和策略的企业团队。从理论上来说,容器看起来似乎能够提供更好的安全性,因为容器将应用程序与主机系统彼此隔离开来。但实际真的如此吗?
 

让我们来看一组市场数据。据美国商业资讯报道,到 2027 年,全球容器安全市场规模预计将达到 39 亿美元,复合年增长率为 23.5%。显而易见,市场对于容器安全的需求将越来越大。与任何软件一样,容器化应用程序也可能受到安全漏洞影响,包括错误、身份验证和授权不充分以及配置错误,因此容器安全问题不容忽视。
 

容器中的安全威胁

容器中可能存在的安全威胁有:

  • 外部攻击者试图访问企业部署。

  • 对生产环境具有一定访问权限的内部攻击者(不一定是管理员)。

  • 有权访问部署的开发人员和管理员等特权内部用户的有意破坏。

  • 无意的内部因素可能会意外导致问题,例如在容器镜像中不小心存储了一些密钥或证书。

  • 通过引入一些新服务或减少等待时间来增强客户体验,公司往往会在其服务器或防火墙中打开一些端口。如果不严防死守,这些端口很可能成为黑客的通道。

截屏2022-12-28 下午8.20.50.png
图片来源:Container Security by Liz Rice
 

上述多种途径会损害企业的容器安全性。接下来我们将一起来讨论容器安全面临的挑战以及应对建议。
 

容器安全面临的挑战

1. 容器镜像问题

引入漏洞将会导致配置不当的容器镜像。事实上每天云端都会引入不同的新漏洞。如果用户直接从云上获取镜像并直接开始使用,就会存在一定安全风险。所以每个容器镜像在使用之前都需要进行单独扫描从而保证其安全性。
 

常见的一些问题案例:

  • 镜像启动允许未经授权的网络访问的无关程序或服务

  • 容器镜像被配置超出用户使用的普通权限(配置的权限大于用户使用)

  • 镜像中存储了密钥或凭证
     

建议:

  • 从受信任的容器镜像仓库中拉取图像,因为这类的镜像仓库通常拥有良好的配置,通常指的是私有镜像仓库,经过加密并且需要经过身份验证。

  • 容器镜像仓库应进行定期频繁的维护测试,以此来减少和消除包含漏洞的镜像。

  • 在将镜像投入生产之前,软件团队需要通过蓝绿部署(Blue-Green deployments)或容器更改的回滚来构建共享实践。
     

2. 编排安全问题

在解决容器安全问题时,像 Kubernetes (K8s)这样的编排工具是不可或缺的。目前 K8s 已成为主要的攻击面。据 Salt Security 称,大约 34% 的组织完全没有适当的 API 安全策略。除此之外,27% 的受访者表示他们只有一个基本策略,包括对 API 安全状态进行最少的扫描和手动审查,并且没有对其进行控制。
 

当 K8s 处理多个容器时,在某种程度上暴露了很大的攻击面。当没有保护编排器的生态系统时,仅仅遵循全行业实践的字段级令牌化是不够的。因为敏感信息被解码和暴露只是时间问题。
 

建议:

  • 确保 orchestrator 的管理界面被正确加密,包括双因素身份验证和静态数据加密。
  • 将网络流量分散隔离,隔离则需要根据传输的流量的敏感性来管理。例如,面向公众的 Web 应用程序可以归类为低敏感度工作负载,而像税务报告软件等可以归类为高敏感度工作负载并将它们隔离。这个想法是确保每个主机运行特定安全级别的容器。
  • 对集群节点之间的所有网络流量进行端到端加密,其中还包括集群成员之间经过身份验证的网络连接。
  • 将节点安全地引入集群,在不影响集群安全的情况下隔离/移除受感染的节点。
     

3. 防止“容器逃逸”问题

使用较多的容器运行时例如 containerd、CRI-O 和 rkt,可能已经随着时间的推移强化了它们的安全策略,但是,它们仍然无法避免漏洞问题。这是一个严重的安全问题,因为这些容器运行时允许恶意代码在“container escape”中运行到主机上。
 

在 2019 年,runC 中发现了一个名为 Runscape 的漏洞。这个漏洞 ( CVE-2019-5736) 能够让黑客能够脱离沙盒环境并授予对主机服务器的根访问权限,从而导致整个基础设施受到损害。起初,人们只是假设这可能是一个恶意的 Docker 镜像,但经过一系列测试后才意识到这是 runC 中的一个危险漏洞。
 

安全左移

在处理基于微服务的环境时,建议在每一步都引入自动化部署。如果仍然按照每周或每月这样的频率来手动执行部署,整个过程就无法达到敏捷状态。要在应用程序交付中真正向左移动,需要创建一个现代的安全插件工具链及其在整个流水线中的扩展。
 

安全左移体现在:如果镜像中存在任何漏洞,该过程应该在构建阶段就停止。应该对 RBAC 进行定期审计以监控所有访问级别。此外,所有工具和流程都应符合 CIS 基准。
 

采用安全即代码实践(SaC)是一个不错的方式,将 Kubernetes-native YAML 文件的安全清单编写为自定义资源定义。这些信息是可读的,并在运行时声明应用程序的安全状态。随即可以将其推送到生产环境中并使用零信任模型进行保护。因此,流水线外的代码永远不会有任何更改。
 

参考链接:
https://dzone.com/articles/securing-your-containers-top-3-challenges
https://www.businesswire.com/news/home/20220516005772/en/Insights-on-the-Container-Security-Global-Market-to-2027—Rising-Threats-and-Cybercrimes-to-Drive-Requirement-for-Container-Security-Platforms—ResearchAndMarkets.com
https://www.oreilly.com/library/view/container-security/9781492056690/ch01.html#ch_container_security

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

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

相关文章

MYSQL学习之路

MYSQL架构示意图 MYSQL8.0开始移除了查询缓存这个模块; 查询缓存:适合读多写少的任务; 建议:将 have_query_cache 设置为No,在需要使用查询缓存的语句上显式声明; select SQL_CACHE * from test;WAL(Write …

mysql sql优化、查看索引、创建索引

1.索引遵循原则 仅在被频繁检索的字段上创建索引。针对大数据量的表创建索引,而不是针对只有少量数据的表创建索引。通常来说,经常查询的记录数目少于表中总记录数据的 15% 时,可以创建索引。这个比例并不绝对,它与全表扫描速度成…

java:jackson 一:Jackson Annotation

java:jackson 一:Jackson Annotation 1 前言 参考文档地址: https://www.baeldung.com/jacksonhttps://www.baeldung.com/jackson-annotations2 使用 2.1 Jackson Serialization Annotations jackson 序列化注解 2.1.1 JsonAnyGetter T…

产业互联网是以大数据、云计算、AI等为代表的数字技术的出现为标志

事实上,以往,我们所经历的那个互联网玩家频出的年代,其实就是一个以互联网技术为主导的年代。在那样一个年代里,互联网技术几乎是解决一切痛点和难题的万能解药,几乎是破解一切行业痛点和难题的杀手锏。任何一个行业&a…

数据可视化③:大学生就业数据分析

大学生就业是和我们息息相关的话题,每一位大学生都关注着,我们常常在网络上看到有关大学生就业的话题,比如毕业季的一些讨论。在大一的创新创业课中,我们也了解到自己所学的专业和以后如何就业,往哪方面就业。但我们了…

深度学习目标检测_IOU、Precision、Recall、AP、mAP详解

文章目录背景IOU:Intersection Over Unionprecision(精度)和recall(召回率)TP、TN 、FP 、FNAP和mAP首先回顾两个概念PR曲线AP(Average Precision)mAP(mean Average Precision)背景 目标检测的任务是找出图…

[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

整合shell编程 回忆上次内容 用\r 可以让输出位置回到行首原位刷新时间 如果想要的是大字符效果 需要使用 figlet但同时还希望能刷新这可能吗?🤔 建立脚本 我们得熟悉一下shell 先新建一个test.sh vi test.sh python3 show_time.py python3 show_time.…

如何通过GB35114国密标准接入到LiveGBS GB28181/GB35114监控平台

1.1 安装LiveGBS GB28181/GB35114视频平台 1.2 获取设备端证书给平台 我们用LiveNVR做为设备端向LiveGBS注册,这里先将LiveNVR的证书导出,并给LiveGBS端。 本地自签名证书是LiveNVR自己给自己签发的证书。如果需要用第三方机构的证书,可点击…

【软件测试】资深测试的总结,有限时间找最有价值bug......

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

Mybatis进阶之自定义TypeHandler

实际应用开发中的难免会有一些需求要自定义一个TypeHandler ,比如这样一个需求:前端传来的性别是 男, 女,但是数据库定义的字段却是tinyint 类型( 1:男 2:女)。此时可以自定义一个年龄的类型处理器,进行转换…

Linux学习笔记——Linux实用操作(一)

04、Linux实用操作 4.1、各类小技巧(快捷键) 学习目标: 掌握各类实用小技巧 强制停止退出、登出历史命令搜索光标移动 1、Ctrlc强制停止 Linux某些程序的运行,如果想要强制停止它,可以使用快捷键Ctrlc 命令输入…

一个基于Vue+SpringBoot的个人博客项目,含数据库文件

blogSpringBoot 项目介绍 完整代码下载地址:一个基于VueSpringBoot的个人博客项目,含数据库文件 该项目是个人博客项目,采用Vue SpringBoot开发。 后台管理页面使用Vue编写,其他页面使用Thymeleaf模板。 项目演示地址&#…

什么是 MySQL 的“回表”?

1. 索引结构 要搞明白这个问题,需要大家首先明白 MySQL 中索引存储的数据结构。这个其实很多小伙伴可能也都听说过,BTree 嘛! BTree 是什么?那你得先明白什么是 B-Tree,来看如下一张图: 前面是 B-Tree&am…

不止稳定快速,看华为云CDN如何在国际云服务市场中“分蛋糕”

互联网时代,网络的应用已十分普及,但依然存在下载慢、网络卡顿的现象。如企业业务运行过程中出现的卡顿现象导致数据延时;各校因疫情等原因网课时间长、访问应用人数过多,造成网络卡顿现象严重,无法带来良好的上课体验…

ArcGIS基础实验操作100例--实验16对字段自定义赋值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验16 对字段自定义赋值 目录 一、实验背景 二、实验数据 三、实验步骤 (1…

玩转云服务器,怎样用云服务器架设搭建游戏:浪剑天下架设教程,手把手教你架设游戏服务器,小白一看就会

服务器详情:服务器系统:LINUX-CENTOS7.6服务器配置:2核4G以上配置 搭建教程: 第一步:安装宝塔: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh &…

Allegro如何输出IPC文件操作指导

Allegro如何输出IPC文件操作指导 IPC文件是PCB上所有网络连接关系文件,在PCB生产前网表比对必须的文件,如下图 如何输出IPC文件,具体操作如下 选择File选择IPC356

磁实验比较-反激式变压器(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

代码随想录拓展day5 129. 求根节点到叶节点数字之和;1382.将二叉搜索树变平衡;100. 相同的树;116. 填充每个节点的下一个右侧节点指针

代码随想录拓展day5 129. 求根节点到叶节点数字之和;1382.将二叉搜索树变平衡;100. 相同的树;116. 填充每个节点的下一个右侧节点指针 全部都是关于二叉树的题目,对二叉树的遍历方式又是一个复习。 129. 求根节点到叶节点数字之…

Java 访问权限控制

使用访问权限控制的原因: 使用户不要触碰到那些不该触碰的部分类库设计者可以更改类的内部工作模式,而不必担心整体程序造成影响 访问权限修饰词 Java具有三种访问权限修饰词(public private protected),划分出了四种访问权限(public prot…