Document Version 2.0.2
VAddy WebAPI仕様書です。 本仕様では、VAddyのスキャン開始、スキャンキャンセル、スキャン結果の取得の3つを定義します。
クライアント(Jenkins等)からWebAPIに送信するスキャン開始リクエスト。
https://api.vaddy.net/v2/scan
Method : POST
action=start
user=vaddyuser
auth_key=123456
project_id=6eb1f9fcbdb6a5a
crawl_id=30
scan_type="SQLI,XSS,RFI,..."
crawl_id
はオプション項目です。指定がない場合は最新のクロールデータを利用して検査します。クロールIDの値は、管理画面にログインし、Proxy Crawling画面からご確認ください。
scan_type
はオプション項目です。指定が無い場合は全ての検査が実行されます。カンマ区切りで指定します。設定できる検査項目の一覧はこちらをご覧ください。 検査項目指定オプションの一覧
auth_key
は、ユーザ毎に発行する認証キーです。VAddyログイン後のWebAPI管理画面にて取得してください。
管理画面のログインIDをuser
パラメータに、API Auth Keyをauth_key
パラメータにセットしてください。
auth_key
はHTTPヘッダーの X-API-KEY
に指定することもできます。
project_id
は、検査対象サーバを管理するID。 Server画面にProjectIDとして表示されます。
ステータスコード : 200
content-type : application/json
コンテンツ:
{"scan_id": "xxxxxxxxxxxx"}
scan_idの値は毎回異なり、スキャン結果を取得するために必要となるキーです。
ステータスコード : 401 Unauthorized
ステータスコード : 400
content-type : application/json
コンテンツ:
{"error_message":"xxxxxx"}
- 存在しないproject_id
- 前回のスキャンが終了しておらず開始できない
- クロールデータが1件も存在しない
クライアント(Jenkins等)からWebAPIに送信するスキャンキャンセルリクエスト。
https://api.vaddy.net/v2/scan
Method : POST
action=cancel
user=vaddyuser
auth_key=123456
scan_id=xxxxxxxxxxxx
scan_idは、スキャンを開始すると発行されるIDです。
ステータスコード : 200
content-type : application/json
コンテンツ:
{"scan_id": "xxxxxxxxxxxx"}
ステータスコード : 401 Unauthorized
ステータスコード : 400
content-type : application/json
コンテンツ:
{"error_message":"xxxxxx"}
- 存在しないproject_id
- 存在しないscan_id
- 既に処理が終わっていてキャンセルできない
- 不測の事態によりキャンセルできない
クライアント(Jenkins等)からWebAPIに送信するスキャン結果を取得するリクエスト
https://api.vaddy.net/v2/scan/result
Method : GET
user=vaddyuser
auth_key=123456
scan_id=xxxxxxxxxxxx
scan_idはScan開始リクエストのレスポンスに含まれているものをセットしてください
ステータスコード : 200
content-type : application/json
コンテンツ:
{"status":"scanning"}
ステータスコード : 200
content-type : application/json
コンテンツ:
{"status":"canceled"}
ステータスコード : 200
content-type : application/json
コンテンツ:
{ "status":"finish",
"project_id" : "6eb1f9fcbdb6a5a"
"scan_id" : "1-837b5f9f-e088-4af5-9491-67f7ce8035a4",
"scan_count" : 22,
"alert_count" : 1,
"timezone" : "UTC",
"start_time" : "2014-06-12T11:11:11+0000",
"end_time" : "2014-06-12T11:11:11+0000",
"scan_result_url" : "https://console.vaddy.net/scan_status/1/1-837b5f9f-e088-4af5-9491-67f7ce8035a4",
"complete" : 100,
"crawl_id" : 30,
"crawl_label" : "ユーザ情報修正シナリオ",
"scan_list" : ["XSS","SQL Injection"]
}
時刻はUTCで、ISO 8601 timestamp形式。
alert_countは、発見された脆弱性の件数になります。
ステータスコード : 401 Unauthorized
ステータスコード : 400
content-type : application/json
コンテンツ:
{"error_message":"xxxxxx"}
- 存在しないproject_id
- 存在しないscan_id
VAddyでは、同一プロジェクトに対する検査の同時実行は行えません。
現在、検査が実行中かどうか把握するリクエスト。
https://api.vaddy.net/v2/scan/runcheck
Method : GET
user=vaddyuser
auth_key=123456
project_id=6eb1f9fcbdb6a5a
この場合は、スキャン開始リクエスト送信すると、検査開始されます。
ステータスコード : 200
content-type : application/json
コンテンツ:
{"running_process": 0}
検査実行中のプロセスが0件という意味です。
スキャン実行中の場合のレスポンス
この場合は、スキャン開始リクエスト送信してもエラーが返ってきます。
running_process : 0になるまで一定間隔で確認をしてください。
ステータスコード : 200
content-type : application/json
コンテンツ:
{"running_process": 1}