Dockerfile リポジトリの CI 上で microscanner を実行しよう


はじめに

microscanner に関する記事を読んで、自分の Docker image リポジトリの CI に入れてみたので手順を紹介します。

導入時間は10分ほどになります。

作業手順

トークンの発行

まず始めに以下のコマンドを入力して、microscanner のトークンを発行します。

docker container run --rm -it aquasec/microscanner --register <your-email-address>

[Y/n] で Y を選択すると入力したメールアドレスにトークンが届きます。

TravisCI の設定

https://travis-ci.org/profile から特定のリポジトリのチェックを入れて、 Settings をクリックします。

メールで取得したトークンを Environment Variables に追加します。
画像のように入力し Add をクリックして完了です。

ファイルの設置

次に、以下の microscanner.txt, .travis.yml をリポジトリ直下に配置します。

microscanner.txt
ADD https://get.aquasec.com/microscanner /
RUN chmod +x /microscanner
RUN /microscanner ${token}

RUN echo "No vulnerabilities!"

.travis.yml は以下の設定にします。

.travis.yml
sudo: required
services: docker
before_install: cat microscanner.txt >> Dockerfile
script: docker container build --build-arg=token=$TOKEN --no-cache .

microscanner.txt は microscanner を動かすために必要なファイルになります。
.travis.yml の before_install を見ていただくとわかるのですが、CI上でのみ Dockerfile にスクリプトが追加されるようになります。

これらをリポジトリに push すると、CI 上で脆弱性チェックが行えるようになります。
失敗時の様子を試したい方は参照サイトでも紹介されている piesecurity/apache-struts2-cve-2017-5638 を使って試すとわかりやすいと思います。

以上、 microscanner を TravisCI 上で実行する方法でした。

参照サイト