給你的Linux系統(tǒng)打上臟牛補(bǔ)丁的另一種原因,就是這個(gè)漏洞可以用來逃避Docker。有句話值得再次強(qiáng)調(diào):容器化并不意味著保護(hù),它只是一種管理功能。
“臟牛”是一種內(nèi)存訪問的競爭環(huán)境,由于Linux內(nèi)核的內(nèi)存子系統(tǒng)使用專有映射,來處理“寫入時(shí)復(fù)制(Copy-On-Write)”時(shí)產(chǎn)生,本地用戶可用來提權(quán)。這個(gè)漏洞在Linux內(nèi)核中已經(jīng)存在了9年。但最新的研究顯示,除了提權(quán)之外,Docker之類的容器是拿它沒辦法的。
虛擬動(dòng)態(tài)共享對象(vDSO)是內(nèi)核自動(dòng)映射到所有“用戶空間”應(yīng)用程序地址空間的,一個(gè)小型共享庫。vDSO的存在是為了非常頻繁使用的系統(tǒng)調(diào)用,在無需影響性能的情況下被激活。
利用vDSO內(nèi)存空間中的“clock_gettime() ”函數(shù)對臟牛漏洞發(fā)起攻擊,可令系統(tǒng)崩潰并獲得root權(quán)限的shell,并瀏覽容器之外主機(jī)上的文件。
研究人員在Github上發(fā)布了POC(概念驗(yàn)證代碼),并在視頻中的AWS測試環(huán)境中演示了如何取得root訪問權(quán)限。