【ダスト】

DAST(動的アプリケーションセキュリティテスト) とは?

最終更新:
💡 動くアプリに外から入力し、反応から弱点を探す

実際に動いているWebアプリやAPIに外から攻撃のようなリクエストを送り、脆弱性を探すセキュリティ検査。ソースコードは見ないブラックボックス方式。

📌 このページのポイント
DAST:外から入力して反応を見る DASTスキャナー 動くテスト用アプリ 検査 Web / API 検査用リクエスト 応答を観察 ソースコードは見ない 反応から弱点を探す 届かない機能は対象外 ログインには認証設定 許可された対象で実施。データ変更にも注意
往路は検査用リクエスト、復路は応答。GitLabのガイドは本番を避け、テスト用の対象で実行するよう求めている。
ひよこ ひよこ
DASTって何? SASTとは違うの?
ペンギン先生 ペンギン先生
実際に動くWebアプリやAPIに、外から検査用のリクエストを送って弱点を探す方法だよ。ソースコードを読むSASTと違って、コードは見ないブラックボックス方式なんだ。
ひよこ ひよこ
外から何を調べるの?
ペンギン先生 ペンギン先生
不正な入力などに対する応答を観察するよ。XSS、SQLインジェクション、コマンドインジェクション、パストラバーサル、サーバー設定の不備などが検査対象になる。すべての弱点が見つかるとは限らないんだ。
ひよこ ひよこ
ペンギン先生 ペンギン先生
重なる部分はあるよ。GitLabはDASTを自動化されたペネトレーションテストと説明している。DASTではスキャナーによる検査を繰り返せるけれど、検査の目的や範囲を含め、両者をいつも同じ意味で扱えるわけではないんだ。
ひよこ ひよこ
いつ、どこで実行するの?
ペンギン先生 ペンギン先生
アプリが動く状態で、検査の許可を得た対象に実行するよ。GitLabのガイドは本番での実行を避け、テスト用のサーバーを使うよう求めている。フォーム操作などでデータを変更・削除する恐れがあるからなんだ。
ひよこ ひよこ
どんなアプリでも検査できる?
ペンギン先生 ペンギン先生
コードの言語に依存しない利点はあるけれど、ツールの対応や対象への接続が必要だよ。ログイン後の機能には認証の設定も要る。到達できない機能は検査できないので、SASTなども合わせて弱点を探すんだ。
もっと詳しく知りたい人へ

ログインが必要なページを調べるには?

スキャナーがログインして対象のページや機能に到達できるよう、認証を設定する必要がある。GitLabのブラウザ型DASTでも、保護されたページを検査する場合は認証設定が前提となる。設定しただけで全機能に到達できるとは限らず、実際の検査範囲を確認する。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DAST」って出てきたら「動いているアプリを外から調べる、自動の脆弱性検査」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dynamic Application Security Testing」 = 動的アプリケーションセキュリティテスト
💬 Dynamic(動的=動かしながら)にApplication(アプリ)のSecurity Testing(安全性の検査)をするから、この名前だよ。対になる言葉がSAST(静的=動かさない)だね

参考資料

← 用語集にもどる