自動攻撃の基本を見直す : アカウント乗っ取り
自動攻撃の基本を見直す : 入門シリーズ
このブログ記事は、通常「ボット攻撃」として知られる、Web アプリケーションに対するさまざまな自動化された攻撃の基本についてご紹介するシリーズの第1回目です。各記事では、実例を交えながら攻撃の性質や動機について細かく検証し、攻撃を緩和する方法について考えます。
アカウント乗っ取りとは?
アカウント乗っ取り (ATO) 攻撃は、脅威アクターが顧客のアカウント (オンラインバンキングやメール、eコマース、ソーシャルメディアのアカウントなど) に不正アクセスするネット上での成り済まし犯罪のひとつです。攻撃者の動機は、不正取引の実行から選挙戦での偽情報の拡散など、多岐にわたります。このような攻撃の主な目的は、顧客のアカウントを操作し、そのアカウントで可能な権利を行使することにあります。特定の顧客アカウントを狙うこともあれば、手あたり次第に何百万ものアカウントに攻撃をしかける場合もあります。
過去の記事では、自動攻撃に使用される一般的なツールの一部をご紹介しました。この記事では、クレデンシャルスタッフィングやアカウントアグリゲーション、クレデンシャルクラッキングなど、一般的な種類の ATO 攻撃の例を取り上げます。
クレデンシャルスタッフィング :
「コンボリスト」と呼ばれる、盗まれたクレデンシャル (ユーザーネームやパスワードなど) のリストを使用して、オンラインアカウントへの不正アクセスを試みます。楽だからといってユーザーが複数のアカウントやWebサイトで同じクレデンシャルを使用するという、クレデンシャルの再利用における誤った習慣がこの手の攻撃を可能にしています。つまり、利用しているWebサイトのひとつが侵害されると、そのユーザーの暗号化されていないクレデンシャルが地下組織のフォーラムで共有され、他の攻撃者がそのリストを使用して無関係のWebサイトにクレデンシャルスタッフィング攻撃をしかけるのです。
図1 : ボットは盗まれたクレデンシャルを攻撃対象のサービスに提出し、ログイン情報の有効性を確認
クレデンシャルの大規模な再利用による無差別攻撃の一種であるこの攻撃は、低コストで高い効果を発揮できることが実証されており、業界の推定では成功率は0.1%とされています。この成功率は低いように感じるかもしれませんが、攻撃対象のWebサイトで何百万ものクレデンシャルが試行される場合、脅威アクターは何千ものアカウントにアクセスできる可能性があるのです。2024年6月現在、HaveIBeenPwned のデータセットには、9億3,600万ものパスワードが含まれ、これは6兆9,500億のクレデンシャルに相当します。
図2 : Sentry MBA は攻撃を開始するためのさまざまな機能と設定を提供
この種の攻撃が一般化している背景には、成熟した市場経済学があります。悪質なアクターはコンボリストや攻撃を実行するためのツール (SentryMBA、SNIPR、OpenBullet、BlackBullet、STORM など)、攻撃対象のサービスに対するツール設定を、地下組織のフォーラムから非常に安価で購入できます。これらのツールのなかには、特定のボット対策機能を回避するアドオンを追加購入できるものもあります。次のステップは、複数のソース IP アドレスをローテンションして攻撃を実行できるよう、数あるオンラインWebサイトのいずれから、プロキシリストを購入することです。これで、クレデンシャルスタッフィング攻撃の実行に必要なすべてのコンポーネントが揃いました。また、このような攻撃によって収穫された侵害を受けたクレデンシャルを購入するための市場も存在し、これが経済的な動機を強化していることも特筆に値します。
図3 : 人気の高いWebサイトへの攻撃設定が組み込まれている SNIPR
アカウントアグリゲーション
これはクレデンシャルハーベスティング攻撃の一種で、顧客が不正クライアントを使用することで、そのクライアントがクレデンシャルを盗んだり、悪意のある目的でリクエストやレスポンスを変更したりできるようになります。このような攻撃は、アプリストアやアカウント・アグリゲーション・サイトで提供されている、ユーザーにクレデンシャルの提出を求める悪意のあるサードパーティアプリでよく見られます。これらのアプリはWebサイトの正規クライアントではありませんが、ソーシャルメディアやメール、ファイナンス関連のアカウントをひとつにまとめるために一般的に使用されています。
図4 : 悪意のある/侵害されたアカウントアグリゲーターからクレデンシャルが盗まれるケース
従来型のハーベスティング攻撃でも悪質なプロキシを使用するフィッシングによって同じ成果を得ることができますが、アカウントアグリゲーション攻撃は、正規のアプリケーションであることを装い続けられる性質故に、より効果が高いと言えます。
クレデンシャルクラッキング
クレデンシャルクラッキングはログインエンドポイントに対するブルートフォース攻撃のひとつで、有効なクレデンシャルを特定する目的で単語リストを使用します。これは、(無差別攻撃の) クレデンシャルスタッフィング攻撃と似ているように思われるかもしれませんが、クレデンシャルクラッキングは特定のアカウントや特定のアカウントタイプに対象を絞る傾向があります。
この攻撃は、ユーザー名の列挙に弱いアプリケーションに対して大きな効果を発揮します。有効なユーザー名が特定されると、有効なクレデンシャルを特定するためにブルートフォース攻撃がしかけられます。
攻撃への対応策
最新の認証方法
2段階認証 (2FA) やパスキーの使用を含む最新の認証方法では、アカウントへのアクセスにパスワードを入力する以上のことが求められるため、セキュリティを大幅に強化できます。
さらに、2FA に加えて適切な登録とリセットのプロセスを使用し、ユーザーが知っていること (パスワード) をユーザーが持っているもの (プッシュ型 2FA ベースのスマートフォンアプリやハードウェアトークンなど) やユーザー自身のデータ (指紋や顔認証などの生体認証) と組み合わせることで、保護レイヤーを追加できます。
表1 : 脅威の種類別にみた認証方法の効果
SMS または時間ベースのワンタイムパスワード (TOTP) を2つ目の認証要因として使用することはコスト効果が高いとはいえ、悪意のあるプロキシによる中間者攻撃から十分な保護を得ることはできないことにご注意ください。クレデンシャルと同様にトークンが対象のWebサイトに伝達される可能性があるためです。
同様に、「プッシュ型 2FA」を2つ目の認証要因として使用する場合も、2つ目の要因が帯域外で認証されるため、中間者攻撃やアカウントアグリゲーション攻撃に対して脆弱になります。ハードウェアトークンも、一般的に生体認証が求められないため、デバイスの盗難というリスクを抱えています。つまりデバイスを所有している限り、誰でも2番目の認証をクリアできるのです。ただし、デバイスを盗むには物理的に近い場所にいる必要があるため、リスクはかなり低く、特に業界で広く採用されていることを考えると、日々の使用に適したソリューションと言えます。
一方、デバイスに保存される暗号キーのパスキーを使用する場合、パスワードを使用する必要が完全に無くなり、非常にセキュアでシームレスな認証体験を提供できます。また、パスキーを有効化する際に通常、生体認証が必要になります。このサインイン方法の採用が現在進んでおり、サポートされているあらゆる場所でパスキーを使用することをお勧めします。Fastly の開発者エクスペリエンスチームがパスキーと WebAuthn の仕組みについて解説し、Fastly Compute を使用してWebサイトでこららを実装する方法をご紹介する動画をぜひご覧ください。
これらのメソッドにより、たとえ攻撃者がパスワードの侵害に成功してもアカウントへのアクセスが非常に困難になるため、アカウント乗っ取り攻撃のリスクを緩和できます。パスキーやハードウェアトークン (共に WebAuthn 標準を実装) を使用する主なメリットのひとつは、クレデンシャルが登録中にWebサイトの URL と紐づけられているため、フィッシング攻撃に対して抵抗力があることです。Webサイトが扱う情報の機密性に基づいて、これらのオプションの中から適切な2段階認証方法を選べます。
自動攻撃対策機能
リクエスト分析やユーザーエージェントの完全性の確認、暗号化チャレンジ、視覚的/音声チャレンジなどの自動攻撃対策機能を活用することで、リクエストが人間によって送信されたものか、それともボットによって生成されたトラフィックかを特定できます。また、さまざまな形式のレート制限を使用して自動化された攻撃を緩和またはスローダウンさせることも可能です。
侵害されたクレデンシャルの検出
侵害されたパスワードの使用を確認することで、クレデンシャルスタッフィング攻撃に対して非常に効果の高い防御対策を講じることができます。「記憶シークレット」に関する NIST のガイダンスでは、ログインやサインアップ、パスワードリセットの際に、使用するパスワードを以前侵害されたクレデンシャルのコーパスから取得したパスワードと照らし合わせることが推奨されています。このトピックについて詳しくは、Fastly Compute と KV Store を活用するソリューションをご紹介した過去のブログ記事をご覧ください。
推奨事項
パスワードの使用が避けられない場合は、パスワードマネージャーを利用し、自動生成されたパスワードを使用することで、パスワードの再利用を防ぎクレデンシャルスタッフィング攻撃を緩和できます。
パスキーを実装し、ユーザーにパスキーの採用を推奨します。パスキーはパスワードに代わる便利なメソッドで、アカウントのセキュリティを飛躍的に強化できます。
サードパーティのアプリやアグリゲーターの使用におけるリスクについてユーザーの認識を高めることで、クレデンシャルが漏えいするリスクを軽減できます。
サードパーティアプリと一緒に使用する目的でのアクセスが制限されるよう API キーをプロビジョニングすることで、クレデンシャルの漏えいを防ぐと同時に、サードパーティアプリからのリクエストのモニタリングを強化する機会も得られます。
ATO 対策への包括的なアプローチ
この記事では、アカウント乗っ取り攻撃で利用される自動攻撃の一部をご紹介しました。しかし、XSS によるセッションのハイジャックやフィッシングによるクレデンシャルハーベスティングなど、他の形式のアカウント乗っ取り攻撃も存在するため、セキュリティリスクに包括的に取り組むことが重要になります。アカウント乗っ取りのリスクに対処するには、従来型 WAF、効果的なボット管理、強力なセキュリティプラクティス、エンドユーザーの教育を組み合わせる必要があります。
参照資料