Alpine Docker 鏡像漏洞(CVE-2019-5021)對平臺影響

漏洞官方鏈接:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5021

CVE-2019-5021

Versions of the Official Alpine Linux Docker images (since v3.3) contain a NULL password for the `root` user. This vulnerability appears to be the result of a regression introduced in December of 2015. Due to the nature of this issue, systems deployed using affected versions of the Alpine Linux container which utilize Linux PAM, or some other mechanism which uses the system shadow file as an authentication database, may accept a NULL password for the `root` user.

官方對這個(gè)漏洞的描述為:如果在 Docker 容器中安裝了 shadow 軟件包并以非 root 用戶身份運(yùn)行服務(wù),那么具有 shell 訪問權(quán)限的用戶可在容器內(nèi)對賬號進(jìn)行提權(quán)。?

根據(jù)漏洞報(bào)告,自 Alpine Linux 3.3 版本開始的所有 Docker 鏡像中,root 用戶包含一個(gè)空密碼,這可能會導(dǎo)致攻擊者獲得 root 權(quán)限,進(jìn)而造成攻擊。

報(bào)告中稱:受影響范圍是 Alpine Linux Docker 鏡像 3.3、3.4、3.5、3.6、3.7、3.8、3.9、edge 等全部版本。

密碼以加密形式保存,但允許以 root 身份登錄而無需輸入任何密碼

該漏洞僅針對?Alpine Linux 的 Docker 鏡像版本,且安裝了shadow或linux-pam軟件包才會受影響。

對于使用較舊的、不受支持的版本,可以將以下命令添加到 Dockerfile 來修復(fù)漏洞:

# make sure root login is disabled

RUN sed -i -e's/^root::/root:!:/'/etc/shadow

或者卸載shadow或linux-pam軟件包。

我們分別來看它的?/etc/passwd?和?/etc/shadow?文件,很明顯,此刻?root?用戶是一個(gè)空密碼;并不符合預(yù)期。這樣也就導(dǎo)致了被攻擊的可能性。

操作系統(tǒng)典型常規(guī)的配置如下:

[root@ips106 ~]# grep root /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

[root@ips106 ~]# grep root /etc/shadow

root:$6$14YMCeNI$pQslPGn0/V.PPA2ycMMZrvCbp64Mgnu6gf.o3oNvDL3A0Uw6L8nk7tfCzqYj19os635ey/s35PhH42FW//QdY1:17504:0:99999:7:::

[root@ips106 ~]#


1、pause鏡像,基于空鏡像創(chuàng)建,不涉及alpine,漏洞無影響

FROM scratch

ARG ARCH

ADD bin/pause-${ARCH} /pause

ENTRYPOINT ["/pause"]

2、Docker-health鏡像基于alpine:edge,alpine漏洞影響容器安全

# Version 1.0

FROM alpine:edge

RUN apk add --update --no-cache --virtual curl && \?

rm -r /var/cache/apk && \

rm -r /usr/share/man && \

touch /htmp

CMD tail -f /htmp


3、registry鏡像基于alpine:3.4,存在該安全漏洞

[root@ips106 ~]# docker ps

CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? NAMES

b88c5798ab7b? ? ? ? registry:2.5.1? ? ? ? ? ? ? "/entrypoint.sh /etc…"? 2 months ago? ? ? ? Up 2 months? ? ? ? 0.0.0.0:35007->5000/tcp? ips-registry7

[root@ips106 ~]# docker exec -it b88c5798ab7b /bin/sh

/ # grep root /etc/passwd

root:x:0:0:root:/root:/bin/ash

operator:x:11:0:operator:/root:/bin/sh

/ # grep root /etc/shadow

root:::0:::::

/ #


4、產(chǎn)品nginx基礎(chǔ)鏡像為官方nginx鏡像,該鏡像中root賬戶已被禁用,不存在該漏洞

[root@ips28 test]# docker exec -it bacf767d2cc2 /bin/bash

root@bacf767d2cc2:/# grep root /etc/passwd

root:x:0:0:root:/root:/bin/bash

root@bacf767d2cc2:/# grep root /etc/shadow

root:*:18022:0:99999:7:::

5、heapster未采用官網(wǎng)鏡像,產(chǎn)品使用的heapster鏡像基于alpine:3.7,存在該安全隱患

?雖然鏡像中/etc/shadow文件存在root用戶密碼為空,但是鏡像使用普通用戶,并且禁止su,同時(shí)未提供sudo,無法通過修改busybox權(quán)限打開su,無法通過root密碼為空的漏洞提權(quán)訪問。

[root@ips28 etc]# cat shadow

root:::0:::::

[root@ips28 etc]# docker exec -it 8fda40024e8a /bin/sh

~ $ id

uid=65534(nobody) gid=65534(nobody)

~ $ su -

su: must be suid to work properly

~ $ cat /etc/alpine-release

3.7.0

~ $ grep root /etc/passwd

root:x:0:0:root:/root:/bin/ash

operator:x:11:0:operator:/root:/bin/sh

~ $ grep root /etc/shadow

grep: /etc/shadow: Permission denied

~ $? find -name busybox

./bin/busybox

find: ./proc/tty/driver: Permission denied

find: ./root: Permission denied

~ $ sudo chmod 4755 ./bin/busybox

/bin/sh: sudo: not found

~ $ chmod 4755 ./bin/busybox

chmod: ./bin/busybox: Operation not permitted

~ $

官網(wǎng)heapster鏡像dockerfile

綜合以上,平臺目前提供的鏡像包含nginx /heapster/registry/docker-health/pause,其中只有docker-health(基于alpine:edge)和registry(基于alpine:3.4)存在該安全隱患,heapster雖然也是基于3.7版本的鏡像但是已經(jīng)通過禁用su,未提供sudo禁止了該漏洞可能存在的提權(quán)行為。

針對平臺而言只是存在風(fēng)險(xiǎn),實(shí)際對我們平臺不對外開放的非業(yè)務(wù)容器,影響很?。恍枰⒁獾氖菢I(yè)務(wù)鏡像制作的時(shí)候盡量避免使用alpine的這些版本。升級使用最新版本的alpine即可。


參考:

http://www.codesafe.cn/index.php?r=news/detail&id=4849

http://www.itdecent.cn/p/a90eff5641d5

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容