LoginSignup
403
265

More than 1 year has passed since last update.

話題の“まだ作成していないユーザーアカウント”を先回りして乗っ取る攻撃について図でまとめてみた

Last updated at Posted at 2022-07-08

概要

アカウントを乗っ取る攻撃が私の中で話題だったので、理解しようと努めましたという記事です。
その元記事はこちら↓

防げなかったサイトには、ZoomやInstagram、Dropbox、LinkedInなどが含まれた。

とのことなので、有名サイトでもこの脆弱性を抱えていることになります。
この記事に出てくる攻撃方法は 5つ あり、文章だとピンと来なかったのでシーケンス図に書き出してみました。
乗っ取りはすごい怖いですね... RDSの本番DBをtruncateしていくよりも下手したら損害が出る可能性もあるのでは?と思ってしまいます。
さて、本記事はこんなことかな?とふんわり書いているので、間違っていたら指摘していただけると嬉しいです :bow:

Classic-Federated Merge Attack

攻撃者が被害者のメールアドレスを使い、先回りしてサービスのアカウントを作成しておく。被害者が「Googleでログイン」などでそのサービスにログインした場合にアドレスが統合されるため乗っ取りが成功する。攻撃者が設定したパスワードでログインできる。

スクリーンショット 2022-07-08 1.20.04.png

Unexpired Session Identifier Attack

こちらも被害者のメールアドレスで先回りしてアカウントを作成しておき、定期的に訪問しログイン状態を維持する。この状態で被害者が同じアドレスで新規登録しようとすると「このメールアドレスは既に登録されています」と表示されるため、ログイン画面からパスワードのリセットをかける。リセットしても攻撃者がログインしていたセッションは切れないため、乗っ取りに成功する。

スクリーンショット 2022-07-08 1.20.14.png

Trojan Identifier Attack

先回りして被害者のメールアドレスでアカウントを作成しておき、そのアカウントと攻撃者のIdP(Identify Provider)アカウントをひもづける。この状態で被害者が同じアドレスで新規登録しようとすると「このメールアドレスは既に登録されています。」と表示されるため、ログイン画面からパスワードのリセットをかける。 攻撃者のIdPアカウントでもログインできるため、乗っ取りに成功する。

スクリーンショット 2022-07-08 1.20.41.png

Unexpired Email Change Attack

先回りして被害者のメールアドレスでアカウントを作成した後に、攻撃者のメールアドレスに変更するようサービスに申請する。この状態で被害者が同じアドレスで新規登録しようとすると「このメールアドレスは既に登録されています」と表示されるため、ログイン画面からパスワードのリセットをかける。
攻撃者には先ほどのメールアドレス変更の確認メールが届いているため、その変更を確定する。これで攻撃者のメールアドレスでログインできるようになるため乗っ取りに成功する。

スクリーンショット 2022-07-08 1.20.57.png

Non-Verifying IdP Attack

メールアドレスの所有者を確認しないIdP(クラウドサービスなどにアクセスするユーザーの認証情報を保存、管理するもの)で被害者のメールアドレスを使ってアカウントを作成しておく。被害者がメールアドレスでアカウントを新規登録すると、IdPのアドレスが統合されるため乗っ取りに成功する。

スクリーンショット 2022-07-15 0.01.58.png

※追記(2022-07-14) @defenceability
さんにご指摘いただき Non-Verifying IdP Attack のシーケンスを一部修正いたしました。

攻撃の成立要因

要因 内容
A Webサイトがemailの本人確認をせずにアカウントの作成を許可
B SSOした際に既存のemail と同じアカウントがあればアカウントを統合する
C パスワードリセットをした場合に既存のセッションを無効にしない
D 異なるemailを持つ2つのアカウントの紐付けができる
E email変更の本人確認URLの期限が長い/パスワードリセットされた時点で無効にしない
F emailの本人確認をせずにアカウントの作成ができるIdPのSSOを許可している
攻撃名 攻撃を成立する条件
Classic-Federated Merge Attack A かつ B
Unexpired Session Identifier Attack A かつ C
Trojan Identifier Attack A かつ D
Unexpired Email Change Attack A かつ E
Non-Verifying IdP Attack F かつ B

まとめ

利便性を求めるとこうした脆弱性が出てきてしまうのは世の常ですね...
超有名サービスでもこうした脆弱性があるので、日頃からセキュアな視点を磨いていきたいものです。

参考

403
265
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
403
265