信息來(lái)源:FreeBuf
美國(guó)計(jì)算機(jī)安全應(yīng)急響應(yīng)中心(以下簡(jiǎn)稱“CERT”)日前發(fā)布公告稱,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD、VMware 和 Xen 等系統(tǒng)都可能受到一個(gè)重大安全漏洞( CVE-2018-8897)的影響,這個(gè)漏洞是由于操作系統(tǒng)開發(fā)者曲解了英特爾和AMD兩大芯片廠商的調(diào)試文檔所致。
不過(guò),這個(gè)漏洞的利用需要一定的條件,攻擊者需要使用已經(jīng)感染帶有惡意軟件的計(jì)算機(jī),或者必須使用已經(jīng)登錄的帳戶才能運(yùn)行利用此漏洞的惡意代碼。如果順利入侵,攻擊者可以將其代碼的訪問(wèn)權(quán)限提升到內(nèi)核級(jí)別,然后使用此訪問(wèn)權(quán)限執(zhí)行其他操作。通俗來(lái)說(shuō),攻擊者可以利用操作系統(tǒng)的 API 獲取敏感內(nèi)存信息,或控制低級(jí)操作系統(tǒng)功能。
根據(jù) CERT/CC 的報(bào)告,這個(gè)漏洞出現(xiàn)的詳細(xì)原因如下:
這個(gè)漏洞主要與操作系統(tǒng)供應(yīng)商為 Intel x86-64 體系結(jié)構(gòu)部署的硬件調(diào)試機(jī)制有關(guān),核心原因是 MOV SS 和 POP SS 指令。該指令從正在運(yùn)行的程序堆棧中獲取一個(gè)用于選擇堆棧段的值,并將這個(gè)值存入 CPU 的堆棧選擇器與寄存器。這與很多現(xiàn)代操作系統(tǒng)所忽視的內(nèi)存分割有關(guān)。POP SS 指令由 CPU 專門處理,以確保在執(zhí)行中斷時(shí),堆棧不會(huì)陷入不一致的狀態(tài)。
應(yīng)用程序可以通過(guò) POP SS 為堆棧選擇器所在的內(nèi)存位置設(shè)置調(diào)試斷點(diǎn)。也就是說(shuō),當(dāng)應(yīng)用程序使用 POP SS 時(shí),如果處理器觸及 RAM 的特定部分以獲取堆棧選擇器,將會(huì)生成特殊的異常問(wèn)題。如果緊接在 POP SS 指令之后的指令是 INT 指令,就能利用這種異常情況來(lái)觸發(fā)中斷。這些軟件觸發(fā)的中斷有時(shí)被用戶程序用于激活內(nèi)核,因此它可以執(zhí)行打開文件等運(yùn)行程序所需的操作。在運(yùn)行 Intel 或 AMD 的計(jì)算機(jī)中,軟件生成的中斷指令緊跟在 POS SS 指令之后,立刻讓處理器進(jìn)入內(nèi)核的中斷處理程序。隨后,由于 POP SS 導(dǎo)致異常被延遲,會(huì)觸發(fā)調(diào)試異常。
由于英特爾的 x86-64 手冊(cè)關(guān)于 POP SS 指令及其與中斷門語(yǔ)義相互作用的注意事項(xiàng)不清楚甚至不完整,讓操作系統(tǒng)開發(fā)者和供應(yīng)商誤以為處理程序在不可中斷的狀態(tài)下啟動(dòng)。但事實(shí)上,調(diào)試異常需要在處理程序中斷的早期進(jìn)行處理,否則用戶應(yīng)用程序可以利用開發(fā)者的這種誤解,在運(yùn)行 Intel 的計(jì)算機(jī)中利用 POP SS 和 INT 指令,控制中斷處理程序中的特殊指針 GSBASE。而在運(yùn)行 AMD 的計(jì)算機(jī)中,用戶應(yīng)用程序可以控制 GSBASE 和堆棧指針,導(dǎo)致內(nèi)核崩潰,通過(guò)訪問(wèn)未映射的內(nèi)存,提取部分受保護(hù)的內(nèi)核內(nèi)存,或者調(diào)整其內(nèi)部結(jié)構(gòu)導(dǎo)致系統(tǒng)崩潰或者操縱系統(tǒng)運(yùn)行。
專家認(rèn)為,上述任何嘗試都可能導(dǎo)致內(nèi)核崩潰,不過(guò)不會(huì)造成更嚴(yán)重的危害。但是,這也應(yīng)當(dāng)引起系統(tǒng)供應(yīng)商注意。
目前,各大廠商都已知曉這個(gè)漏洞,并積極應(yīng)對(duì)。Red Hat、Ubuntu 和蘋果 MacOS 都已經(jīng)著手推出補(bǔ)丁。而早在 2018 年 3 月,Linux 內(nèi)核已經(jīng)解決了這個(gè)問(wèn)題,4.15.14、4.14.31、4.9.91、4.4.125 以及更早的 4.1、3.16 和 3.2版本都有相應(yīng)的補(bǔ)丁。
微軟也做出了回應(yīng),其 Windows 7 到 Windows 10 以及 Windows Server 2008 到 1803 版本都推出了補(bǔ)丁。Xen 4.6 到 4.10 版本也推出了修補(bǔ)程序。VMware 的虛擬機(jī)管理程序沒(méi)有風(fēng)險(xiǎn), vCenter Server 有對(duì)應(yīng)的解決方案,vSphere 集成容器正在等待修復(fù),但專家認(rèn)為,二者都“可能受到影響”。
以下是美國(guó) CERT/CC 列出的受影響廠商名單,提醒用戶及時(shí)關(guān)注廠商動(dòng)態(tài),及時(shí)修復(fù)。