“Stack Clash”安全漏洞對Linux、FreeBSD、OpenBSD及其他操作系統構成了威脅。
一大批基於Unix的操作系統(包括Linux、OpenBSD和FreeBSD)爆出存在漏洞,讓攻擊者可以將易受攻擊的計算機上的低級訪問權提升到不受約束的root權限。安全專家們勸告管理員盡快安裝補丁,或者采取其他保護性措施。
安全公司Qualys發現了這些漏洞,其研究人員在周一發表的一篇博文(https://blog.qualys.com/securitylabs/2017/06/19/the-stack-clash)中表示,這個安全漏洞名為Stack Clash,極有可能與其他安全漏洞結合使用,讓攻擊者更有效地執行惡意代碼。這種本地權限升級安全漏洞還會給服務器主機提供商構成嚴重的威脅,原因在於只要一個客戶能鑽這個漏洞的空子,不可以控制在同一台服務器上運行的其他客戶進程。Qualys表示,攻擊者還有可能以一種直接遠程執行代碼的方式來利用Stack Clash。
Qualys的產品管理經理吉米·格雷厄姆(Jimmy Graham)告訴IT外媒Ars Technica:“這是一種相當簡單直接的方法,在已經擁有某種用戶級別訪問權後獲得root權限。”這種攻擊的工作原理如下,引起一塊計算機內存區(名為棧區,stack)與存儲無關代碼或數據的另一塊內存區發生沖突。“這不是什麼新概念,但這個特定的漏洞卻絕對是新漏洞。”
受影響操作系統的開發人員如今正在發布補丁。周一上午Linux發行商Red Hat發布的安全公告表示,緩解措施可能會導致性能問題,具體表現為“/proc/meminfo中的值出現重疊”,但是它們不可能影響正常操作。開發人員可能晚些時候會發布解決這種問題的補丁。Qualys的代表告訴Ars Technica,該公司的研究人員已與FreeBSD、NetBSD、OpenBSD、Solaris以及各大Linux發行版(包括Red Hat、 SuSE、Debian及Ubuntu)的開發人員進行了合作。這位代表稱,該公司的研究人員沒有研究過微軟或蘋果的產品,但是他們確實事先聯系了這兩家公司,所以它們可能展開調查。這個安全漏洞對谷歌的Android移動操作系統有何影響不得而知。
操作系統棧區是一塊動態的內存區,該內存區擴大還是縮小取決於在某個時候運行的應用程序和函數。如果棧區擴大幅度過大,可能會挨近其他內存區,因而讓攻擊者得以用鄰近內存區來覆蓋棧區,反之亦然。Stack Clash之所以得名,就是由於漏洞的第一步就是將棧區擴大到另一個內存區。
漏洞根本就未堵上
Stack Clash安全漏洞已逐漸引起了廣泛的關注,最初是2005年安全研究人員Gaël Delalleau發布了研究結果,五年後研究人員拉法爾·沃茨祖克(Rafal Wojtczuk)發布了一個Linux安全漏洞。Linux的開發人員推出了一種保護機制,旨在防止棧區沖突,但是如今的研究表明,攻擊者繞過這種保護措施來得比較容易。
凡是運行基於Unix的操作系統的人都應該立即聯系開發人員,看看有沒有補丁或安全公告。最穩妥的辦法就是安裝補丁(如果有補丁的話);還有一個權宜之計就是,將本地用戶和遠程服務的hard RLIMIT STACK和RLIMIT_AS設成較低值。想了解更詳細的信息,請參閱Qualys這份詳細的技術公告
(https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt)和grsecurity的這篇技術分析(https://grsecurity.net/an_ancient_kernel_hole_is_not_closed.php)。