SQLインジェクションはデータベースを不正に操作されてしまう脆弱性のため、
検出と判定されたパラメータやパスでDBへのアクセスが行われていないと判断できる場合は
Vexの過剰検知と判断いただければと思います。
なお、上記の判断がつかない場合は
下記のSQLインジェクションの検査概要および精査手順をご参考の上、ご判断ください。
【SQLインジェクションの検査概要】
Vexの「SQLインジェクション」シグネチャでは、以下の二つの観点から脆弱性の有無を
判断しております。
(1)検査パターン送信時にSQLのエラーが発生するか
検査パターン送信時のレスポンスにSQLのエラーが発生する場合、
パラメータの値によりSQLが操作される可能性があるため、検出としています。
(2)検査パターン送信時のレスポンスに差分があるか
アプリケーションによっては、SQLエラーが発生しても、
SQLのエラーメッセージがレスポンスに表示されない場合がございます。(Blind SQLインジェクション)
その場合は、レスポンス差分によって脆弱性の有無を判定します。
検査時は下記検査パターンを順に送信し、SQL構文として誤ったパターン送信時(※1)と
正しいパターン送信時(※2)で差分が大きい場合に検出と判定します。
※1 アプリケーションで用意されるエラー画面の応答などを想定
※2 プロキシログ取得時と同様の正常な画面の応答を想定
<検査パターン>
パターンA:検査値なし(プロキシログと同じリクエスト)
パターンB:SQL構文として誤ったパターン
パターンC:SQL構文として正しいパターン
パターンD:SQL構文として誤ったパターン
(1)に関しては、過剰検知となる可能性は比較的低くなりますが、
(2)に関しては、対象サーバの挙動によっては過剰検知となるケースもあります。
【SQLインジェクションの精査手順】
以下に精査手順を記載いたしますので、ご参考ください。
精査手順は(1)(2)のいずれのパターンにも対応した内容で記載しております。
※テスト送信が成功することが前提の手順となりますので、
手順実施前にテスト送信が成功することをご確認下さい。
1.検出結果の再送を行います。
該当の検査結果の「再送」ボタンを押下します。
※この際、検出とならなければ、過剰検知とご判断ください。
再送の結果、検出となった場合、以下の手順をご実施ください。
2. 検査結果一覧画面より当該検出結果の「詳細」を押下し、
「検査結果」タブを表示してください。
3.「検査結果」タブの「検出トリガ」の内容を確認いただき、
以下の内、条件にマッチする内容で精査を続けてください。
■検出トリガに値が表示されているパターン
表示された値の内容が、SQLに起因するエラーメッセージの場合は検出とご判断下さい。
(値の内容がSQLに起因しない場合は過剰検知と判断してください)
■検出トリガに値が表示されていないパターン
a.「親検査結果ID」のリンクを新規タブで開いてください。
b.表示された検査結果タブより「親検査結果ID」のリンクをさらに新規タブで開いてください。
※これを親検査結果IDのリンクが表示されなくなるまで繰り返します。
c.それぞれの「変更値」(挿入した検査パターン)とレスポンス内容を比較し、
SQL構文の正誤によって差分が発生している場合は検出とご判断ください。
なお、レスポンス差分の理由がWAFなど防御機構によるものなど、
SQLに起因しない場合は過剰検知とご判断下さい。
コメント
0件のコメント
サインインしてコメントを残してください。