2 ポイント 投稿者 GN⁺ 2024-07-12 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-07-12
Hacker News の意見
  • 最近、知人が Google Ads フィッシングに引っかかりました。攻撃者は「BANKNAME login」のような検索語に広告を出し、銀行のログインページを精巧に複製していて、裏ではリレー攻撃をしていました。
    携帯アプリの二要素認証コードを入力すると画面上では拒否され、新しいコードを求められましたが、実際には2つ目のコードは新しい「pay anyone」受取人を追加するための承認コードで、それによってお金が引き出されました。
    SMS の二要素認証はプロトコル上弱いと思っていましたが、このケースでは、新しい受取人を追加する際にログイン時とは異なるメッセージを送る銀行の SMS 方式のほうが良かったかもしれません。
    理想的には、単純なトークン生成アプリではなく、ログイン用トークンと受取人追加用トークンのように取引種別ごとのトークンを作り、相互に代替できないようにすべきです。このレベルの二要素認証を提供している銀行を見たことがあるか気になります。
    おそらく passkey はローカルハードウェアとの物理的な接続を確立するので、こうした問題を無意味にできるかもしれません。ちなみに被害者は最終的にお金を取り戻しました。

    • 広告は帯域幅と計算資源を食う迷惑な心理的テロにとどまらず、ウェブ上で詐欺やマルウェアを広める最大の経路でもあります。
      セキュリティ体制を改善するには、広告ブロッカーを入れるのが最良の方法の一つです。技術に詳しくない友人や家族には、uBlock Origin を設定してあげることを強く勧めます。
    • HSBC には実際にこうした機能があります。各国向けアプリで、ウェブサイトへのログイン、取引確認(例:受取人への送金)、再認証(例:電話番号など個人情報の変更)用に、それぞれ異なるセキュリティコードを生成できます。
      オーストラリア版アプリの画面はここで見られ、米国版と英国版アプリも似ています: https://www.hsbc.com.au/content/dam/hsbc/au/images/ways-to-b...
      HSBC はこれを何年も前から提供していますが、なぜまだ標準になっていないのか、あるいは他の米国の銀行が導入していないのかよく分かりません。
    • 好奇心から Google 広告を一度買ってみたことがあります。無料クレジットをもらったので試しただけなのに、広告承認の前に、ばかげた条件やガイドラインを大量にくぐり抜ける必要がありました。
      なのに、なぜ通常の広告にはそこまで厳しい一方で、銀行になりすまし、その銀行を検索する人を狙うフィッシングページには広告を売るのか理解できません。
    • FBI もまさにこうした詐欺を避けるため、検索エンジンで広告ブロック拡張機能を使うよう勧告している、という点は家族や知人に伝えておく価値があります [0]
      「インターネット検索をするときは広告ブロック拡張機能を使用してください。ほとんどのインターネットブラウザは、広告ブロック拡張機能を含む拡張機能の追加を許可しています。こうした広告ブロッカーはブラウザ内でオン・オフできるため、特定のウェブサイトの広告は許可しつつ、他の場所の広告はブロックできます。」
      [0] https://www.ic3.gov/Media/Y2022/PSA221221
    • ここから得られるもう一つの教訓は、銀行の URL をブックマークするか覚えておき、検索エンジンが銀行へ連れて行ってくれると信じてはいけない、ということです。
  • SMS 二要素認証を強制する企業はセキュリティに本気なのではなく、単に電話番号が欲しくて、セキュリティ劇場として二要素認証を掲げ、番号を取得しているのだと、かなり前から疑っていました。

    • その側面も確かにあります。電話番号は新しい社会保障番号のように、ほとんど変わらず、複数のサービスでユーザーを結び付ける一意の識別子になっています。
      しかも、会う人ごとに自分で手渡す識別子でもあるので、悪いシステムのように見えると言えます。
    • 無料アカウントがあるサービスなら、電話番号を要求することは不正防止や複数アカウントの悪用防止に役立ちます。
      ブロックを回避するために新しいアカウントを作るのを防ぎ、複数アカウントに現れる悪質な行動を結び付けやすくなります。
    • ほとんどの企業が実際に電話番号を欲しがるのは、スパム対策のためです。
      スパマーがインターネットの衰退に寄与した度合いは過小評価されていると思います。
    • SMS 二要素認証を強制する理由は、ユーザーが二要素認証アプリをインストールしていて、そのツールを管理できると仮定するより、電話番号を持っていると仮定するほうがはるかに摩擦が少ないからです。
      サポートもしやすいです。
    • あるいは、もともとメールで二要素認証をしていたところ、監査人に「それは二要素認証ではない」と言われ、通知用ミドルウェアがメールだけでなく SMS もサポートしていると気づいた、というケースかもしれません。
  • NIST はかなり前から SMS 二要素認証を使わないよう明記してきました。
    NIST SP 800-63B §5.1.3.3
    https://pages.nist.gov/800-63-3/sp800-63b.html#pstnOOB

    • NIST の観点や利害は、サービス提供者が顧客・ユーザー体験で気にすべきことと必ずしも一致しません。
      顧客: 「二要素認証アプリって何のことですか? コードは私の携帯に届くものではなかったんですか?」
      サポート: 「その通りですが、現在は SMS 二要素認証はもうサポートしていません。」
      顧客: 「でも携帯にコードが届いていたときは問題なかったんですが。」
      サポート: 「はい、ただ NIST が SMS 二要素認証を使わないよう推奨しています。」
      顧客: 「NIST って何ですか? すごく困ります。自分のアカウントに入る必要があるんです。」
  • 残念ながら、ほとんどすべての銀行が SMS を使わせます。銀行アプリがroot 化された携帯では起動を拒否するからです。実に素晴らしいセキュリティ上の成果ですね。

    • それでも代替手段はあるということです。
      私の国では、ほぼすべての銀行が SMS の代替なしにアプリベースの二要素認証を強制しています。
      別の携帯を買って持ち歩きたくないなら、それを要求しない銀行を一つだけ使うしかありません。
    • それはセキュリティ上の利点であるのは確かです。
      root 化された携帯では、他のアプリが銀行情報をのぞき見して盗む可能性を開いていることになります。
      セキュリティが損なわれた携帯で銀行アプリが起動しないのは、十分に合理的に見えます。
    • 議論の余地はありますが、root 化された携帯は本質的に安全性が低いです。
      ただし GrapheneOS はこれには含まれません。GrapheneOS の公式ビルドには root 権限がないためです。
  • 記事は、セキュリティ上の意味が異なる2つの問題を混同している
    1-click login リンクは懸念に値するし、SMSへのアクセスだけでWhatsAppのようなサービスは乗っ取られ得る
    しかし2段階認証コードは相対的にはそれほど心配しなくてよい。第2要素なので、攻撃者にはパスワードも必要だからだ
    こうしたケースなら、SMSの利用や傍受リスクについてはかなり不安を小さく見ている

    • SMSメッセージのデータベースが1つ流出するたびに、アカウント認証情報のデータベースは1000個くらい流出している
  • 英国では、ほぼすべてのオンラインバンキング取引が今ではSMSで検証されているように見える。見たところ法律で求められているようで、以前の銀行カード+カードリーダー+PINによる検証システムを置き換えた
    以前の方式のほうが安全だっただけでなく、電波の入る正常に動作する携帯電話にも依存していなかった
    いつかこれがひどい過ちだったと認められ、修正されることを願っているが、あまり期待はしていない

    • どの銀行なのか気になる。Lloydsを使っているが、取引はSMSではなくアプリで検証される
    • 最初の文はまったく事実ではない。SMSは選択肢の1つではあるが、多くの銀行はアプリベースの2段階認証をサポートしている
      オフラインではカードリーダーが便利だったという点には同意する。ただ、そのデバイスを忘れずに持っていったことがほとんどなく、旅行中によく詰まっていた
  • スウェーデンはかなり前に BankID でこの問題を解決した
    https://en.wikipedia.org/wiki/BankID
    公的機関と民間機関が少し協力するだけで何を実現できるのか、驚くほどだ。政府サービスとほとんどの銀行でログインと2段階認証を行う唯一の方法で、うまく機能している
    すべての国にこうしたシステムがないこと、ましてEU全体にこうしたシステムがないことは信じがたい

    • EUはこのために Digital Wallet を導入中だ。フィンランド版BankIDより使いやすいことを願うし、銀行やその他の民間のレントシーキング機関への依存が少なければなおよい
      それでも期待しすぎないようにはしている
      https://ec.europa.eu/digital-building-blocks/sites/display/E...
    • Wikiの説明どおりなら、本当にLinuxをサポートしていないのか気になる。カード形式を代わりに使うことはできそうだ
  • S3バケット内のメッセージは5分ごとに更新されていたようだ: https://www.zeit.de/digital/datenschutz/2024-07/it-sicherhei...
    ただしCCCがこれを2FA-SMSだけの問題と定義したのは誤りだった。影響を受けたのはTwilio Verify(2段階認証API)だけでなく、このプロバイダー経由で送信されたすべてのSMSだった

    • Twilio Verifyに関する根拠がどこから来たのか気になる。どこにも言及されていない
  • これはSMSそのものの問題というより、機密データの保存先を適切に保護していなかったベンダーセキュリティの問題に近い

    • OTPとハードウェアトークンは、ローテーションするシークレット値を、潜在的に公開読み取り可能なデータストアに書き込む必要がないという点で、これはSMSの問題でもある
      この特定の攻撃経路は、それらの技術にはそもそも存在しない
  • 私が働いている複数の金融機関は SMS 2段階認証 を要求し、HOTP/TOTPの選択肢を提供していない。頭がおかしくなりそうだ