AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

  • 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:336061
用户头像
赵钰莹 极客邦科技 总编辑

发布了 893 篇内容, 共 668.9 次阅读, 收获喜欢 2690 次。

关注

评论

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

Dubbo Admin 部署

青年IT男

dubbo

设计微博系统中”微博评论“的高性能高可用计算架构

9527

react源码解析1.开篇介绍和面试题

全栈潇晨

React React Hooks react源码

六一特辑丨8岁小程序员献礼儿童节:我DIY了聊天机器人,做3D printer,还想和外星人对话!

华为云开发者联盟

编程 程序员 开发者 代码 机器人

从一个HTTP请求来看网络分层原理

IT视界

计算机网络 网络协议 HTTP 网络层

重庆区块链公共服务平台—“渝快链”2.0正式发布

带你读论文丨异常检测算法及发展趋势分析

华为云开发者联盟

深度学习 异常检测算法 深度异常检测算法 深度半监督 群体异常检测

长连接网关技术专题(五):喜马拉雅自研亿级API网关技术实践

JackJiang

Netty nio 网关

初探可编程网关 Pipy

张晓辉

代理 网关 服务网格

【Flutter 专题】117 图解 Dismissible 滑动清除 Widget

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

走近设计模式:写代码一定要用设计模式吗?

华为云开发者联盟

设计模式 代码 软件设计 面向对象软件 GoF设计模式

震惊,PostGIS还可以这样用!!!

华为云开发者联盟

数据库 分布式 GaussDB 地理数据库 PostGIS

知乎的一次29.7元的咨询

why技术

Java 程序员

一文带你搞懂RPC到底是个啥

万俊峰Kevin

c++ 微服务 RPC RPC 协议实现原理 srp

🔎【Java 源码探索】深入浅出的分析Mutex底层源码

码界西柚

Java JVM mutex Condition 5月日更

Spring 实例化方式有几种?为什么会用到 Cglib?

小傅哥

Java spring 小傅哥 cglib 手写框架

java.net.BindException: Address already in use: JVM_Bind解决方案

咿呀呀

IDEA javaWeb

Java 面试基础:Java 语言的特点

三掌柜

5月日更

鸿蒙操作系统发布在即 万物互联时代将给开发者带来更多机遇

科技汇

网络攻防学习笔记 Day30

穿过生命散发芬芳

5月日更 网络攻防

架构师实战营 模块五总结

代廉洁

架构实战营

高并发存储优化篇:诸多策略,缓存为王

Coder的技术之路

缓存 缓存击穿 缓存雪崩 缓存架构

When others give us advice

escray

学习 极客时间 5月日更

业务架构训练营,模块5作业,微博评论高性能架构

好吃不贵

业务架构

架构实战-模块5作业

大师兄

软件研发中的错误假设

赫杰辉

设计 低代码 研发工具 x-series

JWT(auth0):RS256非对称加密算法实现Token的签发、验证

西门阿杰

Java Token RS256

带你看懂MySQL执行计划

Simon

MySQL 执行计划

大型系统中的证书管理

张俭

微服务 TLS PaaS

开发人员应该害怕低代码吗?

禅道项目管理

程序员 低代码 开发 低代码平台

6月日更,优质更文,“定制”来袭~

InfoQ写作社区官方

6月日更 热门活动

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