繼 12 月初公告的 FortiGate 零時差漏洞後,Fortinet 本週三再度發布資安公告,指出 FortiOS SSL VPN 中存在一個編號為 CVE-2020-12812 的漏洞(CVSS 風險值 5.4)。此漏洞涉及身分驗證不當,攻擊者若在特定組態下更改使用者名稱的大小寫,即可繞過雙因子驗證 (2FA) 並成功登入。
根據 Fortinet 的安全公告,此問題發生在啟用了「本機使用者 (local user)」設定,同時開啟 2FA 並採用遠端驗證(如 LDAP)的架構中。問題根源在於本機與遠端驗證系統對「使用者名稱大小寫」的比對邏輯不一致。事實上,類似的攻擊手法早有先例,美國網路安全暨基礎設施安全局 (CISA) 曾於 2021 年將相關漏洞列為被武器化次數最多的 30 個邊緣設備漏洞之一。
在聖誕夜的最新公告中,Fortinet 詳細說明了觸發 CVE-2020-12812 漏洞需同時滿足的三項組態條件:
-
FortiGate 本機使用者設定以 2FA 登入,且認證方式指向遠端認證伺服器(如 LDAP)。
-
上述啟用 2FA 的使用者,必須歸屬於 LDAP 伺服器中的至少一個群組。
-
FortiGate 的身分驗證政策(例如用於管理使用者、 SSL VPN 或 IPsec VPN 的認證)中,必須配置了至少一個該 LDAP 群組。
一旦滿足上述條件,攻擊者即可利用大小寫差異繞過 2FA 。原因在於 FortiGate 可能會誤判使用者名稱區分大小寫,但後端的 LDAP 目錄服務卻視為相同。舉例而言,若合法帳號為 jsmith,攻擊者嘗試使用 JSmith 或 jsmiTh 登入時,FortiGate 第一階段驗證雖不通過,但因組態邏輯漏洞,系統會轉而考量其他防火牆驗證規則(如次要群組 Auth-Group)。此時,只要密碼憑證正確,系統便判定驗證成功,導致攻擊者得以繞過 2FA,取得管理員權限或建立 VPN 連線。
Fortinet 早於 2020 年針對類似機制釋出了 FortiOS 6.0.10 、 6.2.4 和 6.4.1 版本修補程式。針對此次公告,若企業設備運作的版本為 FortiOS 6.0.13 、 6.2.10 、 6.4.7 和 7.0.1 以上,網管人員可透過指令 set username-sensitivity disable 關閉大小寫區別功能。設定生效後,FortiGate 將視 jsmith 與 JSmith 為同一帳號,避免系統轉向不當的 LDAP 群組設定。
資安研究人員建議企業應移除不必要的次要 LDAP 群組以縮小攻擊面,確保非屬於本機群組的用戶無法通過驗證。儘管 Fortinet 本週尚未透露具體的新一波攻擊細節或受害規模,但官方強烈建議用戶若發現有繞過 2FA 的異常活動,應立即聯繫支援團隊並重設所有憑證。
