據我所知,Java序列化漏洞一年多前已被披露,它由一位安全研究人員在PayPal的服務器中發現。那么,這是個什么樣的漏洞,為什么它還未被修復?攻擊者是如何利用它的?
Nick Lewis:Java序列化漏洞發生在:當輸入內容從已經通過互聯網提交的格式轉換成另一種格式時,隨后這種格式會保存在數據庫中。當該漏洞存在時,在這個轉換過程中處理的數據可被用于在某些易受攻擊軟件中進行遠程代碼執行。該漏洞曾被認為只是理論上的,因為其非常難以被利用,但后來FoxGlove Security在博客文章中發布了針對其可廣泛使用的軟件漏洞利用代碼。通過這個漏洞利用代碼,Java序列化漏洞成了企業需要應對的問題。
在安全研究人員Mark Litchfield發現這個漏洞后,PayPal工程人員檢查了這個特定的Java序列化漏洞,并介紹了他們如何在其系統中修復了這個漏洞。安全研究人員Michael Stepankin也詳細探討了他如何通過這個漏洞在PayPal服務器遠程執行代碼。
在PayPal工程人員尋找其產品中漏洞代碼的過程中我們可了解到,為什么企業(包括PayPal)沒有在漏洞利用代碼發布前修復這個漏洞:因為如果企業沒有中央軟件開發資源庫,他們非常難以發現這個漏洞代碼,他們將需要掃描所有網絡應用來尋找易受攻擊的系統。
為了抵御這種類型的Java序列化攻擊,企業應該將安全整合到其軟件開發生命周期中。作為非特權用戶運行web服務器而沒有在系統執行代碼的權限,可減少該漏洞被用于遠程代碼執行的風險。