云原生应用的最小特权原则

news2024/11/25 23:06:04

IDC 预计,从现在到 2024 年初,将开发和部署 5 亿个新应用程序——超过过去 40 年的总和。 Gartner 预测,到 2025 年,75% 的企业将运行某种容器化应用程序。

现代应用程序需要现代安全性。 公共云供应商非常积极地提升平台安全性,以保证他们的平台不会成为安全攻击的对象。

在云原生应用程序中,许多组件可能会纯在风险。 如果单个组件受到威胁,整个应用程序也将面临风险,我们需要采取适当的安全方法来解决安全风险。

f1ee9408307594be59154867c19a8217.jpeg

服务信任陷阱

云原生应用程序安全性的最大挑战之一是服务之间的信任。应用程序的一项服务能否相信另一项服务不会存在潜在风险?

我们经常会遇到这样的问题,同一应用程序中的不同服务在逻辑上应该能够相互信任,但从安全的角度这是一个非常糟糕的设计。 永远不要假设信任——即使是在同一家公司或开发团队构建的服务之间。

相反,服务不应访问它们不需要访问的任何组件。 每个服务都应该只能访问完成其工作所需的生产系统的绝对最少部分。 任何系统、应用程序或个人都不应该拥有对生产系统中所有内容的 100% 完整访问权限。

这种策略被称为最小特权原则,是所有现代云原生应用程序都应遵守的重要操作安全要求。

396ac1a05da9f82942dfc6ef0b037020.jpeg

最小特权原则

什么是最小特权原则? 最小权限原则 (PoLP) 是一种信息安全概念,即为用户提供执行其工作职责所需的最小权限等级或许可。

最小权限原则被广泛认为是网络安全的最佳实践,也是保护高价值数据和资产的特权访问的基本方式。

描述它的最简单方法是举一个实例。 我们假设有一个由三个服务组成的简单应用程序:

其中两个服务使用它们之间的消息队列相互通信。 服务 A 将消息插入队列,服务 B 从队列中读取和删除消息。 服务 C 执行一些与服务 A 和 B 无关的其他操作。

在这种情况下,服务 A 负责将消息推入队列,服务 B 负责将消息从队列中拉出。 因此,永远不会有服务 A 需要从队列中读取的情况,服务 B 也永远不需要将消息推送到队列中。 此外,服务 C 永远不需要出于任何原因访问队列。

如果构成应用程序的所有服务都可以访问队列,那么服务 C 就可以访问队列,虽然它不需要访问权限。一般情况看来这似乎可以接受。 毕竟,服务 C 是应用程序的一部分。 为什么要花精力限制服务C访问队列呢?

但是,如果攻击者获得了服务 C 的访问权限会怎样? 他可以访问服务 C,可以修改服务,让它在队列中插入虚假消息,假装它们来自服务 A。而服务 B 没有意识到这个问题,会读取错误消息。现在服务 B 也受到损害,很快攻击就会传播开来。

这里得到的经验是,由于服务 C 不需要访问队列,因此应该明确阻止它访问队列。 在云原生应用程序中,这通常意味着需要将安全策略放在队列上以防止服务 C 访问队列

如果此应用程序部署在云中,则可以使用某些消息队列服务(例如 Amazon SQS 服务)轻松实现队列。 无需额外处理如何限制队列。

特权原则的好处

  • 减少了网络攻击面。当今,大多数高级攻击都依赖于利用特权凭证。通过限制超级用户和管理员权限(使IT管理员可以不受限制地访问目标系统),最小权限执行有助于减少总体网络攻击面。
  • 阻止了恶意软件的传播。通过在端点上执行最小权限,恶意软件攻击(例如SQL注入攻击)将无法使用提升的特权来增加访问权限并横向移动以安装或执行恶意软件或损坏计算机。
  • 提高了最终用户的生产率。移除业务用户的本地管理员权限有助于降低风险,但是基于策略启用即时特权提升有助于保持用户的工作效率并尽量减少IT服务台呼叫。
  • 有助于简化合规性和审核。许多内部政策和法规要求都要求组织对特权帐户实施最低特权原则,以防止对关键系统的恶意或意外损坏。最小权限执行可以帮助组织证明对特权活动的完整审核跟踪的合规性。

91b479445ae538882ce0cddbb9275908.jpeg

将最小特权原则应用于 Kubernetes

Kubernetes 处理容器编排工作负载。它为组织和开发人员提供了一个自动部署、管理和扩展容器化应用程序的平台。这意味着各种开发、运营和 IT 团队成员在创建或维护已部署的应用程序时需要访问 Kubernetes 环境。

为了确保最佳的安全性和资源保护,组织在使用 Kubernetes 时需要在最小特权原则上运行,而不管当前的生产阶段如何。幸运的是,Kubernetes 提供了身份验证和授权来启用访问控制。在与 Kubernetes API 交互时,团队应该明确定义谁可以访问哪些操作资源和权限。此外,组织应禁用未经身份验证的访问,无论是通过人工还是服务帐户。

在使用Kubernetes 的时候,Kubernetes 提供了基于角色的访问控制 (RBAC) ,用于根据环境中个人的角色定义资源权限。Kubernetes 设计了一套非常完整且健全的 RBAC 机制,使我们能够配置权限,以指定用户或用户组如何与集群中的任何 Kubernetes 对象交互。使用 RBAC 框架是在Kubernetes 环境中实践最小特权原则的重要一步。

最小特权的RBAC实践

理想情况下,分配给用户和服务帐户的 RBAC 权限应该是最小的。 仅应使用操作明确需要的权限,虽然每个集群会有所不同,但可以应用的一些常规规则:

  • 尽可能在命名空间级别分配权限。授予用户在特定命名空间中的权限时使用 RoleBinding 而不是 ClusterRoleBinding。
  • 尽可能避免通过通配符设置权限,尤其是对所有资源的权限。 由于 Kubernetes 是一个可扩展的系统,因此通过通配符来授予访问权限不仅会授予集群中当前的所有对象类型, 还包含所有未来被创建的所有对象类型。
  • 管理员不应使用 cluster-admin 账号,除非特别需要。为低特权帐户提供伪装权限可以避免意外修改集群资源。
  • 避免将用户添加到 system:masters 组。任何属于此组成员的用户都会绕过所有 RBAC 权限检查, 始终具有不受限制的超级用户访问权限,并且不能通过删除 RoleBinding 或 ClusterRoleBinding 来取消其权限。顺便说一句,如果集群使用 Webhook 鉴权,此组的成员身份也会绕过该 Webhook(来自属于该组成员的用户的请求永远不会发送到 Webhook)。

关于HummerRisk

HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和K8S容器云安全检测。

3871422cbac1994da3234c29b236055e.jpeg

Github 地址:https://github.com/HummerRisk/HummerRisk

Gitee 地址:https://gitee.com/hummercloud/HummerRisk

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

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

相关文章

JAVA培训之连接查询之子查询

子查询就是嵌套查询,即SELECT语句中包含SELECT语句,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。 子查询出现的位置: Where子句中,作为条件存在;from后,作为表…

Bootstrap学习(十一)

模态框使用: tab标签页组件 模态框使用: 有属性、方法、事件 fade显示时的渐变动画可加可不加,role是屏幕辅助设备用的 aria-lable屏幕辅助设备用的 静态的模态框是不展示的,需要调用展示方法才能展示 在中心内容放一个表单&…

Transformer Encoder-Decoer 结构回顾

有关于Transformer、BERT及其各种变体的详细介绍请参照笔者另一篇博客:最火的几个全网络预训练模型梳理整合(BERT、ALBERT、XLNet详解)。 本文基于对T5一文的理解,再重新回顾一下有关于auto-encoder、auto-regressive等常见概念&…

Elasticsearch 安装及启动【Windows】

一、下载 Elasticsearch 官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择自己所需版本进行下载,这里以Elasticsearch 8.2.2 为例 点击 Download,选择 Windows 版本 二、使用步骤 1.安装 Elasticse…

大数据培训课程WordCount案例实操

WordCount案例实操 1.需求 在给定的文本文件中统计输出每一个单词出现的总次数 (1)输入数据 (2)期望输出数据 atguigu 2 banzhang 1 cls 2 hadoop 1 jiao 1 ss 2 xue 1 2.需求分析 …

如何看待越来越多人报名参加软考?

可以肯定的告诉你软考证书是有用的。 但是软考证书如果对于自己今后的职业生涯规划也有帮助,和你的职业发展和需求相匹配,那才能发挥软考证书最大的优势。 软考证书的用处体现在哪里? 1、证书认可度高 软考是一种简称,全称是计…

变分推断(Variational Inference)解析

一、什么是变分推断 假设在一个贝叶斯模型中,xxx为一组观测变量,zzz为一组隐变量(参数也看做随机变量,包含在zzz中),则推断问题为计算后验概率密度P(z∣x)P(z|x)P(z∣x)。根据贝叶斯公式,有&am…

如何使用向导创建Openflow 流表-网络测试仪实操

使用向导创建Openflow中的FlowTable,按照下面的步骤: 1、打开Renix软件,连接机框并预约测试端口; 2、配置一个IPv4接口 3、配置一个OpenFlowController绑定步骤二中的IPv4接口 4、创建一条RAW流(这条流中包含FlowTabl…

虹科QA | SWCF2022 11月29日演讲笔记:卫星传输链路中的关键技术分享

虹科2022年度SWCF卫星通信与仿真测试研讨会正在进行中。昨日精彩演讲:卫星传输链路中的关键技术分享,感谢大家的观看与支持! 昨晚的直播间收到一些粉丝的技术问题,我们汇总了热点问题并请讲师详细解答,在此整理分享给…

2022年十一届认证杯(小美赛)C题思路新鲜出炉

对人类活动进行分类 人类行为理解的一个重要方面是对日常活动的识别和监控。一个可穿戴的活动识别 系统可以提高许多关键领域的生活质量,如动态监测、家庭康复和跌倒检测。基于 惯性传感器的活动识别系统用于监测和观察老年人远程个人报警系统[1],检测和…

结合RocketMQ 源码,带你了解并发编程的三大神器

摘要:本文结合 RocketMQ 源码,分享并发编程三大神器的相关知识点。本文分享自华为云社区《读 RocketMQ 源码,学习并发编程三大神器》,作者:勇哥java实战分享。 这篇文章,笔者结合 RocketMQ 源码&#xff0…

WRF模式行业应用问题解析及辅助学习

>>> 高精度气象模拟软件WRF(Weather Research Forecasting)技术及案例应用 今天小编给大家整理了WRF模式行业应用问题解析,不管是正在应用WRF还是入门小白,都建议多听一些行业问题,借鉴及深入了解,以下摘抄了个别问题&a…

5. 线性回归的从零开始实现

1.生成数据集 # num_examples 表示样本数量,也就是房屋数量 # w是权重向量 def synthetic_data(w, b, num_examples): #save"""生成yXwb噪声"""# X是一个从独立的正态分布中抽取的随机数的张量,正态分布的平均值为0、标…

双十二怎么入手,几款性能好物分享

过完了双十一,接下来就应该面临今年最后一个大优惠力度的双十二了,而且双十二的时间刚好靠近在过年,所以在这期间相信很多人购买的物品是更加偏向于家居用品方面,那么就不能够错过本篇文章了,本篇文章将为你们分享一些…

[附源码]计算机毕业设计springboot松林小区疫情防控信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

sonarqube安装

Sonarqube安装文档 1. 环境准备 参照官方文档Prerequisites and Overview | SonarQube Docs 安装符合sonarqube版本的JDK和数据库 目前服务器上JDK版本为11.0.2 sonarqube版本为9.1.0 postgresql版本为13.7 2. 安装JDK11.0.2 将openjdk-11.0.2_linux-x64_bin.tar.gz放到/usr/…

spring详解(一)

今天我们来学习一个新的框架spring!!! spring是什么呢? spring是2003年兴起的,是一款轻量级、非侵入式的IOC和AOP的一站式的java开发框架,为简化企业即开发而生。 轻量级:spring核心功能的jar包不大 非侵入式:我们的业务代码不需要继承或…

linux parted 方式挂盘,支持大于4T盘扩容

此 内容与之前的linux mbr转gpt格式有些重复,但为了便于查询,还是单抽出相关内容,进行操作: 1.查询要挂的有磁盘路径, 输入 parted -l 。 2 . 进入parted对/dev/vdb盘的交互方式:输入: parted /dev/vdb&am…

Spring Cloud Gateway 网关组件及搭建实例

Spring Cloud Gateway 是 Spring Cloud 团队基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 等技术开发的高性能 API 网关组件。Spring Cloud Gateway 旨在提供一种简单而有效的途径来发送 API,并为它们提供横切关注点,例如:安全性&am…

Linux 线程控制 —— 线程取消 pthread_cancel

线程退出pthread_exit只能终止当前线程,也就是哪个线程调用了pthread_exit,哪个线程就会退出;但是线程取消pthread_cancel ,不光可以终止自己,还可以终止其他线程。 》自己终止自己,没问题! 》…