docker公共存储库_查找并修复docker镜像安全漏洞
容器的出現(xiàn)使開發(fā)團(tuán)隊可以創(chuàng)建沙盒環(huán)境,以在其中運行和測試應(yīng)用程序,容器主要由從 docker hub 或其他公共鏡像存儲庫提取的開源鏡像組成。
但是這些開源鏡像有時可能包含一些漏洞,這些漏洞可能會危害容器的安全,進(jìn)而危害其主機/服務(wù)器。
由于這些容器在主機上運行,因此如果容器不受保護(hù),就可以劫持生產(chǎn)中的容器。
此類攻擊的一個很好的例子是特斯拉對未受保護(hù)的 Kubernetes 集群的加密劫持攻擊。在此攻擊中,攻擊者能夠使用特斯拉的 K8s(Kubernetes)集群提供的 GPU 下載并運行惡意腳本來挖掘加密貨幣。通過將 CPU 使用率保持在最低水平,并且還可以在特定的時間間隔運行腳本,導(dǎo)致監(jiān)控很難發(fā)現(xiàn)這個問題。
下面我們將研究常見的容器漏洞以及修復(fù)它們的可能方法。
容器漏洞
加密劫持
加密劫持是一種攻擊,其中惡意腳本被用來竊取設(shè)備的計算資源以挖掘加密貨幣。
最近,在 Docker 上發(fā)現(xiàn)了 CVE-2018-15664 的漏洞。 此漏洞使攻擊者有可能獲得對主機計算機的 root 訪問權(quán)限。
攻擊者除了能夠使用主機計算機的 CPU 和 GPU 資源來挖掘加密貨幣之外,還可以竊取敏感憑據(jù),進(jìn)行 DoS 攻擊,發(fā)起網(wǎng)絡(luò)釣魚活動等等。
如果容器包含惡意鏡像,這些容器會給攻擊者提供對整個容器的根訪問權(quán)限,則它們可能容易受到密碼劫持的攻擊。 如果 Docker API 暴露在公網(wǎng)上,例如 Tesla,它們很容易受到攻擊。
惡意開源鏡像
該漏洞可以覆蓋主機的 runc 二進(jìn)制文件,從而使攻擊者可以通過 root 用戶訪問權(quán)限來執(zhí)行命令。 v18.09.2 之前的Docker 引擎使帶有攻擊者控制鏡像的容器容易受到 CVE-2019-5736 漏洞的影響。
建議工程師盡可能利用 docker 提供的官方 Docker 鏡像。 畢竟,甚至還有一個由 Docker 贊助的團(tuán)隊,該團(tuán)隊與軟件維護(hù)者/發(fā)布者和安全專家緊密合作,以確保官方 Docker 鏡像的安全性。
靜態(tài) Dockerfile
容器的鏡像是不可變的。 這意味著在構(gòu)建鏡像時,其內(nèi)容不可更改。 由于鏡像中包含的過時程序包/庫/鏡像也會導(dǎo)致漏洞
因此,將漏洞掃描程序合并到 CI/CD 流程中是一個好主意,以便識別易受攻擊的容器鏡像。 由于鏡像是不可變的,因此建議經(jīng)常更新程序包、庫、鏡像
如何查找容器漏洞
前面我們說了利用漏洞如何攻擊容器的可能方式。
下面研究下如何找出容器中可能包含的漏洞
使用 Docker Bench for Security
Docker Bench for Security 是一個腳本,用于測試主機/服務(wù)器上的所有 Docker 容器,檢查關(guān)于在生產(chǎn)環(huán)境中部署Docker 容器的幾十個常見最佳實踐,這些測試基于 CIS docker 基準(zhǔn)。
如何運行
docker run -it --net host --pid host --userns host --cap-add audit_control ? ?-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST ? ?-v /etc:/etc:ro ? ?-v /usr/bin/docker-containerd:/usr/bin/docker-containerd:ro ? ?-v /usr/bin/docker-runc:/usr/bin/docker-runc:ro ? ?-v /usr/lib/systemd:/usr/lib/systemd:ro ? ?-v /var/lib:/var/lib:ro ? ?-v /var/run/docker.sock:/var/run/docker.sock:ro ? ?--label docker_bench_security ? docker/docker-bench-security該腳本運行各種測試,并為每個測試提供 INFO , NOTE , PASS 或 WARN 結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的docker公共存储库_查找并修复docker镜像安全漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机联系人头像包_一组抖音上很火的表情包
- 下一篇: jackson 读取多文件_Spring