DirtyCow 漏洞帶給核心社群的反思

贊 回覆發表於2016-10-25

編號為 CVE-2016-5195 的漏洞在 Linux 核心社群修復完成後的故事並沒有結束,72小時內公開的可作非穩定漏洞利用的 PoC 已經有 9 個。如果是標準版本的核心,寫 /proc/pid/memvDSO(部分版本)以及常規 ptrace() 方法都可以直接利用,PaX/Grsecurity 核心對於這個 PoC 也難以防禦。針對 ptrace/madvise 做 seccomp 的規則雖然可以減緩攻擊進度,但帶來效能開銷的同時也不能一勞永逸的解決這個問題,如果沒有 RBAC 的場景還是建議升級。

這個漏洞在自由軟體世界是比較罕見的,對 GNU/Linux 伺服器構成巨大威脅和風險的同時也成為了 Android root 惡意程式碼鏈條(包括一鍵 root 工具)以及 IoT 入侵的強大助攻。Jonathan Corbet 的文章提到 Linux 核心社群對待安全的態度需要反思,這個嚴重漏洞的修復竟然是和 cleanup 的 patch 一起合併到主線的,即使是單獨的提交也像往常一樣並未提供更多的安全評估資訊。

這種不提供公開漏洞資訊的做法是在 1990 年代用於防禦指令碼小子獲得更多資訊,後來 Linux 基金會的“客戶”們並沒有提出改變的意見所以一直沿用至今。但 2016 年的網際網路環境和 1990 年代有著很大的區別,即使沒有公開的漏洞資訊攻擊者可以憑著對程式碼提交的理解也可以打造出相應的漏洞利用

或許在 Linux 核心自防護專案開始 10 個月後遇到了 DirtyCow 並不是件壞事。核心自防護專案嘗試移植 PaX/Grsecurity 的一些特性終結掉 Linus Torvlads 的“A bug is bug”流派,而 DirtyCow 有望在生態上讓 Linux 基金會的“客戶”們向 Linux 核心社群施壓,說不定會改變“security through obscurity”的格局。畢竟今天是一個更開放的年代,個體更注重安全,GNU/Linux,Android 和 IoT 的相關廠商都重度依賴於 Linux 的安全性,RedHat 或者 Linux 基金會在安全方面想要一手遮天相比 2002 年還是困難很多。

相關文章