コンテナセキュリティツール「Dockel」を使う
10/22/2020

Dockerイメージのセキュリティをチェックする際に Dockel
が使えます。
先日作った90年代風HPのDockerfileから作成したイメージで使ってみます。
Dockelインストール
Macの場合は以下コマンド1行のみ。
$ brew install goodwithtech/dockle/dockle
Dockel実行
$ dockle [イメージ名]
2020-10-23T00:23:59.850+0900 WARN A new version v0.3.1 is now available! You have v0.1.16.
WARN - CIS-DI-0001: Create a user for the container
* Last user should not be root
INFO - CIS-DI-0005: Enable Content trust for Docker
* export DOCKER_CONTENT_TRUST=1 before docker pull/build
WARN - CIS-DI-0006: Add HEALTHCHECK instruction to the container image
* not found HEALTHCHECK statement
PASS - CIS-DI-0007: Do not use update instructions alone in the Dockerfile
PASS - CIS-DI-0008: Remove setuid and setgid permissions in the images
PASS - CIS-DI-0009: Use COPY instead of ADD in Dockerfile
PASS - CIS-DI-0010: Do not store secrets in ENVIRONMENT variables
PASS - CIS-DI-0010: Do not store secret files
PASS - DKL-DI-0001: Avoid sudo command
PASS - DKL-DI-0002: Avoid sensitive directory mounting
FATAL - DKL-DI-0003: Avoid apt-get/apk/dist-upgrade
* Avoid upgrade in container : /bin/sh -c apk update && apk upgrade && apk add --no-cache gcc g++ libc-dev libxml2-dev linux-headers make nodejs postgresql postgresql-dev tzdata less yarn && apk add --virtual build-packs --no-cache build-base curl-dev
PASS - DKL-DI-0004: Use apk add with --no-cache
PASS - DKL-DI-0005: Clear apt-get caches
WARN - DKL-DI-0006: Avoid latest tag
* Avoid 'latest' tag
PASS - DKL-LI-0001: Avoid empty password
PASS - DKL-LI-0002: Be unique UID
PASS - DKL-LI-0002: Be unique GROUP
ちらほら WARN
が見えます。
latestタグ使ってねとか、HEALTHCHECK stateが必要ですという警告ですね。直そう。
ユニークなUIDやGROUP使ってるか等も見てくれていて便利ですね。
JSONで出力する
-f json
オプションを使うと、JOSNで出力できます。
{
"summary": {
"fatal": 1,
"warn": 3,
"info": 1,
"pass": 12
},
"details": [
{
"code": "CIS-DI-0001",
"title": "Create a user for the container",
"level": "WARN",
"alerts": [
"Last user should not be root"
]
},
{
"code": "CIS-DI-0005",
.
.
.
便利。
詳しくはgithubへ
Starも多くまずまずメンテされています。

©️ 2020 ふじい Dev-Remo-Work.