多要素認証 (MFA) では、アカウント乗っ取りの脅威は解決されません。 確かにハードルは上がりますが、意志の固い攻撃者は利用可能な認証要素をすべて回避する巧妙な方法を発見しました。 MFA は認証の問題を解決するのではなく、攻撃対象領域を拡大するものと考えるべきです。つまり、各要素によって、新しい依存関係のシステム、バグや脆弱性の新しい原因、ソーシャル エンジニアリングの新たな機会が導入されるのです。 残念ながら、多くのセキュリティ組織は、MFA を、かつてネットワーク境界とみなしていたのと同じように、さまざまな攻撃を解決する防壁とみなしています。 ゼロトラストセキュリティの提唱者によって暴露されたセキュア境界の誤りにより、攻撃者はネットワーク内の脆弱性を悪用して横方向に移動して権限を昇格できるようになりました。 同様に、MFA がアカウント乗っ取りの問題を解決できるという誤解により、セキュリティ組織は MFA の弱点や、ユーザー アカウントを犯罪者の乗っ取りにさらす多くの残存するシステム脆弱性を認識できていません。 このホワイトペーパーでは、攻撃者が MFA を回避する方法に注目することで、MFA によって、ボット緩和、JavaScript サプライチェーン保護、コンテキスト リスクの監視など、MFA のセキュリティ上の利点を強化しながら、ユーザーに課される摩擦を軽減する手法など、他の特定のセキュリティ対策がさらに重要になることを示しています。
弱点があるにもかかわらず、MFA は今後も使用され続けるでしょう。それには十分な理由があります。パスワードのみの認証は明らかに失敗しているからです。
人間は、長くてランダムな文字列を単純に記憶することができません。 その結果、私たちは近道をとったり、覚えやすく予測可能なパスワードを選択したり、異なるアプリケーション間でパスワードを再利用したり、付箋にパスワードを書き留めたりします。 企業はパスワードの長さと複雑さに関する要件を課すことでこのリスクを軽減していますが、人間の記憶には限界があります。複雑さに関する要件がある場合でも、最初の文字だけを大文字にする、似たような英数字の代わりに特殊文字を挿入する (S の代わりに $ を使用する)、パスワードの最後に 123 などの推測可能な数字を追加するなど、予測可能な方法を見つけます。 (パスワードの予測可能性に関する調査結果を参照してください。)
私たち人間にも、ソーシャルエンジニアリングに対して脆弱になるような欠陥が共通しています。 攻撃者が私たちの信頼、従順の欲求、権威への尊敬、そして助けたいという意欲を悪用すると、私たちはパスワードを渡します。 結局のところ、ただ尋ねるだけで人々はパスワードを教えてくれることがあります。それは、ジミー・キンメル・ライブのこの面白いビデオで見ることができます。
パスワードベースの認証のこうした弱点を考慮して、政府機関や業界団体は MFA の導入を推進しています。 2021年5月、バイデン大統領は連邦政府機関に180日以内にMFAを導入するよう求める大統領令を発令し、サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)は民間企業向けにMFAを推進しています。 ペイメント カード業界セキュリティ標準協議会は、データ セキュリティ標準 v4.0で、組織が 2025 年 3 月 31 日までにクレジットカード所有者データへのすべてのアクセスに対して MFA を実装することを義務付けています。
パスワードのみの認証に比べて MFA が明らかに優れていることがその導入を促進していますが、セキュリティ専門家は MFA の欠点、つまり攻撃対象領域を拡大し、攻撃者が認証制御を回避できる新たな脆弱性を生み出す点にこれまで以上に注意を払う必要があります。
MFA は、認証プロセスで 2 つ以上の要素を適用することとして定義されます。 要素とは、あなたが自分自身であると主張する人物であることを証明する方法を意味します。
MFA を実装する方法は無数にありますが、その多くは新たな攻撃対象領域を開いたり、パスワードのみの認証に特徴的な同じ脆弱性にアプリケーションをさらしたりします。
MFA を実装する方法は無数にありますが、その多くは新たな攻撃対象領域を開いたり、パスワードのみの認証に特徴的な同じ脆弱性にアプリケーションをさらしたりします。
最も広く普及している MFA の実装では、SMS を使用してユーザーにワンタイム パスワード (OTP) を送信し、原理的にはスマートフォンの所有を証明します。 通常、ユーザーはユーザー名とパスワードを使用してログインを開始し、アプリがテキスト メッセージを送信するようにトリガーします。 次に、ユーザーは OTP を表示してアプリに入力し、認証を完了して、設定された期間有効なセッション トークンを生成します。
SMS 経由で所持要素を実装しても、いくつかの重要な脆弱性を解消できません。 ユーザーが OTP とパスワードをアプリケーションに入力し、アプリケーションが使用するのと同じ通信チャネルを介して OTP をサーバーに送り返すため、アプリケーション、デバイス、またはネットワークのいずれかを侵害した攻撃者は、パスワード、OTP、およびセッション トークンにアクセスできるようになります。
攻撃者は、多くの確立された、そして今でも広く普及している手法を使用して、デバイスをマルウェアに感染させて乗っ取り、結果としてマン・イン・ザ・ブラウザ (MitB) 攻撃を引き起こします。 ブラウザでコードを実行すると、攻撃者はユーザーに代わって認証できるパスワードと OTP を取得できるようになります。 あるいは、攻撃者は認証を完了させてセッション識別子を盗み、それを使用して認証をバイパスし、ユーザーのアカウントにアクセスすることもできます。 (エンドポイントに感染するマルウェアの最新傾向については、 BlackGuard Infostealerに関する F5 Labs レポートを参照してください。)
アプリケーションに感染することで、攻撃者は大量のユーザーのアカウントを乗っ取ることができます。 マルウェアを通じて企業のインフラストラクチャを侵害する以外に、犯罪者は、アプリケーションを構成するコード ライブラリのいずれかを侵害することでアプリケーション データにアクセスできます。これは、サプライサイド攻撃と呼ばれる戦術です。
ソフトウェア サプライ チェーン攻撃では、攻撃者は通常、標的の組織にソフトウェア コンポーネント (ライブラリ、フレームワーク、サービス) を提供する信頼できるサードパーティ ベンダーまたはオープン ソース リポジトリを標的とします。 攻撃者は、アプリケーションに統合されるコンポーネントにマルウェアを挿入します。 この攻撃が効果的である理由は、すべてのベンダーやオープンソース チームが安全なコーディング プラクティスを実施するために必要なスキルとリソースを備えているわけではないためです。
Web アプリケーションやモバイル アプリケーションは、通常、数十のサードパーティ スクリプトが含まれており、その多くがタグ マネージャーによってページに動的に追加されるため、サプライ チェーン攻撃に対して特に脆弱です。 頻繁に予告なく変更されるこれらのスクリプトは、組織のコード セキュリティ チェックを通過しません。 攻撃者がこれらのスクリプトのいずれかを侵害すると、アプリケーションを完全に制御できるようになります。つまり、ユーザー入力を読み取ったり、ブラウザ メモリ内のデータにアクセスしたり、ユーザー ジャーニーを乗っ取って警告なしに悪意のあるアプリに誘導したりできるようになります。
Magecart などのサプライ チェーン攻撃により、数十万件の資格情報のセキュリティ侵害が発生しました。 MitB 攻撃と非常によく似て、これらのサプライ チェーン攻撃は、所有を証明するトークンがアプリケーションに入力されるあらゆる MFA ソリューションに対して有効であり、これは OTP を使用するほとんどの実装で一般的です。 悪意のあるコードはユーザー入力を読み取るため、静的パスワードと OTP の両方だけでなく、アプリケーションによって収集されたその他の個人情報や財務情報も盗む可能性があります。
SMS ベースの認証では、パスワード、OTP、セッション トークンが同じネットワーク接続を介して送信されるため、この形式の MFA は、DNS ポイズニング、ARP ポイズニング、不正なワイヤレス アクセス ポイントなどの一般的な攻撃ベクトルを使用した中間者(MitM) 攻撃に対して脆弱なままです。
SMS ベースの MFA に対する最も一般的で成功率の高い攻撃の 1 つは、ソーシャル エンジニアリングを使用して、リアルタイム フィッシング プロキシ (RTPP) 経由で MitM 攻撃を確立することです。
この攻撃では、詐欺師はフィッシング メールを使用してユーザーを騙し、攻撃者が管理するサイトにアクセスさせ、そこでユーザーに資格情報を入力させます。 これまでのところ、この戦術は資格情報の盗難を目的としたフィッシング攻撃と同一ですが、MFA を回避するには追加の手順が必要です。 ユーザーがアプリにユーザー名とパスワードを入力すると、攻撃者はそれらの資格情報をターゲット アプリケーションに転送し、ターゲット アプリケーションはユーザーに 2 要素認証の要求を発行します。 ユーザーは、信頼できるアプリケーションに対して認証していると考えているため、リクエストを承認する可能性が非常に高くなります。つまり、ユーザーは承認ボタンをクリックするか、忠実にアプリにトークンを入力します。どちらの場合でも、攻撃者はアプリケーションにアクセスできるようになります。 (攻撃のデモについては、Kevin Mitnick によるこのビデオをご覧ください。)
自動化とユーザーがフィッシング詐欺に引っかかりやすい傾向により、RTPP 攻撃は大規模に成功する可能性があります。 (リアルタイム フィッシング プロキシの増加に関する詳細なデータについては、 F5 Labs のフィッシングおよび詐欺レポートを参照してください。)
パスワードのみの認証の既存の脆弱性の多くを解消できないことに加え、SMS を 2 番目の要素として使用すると、アプリケーションが追加の攻撃ベクトルにさらされることになります。
おそらく、所持品ベースの認証に対する最も明白な攻撃は、物理デバイスの盗難です。 携帯電話を盗んだ犯罪者は、携帯電話がロックされている場合でも、通知に表示される OTP にアクセスできる可能性があります。 携帯電話の盗難の被害者の多くは、銀行口座の資金を失っていることに気づきました。
犯罪者は、テキストで送信された OTP にアクセスするために、実際に携帯電話を物理的に所有する必要はありません。 SIM スワッピング(SIM ハイジャックまたは SIM ポーティングとも呼ばれる) により、攻撃者は顧客向けアプリで使用される最も一般的な MFA 形式である SMS ベースの認証をバイパスできるようになります。 SIM スワップ攻撃では、詐欺師は、携帯電話を紛失したり盗まれたりしたときに役立つ、電話番号を別のデバイスに転送する通信サービス プロバイダーの機能を悪用します。
詐欺師は、オンライン調査、フィッシング、ソーシャルエンジニアリングを通じて被害者の個人情報を収集することから始めます。 この情報を使って、攻撃者は電話会社を説得し、被害者の電話番号を詐欺師の SIM に転送させます。 あるいは、攻撃者は、クレデンシャルスタッフィング、ブルートフォース攻撃、辞書攻撃などを使用して、サービスプロバイダーのユーザーアカウントに侵入する可能性があります。
被害者の電話サービスを制御することで、詐欺師は被害者宛てのすべての SMS と音声通話を受信できるようになります。 これにより、詐欺師はテキスト経由で送信されたセキュリティ トークンを傍受できるようになります。
ハードウェア トークン デバイスは、通常は非常に小型の特殊なデバイスで、ユーザーが認証のためにアプリケーションに入力する OTP を表示します。 これらのデバイスは、アプリケーションからユーザーへの通信を必要とせずに所有を証明する手段を提供し、SMS ベースの認証の主な脆弱性の 1 つを排除します。
デバイスは、ログインごとにユーザーに OTP を送信するのではなく、初期シード値とアルゴリズムに基づいて OTP のストリームを生成します。 シード値自体は、セットアップ時にデバイスと認証サービス間で共有されます。 シード値は、ログイン要求などのイベント、または 60 秒などの時間間隔で増加するカウンターによって拡張されます。 これらをそれぞれ、イベントベースの OTP (EOTP) と時間ベースの OTP (TOTP) と呼びます。 EOTP と TOTP はどちらもハッシュベースの OTP (HOTP) の一種です。これは、カウンターとシードがハッシュ関数に渡され、明らかにランダムな数字の文字列を生成するためです。ハッシュ関数が正しく実装されていれば、予測可能なパターンは現れません。
ハードウェア トークンを使用すると、OTP をテキストで送信する必要がなくなるため、SIM スワッピングなどの手段でユーザーに届く前に OTP をキャプチャすることが不可能になります。 ただし、ユーザーはアプリに OTP を入力する必要があり、アプリはパスワードと同じ通信チャネルを使用して OTP を認証サービスに送信するため、SMS ベースの認証のその他の脆弱性のほとんどは残ります。 攻撃者は、テキストで配信される OTP の場合とまったく同じ方法で、エンドポイント、ネットワーク、またはアプリケーションを侵害することにより、パスワードと OTP にアクセスできます。
SMS ベースの認証に対する最も一般的な攻撃であるリアルタイム フィッシング プロキシは、ハードウェア デバイスで生成された OTP に対しても同様に機能します。これは、OTP が電話に表示されるか専用デバイスに表示されるかに関係なく、ユーザーが騙されて偽のサイトに OTP を入力するためです。
ハードウェア デバイスは、ユーザーに送信される OTP を攻撃者がキャプチャする可能性を排除しますが、デバイスは侵害される可能性のあるシード値に依存しています。 攻撃者は、デバイスに物理的にアクセスしたり ( 「MFA をハッキングする 12 以上の方法」の電子顕微鏡攻撃に関する記述を参照)、認証サービスが使用するデータベースを侵害したり、デバイスと認証サービスの間でシード値が合意されるセットアップ プロセスを傍受したりすることで、シード値にアクセスできます。
認証アプリはハードウェア トークンとほぼ同じように機能し、初期シードとアルゴリズムに基づいて OTP のストリームを生成し、脆弱なチャネルを介してシードを通信する必要性を回避しますが、代替チャネルを利用して OTP を通信することでさらに一歩進んだ機能を実現することもできます。 このシナリオでは、ユーザー名とパスワードの検証が成功すると、認証サービスは認証アプリにプッシュ通知を送信し、ユーザーにリクエストの承認を求めます。 承認されると、認証アプリは、ユーザーがアプリケーションに OTP を入力する必要なく、OTP を認証サービスに直接送信します。 認証アプリと認証サービス間の通信は、別の接続を介して行われます。
代替通信チャネルを使用すると、OTP がアプリケーションに入力されることがないため、攻撃者がアプリケーションを侵害して OTP にアクセスできなくなります。 また、パスワードと OTP は別々のセキュリティ保護されたチャネルを介して配信されるため、ネットワーク接続を侵害してパスワードと OTP の両方を収集することはより困難になります。 ただし、エンドポイントが侵害されると、アプリケーション自体と認証アプリが同じデバイス上で実行されている場合、攻撃者がパスワードと OTP の両方にアクセスできるようになる可能性があります。 (Google Authenticator を侵害するマルウェアに関する F5 Labs のレポートをご覧ください。)
残念ながら、認証アプリはリアルタイムのフィッシングプロキシの使用を防ぐことはできません。 ユーザーは、フィッシング テキスト メッセージを通じて偽のサイトにユーザー名とパスワードを入力するように騙されてしまいます。 資格情報を入力すると、アプリケーションは認証アプリへのリクエストをトリガーします。ユーザーは信頼できるアプリケーションにログイン中であると考えているため、リクエストを承認して認証を完了する可能性が高くなります。 攻撃者は OTP を見ることはありませんが、攻撃者のプロキシが認証されたセッションを制御できるようになり、攻撃者はユーザーのアカウントにアクセスできるようになります。 (RTPP とプッシュ通知認証の詳細については、Hacker News のフィッシング プラットフォームに関するこの記事を参照してください。)
さらに、認証アプリの使いやすさにより、攻撃者がソーシャル エンジニアリングを通じて MFA を破ることができる別の手段が生まれました。 MFA 爆撃攻撃または MFA 疲労攻撃では、攻撃者は認証コードを求める不正なリクエストを複数回送信して、ターゲットを騙して認証コードを渡させます。 攻撃者は通常、自動化ツールを使用して大量のリクエストを生成し、認証コードの入力を求める過剰な数の通知やメッセージで被害者を圧倒します。
MFA 爆撃は、ユーザーを騙して SMS メッセージやハードウェア デバイスから OTP を入力させる可能性がありますが、ユーザーがボタンを押すだけで大量のリクエストを簡単に停止できるため、認証アプリに対しては特に効果的です。
生体認証を実装する方法は、所持品ベースの認証以外にもたくさんあります。 認証要求をトリガーし、そのデータを認証サービスに返す方法は数多くあるだけでなく、指紋から虹彩スキャンまで、さまざまな形式の生体認証があります。 スキャンを実行するために必要なハードウェアは、ラップトップの指紋リーダー カメラのように、アプリケーションを実行するデバイスに組み込まれている場合もあれば、別のハードウェアを必要とする場合もあります。 生体認証リーダーは、オペレーティング システムまたは専用のアプリケーションによって制御される場合があります。 実装におけるこれらのばらつきを考慮すると、すべての脆弱性をモデル化することは困難です。 しかし、生体認証はセキュリティが高いという評判があるにもかかわらず、生体認証には依然として明らかな脆弱性が存在していることを認識することが重要です。
実際、所持要素を回避する一般的な方法の 1 つであるリアルタイム フィッシング プロキシは、生体認証を回避するのにも同様に使用できます。 ユーザーが、攻撃者が制御するアプリケーションを信頼できるアプリケーションだと思い込んでログオンすると、そのアプリケーションは資格情報を使用してユーザーに代わってアプリケーションにログインし、生体認証の要求をトリガーします。 ユーザーが実際のアプリケーションに認証していると信じている場合、生体認証を続行し、攻撃者にアカウントへのアクセスを与えてしまう可能性があります。 (W3C によって作成された FIDO2 標準WebAuthn にはフィッシングに対する保護機能が含まれていますが、Web アプリケーションではまだ広く採用されていません。)
エンドポイント、アプリケーション、またはネットワークを侵害することで生体認証を破ることができるかどうかは、具体的な実装によって異なります。 生体認証システムがアプリケーションと同じデバイス上で実行される場合、エンドポイントが侵害されると認証が破られる可能性があります。 アプリケーションが生体認証プロセスを管理している限り、アプリが侵害されると認証が破られる可能性があります。 また、生体認証がアプリケーションが使用するのと同じ通信チャネルを介して送信される場合、ネットワークが侵害されると認証が破られる可能性があります。 つまり、生体認証には、実装に固有の詳細な脅威モデル化が必要です。
生体認証は、コピーやなりすましに対する明確な脆弱性をもたらします。 指紋について考えてみましょう。 私たちは、触れるほぼすべての滑らかな表面に、あらゆる場所にそれらを残します。 私たちはそれをドアノブやレストラン、ゴミ箱に捨てます。 これらの表面から指紋を採取するのは簡単です。私たちは皆、警察ドラマで何度もそれを見たことがあります。 指紋を複製することも、3Dプリンターからグミベアまで何でも使って簡単にできます。
他の形式の生体認証については、生体認証の偽装方法を明らかにするセキュリティ研究者と、偽装防止技術を開発するベンダーとの間で競争が続いています。 3Dマスクは空港の顔認証装置を欺いてきたが、生体認証やその他の方法で検出される可能性がある。 同様に、攻撃者は音声認識システムを迂回するためにディープフェイク音声合成による音声録音を使用していますが、録音デバイスによって追加された微妙な歪みを通じてこれらのなりすましを検出できる可能性があります。 化粧用コンタクトレンズや人工眼を使用すれば、虹彩画像さえも複製して偽装することができますが、人体組織と合成材料の光の違いなど、さまざまな偽装防止技術によって偽装を検出できます。 つまり、生体認証リーダーのセキュリティは、なりすましやなりすまし防止技術の現状に依存することになります。
たとえ私たちが隠遁生活を送り、物理的に表面に触れることを避けていたとしても、攻撃者は私たちの生体認証データを盗む可能性があります。 マルウェア、ソーシャルエンジニアリング、パッチ未適用の脆弱性の悪用により、攻撃者は数十億のユーザー名とパスワードを盗みました。 攻撃者がパスワードを保存しているデータベースに侵入できれば、生体認証を保存しているデータベースにも確実に侵入するでしょう。 そして、一度でも侵害によって生体認証情報が漏洩すると、なりすましが検知されるかどうかによっては、認証にその情報を使用することが安全ではなくなる可能性があります。
生体認証で測定する特性を簡単に変更できないため、コピーやなりすましのセキュリティリスクがさらに高まります。 攻撃者がパスワードを盗んだ場合、パスワードを変更することができます。 攻撃者が OPT ドングルまたは携帯電話を盗んだ場合、それを交換してシードをリセットできます。 しかし、攻撃者が私たちの指紋、掌紋、顔画像、またはその他の生物学的特徴にアクセスし、それらを効果的に偽装する方法を習得した場合、私たちは大きな苦痛を伴わずにこれらの身体的特徴を変更することはできません。
MFA は単一要素のパスワードベースの認証よりも改善されていますが、少なくとも現在普及している実装形式では依然として脆弱です。 したがって、MFA をセキュリティの旅の終わりと考えるのではなく、新たな始まりと考えてください。 脅威モデリング、コードレビュー、脆弱性スキャン、侵入テスト、レッドチーム演習など、アプリ セキュリティのベスト プラクティスはこれまでと同様に重要です。 脅威モデリングでは、ID ストアから物理、ネットワーク、データ セキュリティに至るまで、さまざまな攻撃ポイントを考慮して、認証およびセッション管理プロセスの各側面を検討します。 サイバー攻撃はおそらく最も弱い部分を標的にするだろう。 特に、MFA の脆弱性は、自動化の緩和、JavaScript サプライ チェーン攻撃からの保護、リスク コンテキストの考慮など、より注意を払う必要があるいくつかの重要な懸念事項を示しています。
犯罪者はボットを利用して、クレデンシャル スタッフィング、リアルタイム フィッシング プロキシ、MFA ボミングなど、MFA に対するいくつかの主要な攻撃を拡大しています。つまり、ボットを軽減することが、あらゆる形式の MFA を保護する鍵となります。
OWASPで定義されているように、クレデンシャル スタッフィング攻撃では、犯罪者は、通常はダーク ウェブでの購入を通じて、以前の侵害から盗まれた資格情報を取得し、それらの資格情報を他のアプリケーションのログインに対してテストします。 侵害により数十億の認証情報が漏洩しているため、犯罪者はボットを使用してテストを自動化し、膨大な数の認証情報をテストすることで利益を最大化しています。 連邦捜査局、証券取引委員会、ニューヨーク州司法長官は、クレデンシャル・スタッフィングの経済的リスクについて警告を発しており、130を超える規制当局の団体であるグローバル・プライバシー・アセンブリーは、クレデンシャル・スタッフィングはプライバシーに対する世界的な脅威であると宣言した。
クレデンシャル スタッフィングの防止は、パスワードのみの認証の場合と同様に、MFA にとっても重要です。 MFA の全体的なポイントは、複数の要素を使用することですが、最初の要素を保護できない場合は、残る要素は 1 つだけになります。 攻撃者がユーザーのパスワードを発見すると、2 要素認証は 1 要素認証になり、多層防御が失われます。
さらに、犯罪者はボットを使用してパスワード以外のものを攻撃するため、ボットを軽減することが重要です。 実際、ボットは、MFA を破るための最も一般的なメカニズムであるリアルタイム フィッシング プロキシ攻撃を成功させるための重要なツールです。 ユーザーがフィッシング メールの被害に遭い、偽のサイトに認証情報を入力するよう誘導された場合、攻撃者は、その認証情報をターゲット アプリケーションに転送して、MFA 要求を生成する必要があります。その要求に SMS、認証アプリ、高度な生体認証が含まれるかどうかは関係ありません。 リクエストを迅速かつ大規模に転送するには、犯罪者はプロセスを自動化する必要があります。つまり、リクエストはボットからアプリケーションに転送されることになります。 (ボットを使用して OTP をバイパスするサービスの概要については、Krebs on Security の投稿「ワンタイム パスワード傍受ボットの増加」を参照してください。 ) つまり、望ましくないボットが資格情報を送信するのを防ぐことで、組織はリアルタイムのフィッシング プロキシの有効性を損ない、所有と固有の両方の認証要素をより効果的に保護することができます。
犯罪者がボットを使用して MFA を攻撃するもう 1 つの明白な方法は、MFA 爆撃です。 この文脈におけるログイン爆撃とは、大量のログイン要求を生成して非常に多くの認証要求をトリガーし、ユーザーが誤って、または単に煩わしさを解消するためにそれに応じることを意味します。 攻撃が利益を生むほど多くのユーザーに対して大量のリクエストを生成するには、犯罪者は自動化する必要があります。つまり、サイトに到達するログイン リクエストはボットによって作成されることになります。
これらの例が示すように、MFA に対するほぼすべての攻撃は、ボットが大規模に成功することに依存しているため、MFA を実装する組織はボットの軽減を真剣に受け止める必要があります。
残念ながら、多くの組織はボットの高度化と、検出を回避するためにボットを頻繁に改良しようとする犯罪者の決意を理解していません。 むしろ、CAPTCHA、IP アドレス拒否リスト、HTTP ヘッダー フィンガープリントなど、もはや機能しないボット緩和技術に依存している企業が多すぎます。
CAPTCHA は、ボットが機械学習とクリック ファームに依存する低コストの CAPTCHA 解決サービスを使用してこれらのパズルを回避できるため、実際の顧客を困らせる以外に、ボット保護にはほとんど役立ちません。 CAPTCHA 解決サービスについて Web 検索するだけで、価格と速度で競合するサービスが少なくとも 12 個見つかります。 これらのサービスについて詳しく知りたい方は、F5 のインテリジェンス部門責任者である Dan Woods 氏の「I Was a Human CAPTCHA Solver」という記事をご覧ください。 さらに興味深いことに、 ChatGPT はソーシャル エンジニアリングを利用して、誰かに代わって CAPTCHA を解かせることで CAPTCHA を回避することに成功しました。
ボットを軽減するために WAF ベースの IP 拒否リストに依存している組織にとって、この作業は同様に困難です。 ボット検出を回避することを目的とした数千万の住宅用 IP アドレスをボット作成者に提供するサービスが存在します。 これらのサービスは、ローテーション型住宅プロキシとして宣伝されています。多くの企業ブラウザがフォワード プロキシ経由でリクエストを送信するのと同じように、ボットはプロキシに HTTP リクエストを送信し、サービスは Web サイトまたは API にリクエストを送信するために使用するパブリック IP アドレスを継続的にローテーションします。これまで、ボットは一般的に、よく知られていて識別しやすいクラウド サービスのデータ センター プロキシを使用していました。 ただし、これらの新しいプロキシ サービスでは、顧客と同じ地理的エリアの住宅 IP アドレスが使用されます。 インターネット サービス プロバイダー (ISP) による NAT により、各 IP アドレスが同時にボットまたは有効な顧客を表す可能性があるため、実際の顧客を拒否せずにこれらすべての IP アドレスをブロックすることは現実的ではありません。 (これらのサービスが IP アドレスを取得する方法については、論文「Your Phone is My Proxy」を参照してください。)
ヘッダーの順序の違いに基づいてボットを検出しようとすることも、ボットがそのトリックに気付いたため、同様に機能しなくなりました。 実際、 stealth-puppeteerやundetected-chromedriverなどのいくつかのオープンソース プロジェクトは、ヘッダーの順序を正しくする作業を行っており、これらの一般的な自動化フレームワークを使用しながら検出をバイパスすることが容易になっています。
今日の高度なボットを検出するには、高度な信号収集、24 時間 365 日の監視、機械学習、ボットの改造に対する迅速な対応が必要です。 専用のボット管理ソリューション、つまり、ボットの改造を迅速に検出して対応する防御策がなければ、犯罪者はボットを利用して MFA に対する攻撃を効果的に拡大することができます。
考えられるほぼすべての形式の MFA は、アプリケーションの侵害が発生すると失敗します。 攻撃者がアプリケーションにコードを挿入すると、ゲームオーバーになります。 攻撃者は、資格情報やその他の MFA 入力をキャプチャしたり、セッション識別子を盗んでセッションを乗っ取ったり、アプリケーションから直接データを盗み出したりすることができます。 現代の Web アプリケーションは通常20 を超える JavaScript ファイルで構成されており、そのほとんどはサードパーティからのものであり、組織のアプリケーション セキュリティ チームによって確認されていないため、JavaScript サプライ チェーン攻撃によるアプリケーション侵害のリスクは、認識されているよりも高くなります。
既存のクライアント側セキュリティ プロトコルは静的すぎるため、今日の動的な Web アプリを防御することはできません。 コンテンツ セキュリティ ポリシー (CSP) は、JavaScript サプライ チェーン攻撃を防止できる方法でスクリプトの動作を制限しますが、サードパーティ ベンダーが CSP の制限に反する方法でスクリプトを動的に更新すると、CSP によってサイトの機能が簡単に破壊される可能性があります。 セキュリティ ポリシーに違反した場合にスクリプトが失敗するようにしたい場合もありますが、運用環境での失敗は顧客に重大な影響を及ぼす可能性があります。 ( CSP が失敗する理由を参照してください) 別の Web セキュリティ プロトコルであるサブリソース整合性 (SRI) は、スクリプトが変更されるたびにハッシュ値を使用してスクリプト タグを更新する必要があり、変更が予告なく発生した場合には不可能であるため、サードパーティの動的コンテンツにはさらに適していません。 実際、SRI は、ほとんどの最新アプリケーションが依存しているタイプのスクリプト更新を防止することを目的としています。
JavaScript サプライ チェーンの脆弱性を排除するための明確な制御がなければ、組織は少なくともリスクを監視する手段を見つけるために創造力を発揮する必要があります。 組織は、サイト上のスクリプトをより適切に文書化し、ソースと変更頻度に基づいてスクリプトのリスクをランク付けできます。 タグ マネージャーを通じて追加されたスクリプトは、リスクを評価するために定期的にレビューする必要があります。 合成モニタリング、レポート モードの CSP、またはブラウザーで実行される JavaScript ベースのエージェントのいずれかを使用してスクリプトの動作を追跡するモニタリング ツールを入手できます。
サードパーティのスクリプトはセキュリティレビューの機会もなく頻繁に変更されるため、組織は、スクリプトが機密データを読み取って信頼できないドメインに流出させるなどの疑わしい動作がないかアプリケーションを継続的に監視することが重要です。 JavaScript サプライ チェーン攻撃に対するこの監視がなければ、いかなる形式の MFA でもユーザーを安全に保つことはできません。
MFA の目的は、無意味なセキュリティ対策で顧客に負担をかけることではなく、セキュリティを向上させることです。 ログイン要件を状況リスクに適応させることで、組織は貴重なリピーターに MFA 要件を課し続けることを回避し、代わりにユーザー セッションを延長して顧客の旅を楽にし、TSA が TSA PreCheck で信頼できる旅行者を迅速に処理するのと同じように、パーソナライズされた手間のかからないエクスペリエンスで顧客を迎えることができます。
コンテキストリスクにはさまざまな側面があります。
ユーザーがこれまで良好な行動をとってきた実績があり、同じ場所、同じデバイス、同じ時間帯、同様の行動、通常の機能を使用してサイトにアクセスする場合は、ユーザーにログインを要求する必要すらない場合もあります。むしろ、ユーザーの利便性のために、継続的なサイレント認証を実行してセッションを延長します。 コンテキストが通常から逸脱し、リスクが高まっていることを示している場合は、アプリケーションに適応型ポリシーを追加して、段階的にセキュリティ要件を高めることができます。たとえば、パスワード ログインの要求、2FA の要求、レビュー対象のアカウントのフラグ付け、ログインに関する SMS または電子メールによるユーザーへの警告、アカウントのロックによるユーザーによるサポートへの問い合わせの強制などです。
多くの場合、セッションの長さはコンテキストのリスクに関係なく設定された期間であり、セッション トークンを持つすべてのユーザーが、セッション ハイジャックのリスクを無視して、ユーザーが許可されているデータに引き続きアクセスできるようになります。 より安全なアプローチは、ゼロ トラストの原則に従うことです。つまり、侵害を想定して継続的に監視することです。 セッション内でコンテキストが変更された場合は、セッションを早期に終了し、追加の認証を要求します。認証の厳しさは、コンテキストの変更の程度とデータの機密性に応じて異なります。
セキュリティは旅であるという決まり文句に沿って、MFA は道にいくつかの分岐を作成し、追加のオプションを提供します。これを正しく実装すると、セキュリティが有意義に強化されます。 しかし、どんな形式の MFA でも、要素がいくつあっても、実装がうまくいっても、コストがかかっても、目的地に到着するまでの過程を省略することはできません。 パスワードの終焉を宣言する声や、新しい MFA 技術によって認証が永久に安全になるという宣伝文句が今後さらに増えることは確実ですが、執念深い攻撃者が新しい技術を回避する方法は残るでしょう。
重要なアプリケーションのセキュリティを強化するための取り組みにおいて、F5 はパートナーとなります。 F5 の分散クラウド サービスには、ボットを軽減するボット防御、JavaScript サプライ チェーン攻撃を監視するクライアント側防御、リピーター ユーザーを認識してコンテキスト リスクを定量化する認証インテリジェンスが含まれます。 F5 のサポートにより、顧客エクスペリエンスを最適化しながら MFA のセキュリティを確保できます。 F5 分散クラウド サービスの詳細を確認し、弊社チームと話し合うためにサインアップしてください。