背景

云原生技术在各大公司的落地如火如荼,研发模式和基础设施都发生了很大的变化,新的 Kubernetes 和容器技术正逐步取代传统的物理机和虚拟机。在云原生架构的演变过程中我们发现也带来了一些新的风险和挑战,包括容器网络安全、容器逃逸、镜像安全等多个方面。
为保障业务上云安全,一方面是要分析解决新的安全风险,另一方面需要加快相应的安全基础建设。本文将介绍针对一些已知的风险点,如何使用 HIDS 来保障云原生环境的安全。

容器威胁来源

  1. Linux 内核提权:收集对写 exploit 有帮助的信息,比如内核版本及安全漏洞,然后通过触发该漏洞去执行特权代码,使得低权限用户提升到 root 用户权限,最终控制整个系统。
  2. 容器逃逸:通过突破 Namespace 的限制,将高权限的 Namespace 赋到 exploit 进程的 task_struct 中,这往往是由于 Docker 安全漏洞或配置不当导致的。
  3. Docker 其他 CVE:比如通过恶意镜像利用 Docker runc 在使用文件系统描述符时存在的漏洞。

    攻击过程:
    docker run 启动了被恶意修改的镜像
    宿主机 runc 被替换为恶意程序
    宿主机运行 docker run/exec 命令是触发执行恶意程序
  4. 特权容器或 Capability 权限过大:配置不当导致容器内的进程实现 Linux 系统权限提升。

检测手段

基线检测

用于检测部分非预期环境。
云原生重点关注 Kubernetes 和 docker 的安全漏洞以及错误配置两方面,原理就是检查软件版本是否被爆出过 CVE 漏洞,并检测配置文件内的配置项是否有风险,包含风险的检查项及时让业务或运维知晓并修复。
云原生相关检查项:

云原生安全问题.png

除此之外,还会检查容器及宿主机内其他的软件配置(Redis、MySQL、Tomcat 等)、弱口令、等保基线等。

入侵检测

用于检测部分非预期逻辑。

入侵检测的第一步就是采集足够详细的数据

其中包括:

  1. 文件的创建、读写、link、重命名等操作;
  2. 网络的连接、bind 等状态;
  3. 进程关于 execve、setsid、prctl、ptrace、call_usermode 的调用;
  4. 登录日志、SSH 日志;
  5. 系统已安装组件,RPM、PYPI 包等;
  6. crontab、port 详细信息。

image.png

关于进程监控的方案主要有以下几种:

方案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 在用户态即可获得内核提供的信息:

image.png

文件监控的主要逻辑:
docker inspect 命令通过 container id 找到对应的容器目录,通过映射目录获取 docker 内文件并进行监控。

image.png

Docker 容器文件系统:

image.png

监控网络连接:
Docker 内网络隔离是通过 Network Namespace 来实现的,每个 Network Namespace 都有独立的网络设备、IP 地址、路由表、/proc/net/ 目录。
先获取所有 docker init1 进程在宿主机的 pid,然后通过 /proc/pid/net 获取 docker 网络连接信息。

image.png

识别威胁的下一步就是通过策略发现

通过内置的规则引擎对上报数据关联分类,并判断黑、灰行为,支持动态白名单,将检测结果写入 ES 中。

image.png

此处仅做科普,策略包括但不限于:

  • 比如子进程执行异常命令(访问注册表、添加用户、删除高危目录等);
  • 网络外连未知 IP,需要通过 IP 匹配威胁情报;
  • 比对文件 MD5 和病毒特征库,发现 rootkit 等;
  • 通过 tcpdump 发现网络代理攻击;
  • ……

未来展望

结合 ATT&CK 框架,从行为的视角来看待攻击者和防御措施,构建容器化应用安全体系,通过模拟红蓝对抗,评估企业目前的安全能力,对提升企业安全防护能力是很好的参考。

image.png


wzhvictor
1.5k 声望257 粉丝

宝剑锋从磨砺出,梅花香自苦寒来