【ぶらいんどたんさく】

ブラインド探索(インジェクション攻撃) とは?

公開:
💡 答えが見えなくても、反応の違いが手がかりになる
📌 このページのポイント
中身が見えなくても、反応は違う 条件を変えて質問当てはまる?サーバー側内容は直接非表示条件が成立応答A成立しない応答B違いを手がかりに、少しずつ推測問い合わせの組み立て方から対策
条件によって応答が異なる場合の模式例です。手がかりには表示や時間の差などがあり、応答の違いだけで侵害を断定する図ではありません。
ひよこ ひよこ
データの内容を画面に出さなければ、外から調べられないんじゃない?
ペンギン先生 ペンギン先生
内容そのものを返さなくても、反応の違いが手がかりになる場合があるよ。条件に当てはまるときだけ表示が変わる、といった違いから情報を絞り込む調べ方を、ここではブラインド探索と呼んでいるんだ。
ひよこ ひよこ
答えを見る代わりに、はい・いいえで確かめる感じ?
ペンギン先生 ペンギン先生
そういう方式があるね。問い合わせの条件を変え、成立したときとしなかったときの応答を比べるんだ。ただし、返事が明確な「はい・いいえ」とは限らず、表示内容や応答時間の違いを使う場合もあるよ。
ひよこ ひよこ
NoSQLインジェクションと同じ意味なの?
ペンギン先生 ペンギン先生
別の見方だよ。NoSQLインジェクションは、入力を通じてNoSQLへの問い合わせを変える攻撃。ブラインドは、その攻撃などで結果を直接見られないときの調べ方を表すんだ。JPCERT/CCの注意喚起にも、この組み合わせでアカウント情報を特定した手口が出てくるよ。
ひよこ ひよこ
詳しいエラーを隠せば防げる?
ペンギン先生 ペンギン先生
それだけでは十分ではないよ。まず入力で問い合わせの構造を変えられないようにしよう。APIのアクセス制御や、必要な範囲への権限制限も大切。レート制限や監視は繰り返しの試行への補助で、注入そのものを直す対策の代わりにはならないんだ。
もっと詳しく知りたい人へ

応答が遅ければ、情報を読み取られている証拠?

遅さだけでは判断できません。ネットワークの遅延やサーバーの負荷でも応答時間は変わります。時間差を使う手法の説明と、実際の侵害を断定することは分けて考えます。

AI分野の「ブラインド探索」と同じもの?

別の意味です。AIやアルゴリズムでは、目標までの距離などの手がかりを使わない探索を指すことがあります。このページは、インジェクション攻撃で応答の差から情報を推測する文脈を説明しています。英語のblind searchだけで同義と判断しないようにします。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ブラインド探索」って出てきたら「答えを直接見ず、反応の違いから情報を探る方法」と思えばだいたいOK! ここではインジェクション攻撃の文脈だよ。

参考資料

← 用語集にもどる