KaliにTrivyをインストールしてWordPressをscanしてみた
Trivyは、コンテナの既知の脆弱性をチェックできるツールです。
リリースされた当初から性能や利便性で話題になっていましたが、最近「個人で作ったOSSが海外の企業に買い取られた」という記事でも話題になりました。
今回Kali LinuxにTrivyをインストールして、Docker上のWordPress環境をスキャンしてみました。
目次
環境
Kali Linux
Trivyのインストール
Dockerのインストールはこちら
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環境を用意します。
# 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
ブラウザからアクセスすると、おなじみの画面が表示されました。
必要情報を入力して、インストール完了。
Scan実行
# trivy wordpress
初回は脆弱性データをダウンロードしてくるので、少し時間がかかりました。
感想
WordPressのコンテナは最新のものを利用し、WordPressの管理画面からも最新版に更新していたのですが、想像以上に多くの問題が検出されました。
結果の表示が綺麗でわかりやすかったのも良かったです。脆弱性のタイトルを含んだ状態で結果を出力してくれるので、ぱっと見でどんな脆弱性があるのかわかるのはとてもいいですね。
インストールも実行もとてもシンプルです。コンテナ環境を運用している方は、定期的にScanして脆弱性を含めた運用管理に活用するべきだと感じました。