【CKS最新模拟真题】根文件系统配置为只读


参考地址

容器级别的 securityContext 建议 https://kubernetes.io/zh-cn/docs/concepts/security/application-security-checklist/


一、TASK

Solve this question on: ssh cks7262

The Deployment immutable-deployment in Namespace team-purple should run immutable, it’s created from file /opt/course/19/immutable-deployment.yaml on cks7262. Even after a successful break-in, it shouldn’t be possible for an attacker to modify the filesystem of the running container.

Modify the Deployment in a way that no processes inside the container can modify the local filesystem, only /tmp directory should be writeable. Don’t modify the Docker image.

Save the updated YAML under /opt/course/19/immutable-deployment-new.yaml on cks7262 and update the running Deployment

中译
以下位置解决此问题:ssh cks7262
Namespace team-purple中的 Deployment immutable-deployment应该运行不可变,它是从cks7262节点上的/opt/course/19/immutable-deployment.yaml 文件创建的 。即使在成功闯入后,攻击者也应该不可能修改正在运行的容器的文件系统。

1、修改 Deployment 时,容器内的任何进程都不能修改本地文件系统,只有 directory /tmp应该是可写的。不要修改 Docker 镜像。
将更新的 YAML 保存在cks7262下/opt/course/19/immutable-deployment-new.yaml 并更新正在运行的 Deployment。

二、问题解决过程

1.问题一解题

过程如下(示例):

#按要求连接对应的集群
candidate@terminal:~$ ssh cks7262

#切换到root用户下,防止普通用户操作写入文件没权限
candidate@cks7262:~$  sudo -i

#修改 immutable-deployment文件
root@cks7262:~# cp /opt/course/19/immutable-deployment.yaml /opt/course/19/immutable-deployment-new.yaml
root@cks7262:~# vim /opt/course/19/immutable-deployment-new.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: team-purple
  name: immutable-deployment
  labels:
    app: immutable-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: immutable-deployment
  template:
    metadata:
      labels:
        app: immutable-deployment
    spec:
      containers:
      - image: busybox:1.32.0
        command: ['sh', '-c', 'tail -f /dev/null']
        imagePullPolicy: IfNotPresent
        name: busybox
        securityContext:                  # add
          readOnlyRootFilesystem: true    # add
        volumeMounts:                     # add
        - mountPath: /tmp                 # add
          name: temp-vol                  # add
      volumes:                            # add
      - name: temp-vol                    # add
        emptyDir: {}                      # add
      restartPolicy: Always

#更新deployment
root@cks7262:~# kubectl delete -f /opt/course/19/immutable-deployment.yaml
deployment.apps "immutable-deployment" deleted

root@cks7262:~# kubectl create -f /opt/course/19/immutable-deployment-new.yaml
deployment.apps/immutable-deployment created

### CKS 认证中 Falco 相关及答案解析 在 Kubernetes 安全领域,Falco 是一款广泛使用的开源工具,用于检测和告警潜在的安全威胁。以下是关于 Falco 的几道典型 CKS 考试题目及其解答。 #### 题目一:安装并配置 Falco 进行安全监控 问描述如下: 给定一个运行中的 Kubernetes 集群,在该集群上部署 Falco 并设置其监听特定类型的事件(如特权容器启动),并将日志发送至远程服务器。 解决方案概述: 为了实现上述需求,可以按照以下方式操作: 1. 使用 Helm Chart 或 YAML 文件来部署 Falco; 2. 修改 `falco.yaml` 中的日志输出位置以及目标地址; 3. 编写自定义规则文件以匹配所需条件; 具体命令如下所示[^1]: ```bash helm repo add falcosecurity https://falcosecurity.github.io/charts helm install falco falcosecurity/falco \ --set auditLogSource.enabled=true \ --set output.file.path=/var/log/falco.log \ --set outputs="stdout,syslog:server=udp://remote.server.com:514" ``` 对于编写自定义规则,则可以通过编辑 `/etc/falco/rules.d/custom_rules.yaml` 来完成。例如添加一条针对特权模式容器创建的通知规则[^2]: ```yaml - list: container_privileged items: - 'spawned a privileged container' - macro: is_container_privileged_event condition: evt.type = container and container.privileged - rule: Privileged Container Created desc: > Detects when a new privileged container has been created. condition: is_container_privileged_event output: "Privileged container detected (command=%proc.cmdline user=%user.name)" priority: WARNING ``` #### 题目二:理解 Falco 日志格式与字段含义 此部分考察考生能否正确解读由 Falco 产生的日志条目,并从中提取有用信息的能力。通常情况下,每条记录都包含了丰富的上下文数据,比如进程名称、参数列表、时间戳等。 样例日志片段展示: ``` {"output":"17:09:06.876677000: Warning File below /etc modified (user=root command=\"touch /tmp/test\" file=\"/etc/hosts\")","priority":2,"rule":"File below etc changed"} ``` 这里的关键在于识别不同属性的意义,像 `output`, `priority`, 和 `rule` 字段分别代表了什么内容?如何利用这些元数据来进行进一步分析? 解释说明: - **Output**: 描述触发报警的具体行为细节。 - **Priority**: 表示严重程度级别,分为 DEBUG/INFO/WARNING/ERROR 四级。 - **Rule**: 对应于哪条预设或用户自定义的规则被触发展开动作。 通过掌握以上知识点可以帮助更好地理解和处理来自 Falco 的各类通知消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值