上週六,18 月 XNUMX 日,Kenna Security 的 Jerry Gamblin Docker Hub 中 1000 個最流行的圖像,按它們為 root 用戶使用的密碼。 在 19% 的情況下,結果是空的。

高山背景
進行小型研究的原因是本月早些時候出現的 Talos 漏洞報告(),其作者——感謝來自 Cisco Umbrella 的 Peter Adkins 的發現——報告說流行的 Alpine 容器發行版的 Docker 鏡像沒有 root 密碼:
“官方 Alpine Docker 映像” Linux (從 v3.3 開始)root 使用者的密碼為空。此漏洞是由於 2015 年 12 月引入的迴歸錯誤所導致的。該漏洞的本質在於,部署了受影響版本的 Alpine 的系統存在安全隱患。 Linux 在容器中並使用 Linux PAM 或其他使用系統影子檔案作為驗證資料庫的機制可能會接受 root 使用者的空密碼。
針對該問題測試的 Alpine Docker 鏡像版本為 3.3-3.9,以及最新版本的 edge。
作者向受影響的用戶提出以下建議:
在針對受影響的 Alpine 版本所建置的 Docker 映像中,必須明確停用 root 帳戶。此漏洞的潛在利用取決於環境,因為其成功利用需要外部暴露的服務或應用程式。 Linux PAM或其他類似機制。 」
問題是 在 Alpine 版本 3.6.5、3.7.3、3.8.4、3.9.2 和 edge(20190228 快照)中,受影響圖像的所有者被要求註釋掉帶有 root 的行 /etc/shadow 或確保包裹丟失 linux-pam.
接自 Docker Hub
Jerry Gamblin 決定詢問“在容器中使用空密碼的做法可能有多普遍”。 為此,他寫了一個小 ,其實質很簡單:
- 通過對 Docker Hub 中的 API 的 curl 請求,請求那里托管的 Docker 鏡像列表;
- 通過 jq 它按字段排序
popularity,並且從獲得的結果來看,前一千名仍然存在; - 對於他們每個人,
docker pull; - 對於從 Docker Hub 收到的每個圖像,
docker run從文件中讀取第一行/etc/shadow; - 如果字符串值等於
root:::0:::::, 圖像名稱被保存到一個單獨的文件中。
發生了什麼? 在 共有 194 行,其中包含常用 Docker 映像的名稱。 Linux-root用戶未設定密碼的系統:
“這份名單上最著名的名字包括 govuk/governmentpaas、hashicorp、微軟、孟山都和 mesosphere。 kylemanna/openvpn 是列表中最受歡迎的容器,拉取次數超過 10 萬次。”
然而,值得回顧的是,這種現象本身並不意味著使用它們的系統的安全性存在直接漏洞:這完全取決於它們的使用方式。 (見上面阿爾卑斯案例的評論). 然而,我們已經多次看到“這個故事的寓意”:表面上的簡單往往有一個缺點,你應該永遠記住這一點,並在你使用技術的場景中考慮到它的後果。
聚苯乙烯
另請閱讀我們的博客:
- «“;
- «“;
- «“;
- «“。
來源: www.habr.com
