FortinetのFortiGateファイアウォールプラットフォームに存在する深刻なセキュリティ上の弱点により、悪意ある攻撃者が大文字・小文字の扱いを操作することで二要素認証(2FA)メカニズムを回避できる可能性があります。
CVE-2020-12812として特定され、内部ではFG-IR-19-283として追跡されているこの脆弱性は、FortiGateがユーザー名を処理する方法とLDAPディレクトリサービスのそれとの根本的な違いを悪用します。
この認証バイパスは、FortiGateの大文字・小文字を区別するユーザー名の扱いが、ユーザー名を大文字・小文字を区別しないものとして扱うLDAPディレクトリと衝突することで発生します。
特定の構成下では、この不一致により、攻撃者が2FA要件を完全に回避できてしまう重大なセキュリティギャップが生まれます。
この脆弱性の成立には、複数の設定要素が同時に存在する必要があります。組織は、LDAPアカウントを参照する形で2FAが有効化されたローカルユーザーエントリをFortiGate上に持っている必要があります。
同じユーザーが、「Domain Users」や「Helpdesk」などのLDAPサーバーグループに所属している必要もあります。
さらに、二要素ユーザーを含む少なくとも1つのLDAPグループがFortiGate上で設定され、管理者アクセス、SSL VPN、またはIPsec VPN接続の認証ポリシーで使用されている必要があります。
悪用の仕組みは単純ですが効果的です。正規ユーザー「jsmith」が適切な大文字・小文字で認証すると、トークン要求は正しく機能します。
しかし、攻撃者が「Jsmith」「jSmith」「JSMITH」といったバリエーションを使用すると、FortiGateはローカルユーザーエントリと一致させられません。
この不一致により、システムは別の認証オプションを探し、2FA要件を強制しないままLDAPグループ認証へフォールバックします。
悪用に成功すると、2FA検証なしに不正な管理者権限やVPNアクセスが付与される可能性があります。
Fortinetは、悪用が疑われる場合、組織はシステム構成が侵害されたものと見なし、LDAP/ADバインドに使用するものを含め、すべての認証情報をリセットすべきだと強調しています。
Fortinetはこの脆弱性に対処し、2020年7月にリリースされたFortiOS 6.0.10、6.2.4、6.4.1で修正しました。
すぐにアップグレードできない組織向けの緩和策としては、コマンド「set username-case-sensitivity disable」を使用してローカルアカウントのユーザー名の大文字・小文字の区別を無効化する、または新しいバージョン(6.0.13+、6.2.10+、6.4.7+、7.0.1+)では「set username-sensitivity disable」を使用します。
セキュリティ専門家は、認証のフォールバックを防ぐために不要な二次LDAPグループを削除することを推奨しており、LDAPグループが設定されていない場合には悪用経路が完全に排除されます。
翻訳元: https://cyberpress.org/hackers-abuse-3-year-old-fortigate-flaw/