Korzen

ブログ

SMS ポンピング詐欺:偽の OTP リクエストを止める方法

ボットが電話番号の入力欄を埋め、SMS 1 通ごとに攻撃者へ分け前を払う番号にワンタイムコードを送らせます。SMS ポンピング(SMS pumping)の仕組み、その兆候、そして止める場所を解説します。

SMS ポンピング詐欺(SMS pumping)は、あなたの電話番号認証を他人の収入源に変えます。ボットがワンタイムコードを送るフォームに電話番号を大量に入力し、その番号はある携帯電話事業者が管理する番号帯に属しています。あなたが料金を払う SMS 1 通ごとにその事業者に料金が入り、攻撃者はその一部を受け取ります。Twilio はこのように説明しており、SMS トール詐欺(SMS toll fraud)とも呼んでいます。ユーザーから盗まれるものはありません。損失はあなたの SMS の請求額です。

SMS ポンピングの仕組み

SMS を送る公開フォームはどれも標的になります。電話番号を認証する新規登録、コードを送るログイン、「リンクを SMS で送る」ボタン、SMS で返信するチャットボットです。Twilio は、ワンタイムコード、新規登録の流れ、通知の送信、チャットボットのエンドポイントを挙げています。事業者は収益分配の取り決めをして加担していることもあれば、知らないうちに利用されていることもあります。

請求額は大きくなり得ます。Twitter のオーナーは 2022 年 12 月、同社が 390 の通信事業者を通じた SMS ポンピングで年に約 6,000 万ドルを失っていると述べました。これは本人の主張であり監査された数字ではありませんが、大きな新規登録フォームが攻撃者にとってどれほどの価値を持つかを示しています。

兆候

  • サービスを提供していない国への SMS。顧客がほとんど、あるいはまったくいない地域にコードが送られます。
  • 誰も入力しないコード。ワンタイムコードについての Twilio の目安です。認証が完了しません。
  • 連続した番号。隣り合った番号や似た番号のまとまりに、大量のメッセージが送られます。
  • 成長を伴わない支出。成果につながる新規登録が増えないまま、SMS の費用だけが増えます。

SMS プロバイダーにできること

プロバイダーはメッセージが送り出される時点でそれを見ているので、まずそこから始めてください。Twilio の勧めは次のとおりです。サービスを提供していない国への SMS をオフにする、同じ番号帯へのメッセージを制限する、回線種別の照会をしたうえで携帯電話番号にだけ送る、そして同社の不正対策機能をオンにすることです。この機能は、アカウントがこれまで一度も SMS を送ったことのない国のような、疑わしい宛先のプレフィックスをブロックします。代償もあります。Twilio によれば、誤検知は標準レベルで 1% 未満、最も厳しいレベルで 2% 未満です。これらの対策が働くのは送信の時点、つまりフォームがすでにリクエストを受け付けた後です。

コードを送る前にリクエストを止める

SMS に費用がかかるのは送ったときだけです。だからポンピングを止める最も安い場所は、それを求めるリクエストです。Twilio 自身も、SMS を送らせるすべてのフォームを保護すること、そして同じ番号や IP アドレスからのコード要求の間に待ち時間を置くことを勧めています。Bot Protection は、あなたが SMS プロバイダーを呼び出す前に、サーバーでそのリクエストを判定します。

  • コードを送る送信では、ページが本当に訪問されたことの証明を求めてください。ページを読み込まずに API へ電話番号を送るスクリプトは、クラスにかかわらずチャレンジされます。
  • bot_high:何も送りません。おとりの応答をオンにすると、サーバーはコードを送ったかのように応答し、実際には何も送りません。ボットにはスクリプトを変える理由がありません。
  • bot:まずチャレンジページを通し、コードはその後に送ります。
  • unknown、human、human_high:コードを送ります。

二つの層は足し合わされます。Bot Protection はフォームでボットを止め、プロバイダーの対策はそれでも送信まで届いたものを捕まえます。

ブロックする前に測る

monitor mode から始めてください。誰も止められず、各応答は block mode なら何をしたかを示すので、断ったはずのリクエストと、入力されなかったコードを比べられます。二つが一致したら block mode をオンにしてください。新規登録で無料クレジットも配っているなら、無料トライアルの悪用もご覧ください。同じボットが両方を狙うことはよくあります。

fail-open を守る

届かないコードは、本当の人をあなたの製品から締め出します。短いタイムアウトを使い、どんなエラーでもコードを送ってください。障害中にわずかな SMS が水増しされても、動かなくなった新規登録より安く済みます。詳しくはボットチェックが fail-open でなければならない理由をご覧ください。

出典

2026 年 10 月 28 日に確認。