您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Kubernetes中CVE-2019-11244漏洞怎么修復(fù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
為了能更好的理解這個(gè)漏洞,需要一些關(guān)于Linux 文件權(quán)限的基礎(chǔ)知識(shí)。
也許你經(jīng)常使用chmod
命令來為某個(gè)文件設(shè)置權(quán)限,比如給某個(gè)文件設(shè)置權(quán)限:chmod 755 xxx
。這里755
為十進(jìn)制數(shù)字分別代表文件Owner權(quán)限、文件Owner同組用戶權(quán)限和其他用戶權(quán)限,如下圖所示:
在Linux下,使用ls
命令可以看到文件的權(quán)限,如下圖所示:
針對(duì)一個(gè)文件設(shè)置權(quán)限無非就是限制文件的讀、寫和可執(zhí)行權(quán)限,那么如何理解一個(gè)目錄
的讀、寫和可執(zhí)行權(quán)限呢? 跟據(jù)我小范圍調(diào)查,大多數(shù)人不能很好的回答這個(gè)問題:一個(gè)用戶對(duì)某個(gè)目錄擁有讀或?qū)憴?quán)限分別意味著什么?
CVE-2019-11244漏洞原文描述如下:
In Kubernetes v1.8.x-v1.14.x, schema info is cached by kubectl in the location specified by --cache-dir (defaulting to $HOME/.kube/http-cache), written with world-writeable permissions (rw-rw-rw-). If --cache-dir is specified and pointed at a different location accessible to other users/groups, the written files may be modified by other users/groups and disrupt the kubectl invocation.
簡(jiǎn)單的理解就是kubectl創(chuàng)建的緩存文件權(quán)限為rw-rw-rw-
,也即666
,這些緩存文件有被其他用戶修改的風(fēng)險(xiǎn)。
這里其他用戶是包含兩類:
同group下的其他用戶(后面稱group用戶);
不同group的其他用戶(后面稱other用戶);
那么修復(fù)這個(gè)漏洞,就要收縮這些文件權(quán)限,只要做到這些文件不能被這兩類用戶修改即可(可以擁有讀權(quán)限)。
kubectl會(huì)創(chuàng)建一個(gè)專門的目錄來存放緩存文件,所以這里既要控制目錄權(quán)限還要控制文件的權(quán)限。
在社區(qū)的修復(fù)方案中,緩存目錄權(quán)限由755
變成了750
,即other用戶將不能進(jìn)入這個(gè)目錄,Group用戶仍擁有r-x
權(quán)限,即可以讀取目錄下的文件列表、可以進(jìn)入該目錄。
針對(duì)緩存文件的修改,權(quán)限由755
變成了660
,這里有三個(gè)變化:
Owner用戶不再擁有可執(zhí)行權(quán)限(緩存文件擁有可執(zhí)行文件權(quán)限本身也沒有意義);
Group用戶擁有rw-
權(quán)限,即Group用戶仍然可以修改緩存文件;
Other用戶不授予任何權(quán)限(即便有權(quán)限也無效,因?yàn)樯蠈幽夸浺巡荒茉L問);
看到這里,問題就清楚了,緩存文件仍然可以被Group用戶修改,實(shí)際上漏洞并沒有完全修復(fù)。 我們可以實(shí)際操作演示一下,這里如無特別說明表示使用root用戶操作:
創(chuàng)建一個(gè)目錄,并設(shè)置權(quán)限為755: # mkdir -m 0750 myPath0750
在目錄中創(chuàng)建一個(gè)文件,并設(shè)置權(quán)限為660:# touch myPath0750/myFile0660; chmod 0660 myPath0750/myFile0660
創(chuàng)建一個(gè)root組用戶,并設(shè)置密碼:# useradd -G root -d /home/horen -m horen; passwd horen
切換到新用戶,嘗試修改文件內(nèi)容:# echo "Hello" > myPath0750/myFile0660
;
可以發(fā)現(xiàn)文件是可以被修改的。
也許社區(qū)的修復(fù)方案并不能滿足你的安全要求,你仍然需要基于社區(qū)方案做一些安全加固,就是把緩存文件的權(quán)限進(jìn)一步收縮,由660
變?yōu)?code>640,即Group用戶最多只能查看緩存文件內(nèi)容。
另外,由于目錄權(quán)限為750
,Group用戶對(duì)該目錄沒有寫權(quán)限,所以不能修改目錄名,不能在該目錄下創(chuàng)建文件,達(dá)到目錄專用的目的。
這里也順便總結(jié)一下目錄的可讀、可寫和可執(zhí)行三個(gè)權(quán)限的含義。其實(shí)目錄本身也是文件,其內(nèi)容是其子層目錄結(jié)構(gòu),比如目錄中的文件列表,文件屬性等。
可讀:表示你可以列出目錄中有什么文件;
可寫:表示你可以在目錄中創(chuàng)建、刪除文件;
可執(zhí)行:表示你可以進(jìn)入該目錄;
關(guān)于“Kubernetes中CVE-2019-11244漏洞怎么修復(fù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。