最近在工作上遇到單位做弱掃發現 FAZ的重大CVSS為 7.5高風險,其漏洞為35291 – 使用弱哈希演算法簽名的 SSL 證書,那這漏洞是說明麼呢?
概要
證書鏈中的 SSL 證書已使用弱哈希演算法進行簽名。描述遠端服務使用已使用加密弱哈希演算法(例如 MD2、MD4、MD5 或 SHA1)簽名的 SSL 證書鏈。眾所周知,這些簽名演算法容易受到碰撞攻擊。攻擊者可利用此漏洞生成具有相同數字簽名的另一個證書,從而允許攻擊者偽裝成受影響的服務。
請注意,此外掛程式將所有使用SHA-1簽名且在2017年1月1日之後過期的SSL證書鏈報告為易受攻擊。這與Google逐步淘汰SHA-1加密哈希演算法是一致的。
簡單來說是使用比較早期的加密簽章所頒發的SSL證書,比較容易有被暴力破解的可能因此列為不安全。因此為了要研究如何解決此問題,我要先復現單位的該弱點情形已知是使用FAZ-6.4.12的版本,因此我使用VM的版本來進行測試,並與一台FortiGate進行連線。


使用弱掃軟體Nessus 並已更新成10.7.0安裝在KaliLab裡進行測試,並著手開始針對FAZ進行弱掃,但是結果很意外上述的CVSS竟然沒有發生?

後來找了許久在官方討論區有人提到VM版的FAZ已經棄用SHA-1雜湊或是更早期的加密簽證方式,所以這問題只有在硬體式FAZ上才會發生,由於手邊並沒有硬體式FAZ所以我只能用自發簽章的方式來復刻此弱點。


匯入憑證後我們再來掃一次,我們可以清楚的看到該弱點跑出來了。

我們點進去看可以看到在 TCP 514 上面發現了該弱點,在Fortinet TCP 514 用於OFTP 傳輸專用資訊的一個通訊埠,該通訊是屬於TLS加密協議所以需要憑證去加密。

該弱點要如何解決呢其實思路很單純,換憑證就好啦! 話是這麼說沒錯,但是前面有提到因為該傳輸是加密的就算要用自簽的方式替換就等於這台連線到FAZ的全部的設備都要更換一輪憑證,除非是Fortinet的自簽不然沒辦法可以直接用,在困擾的這問題一樣就去爬爬文其中有一篇文章說明到在特定版本後的韌體更新多了 Fortinet_Local的本地憑證該憑證為SHA256雜湊,於是就有下面的解決方式
Alternative FortiAnalyzer configuration:
This alternative method explains how to use any previously imported Local Certificate for OFTP.
Use the following CLI commands in order to change the certificate used on OFTP port TCP/514:
# config system certificate oftp
set mode local
set local "<LOCAL_CETRIFICATE_NAME>"
end
Note:
This option is often used to replace the embedded SHA1 certificate of the older FortiAnalyzer hardware platforms (for example E-series), where the BIOS certificate is SHA1, but there is also a firmware updated SHA256 default local certificate, named 'Fortinet_Local'.
This certificate also contains the unit serial number in the CN field, which allows the FortiAnalyzer certificate verification to remain enabled on the FortiGates.
After changing this configuration, restart the 'oftpd' process in order for the changes to take effect:
# diag test application oftpd 99
(Or reboot the FortiAnalyzer).
文檔來自於:https://community.fortinet.com/t5/FortiAnalyzer/Technical-Tip-How-to-use-an-alternate-server-certificate-for/ta-p/189604
下面有提到硬體式的FAZ可以替換後韌體更新裡提供的 Fortinet_Local 的憑證因此我們要這樣下,因為憑證是Fortinet簽發的再加上Fortinet_Local裡面都有帶CN主機序列號因此在既有的連線中的FortiGate的設備依然能繼續使用
config system certificate oftp
set mode local
set local "Fortinet_Local"
end
diag test application oftpd 99
我看了一下基本上都有這個憑證的存在

在掃一次漏洞就不存在了

在確認FortiGate有沒有在線

說真的還好有找到官方有討論這件事,不然我應該還卡在憑證自簽依然不能傳輸的問題,我是阿俊謝謝這次觀看。