kapieciiのブログ

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

KaliにTrivyをインストールしてWordPressをscanしてみた

Trivyは、コンテナの既知の脆弱性をチェックできるツールです。

github.com

リリースされた当初から性能や利便性で話題になっていましたが、最近「個人で作ったOSSが海外の企業に買い取られた」という記事でも話題になりました。

knqyf263.hatenablog.com

opensource.srad.jp

今回Kali LinuxにTrivyをインストールして、Docker上のWordPress環境をスキャンしてみました。

目次

環境

Kali Linux

Trivyのインストール

Dockerのインストールはこちら

kapiecii.hatenablog.com

GitHubのREADMEがとても親切に書かれています。
そのままコマンドを実行します。

# mkdir -p $GOPATH/src/github.com/aquasecurity
# cd $GOPATH/src/github.com/aquasecurity
# git clone https://github.com/aquasecurity/trivy
# cd trivy/cmd/trivy/
# export GO111MODULE=on
# go install

インストールできました。

# trivy
2019-09-05T09:59:39.128-0400    INFO    trivy" requires at least 1 argument or --input option.
NAME:
  trivy - A simple and comprehensive vulnerability scanner for containers
USAGE:
  trivy [options] image_name
VERSION:
  0.1.6
OPTIONS:
  --format value, -f value    format (table, json) (default: "table")
  --input value, -i value     input file path instead of image name
  --severity value, -s value  severities of vulnerabilities to be displayed (comma separated) (default: "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
  --output value, -o value    output file name
  --exit-code value           Exit code when vulnerabilities were found (default: 0)
  --skip-update               skip db update
  --only-update value         update db only specified distribution (comma separated)
  --reset                     remove all caches and database
  --clear-cache, -c           clear image caches
  --quiet, -q                 suppress progress bar and log output
  --no-progress               suppress progress bar
  --ignore-unfixed            display only fixed vulnerabilities
  --refresh                   refresh DB (usually used after version update of trivy)
  --auto-refresh              refresh DB automatically when updating version of trivy
  --debug, -d                 debug mode
  --vuln-type value           comma-separated list of vulnerability types (os,library) (default: "os,library")
  --cache-dir value           cache directory (default: "/root/.cache/trivy")
  --help, -h                  show help
  --version, -v               print the version

WordPressの準備

TrivyでScanするWordPressの環境を準備します。

クイックスタートガイドにある「docker-compose.yml 」を使ってWordPress環境を用意します。

docs.docker.jp

# cat docker-compose.yml 
version: '2'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     image: wordpress:latest
     depends_on:
       - db
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress
volumes:

docker-composeインストール

# curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

WordPress起動

# docker-compose up

ブラウザからアクセスすると、おなじみの画面が表示されました。

f:id:kapiecii:20190905235736p:plain

必要情報を入力して、インストール完了。

Scan実行

# trivy wordpress

初回は脆弱性データをダウンロードしてくるので、少し時間がかかりました。

感想

WordPressのコンテナは最新のものを利用し、WordPressの管理画面からも最新版に更新していたのですが、想像以上に多くの問題が検出されました。
結果の表示が綺麗でわかりやすかったのも良かったです。脆弱性のタイトルを含んだ状態で結果を出力してくれるので、ぱっと見でどんな脆弱性があるのかわかるのはとてもいいですね。
インストールも実行もとてもシンプルです。コンテナ環境を運用している方は、定期的にScanして脆弱性を含めた運用管理に活用するべきだと感じました。

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