Web 診断を実行する
本チュートリアルで扱う機能は、Web アプリケーション診断機能をご契約いただいた組織でのみご利用いただけます。
セットアップ
Web 診断を実行する前に必要なセットアップは以下です:
- Web アプリケーションの登録(Web アプリケーションを登録するを参照してください)
- 診断対象エンドポイントの登録(診断対象エンドポイントを洗い出すを参照してください)
- 診断対象の Web アプリケーションの所有権の証明
Web アプリケーションの所有権の証明
Shisho Cloud では本診断機能の悪意のある利用を防止するため、Web 診断をご利用いただく際に診断対象であるアプリケーションの所有権の証明を必須としております。診断の実行前に Shisho Cloud が所有権の検証を行い、検証できなかった場合には診断は開始せず診断ジョブが終了します。検証の対象は登録されたエンドポイントのホストで、エンドポイントが複数のホストで成り立っている場合は各ホストが検証されます。
検証方法は2つあり、アプリケーションの全てのホストに対してどちらかが満たされた場合に所有権が証明されたこととなります:
- 診断対象 Web アプリケーションのホストは Shisho Cloud に連携したクラウド上のリソースにあるか
- 診断対象 Web アプリケーションのホストが検証用の URL にリクエストを送ると期待されたレスポンスを返すか
所有権の検証の結果は「診断ジョブ」タブ (https://cloud.shisho.dev/[orgid]/applications/[appid]/jobs/scan
) に表示されます。本ページが開かれる時点でも検証が行われ、最新の状態での検証結果を確認できます。
Shisho Cloud に連携したクラウド上のリソースを通して証明する場合
診断対象アプリケーションのホストが Shisho Cloud に連携したクラウド上のリソースにある場合、そのホストは所有権があると判断されます。既に連携がされている場合は基本的には対応は必要ありません。クラウドのリソースを連携するには外部連携を設定するを参照してください。
Shisho Cloud によって検出されたホストは「アプリケーション > Attack Surfaces」のタブでご確認いただけます。
ご利用のクラウドリソースの構成によっては Shisho Cloud に連携していてもホストを正しく検出できない場合がございます。その際は運営元(Flatt Security) へお気軽にお問い合わせください。
クラウドサービスを利用していない、もしくは利用しているがリソースの連携が困難な場合は検証用の URL を通しての証明をご検討ください。
検証用の URL を通して証明する場合
検証用の URL を通して診断対象アプリケーションのホストの所有権を証明するには、指定された URL がアプリケーション検証トークンを返す必要があります。
Shisho Cloud が送るリクエスト:
GET http[s]://<ホスト>/.well-known/shisho-cloud/<アプリケーション検証トークン>
診断対象アプリケーションのホストが返すレスポンス:
Status: 200 OK
Body: <アプリケーション検証トークン>
アプリケーション検証トークンは「一般」タブ (https://cloud.shisho.dev/[orgid]/applications/[appid]
)から確認できます。
例えば、sample-app.com
のホストを 01J5TAXF0RV6G9DVH4BPM1SX1G
のトークンで検証する場合、以下リクエストが Shisho Cloud により送られます:
GET http://sample-app.com/.well-known/shisho-cloud/01J5TAXF0RV6G9DVH4BPM1SX1G
ここで、sample-app.com
がレスポンスでステータスコード 200 OK
と以下のボディを返したらこのホストの所有権は証明されたことになります:
01J5TAXF0RV6G9DVH4BPM1SX1G
診断スケジュールをカスタマイズする (任意)
デフォルトでは、Web 診断は毎日 00:00 UTC (日本時間 09:00) に実行されますが、診断スケジュールを cron 形式でカスタマイズしたり、スケジュール実行を無効にして手動での実行のみとする設定も可能です。
Web アプリケーション診断は、「ワークフロー」によって定期実行されています。Web 診断を実行するワークフローの詳細画面はこちらからアクセスしていただけます。
診断スケジュールを変更・無効化したい場合は、まず画面右側の「更新」ボタンを押してください。
スケジュールは以下のように .triggers.schedule[].cron
にて指定されています。
version: 0.1.0
id: "free-trial-web-scanning"
name: "Review Web application posture (Free Trial)"
triggers:
schedule:
- cron: "0 0 * * *"
# (略)
スケジュールを変更したい場合は、希望するスケジュールを cron 形式で記載して、「保存」ボタンをクリックしてください。 例えば毎日 12:00 UTC (日本時間 21:00) に診断を実行したい場合は以下のように設定します。
version: 0.1.0
id: "free-trial-web-scanning"
name: "Review Web application posture (Free Trial)"
triggers:
schedule:
- cron: "0 12 * * *"
# (略)
cron スケジュールは UTC 時間で解釈されます。お使いのタイムゾーンと UTC 時間の時差を考慮して設定してください。
またスケジュールを無効化したい場合は、以下のように変更して「保存」ボタンをクリックしてください。
version: 0.1.0
id: "free-trial-web-scanning"
name: "Review Web application posture (Free Trial)"
triggers:
schedule: []
# (略)
なお、ワークフローのトリガー設定の詳細についてはこちらを参照してください。
診断を実行する
ワークフローから診断を実行する (任意)
デフォルトの設定では Web アプリケーション診断は毎日 00:00 UTC (日本時間 09:00) に実行されます。スケジュール実行を待たずにすぐ診断を実行したい場合は、以下の手順で実行できます。
Web アプリケーション診断は、「ワークフロー」によって定期実行されています。Web 診断を実行するワークフローの詳細画面はこちらからアクセスしていただけます。
このワークフローは Web 診断を実行するワークフローです。この画面の「実行」ボタンを押すと、Web 診断が全ての登録された Web アプリケーションに対して実行されます。
診断のステータスや進捗を確認するには、画面上部バーの「アプリケーション」を開き、アプリケーションの一覧から確認したいアプリケーションを押下して詳細のページを開いてください。次に、「診断ジョブ」タブ (https://cloud.shisho.dev/[orgid]/applications/[appid]/jobs/scan
) を開くと、診断の実行履歴が表示されます。
診断ジョブの進捗は、実行中の診断ジョブを押下してジョブの詳細画面 (https://cloud.shisho.dev/[orgid]/applications/[appid]/jobs/scan/[jobid]
) を開くと確認できます。
診断の評価結果を確認する
診断ジョブが正常に終了したら評価結果がダッシュボードやリソースに反映されます。詳しくは、検出事項を確認するを参照してください。