VAddyでは、WebAPIとそれを操作するコマンドラインツール go-vaddyコマンドを配布しています。バイナリも配布しているため、Linux, Mac, Windowsのユーザであればすぐに実行できます
このコマンドラインツールとcronを組み合わせると、1日1回の定期検査などが手軽に実現できます。
事前準備
WebAPIを利用するため、VAddyにログインしてWebAPIキーを発行してください。
ドキュメント:WebAPIキーの取得
go-vaddyコマンド
まずはgo-vaddyコマンドをGitHubからダウンロードしてください。git clone https://github.com/vaddy/go-vaddy.git
でpullするか、GitHubのサイトからZIPファイルをダウンロードしてzip解凍してください。
https://github.com/vaddy/go-vaddy/archive/master.zip
go-vaddy/bin/ディレクトリがあるので、自分が使っているOSのバイナリを使います。今回はLinuxを例に説明しますので、vaddy-linux-64bitというファイルになります。
go-vaddyコマンドの日本語説明資料は下記になります
https://github.com/vaddy/go-vaddy/blob/master/README_ja.md
シェルファイルの設定
VAddyの脆弱性検査実行に必要となるトークンやユーザIDなどを環境変数でセットして実行するシェルスクリプトを作ります。環境変数の値は自分の情報をセットします。
今回は名前を startvaddy.sh
にしておきます。ダウンロードしたgo-vaddyのコマンドのディレクトリが、/usr/local/vaddy/go-vaddy
だった場合は、/usr/local/vaddy/startvaddy.sh
の構成になります。chmod 755 startvaddy.sh
などで実行権限を与えておきます。
V2プロジェクトの場合
#!/bin/sh
export VADDY_TOKEN="abcd12345"
export VADDY_USER="vaddyuserID"
export VADDY_PROJECT_ID="djfoaidjfaoij3iowu"
#最新のクロール以外を指定する場合はここでクロールIDを指定してください
#export VADDY_CRAWL="30"
#検査項目を絞る場合は指定ください
#export VADDY_SCAN_TUPE="SQLI,XSS,..."
./go-vaddy/bin/vaddy-linux-64bit
コマンドのオプションの詳細は、こちらのドキュメントをご覧ください。
https://github.com/vaddy/go-vaddy/blob/master/README_ja.md
V1プロジェクトの場合
#!/bin/sh
export VADDY_TOKEN="abcd12345"
export VADDY_USER="vaddyuserID"
export VADDY_HOST="vaddytestserver.example.com"
#最新のクロール以外を指定する場合はここでクロールIDを指定してください
#export VADDY_CRAWL="30"
#検査項目を絞る場合は指定ください
#export VADDY_SCAN_TUPE="SQLI,XSS,..."
./go-vaddy/bin/vaddy-linux-64bit
コマンドのオプションの詳細は、こちらのドキュメントをご覧ください。
https://github.com/vaddy/go-vaddy/blob/master/README_ja.md
実行して確認
このシェルを実行すると脆弱性検査が開始され、下記のような結果がレポートされます。脆弱性が0件だった場合は正常終了します。
cronに登録して定期実行
例えば毎日夜2時に定期実行する場合は下記のようにcron設定をします。
0 2 * * * /usr/local/vaddy/startvaddy.sh
複数のクロール(シナリオ)を連続検査する場合
連続実行についてはこちらをご覧ください
複数クロール(シナリオ)の検査の連続実行