まずフィッシング耐性

フィッシング耐性のある認証は、現在の安全な認証のベースラインであり、FIDO/WebAuthn、FastPass、PIV/CACなどが該当します。この記事では、すでにこのベースラインを満たしている企業が、セキュリティを次のレベルに引き上げる方法に焦点を当てます。

パスワード、SMS、プッシュ通知、およびワンタイムコードは、この記事で説明されているものよりもはるかに洗練されていない攻撃に対して脆弱であるため、推奨しません。

フィッシング耐性が不十分な場合

上記のように、FastPass、パスキー、およびその他のFIDO認証器は、組織をフィッシング攻撃から保護するための優れた方法であり、本質的に攻撃者がデバイス上で何らかの存在感を得る(または物理的にキーを盗む)ことを要求します。

フィッシング耐性のある認証要素は、NISTが定義した2つの要件、Verifier Name BindingChannel Binding[これはドラフト仕様であり、コメントは「クローズ」されています]に依存しており、これらが連携してほとんどのフィッシング攻撃を阻止します。たとえば、FIDOとFastPassはどちらもVerifier Name Bindingに依存しています。

これらの要件に加えて、フィッシング耐性のある認証器は、ブラウザと認証器の間に保護されたチャネルを確立して、盗聴やリモートデバイスへのリレー攻撃を防ぐ必要があります。しかし、これらの要件はユーザーのデバイス上の悪意のある存在を考慮していません。その結果、より高度な攻撃が発生する可能性があり、成功すると、攻撃者はフィッシング耐性の要件を満たすことができます。

攻撃例:SOCKS経由のクロスデバイス認証

マルウェアをインストールするリンクをクリックした被害者を想像してみてください。この攻撃のベースラインとして、攻撃者はすでに自分のマシン上でユーザーとしてコードを実行できる必要があります

 

SOCS 経由のクロスデバイス認証

 

1

攻撃者は、侵害されたデバイスと自身のデバイスの間にSOCKSリバースプロキシを作成します(図のステップ1)。適切な設定により、攻撃者は自身のデバイスから侵害されたデバイスへ、SOCKSプロキシを介してFastPassまたはFIDO2のチャレンジをリレーできます。

2〜3時間/日

攻撃者は自分のデバイスからユーザーのリソースにアクセスしようとし、プロキシを介して認証チャレンジをユーザーのデバイスに中継します。

4

ブラウザは攻撃者のデバイスからOktaサーバーに直接ポーリングし、認証チャレンジが満たされるのを待ちます。

5

攻撃者は、侵害されたデバイスに TPM でチャレンジレスポンスに署名させる必要があります。

 

適切に構成されたポリシーでは、ユーザープレゼンスが必要になり、生体認証またはデバイスパスコードのユーザー向けのプロンプトがトリガーされ、ユーザーの疑念を抱かせる可能性があります。ただし、デバイスにマルウェアが存在するシナリオでは、攻撃者がパスコードを提供したり、ユーザーがプロンプトに驚かないように(たとえば、ユーザーがマシンから離れている場合や、認証プロンプトを予期している場合など)、攻撃のタイミングを巧妙に調整したりできる場合があります。

6-8

最後に、侵害されたデバイスからOktaサーバーにチャレンジレスポンスが送信され、TPMキーチェック、フィッシング耐性、およびデバイス信頼保証が渡されます。

 

その結果、攻撃者のデバイスは、Web ブラウザと侵害されたデバイス上の認証者間の認証を透過的にプロキシできたため、有効なセッションを持つようになりました。

 

信頼できるアプリフィルターの入力

2024年8月、OktaはFastPassのこのタイプの攻撃を軽減する機能をリリースしました:Trusted App Filters。この高セキュリティ設定により、管理者は、特に許可リストに登録されていないアプリ、または署名されていないアプリ、または信頼されていないコード署名証明書によって署名されているアプリによる認証試行を自動的にブロックできます。

SCIM の仕組み

ChromeなどのアプリケーションがFastPassを使用して認証を試みると、Oktaのサインインウィジェットは、デバイスで実行されているOkta Verifyに接続を試み、次にOktaのバックエンドから認証チャレンジを配信します。

この接続がアクティブな間、Okta Verifyは、デバイス上の接続を作成したポートとプロセスをトレースバックします。ポートとプロセスが見つからない場合、元の場所がリモートであることを示している可能性があり、接続はドロップされます。

プロセスを特定できる場合、Okta Verifyは、実行可能ファイルに関する詳細な署名データを収集し、署名がコード署名証明書と一致し、コード署名証明書がローカルトラストチェーンによって信頼されていることを確認します。

たとえば、SecCodeCopySigningInformation(macOS)WinVerifyTrust(Windows)を使用して、プロセスに関する詳細情報を取得します。すべてのデータがキャプチャされると、管理構成証明およびデバイスシグナルとともにチャレンジレスポンスで送信され、すべてハードウェアバインドキーでラップおよび署名されます。

モニタリング

macOSまたはWindowsでFastPassを使用している場合、このデータは現在SysLogsで利用できます。

これは、macOS 用 Chrome を使用した Okta ダッシュボードへのログインの例です。

macOS版Chromeを使用したOktaダッシュボード

 

ログを確認すると、ユーザーが認証しているアプリを確認し、新しいアプリが使用されている場合に警告するワークフローを作成できます。組織でアクセスされているアプリに関連付けられているバイナリを十分に理解する必要があります。たとえば、ユーザーはブラウザーまたはSlackネイティブアプリケーションを介してのみSlackで認証する必要があります。

適用

特定の認証ポリシーに適用されるアプリケーションの完全なリストをコンパイルしたら、信頼できるアプリフィルターを適用して、これらの攻撃が開始される前にブロックできます。これは少し複雑になる可能性があるため、デスクトッププラットフォームごとに個別の認証ポリシー規則を作成するのが最も簡単です(たとえば、特定の規則のプラットフォームまたはデバイス保証規則をmacOSまたはWindowsに設定します)。

Expression Languageが設定されると、署名チェックに失敗したアプリケーション(例:署名されていないマルウェア)は、関連する SysLog エントリとともにブロックされます。署名付きアプリケーションがリストにない場合(SSHデーモンなど)もブロックされます。

例1:macOS上のChrome、Firefox、Safari

この例では、SSO拡張機能またはループバックバインディングを使用して、macOSでサポートされているすべてのメインブラウザを許可します。これは、2つのフィッシング耐性のあるバインディングのみがFastPassのルールをトリガーすることを意味します。O365のような独自のWebViewを持つネイティブアプリケーションは、このルールを満たさないことに注意してください。それらを許可する場合は、それらの識別子も含める必要があります。

 

 

例2:Windows上のEdgeとChrome

Windows は少し簡単です。LOOPBACK は、このチェックに有効なバインドのみです。これにより、CUSTOM_URL バインドによってトリガーされる非フィッシング耐性フローも防止されることに注意してください。

Windowsでの強制

 

信頼できるアプリフィルターと FIDO またはその他の認証システムの組み合わせ

たとえば、FastPass とは異なる認証システム (たとえば、FIDO セキュリティキー) を使用する場合は、その認証ルールに信頼できるアプリフィルターを適用することもできます。ただし、Okta Verify アカウントもそのデバイスに登録されている必要があります。

それを行うには、次のすべてを含むルールを作成します。

  1. 登録済みまたは管理対象の条件
  2. 信頼できるアプリのフィルタ式言語
  3. サポートする認証システムを許可リストに登録するか、「任意の方法を許可」を使用します
     
Trusted App FiltersとFIDOを組み合わせたプロセスのスクリーンショット

組織で macOS または Windows で FastPass を使用している場合は、今日からどのネイティブアプリケーションが FastPass 認証をトリガーしているかの監視を開始できます。どの信頼できるアプリケーションが使用されているかを明確に把握したら、それらのアプリケーションを許可リストに登録し、他のすべてのアプリケーションがFastPassを使用できないようにする必要があります。

ザック・ニュートンの素晴らしいデモを含む、この件に関する詳細をご覧になりたい場合は、 Oktane 2024の講演をご覧ください (無料登録が必要です)。

FastPassまたはDevice Securityについて質問がありますか?Okta FastPassコミュニティボードに参加して、会話を始めてください。

このブログ記事についてご質問がありますか?eng_blogs@okta.comまでご連絡ください。

Oktaの洞察力に富んだエンジニアリングブログで、知識をさらに深めてください。

Oktaの情熱的で優秀なエンジニアチームで働きませんか?採用情報ページをご覧ください。

Oktaは、最新かつ高度なアイデンティティ管理の可能性を解き放ちます。詳細は、セールス担当者にお問い合わせください。

アイデンティティ施策を推進