Azure Kubernetes Service (AKS) Ubuntu 映像與 Internet Security (CIS) 基準中心保持一致

作為安全服務,Azure Kubernetes Service (AKS) 符合 SOC、ISO、PCI DSS 和 HIPAA 標準。 本文涵蓋套用至 AKS 所使用的 Ubuntu 映像的安全性 OS 設定。 此安全性設定是以符合 CIS 基準的 Azure Linux 安全性基準為基礎。 如需 AKS 安全性的詳細資訊,請參閱<Azure Kubernetes Service (AKS) 中應用程式和叢集的安全性概念>。 如需 AKS 安全性的詳細資訊,請參閱 Azure Kubernetes Service (AKS) 中應用程式和叢集的安全性概念。 如需 CIS 基準的詳細資訊,請參閱網際網路安全中心 (CIS) 基準。 如需適用於 Linux 的 Azure 安全性基準的詳細資訊,請參閱 Linux 安全性基準

Ubuntu LTS 18.04

AKS 叢集部署在主機虛擬機器上,主機虛擬機器會執行具有內建安全設定的作業系統。 此作業系統用於 AKS 上執行的容器。 此主機作業系統是以套用安全性設定的 Ubuntu 18.04.LTS 映像為基礎。

作為安全性最佳化的作業系統一部分:

  • AKS 依預設會提供安全性最佳化的主機 OS,但沒有選項可選取替代作業系統。
  • 安全性最佳化的主機 OS 是專門針對 AKS 所建置和維護,且無法在 AKS 平台外部獲得支援。
  • 已在作業系統中停用一些不必要的核心模組驅動程式,以縮小受攻擊面。

注意

Azure 會將每日修補檔 (包括安全性修補檔) 套用至 AKS 虛擬機器主機,其與 CIS 基準不相關。

在主機 OS 中內建安全性設定的目標是要減少受攻擊區,並以安全的方式將容器的部署最佳化。

以下是 CIS Ubuntu 18.04 LTS 基準測試 v2.1.0 建議的結果。

建議可出於下列其中一種原因:

  • 潛在的作業影響 - 未套用建議,因為其會對服務造成負面影響。
  • 包含在其他地方 - Azure 雲端計算中的另一個控制項中有該建議。

以下是已實作的 CIS 規則:

CIS 段落編號 建議描述 狀態 原因
1 初始設定
1.1 檔案系統設定
1.1.1 停用未使用的檔案系統
1.1.1.1 確定已停用 cramfs 檔案系統的掛接 通過
1.1.1.2 確定已停用 freevxfs 檔案系統的掛接 通過
1.1.1.3 確定已停用 jffs2 檔案系統的掛接 通過
1.1.1.4 確定已停用 HFS 檔案系統的掛接 通過
1.1.1.5 確定已停用 hfsplus 檔案系統的掛接 通過
1.1.1.6 確定已停用 udf 檔案系統的掛接 失敗 潛在的作業影響
1.1.2 確定已設定 /tmp 失敗
1.1.3 確定 /tmp 分割區上已設定 nodev 選項 失敗
1.1.4 確定 /tmp 分割區上已設定 nosuid 選項 通過
1.1.5 確定 /tmp 分割區上已設定 noexec 選項 通過
1.1.6 確定已設定 /dev/shm 通過
1.1.7 確定 /dev/shm 分割區上已設定 nodev 選項 通過
1.1.8 確定 /dev/shm 分割區上已設定 nosuid 選項 通過
1.1.9 確定 /dev/shm 分割區上已設定 noexec 選項 失敗 潛在的作業影響
1.1.12 確定 /var/tmp 分割區包含 nodev 選項 通過
1.1.13 確定 /var/tmp 分割區包含 nosuid 選項 通過
1.1.14 確定 /var/tmp 分割區包含 noexec 選項 通過
1.1.18 確定 /home 分割區包含 nodev 選項 通過
1.1.19 確定在抽取式媒體分割區上設定 nodev 選項 不適用
1.1.20 確定在抽取式媒體分割區上設定 nosuid 選項 不適用
1.1.21 確定在抽取式媒體分割區上設定 noexec 選項 不適用
1.1.22 請確認已在所有全局可寫入的目錄上設定黏滯位 失敗 潛在的作業影響
1.1.23 停用自動掛接 通過
1.1.24 停用 USB 儲存體 通過
1.2 設定軟體更新
1.2.1 確定已設定套件管理員存放庫 通過 包含在其他地方
1.2.2 確定已設定 GPG 金鑰 不適用
1.3 檔案系統完整性檢查
1.3.1 確定已安裝 AIDE 失敗 包含在其他地方
1.3.2 確定已定期檢查檔案系統完整性 失敗 包含在其他地方
1.4 安全開機設定
1.4.1 確定未覆寫開機載入器設定的權限 失敗
1.4.2 確定已設定開機載入器密碼 失敗 不適用
1.4.3 確保已設定開機載入器組態的權限 失敗
1.4.4 確定單一使用者模式所需的驗證 失敗 不適用
1.5 其他流程強化
1.5.1 確定已啟用 XD/NX 支援 不適用
1.5.2 確定已啟用位址空間配置隨機化 (ASLR) 通過
1.5.3 確定已停用預先連結 通過
1.5.4 確定核心傾印已受限 通過
1.6 強制存取控制
1.6.1 設定 AppArmor
1.6.1.1 確定已安裝 AppArmor 通過
1.6.1.2 確定開機載入器設定中已啟用 AppArmor 失敗 潛在的作業影響
1.6.1.3 確定所有 AppArmor 設定檔都處於強制執行或抱怨模式 通過
1.7 命令列警告橫幅
1.7.1 確定已正確設定當天的訊息 通過
1.7.2 確定已設定 /etc/issue.net 的權限 通過
1.7.3 確定已設定 /etc/issue 的權限 通過
1.7.4 確保已設定 /etc/motd 的權限 通過
1.7.5 確定已正確設定遠端登入警告橫幅 通過
1.7.6 確定已正確設定本機登入警告橫幅 通過
1.8 GNOME 顯示管理員
1.8.2 確定已設定 GDM 登入橫幅 通過
1.8.3 確定已啟用 disable-user-list 通過
1.8.4 確定未啟用 XDCMP 通過
1.9 確定已安裝更新、修補檔和其他安全性軟體 通過
2 服務
2.1 特殊用途服務
2.1.1 時間同步處理
2.1.1.1 確定時間同步處理正在使用中 通過
2.1.1.2 確定已設定 systemd-timesyncd 不適用 AKS 使用 ntpd 進行 timesync
2.1.1.3 確定已設定 chrony 失敗 包含在其他地方
2.1.1.4 確定已設定 ntp 通過
2.1.2 確定未安裝 X 視窗系統 通過
2.1.3 確定未安裝 Avahi 伺服器 通過
2.1.4 確定未安裝 CUPS 通過
2.1.5 確定未安裝 DHCP 伺服器 通過
2.1.6 確定未安裝 LDAP 伺服器 通過
2.1.7 確定未安裝 NFS 通過
2.1.8 確定未安裝 DNS 伺服器 通過
2.1.9 確定未安裝 FTP 伺服器 通過
2.1.10 確定未安裝 HTTP 伺服器 通過
2.1.11 確定未安裝 IMAP 和 POP3 伺服器 通過
2.1.12 確定未安裝 Samba 通過
2.1.13 確定未安裝 HTTP Proxy 伺服器 通過
2.1.14 確定未安裝 SNMP 伺服器 通過
2.1.15 確定已設定郵件傳輸代理程式使用僅限本機模式 通過
2.1.16 確定未安裝 rsync 服務 失敗
2.1.17 確定未安裝 NIS 伺服器 通過
2.2 服務用戶端
2.2.1 確定未安裝 NIS 用戶端 通過
2.2.2 確定未安裝 rsh 用戶端 通過
2.2.3 確定未安裝 talk 用戶端 通過
2.2.4 確定未安裝 Telnet 用戶端 失敗
2.2.5 確定未安裝 LDAP 用戶端 通過
2.2.6 確定未安裝 RPC 失敗 潛在的作業影響
2.3 確定已移除或遮罩非必要的服務 通過
3 網路設定
3.1 停用未使用的網路通訊協定和裝置
3.1.2 確定已停用無線介面 通過
3.2 網路參數 (僅限主機)
3.2.1 確定已停用封包重新導向傳送 通過
3.2.2 確定已停用 IP 轉送 失敗 不適用
3.3 網路參數 (主機和路由器)
3.3.1 確定不接受來源路由封包 通過
3.3.2 確定不接受 ICMP 重新導向 通過
3.3.3 確定不接受安全 ICMP 重新導向 通過
3.3.4 確定會記錄可疑的封包 通過
3.3.5 確定會忽略廣播 ICMP 要求 通過
3.3.6 確定會忽略假 ICMP 回應 通過
3.3.7 確定已啟用反轉路徑篩選 通過
3.3.8 確定已啟用 TCP SYN Cookie 通過
3.3.9 確定不接受 IPv6 路由器公告 通過
3.4 不常見的網路通訊協定
3.5 防火牆設定
3.5.1 設定 UncomplicatedFirewall
3.5.1.1 確定已安裝 ufw 通過
3.5.1.2 確定未隨 ufw 一起安裝 iptables-persistent 通過
3.5.1.3 確定已啟用 ufw 服務 失敗 包含在其他地方
3.5.1.4 確保已設定 ufw 回送流量 失敗 包含在其他地方
3.5.1.5 確定已設定 ufw 輸出連線 不適用 包含在其他地方
3.5.1.6 確定所有開啟的連接埠都有 ufw 防火牆規則 不適用 包含在其他地方
3.5.1.7 確定 ufw 預設拒絕防火牆原則 失敗 包含在其他地方
3.5.2 設定 nftables
3.5.2.1 確定已安裝 nftables 失敗 包含在其他地方
3.5.2.2 確定已使用 nftable 解除安裝或停用 ufw 失敗 包含在其他地方
3.5.2.3 確定已使用 nftable 排清 iptable 不適用 包含在其他地方
3.5.2.4 確定 nftables 資料表存在 失敗 包含在其他地方
3.5.2.5 確定 nftables 基底鏈結存在 失敗 包含在其他地方
3.5.2.6 確定已設定 nftables 回送流量 失敗 包含在其他地方
3.5.2.7 確定已設定輸出和已建立的連線 不適用 包含在其他地方
3.5.2.8 確保 nftables 預設拒絕防火牆原則 失敗 包含在其他地方
3.5.2.9 確定已啟用 nftables 服務 失敗 包含在其他地方
3.5.2.10 確定 nftables 規則是永久的 失敗 包含在其他地方
3.5.3 設定 iptables
3.5.3.1 設定 iptables 軟體
3.5.3.1.1 確定已安裝 iptables 套件 失敗 包含在其他地方
3.5.3.1.2 確定未隨 iptable 一起安裝 nftables 通過
3.5.3.1.3 確定已使用 iptables 解除安裝或停用 ufw 失敗 包含在其他地方
3.5.3.2 設定 IPv4 iptables
3.5.3.2.1 確保 iptables 預設拒絕防火牆原則 失敗 包含在其他地方
3.5.3.2.2 確定已設定 iptables 回送流量 失敗 不適用
3.5.3.2.3 確定已設定 iptables 輸出和已建立的連線 不適用
3.5.3.2.4 確定所有開啟的連接埠都有 iptables 防火牆規則 失敗 潛在的作業影響
3.5.3.3 設定 IPv6 ip6tables
3.5.3.3.1 確保 ip6tables 預設拒絕防火牆原則 失敗 包含在其他地方
3.5.3.3.2 確定已設定 ip6tables 回送流量 失敗 包含在其他地方
3.5.3.3.3 確定已設定 ip6tables 輸出和已建立的連線 不適用 包含在其他地方
3.5.3.3.4 確定所有開啟的連接埠都有 ip6tables 防火牆規則 失敗 包含在其他地方
4 記錄與稽核
4.1 設定系統會計 (AuditD)
4.1.1.2 確定已啟用稽核
4.1.2 設定資料保留期
4.2 設定記錄
4.2.1 設定 rsyslog
4.2.1.1 確定已安裝 rsyslog 通過
4.2.1.2 確定已啟用 rsyslog 服務 通過
4.2.1.3 確定已設定記錄 通過
4.2.1.4 確定已設定 rsyslog 預設檔案權限 通過
4.2.1.5 確定 rsyslog 已設定為將記錄傳送至遠端記錄主機 失敗 包含在其他地方
4.2.1.6 確定遠端 rsyslog 訊息只會在指定的記錄主機上接受。 不適用
4.2.2 設定日誌
4.2.2.1 確定已將日誌設定為將記錄傳送至 rsyslog 通過
4.2.2.2 確定已將日誌設定為壓縮大型記錄檔 失敗
4.2.2.3 確定已將日誌設定為將記錄檔寫入永續性磁碟 通過
4.2.3 確定已設定所有記錄檔的權限 失敗
4.3 確定已設定 logrotate 通過
4.4 確定 logrotate 指派適當的權限 失敗
5 存取、驗證和授權
5.1 設定以時間為基礎的工作排程器
5.1.1 確定已啟用並執行 cron 精靈 通過
5.1.2 確定已設定 /etc/crontab 的權限 通過
5.1.3 確定已設定 /etc/cron.hourly 的權限 通過
5.1.4 確定已設定 /etc/cron.daily 的權限 通過
5.1.5 確定已設定 /etc/cron.weekly 的權限 通過
5.1.6 確定已設定 /etc/cron.monthly 的權限 通過
5.1.7 確定已設定 /etc/cron.d 的權限 通過
5.1.8 確定 cron 限制為已授權的使用者 失敗
5.1.9 確定 at 限制為已授權的使用者 失敗
5.2 設定 sudo
5.2.1 確定已安裝 sudo 通過
5.2.2 確定 sudo 命令使用 pty 失敗 潛在的作業影響
5.2.3 確定 sudo 記錄檔存在 失敗
5.3 設定 SSH 伺服器
5.3.1 確定已設定 /etc/ssh/sshd_config 的權限 通過
5.3.2 確定已設定 SSH 私人主機金鑰檔案的權限 通過
5.3.3 確定已設定 SSH 公用主機金鑰檔案的權限 通過
5.3.4 確定 SSH 存取受到限制 通過
5.3.5 確定 SSH LogLevel 適當 通過
5.3.7 確定 SSH MaxAuthTries 設定為 4 或更低 通過
5.3.8 確定已啟用 SSH IgnoreRhosts 通過
5.3.9 確定已停用 SSH HostbasedAuthentication 通過
5.3.10 確定已停用 SSH 根登入 通過
5.3.11 確定已停用 SSH PermitEmptyPasswords 通過
5.3.12 確定已停用 SSH PermitUserEnvironment 通過
5.3.13 確定只使用強式加密 通過
5.3.14 確定僅使用強式 MAC 演算法 通過
5.3.15 確定只使用強式金鑰交換演算法 通過
5.3.16 確定已設定 SSH 閒置逾時間隔 失敗
5.3.17 確定 SSH LoginGraceTime 設定為一分鐘或更低 通過
5.3.18 確定已設定 SSH 警告橫幅 通過
5.3.19 確定已啟用 SSH PAM 通過
5.3.21 確定已設定 SSH MaxStartups 失敗
5.3.22 確定 SSH MaxSessions 有限 通過
5.4 設定 PAM
5.4.1 確定已設定密碼建立需求 通過
5.4.2 確定已設定密碼嘗試失敗的鎖定 失敗
5.4.3 確定密碼重複使用受到限制 失敗
5.4.4 確保密碼雜湊演算法為 SHA-512 通過
5.5 使用者帳戶和環境
5.5.1 設定陰影密碼套件參數
5.5.1.1 確定以設定密碼變更之間的最小天數 通過
5.5.1.2 確定密碼到期日為 365 天或更短 通過
5.5.1.3 確定密碼到期警告天數為 7 天或更多 通過
5.5.1.4 確定非作用中密碼鎖定為 30 天或更短 通過
5.5.1.5 確保所有使用者的上次密碼變更日期是過去的日期 失敗
5.5.2 確定系統帳戶受到保護 通過
5.5.3 確定根帳戶的預設群組為 GID 0 通過
5.5.4 確定預設使用者 umask 為 027 或更嚴格 通過
5.5.5 確定預設使用者殼層逾時為 900 秒或更短 失敗
5.6 確定根登入僅限於系統主控台 不適用
5.7 確定會限制 su 命令的存取權 失敗 潛在的作業影響
6 系統維護
6.1 系統檔案權限
6.1.2 確定已設定 /etc/passwd 的權限 通過
6.1.3 確定已設定 /etc/passwd- 的權限 通過
6.1.4 確定已設定 /etc/group 的權限 通過
6.1.5 確定已設定 /etc/group- 的權限 通過
6.1.6 確定已設定 /etc/shadow 的權限 通過
6.1.7 確定已設定 /etc/shadow- 的權限 通過
6.1.8 確定已設定 /etc/gshadow 的權限 通過
6.1.9 確定已設定 /etc/gshadow- 的權限 通過
6.1.10 確定沒有世界可寫入的檔案存在 失敗 潛在的作業影響
6.1.11 確定沒有未擁有的檔案或目錄存在 失敗 潛在的作業影響
6.1.12 確定沒有未分組的檔案或目錄存在 失敗 潛在的作業影響
6.1.13 稽核 SUID 可執行檔 不適用
6.1.14 稽核 SGID 可執行檔 不適用
6.2 使用者和群組設定
6.2.1 確定 /etc/passwd 中的帳戶使用已遮蔽密碼 通過
6.2.2 確定密碼欄位不是空的 通過
6.2.3 確保 /etc/passwd 中的所有群組都存在於 /etc/group 中 通過
6.2.4 確保所有使用者的主目錄皆存在 通過
6.2.5 確保使用者擁有其主目錄 通過
6.2.6 確定使用者的主目錄權限為 750 或更嚴格 通過
6.2.7 確定使用者的 dot 檔案沒有群組或全域寫入權限 通過
6.2.8 確保沒有任何使用者有 .netrc 檔案 通過
6.2.9 確保沒有任何使用者有 .forward 檔案 通過
6.2.10 確保沒有任何使用者有 .rhosts 檔案 通過
6.2.11 確保根是唯一的 UID 0 帳戶 通過
6.2.12 確定根路徑完整性 通過
6.2.13 確保沒有任何重複的 UID 存在 通過
6.2.14 確保沒有任何重複的 GID 存在 通過
6.2.15 確保沒有重複的使用者名稱 通過
6.2.16 確定沒有重複的群組名稱 通過
6.2.17 確保陰影群組是空的 通過

下一步

如需 AKS 安全性的詳細資訊,請參閱下列文章: