dockleでWordPressをscanしてみた
Trivyに続いて、気になっていたdockleを使ってみました。
Trivyの記事はこちら。
目次
環境
Kali Linux
インストール
READMEに沿ってインストールします。
# VERSION=$( curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" | \ grep '"tag_name":' | \ sed -E 's/.*"v([^"]+)".*/\1/' \ ) && curl -L -o dockle.deb https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.deb # dpkg -i dockle.deb && rm dockle.deb
インストールできました。
# dockle 2019-09-16T02:15:51.974-0400 INFO "dockle" requires at least 1 argument or --input option. NAME: dockle - Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start USAGE: dockle [options] image_name VERSION: 0.1.16 OPTIONS: --input value input file path instead of image name --ignore value, -i value A checkpoint to ignore. You can use .dockleignore too. --format value, -f value format (json) --output value, -o value output file name --exit-code value, -c value Exit code when alert were found (default: 0) --exit-level value, -l value change ABEND level when use exit-code=1 (default: "WARN") --debug, -d debug mode --cache-dir value cache directory --help, -h show help --version, -v print the version
Scan対象
Trivyのときと同じく、WordPressの環境をScanしてみます。
Scan
実行コマンドはシンプルでわかりやすいです。
# dockle wordpress 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 IGNORE - CIS-DI-0006: Add HEALTHCHECK instruction to the container image 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 PASS - DKL-DI-0003: Avoid apt-get/apk/dist-upgrade 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
Scan内容について
CIS Benchmark+αの観点で、Dockerイメージの設定をチェックしてくれます。 一部項目については、Trivyと組み合わせて使うことを想定しているようです。
各チェック項目の詳細については、こちらをご覧ください。
CIS Benchmarkは、CIS(Center for Internet Security)という組織が作ったチェック項目です。 チェック項目に沿って設定することで、セキュリティを考慮した設定をすることができます。
AWS, Apache, Apache Tomcat, Debian, CentOS, Dockerなど、多くの環境についてのBenchmarkが公開されています。
AWSでCIS Benchmarkを活用する例
最後に
READMEがとても親切で、詰まることなく試すことができました。
人間はミスをするので、このようなツールで自動でチェックを回すといいですね。
周りでDockerを使っている人におすすめしようと思いました。