rock5b上運行tracee監(jiān)控容器與進程的行為
Tracee 是一個用于 Linux 的運行時安全和取證工具。 它使用 Linux eBPF 技術(shù)在運行時跟蹤系統(tǒng)和應(yīng)用程序,并分析收集的事件以檢測可疑的行為模式。 Tracee 以 Docker 鏡像的形式交付,監(jiān)控操作系統(tǒng)并根據(jù)預(yù)定義的行為模式集檢測可疑行為。
最新版本的 Tracee 支持 x86_64 與 arm64。于是 rock5b 上試了一下。
1
安裝
首先,安裝 Docker 并拖 Tracee 鏡像到本地:
$ docker pull aquasec/tracee:$(uname -m)
aarch64: Pulling from aquasec/tracee
Digest: sha256:73b03702d34e415f23922347024dc61b7abe2927d41d60bbd00126b042a2d382
Status: Image is up to date for aquasec/tracee:aarch64
docker.io/aquasec/tracee:aarch64
2
啟動
嘗試啟動安卓容器環(huán)境。再次執(zhí)行監(jiān)控命令:
$ docker run ? --name tracee --rm -it ? --pid=host --cgroupns=host --privileged ? -v /etc/os-release:/etc/os-release-host:ro ? -v /boot/config-$(uname -r):/boot/config-$(uname -r):ro ? -e LIBBPFGO_OSRELEASE_FILE=/etc/os-release-host ? aquasec/tracee:$(uname -m)
可見,Tracee 監(jiān)控行為輸出的粒度比較大,是基于事件,不是基于系統(tǒng)調(diào)用。
3
問題
另外,發(fā)現(xiàn)一個 Tracee 的問題。Tracee 啟動好關(guān)閉后,再次啟動會報如下錯誤:
$ docker run ? --name tracee --rm -it ? --pid=host --cgroupns=host --privileged ? -v /etc/os-release:/etc/os-release-host:ro ? -v /boot/config-$(uname -r):/boot/config-$(uname -r):ro ? -e LIBBPFGO_OSRELEASE_FILE=/etc/os-release-host ? aquasec/tracee:$(uname -m)
INFO: probing tracee capabilities...
INFO: starting tracee...
End of events stream
Stats: {EventCount:0 EventsFiltered:0 NetCapCount:0 BPFLogsCount:0 ErrorCount:0 LostEvCount:0 LostWrCount:0 LostNtCapCount:0 LostBPFLogsCount:0}
{"level":"fatal","ts":1681015065.7672682,"msg":"App","error":"cmd.Runner.Run: error initializing Tracee: ebpf.(*Tracee).Init: ebpf.(*Tracee).NewKernelSymbols: invalid ksymbol table"}