kapieciiのブログ

日々学んだことを残しておくためのブログです。このブログはGoogle Analyticsを利用しています。

dockleでWordPressをscanしてみた

Trivyに続いて、気になっていたdockleを使ってみました。

github.com

Trivyの記事はこちら。

kapiecii.hatenablog.com

目次

環境

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してみます。

kapiecii.hatenablog.com

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と組み合わせて使うことを想定しているようです。

各チェック項目の詳細については、こちらをご覧ください。

github.com

CIS Benchmarkは、CIS(Center for Internet Security)という組織が作ったチェック項目です。 チェック項目に沿って設定することで、セキュリティを考慮した設定をすることができます。

www.jiten.com

AWS, Apache, Apache Tomcat, Debian, CentOS, Dockerなど、多くの環境についてのBenchmarkが公開されています。

www.cisecurity.org

AWSでCIS Benchmarkを活用する例

dev.classmethod.jp

最後に

READMEがとても親切で、詰まることなく試すことができました。
人間はミスをするので、このようなツールで自動でチェックを回すといいですね。
周りでDockerを使っている人におすすめしようと思いました。

kapieciiのブログについてお問い合わせがある場合、下記のフォームからご連絡をお願い致します。
お問い合わせはこちら