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,一经查实,立即删除!

相关文章

mile for gallon 汽车省油

计算汽车省油&#xff0c;用英里每加仑比较&#xff0c;允许重复比较//mile for gallon 汽车省油 #include<iostream>const double GALLON 0.264179; double milepergallon(double kilo,double mile);int main() {using namespace std;double kilo[2],mile[2],milebygal…

使用C#制作简易的注册表编辑器

本文节选自《21天学通C#》一书 下面来实现一个简易的注册表编辑器。它具备了Windows操作系统自带的注册表编辑器的一般功能。如示例代码19-7所示。示例代码19-7主窗体。主窗体在启动时&#xff0c;会在加载事件中加载注册表到树形控件中&#xff0c;就像在Windows操作系统中…

世博游览技巧

世博游览技巧 方案一&#xff1a; 一日进园 步骤1&#xff1a;4:50-5:30到达5号门3号口 07:00开园后最大速度向后面的安检口跑 看到少于30人就可以拿到中国的预约&#xff08;也就是安检的前3排&#xff09; 09:00安检后就会有人发中国的预约券&#xff08;可以不按预约的时间…

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

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

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

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

莫名其妙的主机名 VM_32_234_centos

在腾讯服务器上部署的时候出现的莫名其妙的错误, 我在配置文件上都写 master, node1, 但是运行mapredure的时候的时候老是出现 Job job_1409546978133_0001 failed with state FAILED due to: Application application_1409546978133_0001 failed 2 times due to Error launc…

如何通过提问成为更好的开发人员

如何通过提问成为更好的开发人员这是新的一年的开始&#xff0c;所以我想以一篇我已经计划写了一段时间但从未真正开始创作的帖子开始。我最近开始了一份新工作&#xff0c;加入Elastic[1]&#xff0c;负责开发他们的 .NET 语言客户端。因此&#xff0c;最终将这个主题编写并发…

生活经典名句

&#xff11;&#xff0c;记住该记住的&#xff0c;忘记该忘记的。改变能改变的&#xff0c;接受不能改变的 &#xff12;&#xff0c;能冲刷一切的除了眼泪&#xff0c;就是时间&#xff0c;以时间来推移感情&#xff0c;时间越长&#xff0c;冲突越淡&#xff0c;仿佛不断稀释…

转载 一篇UI规范文件

这是一个UI模板规范&#xff0c;在做B/S版应用程序时比较适用&#xff0c;其实这样的东西算不上什么正规的规范&#xff0c;只是为了适应我们现在面对的开发环境和组织流程做的一些权宜的努力&#xff0c;和解决了一些与程序沟通和接口的问题&#xff0c;尽量避免误会和摩擦。 …

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

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

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

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

Java基础---变量(三)

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

批处理文件总结(三)

三.如何使用组合命令(Compound Command)   1.amp;   Usage&#xff1a;第一条命令 amp; 第二条命令 [amp; 第三条命令...]   用这种方法可以同时执行多条命令&#xff0c;而不管命令是否执行成功   Sample&#xff1a;   C:\>dir z: amp; dir c:\Ex4rch   The s…

腾讯,1000 亿!

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

线打断问题(转)

在处理数据时&#xff0c;我们经常会遇到线打断的问题&#xff0c;比如需要指定在线上某处打断线&#xff0c;或者新建网络数据集时需要在线的交点处打段线等等。现将桌面版中我所遇到的线打断的工具总结如下&#xff1a; 一、手工打断线 Editor工具条中的splittool。 使用该工…

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年代脱胎于人工智能与认知神经科学&#xff0c;并旨在通过设计算法来让计算机自动理解图像的内容。于是为了“解决”这类机器视觉的问题&#xff0c;麻省理工在1966年正式将这个问题作为一个夏季项目&#xff0c…

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

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

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…