03系统强化
考试大纲
系统强化:15%
- 最小化主机操作系统的大小(减少攻击面)
- 最小化 IAM 角色
- 最小化对网络的外部访问
- 适当使用内核强化工具,如 AppArmor, seccomp
Sysdig & falco
题目描述:
- 使用运行时检测工具来检测 Pod
redis123
单个容器中频发生成和执行的异常进程。
有两种工具可供使用:
- sysdig
- falco
注: 这些工具只预装在 cluster 的工作节点 node02 上,不在 master 节点。
使用工具至少分析 30 秒 ,使用过滤器检查生成和执行的进程,将事件写到 /opt/KSR00101/incidents/summary
文件中,
其中包含检测的事件, 格式如下:
timestamp,uid/username,processName
保持工具的原始时间戳格式不变。
注: 确保事件文件存储在集群的工作节点上。
以下示例显示了格式正确的事件文件:
参考解答:
# user.name
sysdig -M 30 -p "%evt.time,%user.name,%proc.name" container.id=46183d7281e15 >> /opt/KSRS00101/events/details
# user.uid
sysdig -M 30 -p "%evt.time,%user.uid,%proc.name" container.id=46183d7281e15 >> /opt/KSRS00101/events/details
AppArmor
题目描述:
- 在 cluster 的工作节点
node02
上,实施位于/etc/apparmor.d/nginx_apparmor
的现有 APPArmor 配置文件。
编辑位于 /cks/KSSH00401/nginx-deploy.yaml
的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod
注意:考试时,考题里已表明 APPArmor 在工作节点上,所以你需要 ssh 到开头写的工作节点上。
官方文档:
参考解答:
切换到 node02 的 root 下
切换到 apparmor 的目录
cd /etc/apparmor.d/
cat nginx_apparmor #其中 profile nginx-profile-3 flags=(attach_disconnected) { 这一行的第二个单词 nginx-profile-3 就是这个配置文件的名字。
执行 apparmor 策略模块
# 加载启用这个配置文件
apparmor_parser /etc/apparmor.d/nginx_apparmor
# 检查是否成功
apparmor_status | grep nginx-profile-3
配置 Pod 使用策略
apiVersion: v1
kind: Pod
metadata:
name: hello-apparmor
annotations:
# 告知 Kubernetes 去应用 AppArmor 配置 "k8s-apparmor-example-deny-write"。
# 请注意,如果节点上运行的 Kubernetes 不是 1.4 或更高版本,此注解将被忽略。
container.apparmor.security.beta.kubernetes.io/hello: localhost/nginx-profile-3
spec:
containers:
- name: hello
image: busybox:1.28
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
检验