FortiGateデバイスに存在する重大な認証バイパス脆弱性により、脅威アクターは大文字・小文字を区別するユーザー名の操作を通じて二要素認証(2FA)の保護を回避できます。
CVE-2020-12812として追跡されているこの欠陥は、特定のLDAP統合設定を持つ組織に影響し、未パッチのシステムでは悪用可能な状態が続きます。
この脆弱性は、FortiGateの既定の「ユーザー名を大文字・小文字区別で扱う」挙動が、ユーザー名を大文字・小文字非区別として扱うLDAPディレクトリと衝突することに起因します。
攻撃者がログイン試行時に正規ユーザー名の大文字・小文字を変更すると、ファイアウォールはローカルの2FA有効アカウントに対してエントリを一致させられず、より安全性の低いLDAPグループ認証へフォールバックします。
技術分析
悪用が成功するには、次の3つの設定要素が必要です。LDAPアカウントを参照する2FA有効のローカルFortiGateユーザーエントリ、当該ユーザーのLDAPグループ所属、そして認証にLDAPグループを利用するファイアウォールポリシーです。

攻撃者が「jsmith」ではなく「Jsmith」としてログインすると、ローカルユーザーポリシーを完全に回避し、FortiGateに二次認証ルールの評価を強制します。
その後、システムはユーザー名とパスワードのみを用いてLDAPサーバーに対して直接認証を行い、2FA要件を完全に無視し、無効化されたアカウント状態さえも無視します。
| CVE識別子 | FG-IR参照 | CVSSスコア | 攻撃ベクター | パッチ提供状況 |
|---|---|---|---|---|
| CVE-2020-12812 | FG-IR-19-283 | 9.1(重大) | ネットワーク経由 | FortiOS 6.0.10、6.2.4、6.4.1+ |
この脆弱性は、管理者アクセスおよびVPNセキュリティに深刻なリスクをもたらします。回避に成功すると、攻撃者は2FAトークンを所持していなくても、管理インターフェースや社内ネットワークへ不正に侵入できます。
悪用が発生している組織は、設定が侵害されたものとして扱い、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 を使用してください。これによりFortiGateはユーザー名の大文字・小文字の違いを同一として扱い、認証のフォールバックを防止します。
追加の強化策として、認証ポリシーから不要な二次LDAPグループを削除することが求められます。
組織は、冗長なLDAPグループ参照を排除し、厳格なローカルユーザー一致を強制するためにファイアウォール設定を監査すべきです。
LDAPグループが必須でない場合、それらを完全に削除することで、認証バイパスの経路を完全に遮断できます。
翻訳元: https://gbhackers.com/unpatched-fortigate-security-flaw/