Yahoo!の電話による2要素認証の盲点
ショーン・サリバン
先日、Netflixは、自動電話応答システムと発信者番号なりすましにまつわる、アカウント乗っ取りにつながる脆弱性を修正した。どのような点が問題だったのか。Netflixの「メールアドレス/パスワードを忘れた場合」機能で、パスワードリセット用のコードの送付方法を「電話」に指定することにより、アカウントのパスワードを攻撃者がリセットできてしまう可能性があるというものだ。攻撃者は、アカウントを持つユーザに電話を掛けて通話中にしておき、リセットコードが留守番伝言メッセージで通知されるようにする。その後、発信者番号をなりすまして、そのアカウントを持つユーザの留守番伝言メッセージからリセットコードを聞き出すことができたのだ(2016年の今でも、多くの携帯電話会社は発信者番号のなりすましに対して脆弱なままのようだ)。
Netflix: 「メールアドレス/パスワードを忘れた場合」
Netflixはシステムを修正し、現在では、ユーザによる入力を待ってからリセットコードを送るようになっている。入力がなければ、リセットコードは送られない。したがって、今後はリセットコードが留守番伝言メッセージに入れられるようなことはない。
入力を待機する方式と言えば、Microsoft Officeのサインインの「Call me at ~(~に電話をかける)」による認証でも、そうした方式が採られている。
Microsoft Officeのサインイン
自動音声案内により、そのアカウントのユーザは「#」ボタンを押すよう求められ、ユーザがそのようにしたら、サインインが完了となる。
そして、何億件ものアカウントのパスワードの漏洩が発覚したことで、近頃、マスコミをにぎわせた企業がある。Yahoo!だ。
「Call with the code(電話で認証コードを知らせる)」
残念なことに、Yahooの多要素認証機能の「Call with the code(電話で認証コードを知らせる)」機能は、インタラクティブな方式になっていない。電話でワンタイムコードを知らせるだけだ。そのため、Yahooは現在、Netflixのケースと同じ脆弱性に悩まされている。そうしたコードを留守番伝言メッセージで送らせることができてしまうのだ。そのため、それほど多くのパスワードが漏洩していることからすると、これは大問題だ。
アンディと私とで、電話での認証を試してみた。以下は、その様子を録音したものである。
Twitterで再生。
Office 365 vs. Yahoo! MFA – who will win?!? (Go on, take a wild guess…) pic.twitter.com/TMl3mPSIZ5
— F-Secure Labs (@FSLabs) November 16, 2016
Office 365とYahoo!のMFA(多要素認証)。
どちらが良いだろうか(これを聞いて比べてみてほしい)。
– News from the Lab (@FSLabs) November 16, 2016
埋め込みオーディオで再生。
カテゴリ