共计 1817 个字符,预计需要花费 5 分钟才能阅读完成。
背景
云原生技术在各大公司的落地热火朝天,研发模式和基础设施都产生了很大的变动,新的 Kubernetes 和容器技术正逐渐取代传统的物理机和虚拟机。在云原生架构的演变过程中咱们发现也带来了一些新的危险和挑战,包含容器网络安全、容器逃逸、镜像平安等多个方面。
为保障业务上云平安,一方面是要剖析解决新的平安危险,另一方面须要放慢相应的平安根底建设。本文将介绍针对一些已知的危险点,如何应用 HIDS 来保障云原生环境的平安。
容器威逼起源
- Linux 内核提权:收集对写 exploit 有帮忙的信息,比方内核版本及安全漏洞,而后通过触发该破绽去执行特权代码,使得低权限用户晋升到 root 用户权限,最终管制整个零碎。
- 容器逃逸:通过冲破 Namespace 的限度,将高权限的 Namespace 赋到 exploit 过程的 task_struct 中,这往往是因为 Docker 安全漏洞或配置不当导致的。
Docker 其余 CVE:比方通过歹意镜像利用 Docker runc 在应用文件系统描述符时存在的破绽。
攻打过程:
docker run
启动了被歹意批改的镜像
宿主机 runc 被替换为恶意程序
宿主机运行docker run/exec
命令是触发执行恶意程序- 特权容器或 Capability 权限过大:配置不当导致容器内的过程实现 Linux 零碎权限晋升。
检测伎俩
基线检测
用于检测局部非预期环境。
云原生重点关注 Kubernetes 和 docker 的安全漏洞以及谬误配置两方面,原理就是查看软件版本是否被爆出过 CVE 破绽,并检测配置文件内的配置项是否有危险,蕴含危险的查看项及时让业务或运维通晓并修复。
云原生相关检查项:
除此之外,还会查看容器及宿主机内其余的软件配置(Redis、MySQL、Tomcat 等)、弱口令、等保基线等。
入侵检测
用于检测局部非预期逻辑。
入侵检测的第一步就是采集足够具体的数据
其中包含:
- 文件的创立、读写、link、重命名等操作;
- 网络的连贯、bind 等状态;
- 过程对于 execve、setsid、prctl、ptrace、call_usermode 的调用;
- 登录日志、SSH 日志;
- 零碎已装置组件,RPM、PYPI 包等;
- crontab、port 详细信息。
对于过程监控的计划次要有以下几种:
计划 | Docker 兼容性 | 开发难度 | 数据准确性数据 | 零碎侵入性 |
---|---|---|---|---|
connector | 定制 Docker | 个别 | 存在内核拿到的 pid,在 /proc/ 下失落的状况 | 无 |
Audit | 定制 Docker | 个别 | 同 connector | 弱,但依赖 Auditd |
EBPF | 定制 Docker | 中等 | 准确 | 中等,依赖内核版本 3.18 以上 |
Hook(kernel module) | 定制 | 高 | 准确 | 强 |
Hook 的计划,对系统侵入性太高了,尤其是这种最底层做 Hook syscall 的做法,如果测试不充沛将可能导致劫难级的故障,主机大面积瘫痪。
综合稳定性思考,HIDS 过程创立监控采纳 cn_proc 的计划,相比拟 Audit,对系统无侵入。但这种形式存在内核拿到的 pid,在 /proc/
下失落的状况,因为很多过程启动后就立即隐没了,去读取 /proc/
时就存在找不到的可能,但为了零碎稳定性,能够就义一些数据的准确性。
通过 Netlink Connector 在用户态即可取得内核提供的信息:
文件监控的次要逻辑:docker inspect
命令通过 container id 找到对应的容器目录,通过映射目录获取 docker 内文件并进行监控。
Docker 容器文件系统:
监控网络连接:
Docker 内网络隔离是通过 Network Namespace 来实现的,每个 Network Namespace 都有独立的网络设备、IP 地址、路由表、/proc/net/
目录。
先获取所有 docker init1 过程在宿主机的 pid,而后通过 /proc/pid/net
获取 docker 网络连接信息。
辨认威逼的下一步就是通过策略发现
通过内置的规定引擎对上报数据关联分类,并判断黑、灰行为,反对动静白名单,将检测后果写入 ES 中。
此处仅做科普,策略包含但不限于:
- 比方子过程执行异样命令(拜访注册表、增加用户、删除高危目录等);
- 网络外连未知 IP,须要通过 IP 匹配威逼情报;
- 比对文件 MD5 和病毒特色库,发现 rootkit 等;
- 通过
tcpdump
发现网络代理攻打; - ……
将来瞻望
联合 ATT&CK 框架,从行为的视角来对待攻击者和进攻措施,构建容器化利用平安体系,通过模仿红蓝反抗,评估企业目前的平安能力,对晋升企业平安防护能力是很好的参考。