Tsunami実行のためのDockerfile

Googleの?セキュリティスキャナのTsunamiを試すにあたり、Dockerfileを書いたのでおいておく。

公式のgithubに書いてある通りやっていけば実行することは難しくない。 https://github.com/google/tsunami-security-scanner

ただ、取り回しをよくするためにコンテナ化しておいた。 探せばdockerhubにも落ちているだろうけれど。

FROM ubuntu:latest

ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo

RUN apt-get update && apt-get install -y nmap ncrack openjdk-8-jdk curl git

RUN bash -c "$(curl -sfL https://raw.githubusercontent.com/google/tsunami-security-scanner/master/quick_start.sh)"

WORKDIR /root/tsunami

ENV IP=127.0.0.1

CMD java -cp "tsunami-main-0.0.2-SNAPSHOT-cli.jar:/root/tsunami/plugins/*" \
  -Dtsunami-config.location=/root/tsunami/tsunami.yaml \
  com.google.tsunami.main.cli.TsunamiCli \
  --ip-v4-target=${IP} \
  --scan-results-local-output-format=JSON \
  --scan-results-local-output-filename=/tmp/tsunami-output.json && cat /tmp/tsunami-output.json

Dockerfileのビルドの前に、ホスト環境でのインストールを済ませておく必要がある。 nmapなどのインストールが必要らしい。

sudo apt-get update && sudo apt-get install -y nmap ncrack openjdk-8-jd k curl git

これをビルドする。

docker build -t tsunami .

対象とするホストのIPは環境変数で設定するようにしたので、引数感覚で実行できる。

docker run -rm -t -e IP=127.0.0.1 tsunami

脆弱性がなければ以下のような結果が返ってくる。

{
  "scanStatus": "SUCCEEDED",
  "scanStartTimestamp": "2020-07-02T14:09:13.389Z",
  "scanDuration": "46.875s",
  "fullDetectionReports": {
  }
}

脆弱性がみつからなかったからといって安心できるかというと、 今のところそこまで信用はできないかなぁ、と思っている。