写点什么

搞容器,必须考虑这五大安全要素

  • 2019-01-29
  • 本文字数:2121 字

    阅读完需:约 7 分钟

搞容器,必须考虑这五大安全要素

安全漏洞是每个 IT 部门最担心的问题,云计算越流行,安全问题就越突出。


采用任何新技术,安全风险都应该是首要考虑的问题。对采用容器犹豫不决的企业,最担心的就是现有流程和规范无法保证生产容器安全。除此之外,容器代表应用程序堆栈的一种新尝试,这需要新的方式思考应用程序安全性。


正如传统应用程序易受攻击一样,容器化应用程序和容纳它们的容器也是如此,企业可以通过了解容器化可能带来的风险来设计有效的安全策略,本文介绍了设计容器时必须考虑的五大安全因素。

隔离

早期,很多企业都会使用硬件虚拟化,更换为容器后要注意,容器中所谈的隔离与虚拟机(VM)隔离存在很大不同。当应用程序被攻击时,VM 提供的隔离可以有效限制攻击者在应用程序堆栈内横向移动,但容器化应用程序共享主机操作系统资源,无法做到完全隔离。但是,两者被攻击的概率并没有显著不同,只是虚拟机被攻击后的影响范围会相对小些。


解决隔离问题最简单的方法就是在虚拟机上运行容器。容器的显著好处是运行时可在任何地方运行,包括正在被逐渐抛弃的虚拟机。一些企业在虚拟机上运行容器化应用程序,以通过虚拟机隔离容器,防止攻击者在应用程序堆栈中横向移动以访问属于其他应用程序的数据。虽然此策略可以限制攻击的严重性,但并不会阻止攻击发生。

运行时

容器的动态特性引入了应用程序部署团队必须理解和管理的新运行时复杂性,类似 Kubernetes 这样的容器编排系统旨在快速提供容器镜像的复制实例。容器化应用程序由一个或多个容器镜像组成,这些镜像耦合以形成应用程序所需的功能。


应用程序可伸缩性是指在给定点部署特定容器镜像数量的函数。当新功能准备部署,应用程序所有者将创建更新策略,以确保应用程序的现有用户不受更新影响。此更新策略定义了随更新前滚的镜像百分比,以及在发现错误时如何进行回滚。


由于容器化部署的动态特性,对恶意行为或未授权访问的监控变得比传统 IT 环境更难,容器化应用程序通常具有在主机服务器级别共享的不同资源请求。出于这些原因,IT 运营和安全团队应成为其开发团队的合作伙伴,并实施信息共享以了解应用程序的预期行为。


运行时安全解决方案是实时检测和阻止其运行恶意活动的常用选项。通过监视对主机网络调用并尝试登录容器,这些解决方案构建了环境中每个应用程序的行为模型,这些行为模型可以了解所期望的网络操作和文件系统以及操作系统活动和功能。

补丁管理

大多数容器应用程序从基本镜像创建,基本镜像本质上是有限的、轻量级操作系统。应用程序容器镜像将基本映像与特定于应用程序的元素(例如框架、运行时和应用程序本身)组合在一起,每个元素都是镜像中的一层,这些层可能存在软件漏洞,从而带来风险。传统应用程序安全性测试注重应用程序漏洞,而容器化应用程序安全测试必须解决图像层内隐藏的漏洞。


开发者应该将每个容器镜像视为完整操作系统,并像对待虚拟机或服务器一样识别安全问题。这些问题的补救需要不同过程,考虑到一些集群已经达到 10,000 或更大规模,仅扫描容器镜像是不够的,企业必须积极监控任何层中新发现的漏洞,这些不会造成性能损失。


与运行时安全相比,补丁管理可以让团队在攻击发生之前解决漏洞并减轻攻击。


补丁管理的核心原则是无法修补未知漏洞。为了保护容器,企业必须知道包含的内容,由于大多数容器镜像源自第三方,因此了解镜像组成非常关键,考虑到大多数容器应用程序都是基于 Linux 的,有效开源治理流程是识别镜像中潜在问题的关键。毕竟,开源组件可以出现在整个容器镜像中。

手动审核

根据 Forrester 研究报告显示,43%的容器用户对其集群进行定期安全审计,这些安全审核包括跟踪电子表格中已知漏洞的组件或手动测试配置等。


通常,企业在进行容器试验时会进行人工审核。确定哪些流程和技术适用于容器环境需要时间,这就是手动审核的必要性。


随着企业将更多容器应用程序投入生产,这种方法无法扩展。NIST 指出使用专用安全解决方案的重要性,这些解决方案旨在根据容器集群规模进行扩缩容,不适用于高度动态的容器化生产环境的传统 IT 方法和技术可能会在应用程序安全计划中留下空白。

开源审查

根据某开源安全和风险分析报告显示,96%的审计代码库存在开源组件,每个代码库平均由 57%的开源代码组成,每个代码库发现 64 个开源漏洞,这比 2017 年增加了 134%。鉴于现代应用程序对开源技术的应用规模不断扩大,因此企业需要审查并跟踪开源组件和相关漏洞。


但是,这项工作实在太过庞大,开发者可以尝试从补丁层面下手。实际上,随着应用程序的扩展,传统补丁模型正在增加攻击面并降低应用程序可用性。更有效的模型是将补丁视为应用程序更新,并更新容器镜像,然后使用更新策略部署。

结语

由于没有一个工具可以完全保护容器集群,因此企业应该寻求与其选择的业务流程集成的最佳解决方案。这种模型受益于深度防御,使用不同技术解决容器化带来的风险。容器运行时安全解决方案可以帮助团队监视和防止对主机的未授权调用,从而限制违规范围。这种方法可以帮助团队实时响应主动攻击。对于有意降低风险以防止攻击的人,漏洞管理解决方案可以帮助自动识别已知漏洞并将其从集群中删除 ,从而大规模减少潜在攻击。


参考链接:


https://dzone.com/articles/strategies-and-technologies-for-container-security


2019-01-29 09:335859
用户头像
赵钰莹 InfoQ 主编

发布了 882 篇内容, 共 638.1 次阅读, 收获喜欢 2678 次。

关注

评论

发布
暂无评论
发现更多内容

如何优雅的改变this指向

bo

JavaScript 前端 7月月更

图的存储结构及方法(一)

乔乔

7月月更

python小知识-python格式化

AIWeker

Python python小知识 7月月更

【K8s入门必看】第二篇 —— 快速部署集群指南

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

Docker 常用命令整合

宁在春

Docker 7月月更

Java基础 ——入坑必读

攻城狮杰森

Java 7月月更

利用Python浅尝算法分析

迷彩

算法复杂度 7月月更 算法分析

思维导图学《On Java》基础卷

Yano

Java

MySQL消息队列表结构

极客土豆

来,滑动到下一个小姐姐

岛上码农

flutter ios 前端 安卓开发 7月月更

Go 并发编程基础:什么是上下文

宇宙之一粟

并发编程 Go 语言 7月月更

OSI七层模型有哪七层?每一层分别有啥作用,这篇文章讲的明明白白!

wljslmz

OSI七层协议 网络技术 7月月更

Java多线程之锁优化与JUC常用类

未见花闻

7月月更

QDS08 curl 安装

耳东@Erdong

curl qds 7月月更

Python干货——内置函数

Java学术趴

7月日更

Java 虚拟机的概念是怎么来的

HoneyMoose

互联网流量编排方案

穿过生命散发芬芳

7月月更 流量编排

springboot 项目打包优化(核心 class 与依赖 jar 分离)

安逸的咸鱼

Java maven SpringBoot 2 7月月更

Redis 事务学习有感

恒山其若陋兮

7月月更

网络安全之ARP欺骗防护

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

主题域模型

奔向架构师

数据仓库 7月月更

项目升级遇到的坑

技术小生

7月月更

教你学c++算法题中最简单的二分,我不允许还有人不会!!!!

KEY.L

7月月更

沉淀2年的 Jira 自动化经验分享

跟YY哥学Jira

RPA 自动化 Jira

【刷题记录】18. 四数之和

WangNing

7月月更

【函数式编程实战】(三)Lambda表达式原理与函数式接口精讲

小明Java问道之路

Java Lambda 后端 java8 7月月更

谈谈文字两端对齐的css问题

南极一块修炼千年的大冰块

7月月更

K3S - 轻量级Kubernetes集群

mengzyou

DevOps k8s k3s

百度搜索打击盗版网文站点:互联网内容侵权现象为何屡禁不止

石头IT视角

Istio架构扩展机制

阿泽🧸

istio 7月月更

zookeeper-curator开源框架介绍

zarmnosaj

7月月更

搞容器,必须考虑这五大安全要素_容器_赵钰莹_InfoQ精选文章