kubernetes 容器运行环境安全 POLP AppArmor Seccomp

开头语

写在前面:如有问题,以你为准,

目前24年应届生,各位大佬轻喷,部分资料与图片来自网络

内容较长,页面右上角目录方便跳转

最小特权原则 POLP

最小特权原则 (Principle of least privilege,POLP):是一种信息安全概念,即为用户提供执行其工作职责所需的最小权限等级或许可。最小特权原则被广泛认为是网络安全的最佳实践,也是保护高价值数据和资产的特权访问的基本方式。

最小特权原则(POLP)重要性:

  1. 减少网络攻击面:当今,大多数高级攻击都依赖于利用特权凭证。通过限制超级用户和管理员权限,最小权限执行有 助于减少总体网络攻击面。
  2. 阻止恶意软件的传播:通过在服务器或者在应用系统上执行最小权限,恶意软件攻击(例如SQL注入攻击)将很难 提权来增加访问权限并横向移动破坏其他软件、设备。
  3. 有助于简化合规性和审核:许多内部政策和法规要求都要求组织对特权帐户实施最小权限原则,以防止对关键业务系 统的恶意破坏。最小权限执行可以帮助组织证明对特权活动的完整审核跟踪的合规性。

在团队中实施最小特权原则(POLP):

  1. 在所有服务器、业务系统中,审核整个环境以查找特权帐户(例如SS账号、管理后台账号、跳板机账号);
  2. 减少不必要的管理员权限,并确保所有用户和工具执行工作时所需的权限:
  3. 定期更改管理员账号密码;
  4. 监控管理员账号操作行为,告警通知异常活动。

AppArmor

AppArmor (Application Armor) 是一个linux 内核安全模块,可用于限制主机操作系统上运行的进程的功能,每个进程逗可以拥有自己的安全配置文件,安全配置文件用于允许或禁止特定功能,例如网络访问,文件读写执行权限等

跟SElinux 是同类产品,企业基本不用SElinux

linux 发行版内置:Ubuntu,Debian,(centos 不支持)

工作模式

Enforcement (强制模式):在这种模式下,配置文件里列出的限制条件都会得到执行,并且对于违反这些限制条件的程序会进行日志记录。

Complain (投诉模式):在这种模式下,配置文件里的限制条件不会得到执行,Apparmor只是对程序的行为进行记录。一般用于调试。

工作流程

命令

  1. apparmor status:   查看AppArmor配置文件的当前状态的
  2. apparmor_parser:  将AppArmor配置文件加载到内核中
    1. apparmor_parser <profile>  #加载到内核中
    2. apparmor_parser -r<profile>  #重新加载配置
    3. apparmor parser -R <profile> #删除配置
  3. aa-complain:  将AppArmor配置文件设置为投诉模式,需要安装apparmor-utils软件包
  4. aa-enforce:  将AppArmori配置文件设置为强制模式,需要安装apparmor-utils软件包

使用 AppArmor 先决条件

使用ubuntu 搭建的集群是可以使用,centos搭建的集群是用不了的

K8s版本v1.4+,检查是否支持:kubectl describe node | grep AppArmor

Linux内核已启用AppArmor,查看cat/sys/module,/apparmor/parameters/enabled

容器运行时需要支持AppArmor,自前Dockeri已支持

yaml 配置文件

yaml 编写

配置文件位置

配置文件编写

实操(容器文件系统访问限制)

apparmor 配置文件

禁止pod 容器 对 容器中的 /tmp/ 和/data/www/  目录下的写权限

加载到内核

重点:是pod所运行的节点上,而不master

查看加载

pod yaml编写

测试

Seccomp (未成功)

限制容器进程系统调用

对于 Linux 来说,用户层一切资源相关操作都需要通过系统调用来完成,系统调用实现技术层次上解耦,内核只关心系统调用API的实现,而不必关心谁调用的

Seccomp (Secure computing mode) 是一个Linux内核安全模块,可用于应用进程允许使用的系统调用。

容器实际上是宿主机上运行的一个进程,共享宿主机内核,如果所有容器都具有任何系统调用的能力,那么容器如果被 入侵,就很轻松绕过容器隔离更改宿主机系统权限或者进入宿主机。

这就可以使用Seccomp机制限制容器系统调用,有效减少攻击面。

Linux发行版内置:CentOS、Ubuntu

系统调用介绍

linux 系统调用列表

chmod 777 /etc/issue

其实就是调用系统中 chmod 的 api

查看 node

docker info---Security Options:seccompProfile: default---

配置文件

/var/lib/kubelet/seccomp/ 是默认路径(固定)

设置拒绝调用列表时,注意pod启用需要一些必要的权限,否则会导致pod起不来

SCMP_ACT_ALLOW 类似于写黑名单

SCMP_ACT_ERRNO 类似于写白名单

{"defaultAction": "SCMP_ACT_ERRNO","syscalls": [{"names": ["accept","chown","kill","mmap",...],"action": "SCMP_ACT_ALLOW","args": [],"comment": "","includes": {},"excludes": {}}]}

实操

{"defaultAction":"SCMP_ACT_ALLOW","syscalls":[{"names":["chmod"],"action":"SCMP_ACT_ERRNO"}]}
apiVersion: v1kind: Podmetadata:creationTimestamp: nulllabels:run: webname: web-seccompnamespace: testspec:nodeName: node1 # 因为只在node上写了配置文件,所以指定pod创建在node1上containers:- image: busybox:1.30name: hellosecurityContext:seccompProfile:type: LocalhostlocalhostProfile: chmod.json
[root@master cks]# kubectl get pod -n testNAME          READY   STATUS    RESTARTS   AGEweb-seccomp   1/1     Running   0          30s

 

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

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

相关文章

机器人技能学习-robosuite-0-入门介绍

文章目录 前言模块介绍实战案例1&#xff1a;从 demo 中创建自己的 env案例2&#xff1a;更换属于自己的物体 前言 资料太少、资料太少、资料太少&#xff0c;重要的事说三边&#xff0c;想根据自己实际场景自定义下机器人&#xff0c;结果发现无路可走&#xff0c;鉴于缺少参…

网络协议与攻击模拟_01winshark工具简介

一、TCP/IP协议簇 网络接口层&#xff08;没有特定的协议&#xff09; 物理层&#xff1a;PPPOE宽带拨号&#xff08;应用场景&#xff1a;宽带拨号&#xff0c;运营商切网过来没有固定IP就需要拨号&#xff0c;家庭带宽一般都采用的是拨号方式&#xff09;数据链路层网络层…

【办公自动化】Window电脑如何设置定时任务计划

在Windows系统中&#xff0c;我们可以使用任务计划程序来创建和管理定时任务。任务计划程序是Windows操作系统自带的一个功能&#xff0c;可以帮助我们自动执行一些重复性的任务&#xff0c;例如备份文件、更新软件等。 一、打开任务计划程序 首先&#xff0c;我们需要打开任…

Linux安装JDK和Maven并配置环境变量

文章目录 一、安装JDK并配置环境变量二、安装maven并配置环境变量 一、安装JDK并配置环境变量 将JDK的安装包上传到Linux系统的usr/local目录 使用xftp上传文件 解压JDK的压缩包 xshell连接到云主机 [roottheo ~]# cd /usr/local[roottheo local]# ls aegis apache-tomcat-…

LitJson-Json字符串转对像时:整型与字符串或字符串转:整型进的类型不一致的处理

目录 问题描述上代码测试代码各位看官&#xff0c;打赏个1元吧 Json数据格式是大家在游戏开中常量用的一种数据格式&#xff0c;某种程度上可以说是必备的。对unity开发来说&#xff0c;LitJson这个json库应该是被使用最多的json库了。 问题描述 今天说要的其中的这个api: Jso…

【精通C语言】:深入解析for循环,从基础到进阶应用

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C语言详解 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、for循环基础1.1 语法1.2 示例1.3 流程图1.4 for与while的对比 二、for循环进阶2.1 fo…

outlook邮件群发单显技巧?群发怎么单显?

outlook邮件群发单显如何设置&#xff1f;QQ邮箱怎么群发单显&#xff1f; 在群发邮件时&#xff0c;如何让每个收件人只看到自己的名字&#xff0c;而不是其他人的名字&#xff0c;这就涉及到所谓的“单显”技巧。下面蜂邮EDM就为大家揭秘Outlook邮件群发单显的奥秘。 outlo…

PR如何在一个视频里添加多个画面?多窗口画中画PR模板视频素材

Premiere Pro 2021模板&#xff0c;多窗口布局&#xff0c;多画面组合&#xff0c;小窗口视频&#xff0c;画中画视频效果制作素材PR模板mogrt文件。 4K、HD可调整到任何分辨率。 100多窗口布局样式。 来自PR模板网&#xff1a;https://prmuban.com/37059.html

kubernetes RBAC Authentication 详解

开头语 写在前面&#xff1a;如有问题&#xff0c;以你为准&#xff0c; 目前24年应届生&#xff0c;各位大佬轻喷&#xff0c;部分资料与图片来自网络 内容较长&#xff0c;页面右上角目录方便跳转 Kubernetes 安全架构 K8S安全控制框架主要由下面3个阶段进行控制&#xf…

Redis底层原理

持久化 Redis虽然是个内存数据库,但是Redis支持RDB和AOF两种持久化机制,将数据写往磁盘,可以有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程。所谓内存快照,就是…

Ceph源码分析-使用VScode调试ceph-osd教程

本篇内容全部都是干货&#xff0c;请先收藏&#xff0c;以免后期找不到哦。 前言&#xff1a; 本文以ceph osd部分为例&#xff0c;为您演示通过第三方社区提供的vscode 编辑软件&#xff0c;对ceph osd进行进行图形化单步调试以及配置操作。 Step1. 下载安装windows的vscode…

Linux第21步_取消鼠标中键的复制粘贴功能

在ubuntu18.04操作系统中&#xff0c;选中文本后&#xff0c;若按下鼠标中键&#xff0c;就可以执行复制粘贴&#xff0c;相当于 CtrlshiftC 后又按了 CtrlshiftV。在Linux系统中&#xff0c;基本上都是这么配置的。在windows系统中&#xff0c;我们习惯用Ctrl-C复制&#xff0…