亞馬遜發布 Bottlerocket 1.0.0,一個基於隔離容器的 Linux 發行版

亞馬遜公司 呈現 專用 Linux 發行版的第一個重要版本 瓶裝火箭1.0.0,旨在高效、安全地運行隔離容器。 此發行版的工具和控制元件是用 Rust 寫的 傳播 根據 MIT 和 Apache 2.0 許可證。 該專案正在 GitHub 上開發,可供社區成員參與。 系統部署映像是針對 x86_64 和 Aarch64 架構產生的。 此作業系統適合在 Amazon ECS 和 AWS EKS Kubernetes 叢集上運作。 均提供 用於建立您自己的組件和版本的工具,可以使用其他編排工具、核心和容器執行時間。

此發行版提供了Linux核心和最小的系統環境,僅包括運行容器所需的元件。 該專案涉及的軟體包包括系統管理器systemd、Glibc庫和組裝工具
Buildroot、GRUB 開機載入程式、網路設定器 邪惡,隔離容器的運行時 裝箱的、Kubernetes 容器編排平台、aws-iam-authenticator 和 Amazon ECS 代理程式。

發行版以原子方式更新,並以不可分割的系統映像的形式交付。 為系統指派兩個磁碟分割區,其中一個包含活動系統,更新複製到第二個。 部署更新後,第二個分區將變為活動狀態,第一個分區將保存系統的先前版本,直到下一個更新到來為止,如果出現問題,您可以回滾到該版本。 更新會自動安裝,無需管理員幹預。

與 Fedora CoreOS、CentOS/Red Hat Atomic Host 等類似發行版的主要區別在於主要專注於提供 最大安全性 在加強系統保護以免受可能的威脅的背景下,使利用作業系統元件中的漏洞變得更加困難並增加容器的隔離。 容器是使用標準 Linux 核心機制建立的 - cgroup、命名空間和 seccomp。 為了實現額外的隔離,該發行版在「強制」模式下使用 SELinux,並且該模組用於對根分區的完整性進行加密驗證 dm-驗證。 如果偵測到嘗試在區塊裝置層級修改數據,系統將重新啟動。

根分割區以唯讀方式掛載,/etc 設定分割區掛載在 tmpfs 中,重新啟動後恢復到原始狀態。 不支援直接修改 /etc 目錄中的文件,例如 /etc/resolv.conf 和 /etc/containerd/config.toml - 要永久保存設置,您必須使用 API 或將功能移至單獨的容器中。

大多數系統元件都是用 Rust 編寫的,它提供記憶體安全功能,以避免因釋放後記憶體存取、空指標取消引用和緩衝區溢位而導致的漏洞。 預設建置時,「--enable-default-pie」和「--enable-default-ssp」編譯模式用於啟用執行檔位址空間的隨機化(餡餅)並透過金絲雀替換進行堆疊溢位保護。
對於用 C/C++ 編寫的套件,包含附加標誌
「-Wall」、「-Werror=format-security」、「-Wp,-D_FORTIFY_SOURCE=2」、「-Wp,-D_GLIBCXX_ASSERTIONS」和「-fstack-clash-protection」。

容器編排工具單獨提供 控制容器,預設情況下啟用並透過控制 API 和 AWS SSM 代理程式。 基礎鏡像缺少命令 shell、SSH 伺服器和解釋語言(例如,沒有 Python 或 Perl)——管理工具和偵錯工具位於 單獨的服務容器,預設情況下禁用。

來源: opennet.ru

添加評論