Falcoにてコンテナ操作時のログを確認してみた

  • 投稿者:
  • 投稿カテゴリー:docker

Falcoとは

カーネルからのLinuxシステムコールを解析してルールに応じて対処するオープンソースランタイムセキュリティソフトウェア。

Ubuntuへのインストール

公式サイトのインストール方法を参考にインストールした。

# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"

# curl -s https://falco.org/repo/falcosecurity-3672BA8F.asc | apt-key add -
# echo "deb https://download.falco.org/packages/deb stable main" | tee -a /etc/apt/sources.list.d/falcosecurity.list
# apt update
# apt install linux-headers-$(uname -r)
# apt install falco

Falcoのログを確認してみた

ネットワークツールを利用した場合

# docker run -it alpine
/ # apk add tcpdump
/ # tcpdump host localhost

Falcoのログにはコンテナのターミナルに接続したこと、tcpdumpをインストールし、実行したことが記録された。

# falco start
...
00:07:48.911449265: Notice A shell was spawned in a container with an attached terminal (user=root user_loginuid=-1 beautiful_panini (id=a13774ad0cbb) shell=sh parent=<NA> cmdline=sh terminal=34816 container_id=a13774ad0cbb image=alpine)
00:08:01.054658576: Error Package management process launched in container (user=root user_loginuid=-1 command=apk add tcpdump container_id=a13774ad0cbb container_name=beautiful_panini image=alpine:latest)
00:08:09.145225056: Notice Network tool launched in container (user=root user_loginuid=-1 command=tcpdump localhost parent_process=sh container_id=a13774ad0cbb container_name=beautiful_panini image=alpine:latest)
00:08:09.147323169: Notice Packet socket was created in a container (user=root user_loginuid=-1 command=tcpdump localhost socket_info=domain=17(AF_PACKET) type=3 proto=0  container_id=a13774ad0cbb container_name=beautiful_panini image=alpine:latest)

特権コンテナを起動した場合

# docker run -it --privileged alpine

Falcoのログには特権コンテナが起動したことが記録された。

# falco start
...
00:30:08.197789568: Notice Privileged container started (user=root user_loginuid=0 command=container:1e5428f57d5f quirky_hopper (id=1e5428f57d5f) image=alpine:latest)

補足

ルール(/etc/falco配下)を変更することで、改ざん検知などにも利用できる。
またDockerでの実行も可能となっている。