Edited at

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

More than 1 year has passed since last update.


はじめに

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 上で実行する方法でした。


参照サイト