使用Tarian对Kubernetes进行加固

Tarian基本功能

通过预注册可信进程与可信的文件签名来保护Kubernetes上运行的应用。

Tarian通过监控未知进程和已注册的文件,如果存在异常情况将发送告警并进行自动化处置。

Tarian工作原理

通过在集群中安装Tarian Cluster Agent对进程和文件进行监控。

文件检测方法

在需检测的Pod中注入一个名为sidecar的容器,该容器会根据配置文件对指定的路径下的文件进行检查,方法为对比现文件的checksum与Tarian服务端已注册的文件checksum。

同时,可以在Tarian DB中添加规则,指定哪些进程允许运行、哪些文件需要对checksum进行检查以及具体处置方法等。

未知更改的处置

如果检测到未知的更改,Tarian会发送一个告警供安全团队进行分析,后续需要安全团队依据分析结果对Tarian DB进行具体的修改。

Tarian的优势

开源社区持续提供规则库

Tarian安装

需要结合Kubernetes威胁检测引擎Falco使用,具体安装过程见项目https://github.com/kube-tarian/tarian/blob/main/README.md

Tarian架构示意图

Tarian使用

使用tarianctl进行控制

下载地址:https://github.com/kube-tarian/tarian/releases

tarianctl命令

查看告警

tarianctl get events

查看规则

tarianctl get constraints

添加进程检测规则

tarianctl add constraint --name nginx --namespace default \
  --match-labels run=nginx \
  --allowed-processes=pause,tarian-pod-agent,nginx

添加文件检测规则

tarianctl add constraint --name nginx-files --namespace default \
  --match-labels run=nginx \
  --allowed-file-sha256sums=/usr/share/nginx/html/index.html=38ffd4972ae513a0c79a8be4573403edcd709f0f572105362b08ff50cf6de521

具体实验

创建容器后模拟进程执行,使用tarianctl get events即可查看告警。