作為 Linux 中最常使用的重要實(shí)用程序之一,Sudo 幾乎安裝在每一款 UNIX 和 Linux 發(fā)行版上,以便用戶調(diào)用和實(shí)施核心命令。 然而近期曝出的一個(gè)提權(quán)漏洞,卻直指 sudo 的一個(gè)安全策略隱患 —— 即便配置中明確不允許 root 用戶訪問,該漏洞仍可允許惡意用戶或程序,在目標(biāo) Linux 系統(tǒng)上以 root 用戶身份執(zhí)行任意命令。
(題圖 via Hacker News )
據(jù)悉,Sudo 特指“超級(jí)用戶”。作為一個(gè)系統(tǒng)命令,其允許用戶以特殊權(quán)限來運(yùn)行程序或命令,而無(wú)需切換使用環(huán)境(通常以 root 用戶身份運(yùn)行命令)。
默認(rèn)情況下,在大多數(shù) Linux 發(fā)行版中(如屏幕快照所示),/ etc / sudoers 的 RunAs 規(guī)范文件中的 ALL 關(guān)鍵字,允許 admin 或 sudo 分組中的所有用戶,以系統(tǒng)上任何有效用戶的身份運(yùn)行任何命令。
然而由于特權(quán)分離是 Linux 中最基本的安全范例之一,因此管理員可以配置 sudoers 文件,來定義哪些用戶可以運(yùn)行哪些命令。
這樣一來,基板限制了用戶以 root 身份運(yùn)行特定或任何命令,該漏洞也可允許用戶繞過此安全策略,并完全控制系統(tǒng)。
Sudo 開發(fā)者稱: “只要 Runas 規(guī)范明確禁止 root 訪問、首先列出 ALL 關(guān)鍵字,具有足夠 sudo 權(quán)限的用戶就可以使用它來以 root 身份運(yùn)行命令?!?/p>
據(jù)悉,該漏洞由 蘋果 信息安全部門的 Joe Vennix 追蹤發(fā)現(xiàn)(CVE-2019-14287)。且想要利用這個(gè) bug,只需 Sudo User ID -1 或 4294967295 。
這是因?yàn)閷⒂脩?ID 轉(zhuǎn)換為用戶名的函數(shù),會(huì)將 -1(或無(wú)效等效的 4294967295)誤認(rèn)為 0,而這正好是 root 用戶 User ID 。
此外,由于通過 -u 選項(xiàng)指定的 User ID 在密碼數(shù)據(jù)庫(kù)中不存在,因此不會(huì)運(yùn)行任何 PAM 會(huì)話模塊。
綜上所述,該漏洞影響最新版本 1.8.28 之前的所有 Sudo 版本。慶幸的是,幾個(gè)小時(shí)前,各大 Linux 發(fā)行版都已經(jīng)在向用戶推送新版本了。
好了,本文結(jié)束,感謝大家對(duì)腳本之家網(wǎng)站的支持!