【おーぷんりだいれくと】

オープンリダイレクト とは?

💡 信頼できる銀行の看板を踏み台に、偽サイトへ客を誘い込む手口
📌 このページのポイント
オープンリダイレクトの仕組み bank.example.com/login?next= https://evil.com ユーザーが踏むURL(見た目は正規サイト) 👤 ユーザー bank.example.com 正規サイト(信頼済み) evil.com 攻撃者のフィッシングサイト アクセス リダイレクト! 😱 気づかずに偽サイトへ URLバーに「bank.example.com」と見えるため被害者は信頼してしまう リダイレクト先URLをホワイトリストで検証・相対パスのみ許可することで防げる
正規ドメインを踏み台にして偽サイトへ誘導する
ひよこ ひよこ

オープンリダイレクトってなに?リダイレクトって普通のウェブの仕組みだよね?

ペンギン先生 ペンギン先生

そうだよ。リダイレクトURLパラメータで受け取って検証せずに使うと、攻撃者が任意の外部サイトへユーザーを飛ばせてしまう脆弱性のことだね。

ひよこ ひよこ

具体的にどんなURLになるの?

ペンギン先生 ペンギン先生

例えば "login?next=https://evil.com" というURLを踏ませると、ログイン後に悪意あるサイトへ飛んでしまうんだよ。クリックした時点ではURLバーに「bank.example.com」と表示されているから、怪しいと気づかない人が多いんだね。

ひよこ ひよこ

攻撃者はこれで何をするの?

ペンギン先生 ペンギン先生

フィッシングサイトへの誘導が一番多いよ。OAuthSSOのログインフローで使われる redirect_uri パラメータを書き換えて、認証後に発行されるトークンを攻撃者のサーバーに送りつけるという手口も報告されているんだね。

ひよこ ひよこ

なんで正規ドメイン踏み台にすると危ないの?

ペンギン先生 ペンギン先生

フィッシングメールで "bank.example.com" から始まるURLを送れば、受け取った人が信頼してクリックしやすいんだよ。リダイレクト先の evil.com に飛んでも気づかないままログイン情報を入力してしまうケースが多いんだね。

ひよこ ひよこ

どうやって防げばいいの?

ペンギン先生 ペンギン先生

リダイレクトURLをホワイトリストで検証すること、相対パスのみ許可して外部URLを拒否すること、OAuthでは redirect_uri を事前に登録制にすることが基本的な対策だよ。ユーザーが渡した値をそのままリダイレクト先に使わないのが鉄則だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「オープンリダイレクト」って出てきたら「正規サイト経由で偽サイトに飛ばす手口」と思えればだいたいOK!
📖 おまけ:英語の意味
「Open Redirect」 = 開放されたリダイレクト
💬 redirect先URLが「開放(open)」されていて誰でも任意のURLに書き換えられる状態を指しているんだよ。
← 用語集にもどる