Istio 首次安全评估结果公布

本文译自 Istio 社区官方博客 Announcing the results of Istio’s first security assessment[1],作者 Neeraj Poddar,译者宋净超。

Istio 服务网格已在各行各业获得广泛的生产应用。该项目的成功,以及其在基础设施中执行关键安全策略的重要用途,都需要对与该项目相关的安全风险进行公开和中立的评估。

为了实现这一目标,Istio 社区去年与 NCC 集团[2]签约,对该项目进行第三方安全评估。审查的目标是 “确定与 Istio 代码库有关的安全问题,突出管理员常用的高风险配置,并提供关于安全功能是否充分解决它们旨在提供的问题的观点”。

NCC 集团在 Istio 社区的领域专家的协作下,进行了为期五周的审查。在这篇博客中,我们将研究报告的主要发现,为实施各种修复和建议而采取的行动,以及我们对 Istio 项目的持续安全评估和改进的行动计划。你可以下载并阅读安全评估报告的未删节版本[3]

范围和主要发现

本次评估从整体上评估了 Istio 架构的安全相关问题,重点是 Istiod(Pilot)、Ingress/Egress 网关等关键组件,以及 Istio 作为数据平面代理的整体 Envoy 使用情况。此外,还审计了 Istio 的文档,包括安全指南,以确保其正确性和清晰性。该报告是针对 Istio 1.6.5 版本编制的,此后,随着新漏洞的披露,产品安全工作组发布了几个安全版本,同时还针对新报告中提出的问题进行了修复。

该报告的一个重要结论是,审计人员在 Istio 项目中没有发现 “关键 “问题。这一发现验证了 Istio 的产品安全工作组(PSWG)实施的持续和积极的安全审查和漏洞管理流程。对于报告中提到的其余问题,PSWG 开始着手解决,我们很高兴地报告,所有标为 “高 “的问题和几个标为 “中 / 低 “的问题在报告发布后已经得到解决。

该报告还围绕创建一个加固指南提出了战略建议,现在可以在我们的安全最佳实践指南[4]中找到。这是一份全面的文件,汇集了 Istio 社区的安全专家和在生产中运行 Istio 的行业领导者的建议。我们正在努力为在安全环境中安装 Istio 创建一个有见地的、强化的安全配置文件,但在这期间,我们建议用户遵循安全最佳实践指南,配置 Istio 以满足他们的安全需求。说到这里,让我们看看对报告中提出的各种问题的分析和解决。

解决方法和心得

无法保证控制面网络通信的安全

该报告标记了旧版本的 Istio 中可用的配置选项,以控制如何保证控制面的通信安全。自 1.7 以来,Istio 默认保护所有控制面通信的安全,报告中提到的许多管理控制面加密的配置选项不再需要了。

报告中提到的调试端点是默认启用的(从 Istio 1.10 开始),允许用户使用 istioctl 工具调试他们的 Istio 服务网格。它可以通过设置环境变量 ENABLE_DEBUG_ON_HTTP 为 FALSE 来禁用,正如安全最佳实践指南中提到的。此外,在即将到来的版本(1.11)中,这个调试端点默认是安全的,需要一个有效的 Kubernetes 服务账户令牌才能访问。

缺少安全相关的文档

报告指出了与 Istio 1.6 一起发布的安全相关文档的差距。此后,我们创建了详细的安全最佳实践指南,并提出建议,以确保用户能够安全地部署 Istio,以满足他们的要求。今后,我们将继续用更多的加固建议来充实这个文档。我们建议用户关注该指南的更新。

缺乏 VirtualService Gateway 字段验证使请求被劫持

对于这个问题,报告使用了一个有效但允许的 Gateway 配置,可能导致请求被错误地路由。与 Kubernetes 的 RBAC 类似,Istio 的 API,包括 Gateway,可以根据你的要求调整为允许性或限制性。然而,该报告浮现了我们的文档中与最佳实践和指导用户保护其环境有关的缺失环节。为了解决这些问题,我们在我们的安全最佳实践指南中增加了一个章节,其中包括安全运行网关[5]的步骤。特别是描述在网关资源的主机规范中使用命名空间前缀[6]的部分,我们强烈建议加强你的配置,防止这种类型的请求劫持。

生成的 Ingress Gateway 配置使请求被劫持

报告指出,在使用默认机制,即在网关资源中通过标签跨命名空间选择网关工作负载时,可能出现请求劫持。这种行为是默认选择的,因为它允许将管理网关和 VirtualService 资源委托给应用程序团队,同时允许运维团队集中管理入口网关工作负载,以满足其独特的安全要求,例如在专用节点上运行。正如报告中所强调的,如果这种部署拓扑结构在你的环境中不是一个要求,强烈建议将网关资源与你的网关工作负载放在一起,并将环境变量 PILOT_SCOPE_GATEWAY_TO_NAMESPACE 设置为 true。

请参考网关部署拓扑结构指南[7],了解 Istio 社区推荐的各种部署模式。此外,正如安全最佳实践指南[8]中提到的,网关资源的创建应使用 Kubernetes RBAC 或其他政策执行机制进行访问控制,以确保只有授权实体可以创建。

其他中等和低严重程度的问题

有两个中等严重程度的问题被报告,与项目内不同级别暴露的调试信息有关,这些信息可以被用来获取敏感信息或策划拒绝服务(DOS)攻击。虽然 Istio 默认启用了这些调试接口,用于剖析或启用 “istioctl “等工具,但如上所述,可以通过将环境变量 ENABLE_DEBUG_ON_HTTP 设置为 FALSE 来禁用它们。

报告正确地指出,Istio 提供的默认镜像中安装的各种实用程序,如 sudotcpdump 等,可能导致特权升级攻击。提供这些工具是为了帮助运行时调试流经网络的数据包,建议用户在生产中使用这些镜像的加固版本[9]

该报告还提出了一个已知的架构限制,即任何基于 sidecar 代理的服务网格实现都使用 iptables 来拦截流量。这种机制很容易被 sidecar 代理绕过[10],这对安全环境来说是一个有效的问题。它可以通过遵循安全最佳实践指南的深入防御[11]建议来解决。我们也在与 Kubernetes 社区合作,研究更安全的选项。

有用和安全之间的权衡

你可能已经注意到了评估结果和为解决这些问题提出的建议中的一个趋势。Istio 提供了各种配置选项,以根据您的要求创建一个更安全的安装,我们还推出了一个全面的安全最佳实践指南,供用户遵循。由于 Istio 在生产中被广泛采用,对我们来说,在切换到安全默认值和现有用户在升级时可能出现的迁移问题之间,是一个权衡。Istio 产品安全工作组评估了这些问题中的每一个,并在给我们的用户一些版本选择安全配置和迁移他们的工作负载后,创建了一个行动计划,以逐一启用安全默认。

最后,在经历了中立的安全评估期间和之后,我们有几个教训。其中最主要的是确保我们的安全实践是强大的,以快速响应评估结果,更重要的是在保持我们的升级标准不受影响的情况下进行安全改进。

为了继续这一努力,我们一直在 Istio 产品安全工作组中寻求反馈和参与,所以请加入我们的公开会议[12],提出问题或了解我们为保持 Istio 的安全所做的工作!

引用链接

[1] Announcing the results of Istio’s first security assessment: https://istio.io/latest/blog/2021/ncc-security-assessment/
[2] NCC 集团: https://www.nccgroup.com/
[3] 安全评估报告的未删节版本: https://istio.io/latest/blog/2021/ncc-security-assessment/NCC_Group_Google_GOIST2005_Report_2020-08-06_v1.1.pdf
[4] 安全最佳实践指南: https://istio.io/latest/docs/ops/best-practices/security/
[5] 网关: https://istio.io/latest/docs/ops/best-practices/security/#gateways
[6] 使用命名空间前缀: https://istio.io/latest/docs/ops/best-practices/security/#avoid-overly-broad-hosts-configurations
[7] 网关部署拓扑结构指南: https://istio.io/latest/docs/setup/additional-setup/gateway/#gateway-deployment-topologies
[8] 安全最佳实践指南: https://istio.io/latest/docs/ops/best-practices/security/#restrict-gateway-creation-privileges
[9] 加固版本: https://istio.io/latest/docs/ops/configuration/security/harden-docker-images/
[10] sidecar 代理绕过: https://istio.io/latest/docs/ops/best-practices/security/#understand-traffic-capture-limitations
[11] 深入防御: https://istio.io/latest/docs/ops/best-practices/security/#defense-in-depth-with-networkpolicy
[12] 加入我们的公开会议: https://github.com/istio/community/blob/master/WORKING-GROUPS.md

加入云原生社区 Istio SIG

扫描下面的二维码加入云原生社区 Istio SIG(微信群),了解更多 Istio 实践案例,并与 Istio 专家、爱好者们共同交流。

点击下方 “阅读原文” 查看更多

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

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

相关文章

node 16位 转24位_同时将24位和32位BMP图像顺时针旋转90度

上一次我们将24位的皮卡丘旋转了90度,但是后来改需求了。。。要求把32位的.bmp文件也能够旋转90度。上次就懵逼的我继续懵逼,只好继续转向CSDN求助。浏览了各种求助帖(还找到了数年前的信科大一学长),终于发现了32位和…

这几个关乎我们一生教养的原则,每个人都应该知道。

▲ 点击查看最近刷到这样两条微博,让人心头一暖。一条是杭州一个小男孩给医院捐款千元,还附上了一封感谢信。临走时还给医生敬了个少先队礼。另一条是扬州一名女孩把自己的小黄鸭储蓄罐整个捐到派出所,留下一张写着“武汉加油”的纸条&#x…

怎么提交 checkbox 表单_8. html form表单

“仅供学习,转载请注明出处”form表单表单用于搜集不同类型的用户输入,表单由不同类型的标签组成,相关标签及属性用法如下:1、标签 定义整体的表单区域action属性 定义表单数据提交地址method属性 定义表单提交的方式,…

越来越多的人不刷朋友圈竟然是因为.....

全世界只有3.14 % 的人关注了爆炸吧知识有些人,生活离不开朋友圈朋友圈是他们展示自我、观察世界的一扇窗户而有些人,从来也不点开朋友圈他们更愿意利用地铁上的零散化时间看点有意义、有知识的公众号推送完成对自我知识库的更新今天为大家推荐以下优质订…

Java基础---变量(三)

简单的说,我们可以把变量看作是个盒子,可以将钥匙、手机、饮料等物品存放在这个盒子中,也可以在需要的时候换成我们想存放的新物品。在 Java 中,我们通过三个元素描述变量:变量类型、变量名以及变量值。如果我们把变量…

腾讯,1000 亿!

聊聊腾讯的开源技术大家好,我是鱼皮,最近一则新闻在公司内外闹得沸沸扬扬,就是下面这个:为了履行企业发展使命,促进高质量发展的共同繁荣,腾讯在投资 500 亿元启动 “可持续社会价值创新” 战略后&#xff…

php mysql 执行sql文件_PHP执行SQL文件并将SQL文件导入到数据库_PHP

//读取文件内容$_sql file_get_contents(test.sql);$_arr explode(;, $_sql);$_mysqli new mysqli(DB_HOST,DB_USER,DB_PASS);if (mysqli_connect_errno()) {exit(连接数据库出错);}//执行sql语句foreach ($_arr as $_value) {$_mysqli->query($_value.;);}$_mysqli->…

What?你还搞不懂什么是物体检测?

全世界只有3.14 % 的人关注了爆炸吧知识计算机视觉在上一个世纪60年代脱胎于人工智能与认知神经科学,并旨在通过设计算法来让计算机自动理解图像的内容。于是为了“解决”这类机器视觉的问题,麻省理工在1966年正式将这个问题作为一个夏季项目&#xff0c…

IIS服务器上增加mp4格式MIME 类型映射设置具体步骤

2019独角兽企业重金招聘Python工程师标准>>> 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢?这就 表明mp4格式文件是服务器无法识别的,其…

WPAD原理介绍暨故障排查:ISA2006系列之三

WPAD的部署原理暨故障排查<?XML:NAMESPACE PREFIX O />WPAD是Web Proxy Auto Discovery的缩写&#xff0c;意思是Web代理服务器自动发现。WPAD的设计目的是让浏览器能自动发现代理服务器&#xff0c;这样用户可以轻松访问互联网而且无需知道哪台计算机是代理服务器。在…

Web服务器HttpServer(嵌入式设备)

HttpServer是一个轻量级Web服务器&#xff0c;用于在嵌入式设备以及客户端环境中提供简单Web服务。HttpServer支持路由映射到匿名委托、WebApi接口、静态文件&#xff0c;以及具有多个接口的控制器类。从简单到复杂&#xff0c;控制权交给开发者。源码&#xff1a;https://gith…

mysql同时查两张表数据库表_如何同时查询两个数据库表?

展开全部 sql多表关联查询跟条件查询大同小异,主要是要知道表与表之前的关系很重e69da5e6ba9062616964757a686964616f31333431353238要; 举例说明:(某数据库中有3张表分别为:userinfo,dep,sex) userinfo(用户信息表)表中有三个字段分别为:user_di(用户编号),user_name(用…

200万年薪,招不到清华姚班毕业生,能上姚班的都是什么人?

全世界只有3.14 % 的人关注了爆炸吧知识清华姚班可能很多人都没有听说过&#xff0c;不是我们孤陋寡闻&#xff0c;而是姚班确实是不一般的存在。即便是在清华&#xff0c;姚班的学霸也是可以碾压其他学霸的。在清华有一句话&#xff0c;半国英才聚清华&#xff0c;清华半英在姚…

分布式拒绝服务攻击(DDoS)原理及防范

转自:http://www.cnblogs.com/rootq/archive/2009/11/06/1597215.html http://www.ibm.com/developerworks/cn/security/se-ddos/ 2002 年 6 月 01 日 分布式拒绝服务攻击&#xff08;DDoS&#xff09;是目前黑客经常采用而难以防范的攻击手段。本文从概念开始详细介绍了这种攻…

Blazor 应用如何使用 Azure Active Directory 认证登录

点击上方蓝字 / 关注“汪宇杰博客”原文&#xff1a;Azure Tips and Tricks翻译&#xff1a;汪宇杰使用 Azure Active Directory 保护您的应用程序您可以使用 Azure Active Directory (AAD) 让用户进行身份验证并授权使用您的应用。AAD 提供了一种智能身份即服务来保护您的应用…

python notebook右侧网页_《Python web开发》笔记 一:网页开发基础

网页基础知识网页的构成网页由html、css和Javascript构成&#xff0c;html是框架&#xff0c;CSS是样式和装饰&#xff0c;JS则是各项功能实现。我们把网页的组成类比成一栋房子&#xff0c;Html相当于房子的结构&#xff0c;CSS相当于房子的装修装饰&#xff0c;JavaScript相当…

推荐几个超有趣的公众号

全世界只有3.14 % 的人关注了爆炸吧知识想要和别人有聊不完的话题&#xff1f;当然是多读书多看新闻了解新鲜有趣的事物啦如果你没有时间去阅读那么关注以下公号将会让你收获更多信息~长按下方二维码选择“识别图中二维码”订阅疯狂历史ID&#xff1a;fkhistory▼ 简介&#xf…

省钱之道--图解域域树域林根域的含义

如图&#xff1a;contoso这家公司的IT环境中有很多类型的IT资源&#xff0c;而目前这些IT资源都处于一个分散管理的状态中&#xff0c;这样无形中增加了contoso这家公司的管理成本&#xff0c;而且管理制度没有办法落实到实际的生产环境中去。那么&#xff0c;如何解决这个问题…

动态表单实现客户端二次过滤及字段汇总统计

最终效果动态表单 1、表格分录首行出现客户端二次过滤行2、表格分录最后一行出现汇总行实现代码转载于:https://www.cnblogs.com/fyq891014/p/4188779.html

SqlBulkCopy只支持SQL Server? EF Core实现支持多数据库类型的Bulk Copy

前言Microsoft SQL Server包含一个名为bcp的命令行实用工具&#xff0c;可以将较大文件快速大容量复制到SQL Server数据库的表或视图中&#xff0c;这种方法被称为Bulk Copy(批量复制)。Bulk Copy相比与循环插入有很大的性能优势&#xff0c;网上有很多测试文章&#xff0c;这里…