Seccomp
Seccomp は Linux のシステムコールフィルタ機構である. システムコールに対して,発行の許可,不許可,監査ログへの記録などのアクションを設定できる. Docker では,Seccomp Profile というJSON形式のフィルタルール定義ファイルをコンテナ起動時にロードすることで, Seccomp のルールを設定できる.
cd ./samples/docker/seccomp/
mkdir
システムコールが発行されたら EPERM を返すseccomp profile
{
"defaultAction": "SCMP_ACT_ALLOW",
"architectures": [
"SCMP_ARCH_X86_64"
],
"syscalls": [
{
"names": [
"mkdir"
],
"action": "SCMP_ACT_ERRNO",
"errRet": 1
}
]
}
Seccomp Profile を指定してコンテナを実行する
docker run -it --security-opt seccomp=$(pwd)/seccomp-profile.json ubuntu:20.04 bash
コンテナ内でmkdir コマンドを実行してディレクトリが作成できるか試す.
root@d018f93240d2:/# mkdir foo
mkdir: cannot create directory 'foo': Operation not permitted
root@d018f93240d2:/#