盡管有成千上萬的用戶積極地研究Linux內核源代碼,以積極地尋找安全漏洞,但嚴重的bug卻沒有被忽視。畢竟,盡管由于更多的眼睛來審核代碼而降低了丟失某些非常嚴重的事件的可能性,但是我們所有人仍然是人類,一定會犯錯誤。不幸的是,這次的錯誤似乎很嚴重。上周,最近發現了一個特權升級漏洞,盡管該漏洞已經在主線Linux內核中進行了修補,但該漏洞可能會在市場上幾乎所有的Android手機上被利用,直到每個設備都收到相應的內核補丁為止。
特權提升錯誤被通俗地稱為Dirty Cow漏洞,但在Linux內核的錯誤跟蹤器系統中被歸類為CVE-2016-5195。盡管該漏洞僅在上周才發現,但在Linux內核代碼中已經存在 9年了。此外,可以在Linux內核的一部分中找到可利用的代碼,順便說一句,該內核實際上是在基于Linux內核構建的每個現代操作系統(包括Android)上提供的。更糟糕的是,發現該漏洞的研究人員發現證據表明該漏洞已在現實世界中被惡意使用,因此,他們建議所有和銷售基于Linux內核的軟件的供應商立即對漏洞進行修補。
骯臟的牛本身不是漏洞,而是漏洞。但是,此漏洞允許升級用戶空間進程的特權,并為其授予超級用戶特權。通過利用此漏洞,惡意用戶空間進程可以在受害者的設備上不受限制地進行根訪問。從技術上講,該錯誤涉及Linux內存復制技術(稱為“寫時復制”)的競爭條件。通過利用這種競爭條件,用戶可以獲得對通常設置為只讀的內存映射的寫訪問權限。可以從此處,此處和此處收集有關該漏洞的更多詳細信息 。
據說該安全漏洞利用起來并不容易,實際上,在該漏洞被公開后的短短幾天內,就已經針對所有Android設備演示了概念驗證特權升級漏洞。任何運行Linux內核版本高于2.6.22的Android設備(請閱讀:存在的每個Android發行版)都可能成為此概念驗證漏洞的受害者。盡管概念驗證漏洞實際上并沒有獲得root訪問權限,但是使用此漏洞攻擊系統使事情變得相當簡單。在發給ArsTechnica的電子郵件中,Linux內核開發人員Phil Oester在他的網站上對Dirty Cow的已知真實漏洞進行了分類,其中 有關于該錯誤的說法:
在我的測試中,任何用戶都可以在不到5秒的時間內成為root用戶,這非常可靠。可怕的東西。
通過本地訪問諸如Shell帳戶的系統,最容易利用此漏洞。不太容易理解的是,允許攻擊者將文件上傳到受影響的系統并執行該文件的任何Web服務器/應用程序漏洞也都可以使用。
上傳到我的系統中的特定漏洞利用20150623發布的GCC 4.8.5進行了編譯,盡管這并不意味著該漏洞由于使用壽命長而不能早于該日期提供。至于誰是目標,在面向Web的服務器上運行Linux的任何人都容易受到攻擊。
在過去的幾年中,我一直在捕獲到我的Web服務器的所有入站流量以進行取證分析。實踐證明,這種做法在很多場合都是無價之寶,我建議所有管理員使用。在這種情況下,我能夠從這些捕獲中提取上傳的二進制文件以分析其行為,然后升級到適當的Linux內核維護者。
在開發人員進一步研究證明了在Android上利用Dirty Cow的有效性之后,一位開發人員能夠通過利用此漏洞在幾秒鐘內成功將其HTC設備植根。XDA普遍歡迎用戶擁有root訪問權限的能力,但是我們并不贊揚此類root漏洞的存在,尤其是這種漏洞非常普遍,對最終用戶可能具有極大的危險。為了讓您了解“骯臟牛”在野外有多么危險,YouTuber Computerphile整理了一個快速視頻,演示了潛在的惡意攻擊媒介,黑客可以利用這些媒介來悄悄地獲取設備的root用戶訪問權限。