攻撃者が最新の二要素認証を回避する手口とユーザーを守る方法

Ben Balthazar, 2020年2月4日
How Attackers Bypass Modern Two-factor Authentication and How to Protect Your Users

この記事では、攻撃者が最も伝統的な方法を回避するために使用できるツールとテクニックの例を見ていきます。二要素認証 (2FA)メソッド、SMS OTPからモバイルアプリへの暗号化されたプッシュ通知まで。攻撃方法は、帯域外認証を含め、今日導入されているほとんどのタイプの2FAに対して非常に効果的です。また、このような攻撃のリスクを軽減し、顧客を保護するために銀行がどのような対策を講じることができるかについても説明します。

攻撃のセットアップ

この攻撃を実行するには、MuraenaとNecrobrowserの2つのツールを組み合わせて使用します。ムラエナはリバースプロキシフィッシングページが実行されます。フィッシングページは、被害者が操作する元のページをプロキシします。被害者がセッションを認証すると、MuraenaはセッションをNecrobrowserに渡します。これにより、攻撃者はセッションを制御したり、攻撃の次のステップを自動化したりできます。Muraenaはリバースプロキシとして機能するため、悪意のあるサイトと元のWebサイトの間にURL以外の違いはありません。Muraenaは、たとえばLetsEncryptを通じて取得した証明書でSSLを使用するように構成できます。被害者の視点から見ると、本物のページとやり取りしているように見えるため、エクスペリエンス全体が正当なように見えます。彼らは2FAを含む通常の認証プロセスを通過します。2FAがSMS、ハードウェア、またはソフトウェアトークンを通じて配信される通常のワンタイムパスワードで構成されている場合、被害者は通常どおりパスワードを入力します。ただし、モバイルデバイスへのプッシュ通知や画面上のQRコードのスキャンなどの最新の方法でさえ、この攻撃によって回避されます。

リバースプロキシフィッシング攻撃の図。

  1. ユーザーがSSLが有効になっているフィッシングページにアクセスします。
  2. リバースプロキシ(Muraena)は正当な銀行ページをフェッチし、コピーを被害者に提供します。
  3. 被害者はページへのログインを試み、2要素認証を求められます
  4. 被害者が認証プロセスを完了すると、リバースプロキシ(Muraena)はセッションを攻撃者(Necrobrowser)に引き渡して制御を奪い、被害者を遮断します。

以下の画像では、ドメインphish.antiでGoogleをホストしているMuraenaを確認できます。デモンストレーションの目的で、これをテストマシンに解決するためにローカルDNSを設定し、ブラウザーによって信頼されている自分のCAを使用して証明書を発行しました。ただし、これが有効な証明書を使用して独自のドメインに展開された場合、被害者の観点からは、このようになります。

SSLを使用してgoogle.comをphish.antiにプロキシするMuraenaのスクリーンショット。

攻撃からの保護

攻撃がどのように機能するかを理解したので、このタイプの攻撃の識別または保護に成功する手順を特定できます。

動的リンクさまざまな攻撃に対する適切な最初の防御層を提供します。動的リンクは、トランザクション時に行われる2要素認証で構成され、トランザクションの詳細が署名プロセスに組み込まれます。エンドユーザーは署名プロセスを完了する前にトランザクションの詳細を提示される必要があるため、しばしば「見たものは署名したもの」と呼ばれます。署名されると、署名はこの特定のトランザクションに対してのみ有効になるため、攻撃者がバイパスすることが難しくなります。通常、動的リンクは、ハードウェアトークン、ソフトウェアトークンを介して実装されるか、バンキングアプリの一部として統合されます。以下に、動的リンクの2つの例を示します。1つは正当な支払い、もう1つは攻撃者が支払いを変更しようとするものです。

正当な支払いにおける動的リンクの図。

  1. ユーザーはオンラインバンキングでトランザクションを作成します。
  2. ユーザーがトランザクションを送信します。
  3. 銀行は取引の詳細をユーザーの携帯電話に送信します。
  4. ユーザーは、転送の詳細を確認し、生体認証(または別の2番目の要素)で支払いを承認します。
  5. モバイルアプリは、トランザクションの詳細とモバイルアプリ内のトークンキーを使用してワンタイムパスワードを生成します。

攻撃者が支払いを変更しようとする動的リンクの図。

  1. ユーザーがオンラインバンキングで支払いを作成しようとしました。
  2. 攻撃者は支払いを変更して、新しい受益者の口座および/または金額を持ちます。
  3. 銀行は取引の詳細をユーザーの携帯電話に送信します。
  4. ユーザーは変更された支払い情報を提示され、支払いを拒否します。

上記の例は、動的リンクを実装するときにエンドツーエンドの暗号化を使用することの重要性も示しています。さらに、攻撃者が変更された支払いの詳細をユーザーから隠すためにアプリを攻撃しようとする可能性があるため、モバイルアプリ自体を保護する必要があることも示しています。

多種多様な攻撃を認識して防御する別の効果的な方法は、継続的な監視あなたのデジタルプラットフォームに。開始の瞬間からセッションの終了までセッションを監視することで、ユーザーと、ユーザーが関連付けたデバイスまたはアカウントのアクションを通じて、より多くのコンテキストを取り込むことができます。継続的な監視は、銀行がこれらの認証デバイスからコンテキストを取り込むことを可能にするため、2FAや動的リンクなどの他のレイヤーと完全に組み合わされます。

各操作の試行、認証、結果を理解するための継続的な監視の例。

その後、銀行は、新しいデバイス、場所、プロキシの存在など、既知の攻撃の典型的な指標を監視できます。この情報をユーザーベース全体で相互に関連付けて、これらの要素のリスクをさらに理解することができます。次に、ユーザーがセッション自体を通じて行っている操作を考慮に入れ、これを通常の動作と比較してプロファイリングできます。このアプローチは、セッションの継続的なリスクプロファイルを確立します。これは、エンドユーザーが行う各アクションで変化する可能性があります。これにより、銀行は異常が検出されたときに自動化されたリアルタイムアクションを実行できるだけでなく、正規のセッションに必要な認証の量を減らすことで、正当なセッションの摩擦を減らすこともできます。

結論

この記事の攻撃は古くからある技術と概念を使用していますが、それらを正しく適用することで大きな成功をもたらし、今日展開されているさまざまな認証方法を無効にできることがわかります。ほとんどの個々の層は依然として攻撃されたり悪用されたりする可能性があるため、銀行は階層化アプローチを使用することが重要です。ダイナミックリンクを実装する場合、銀行はエンドユーザーとの安全な通信回線を確立する必要があります。たとえばSMSに依存することは、メッセージが盗まれたり、なりすまされたり、攻撃者によって傍受される可能性があるため、信頼性が低いことがすでに証明されています。ただし、モバイルアプリケーションを実装する場合、銀行はこれらのアプリがターゲットになり、モバイルアプリケーションを外部の攻撃から保護する必要があることも認識する必要があります。この記事の目的は主に、ログイン時に2要素認証を無効にするためにフィッシング攻撃を近代化できることを示すことであり、2FAだけを実装してもフィッシングからの完全な保護は提供されません。最後に、エンドユーザーにさらなる保護を提供するために銀行が実装できるいくつかの層と、そうするときに避けるべき落とし穴について述べました。要約する:

  • 実装する動的リンクエンドツーエンドの暗号化。
  • サーバー側の分析を展開するモニター潜在的な攻撃に対するエンドユーザーセッション、デバイス、および動作。
  • 守るあなたの端末アプリマルウェアやその他の外部の脅威から。
電子ブックカバー
eブック

アカウント乗っ取り詐欺:お客様とビジネスを守るには

不正ななりすましを防ぎ、デジタルジャーニーのあらゆる段階で顧客の安全を守るお手伝いをします。

今すぐダウンロード

 

ベンバルタザールはOneSpanの詐欺コンサルタントであり、ヨーロッパ、中東、アジアの金融機関が金融サイバー犯罪から身を守るのを支援しています。ベンは2014年にOneSpanでキャリアをスタートさせ、2016年にベルギーからドバイに転居しました。