2要素認証SMS:評判以上に悪いセキュリティ手法
(ccc.de)- CCCはIdentifyMobileの露出を通じてワンタイムパスワードSMSをリアルタイムで閲覧でき、200社以上の企業のSMS 1億9,800万件超が流出した事例
- 2FA-SMSはパスワードだけが盗まれた状況を防ぐ補助的な仕組みだが、実際のセキュリティはSMS送信代行業者の管理水準にも大きく左右される
- IdentifyMobileは認証コード、受信者の電話番号、送信者名、一部のアカウント情報をインターネット上に露出しており、
idmdatastoreというサブドメインを推測するだけでアクセス可能だった - Google、Amazon、Facebook、Microsoft、Telegram、Airbnb、FedEx、DHLなどが影響範囲にあり、リアルタイムフィードだけでWhatsApp番号の乗っ取りや金融取引・サービスログインの試行が可能だった
- SMSによる2要素認証はパスワードだけを使うよりはましだが、アプリベースのワンタイムパスワードやハードウェアトークンのように、モバイルネットワークやSMS事業者への依存が少ない方式のほうが安全
IdentifyMobileの露出が明らかにした2FA-SMSの弱点
- 2FA-SMSは、ユーザーが知っているパスワードと、電話番号へのアクセスを証明するSMSコードの両方を要求する
- パスワードだけが流出した場合に、アカウント乗っ取りを防ぐ追加手段として使われる
- SMSには、WhatsAppの認証コードや銀行振込用TANのように、短時間だけ有効なコードが含まれることがある
- SMSベースの認証は、すでに複数の攻撃経路にさらされている
- SIMスワッピングによってSMSを傍受できる
- モバイル通信網のSS7脆弱性を悪用できる
- フィッシングによって、ユーザーにワンタイムパスワードを直接渡させることができる
- CCCは2013年から、SMSを2要素認証手段として使わないよう勧告している
- 今回の事例では、攻撃者が通信網やユーザーを直接狙わなくても、SMS送信代行業者が認証チェーンの弱点になり得る
- IdentifyMobileは複数の企業やサービスの大量SMSを送信するプロバイダー
- このプロバイダーはSMS本文にアクセスでき、本文には認証コードが含まれていた
- CCCは
idmdatastoreというサブドメインを推測するだけで、リアルタイムデータにアクセスできた
露出範囲と実際のリスク
- 露出したデータにはSMS本文だけでなく、受信者の電話番号、送信者名、場合によっては他のアカウント情報も含まれていた
- 影響を受けた企業は200社以上で、直接または他のサービスプロバイダーを通じてIdentifyMobileに認証セキュリティを委ねていたケースが含まれる
- Google、Amazon、Facebook、Microsoft
- Telegram、Airbnb、FedEx、DHL
- 合計1億9,800万件以上のSMSが流出
- リアルタイムフィードだけでも、複数の悪用シナリオが可能だった
- WhatsApp番号の乗っ取り
- パスワードを知っている場合、電話機にアクセスせずに金融取引を実行
- パスワードを知っている場合、複数サービスへのログイン
- 実際の悪用には一般的に依然としてパスワードが必要だったが、データ内には1-click loginリンクも含まれていた
- 一部の大手被害企業では、IdentifyMobileが保護していた範囲は個別サービスに限定されていた
- IdentifyMobileの不注意は、企業と顧客を相当なリスクにさらした
- CCCはデータを保存していないが、他者がアクセスした可能性は排除できない
SMSの代わりに選べる認証方式
- 利用できる場合は、SMSの代わりにアプリで生成されるワンタイムパスワードやハードウェアトークンを使うほうが安全
- これらの方式はモバイルネットワークに依存しない
- IdentifyMobileのようなSMS送信プロバイダーにも依存しない
- それでも2要素認証は、パスワード1つだけを使うよりはまし
1件のコメント
Hacker News の意見
最近、知人が Google Ads フィッシングに引っかかりました。攻撃者は「BANKNAME login」のような検索語に広告を出し、銀行のログインページを精巧に複製していて、裏ではリレー攻撃をしていました。
携帯アプリの二要素認証コードを入力すると画面上では拒否され、新しいコードを求められましたが、実際には2つ目のコードは新しい「pay anyone」受取人を追加するための承認コードで、それによってお金が引き出されました。
SMS の二要素認証はプロトコル上弱いと思っていましたが、このケースでは、新しい受取人を追加する際にログイン時とは異なるメッセージを送る銀行の SMS 方式のほうが良かったかもしれません。
理想的には、単純なトークン生成アプリではなく、ログイン用トークンと受取人追加用トークンのように取引種別ごとのトークンを作り、相互に代替できないようにすべきです。このレベルの二要素認証を提供している銀行を見たことがあるか気になります。
おそらく passkey はローカルハードウェアとの物理的な接続を確立するので、こうした問題を無意味にできるかもしれません。ちなみに被害者は最終的にお金を取り戻しました。
セキュリティ体制を改善するには、広告ブロッカーを入れるのが最良の方法の一つです。技術に詳しくない友人や家族には、uBlock Origin を設定してあげることを強く勧めます。
オーストラリア版アプリの画面はここで見られ、米国版と英国版アプリも似ています: https://www.hsbc.com.au/content/dam/hsbc/au/images/ways-to-b...
HSBC はこれを何年も前から提供していますが、なぜまだ標準になっていないのか、あるいは他の米国の銀行が導入していないのかよく分かりません。
なのに、なぜ通常の広告にはそこまで厳しい一方で、銀行になりすまし、その銀行を検索する人を狙うフィッシングページには広告を売るのか理解できません。
「インターネット検索をするときは広告ブロック拡張機能を使用してください。ほとんどのインターネットブラウザは、広告ブロック拡張機能を含む拡張機能の追加を許可しています。こうした広告ブロッカーはブラウザ内でオン・オフできるため、特定のウェブサイトの広告は許可しつつ、他の場所の広告はブロックできます。」
[0] https://www.ic3.gov/Media/Y2022/PSA221221
SMS 二要素認証を強制する企業はセキュリティに本気なのではなく、単に電話番号が欲しくて、セキュリティ劇場として二要素認証を掲げ、番号を取得しているのだと、かなり前から疑っていました。
しかも、会う人ごとに自分で手渡す識別子でもあるので、悪いシステムのように見えると言えます。
ブロックを回避するために新しいアカウントを作るのを防ぎ、複数アカウントに現れる悪質な行動を結び付けやすくなります。
スパマーがインターネットの衰退に寄与した度合いは過小評価されていると思います。
サポートもしやすいです。
NIST はかなり前から SMS 二要素認証を使わないよう明記してきました。
NIST SP 800-63B §5.1.3.3
https://pages.nist.gov/800-63-3/sp800-63b.html#pstnOOB
顧客: 「二要素認証アプリって何のことですか? コードは私の携帯に届くものではなかったんですか?」
サポート: 「その通りですが、現在は SMS 二要素認証はもうサポートしていません。」
顧客: 「でも携帯にコードが届いていたときは問題なかったんですが。」
サポート: 「はい、ただ NIST が SMS 二要素認証を使わないよう推奨しています。」
顧客: 「NIST って何ですか? すごく困ります。自分のアカウントに入る必要があるんです。」
残念ながら、ほとんどすべての銀行が SMS を使わせます。銀行アプリがroot 化された携帯では起動を拒否するからです。実に素晴らしいセキュリティ上の成果ですね。
私の国では、ほぼすべての銀行が SMS の代替なしにアプリベースの二要素認証を強制しています。
別の携帯を買って持ち歩きたくないなら、それを要求しない銀行を一つだけ使うしかありません。
root 化された携帯では、他のアプリが銀行情報をのぞき見して盗む可能性を開いていることになります。
セキュリティが損なわれた携帯で銀行アプリが起動しないのは、十分に合理的に見えます。
ただし GrapheneOS はこれには含まれません。GrapheneOS の公式ビルドには root 権限がないためです。
記事は、セキュリティ上の意味が異なる2つの問題を混同している
1-click login リンクは懸念に値するし、SMSへのアクセスだけでWhatsAppのようなサービスは乗っ取られ得る
しかし2段階認証コードは相対的にはそれほど心配しなくてよい。第2要素なので、攻撃者にはパスワードも必要だからだ
こうしたケースなら、SMSの利用や傍受リスクについてはかなり不安を小さく見ている
英国では、ほぼすべてのオンラインバンキング取引が今ではSMSで検証されているように見える。見たところ法律で求められているようで、以前の銀行カード+カードリーダー+PINによる検証システムを置き換えた
以前の方式のほうが安全だっただけでなく、電波の入る正常に動作する携帯電話にも依存していなかった
いつかこれがひどい過ちだったと認められ、修正されることを願っているが、あまり期待はしていない
オフラインではカードリーダーが便利だったという点には同意する。ただ、そのデバイスを忘れずに持っていったことがほとんどなく、旅行中によく詰まっていた
スウェーデンはかなり前に BankID でこの問題を解決した
https://en.wikipedia.org/wiki/BankID
公的機関と民間機関が少し協力するだけで何を実現できるのか、驚くほどだ。政府サービスとほとんどの銀行でログインと2段階認証を行う唯一の方法で、うまく機能している
すべての国にこうしたシステムがないこと、ましてEU全体にこうしたシステムがないことは信じがたい
それでも期待しすぎないようにはしている
https://ec.europa.eu/digital-building-blocks/sites/display/E...
S3バケット内のメッセージは5分ごとに更新されていたようだ: https://www.zeit.de/digital/datenschutz/2024-07/it-sicherhei...
ただしCCCがこれを2FA-SMSだけの問題と定義したのは誤りだった。影響を受けたのはTwilio Verify(2段階認証API)だけでなく、このプロバイダー経由で送信されたすべてのSMSだった
これはSMSそのものの問題というより、機密データの保存先を適切に保護していなかったベンダーセキュリティの問題に近い
この特定の攻撃経路は、それらの技術にはそもそも存在しない
私が働いている複数の金融機関は SMS 2段階認証 を要求し、HOTP/TOTPの選択肢を提供していない。頭がおかしくなりそうだ