Azure Kubernetes Service (AKS) Ubuntu イメージと Center for 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) でのアプリケーションとクラスターに対するセキュリティの概念」をご覧ください。 詳細については、Center for Internet Security (CIS) ベンチマークに関するページを参照してください。 Linux 用の Azure セキュリティ ベースラインの詳細については、「Linux セキュリティ ベースライン」を参照してください。

Ubuntu LTS 18.04

AKS クラスターは、セキュリティで保護された構成が組み込まれたオペレーティング システムを実行するホスト仮想マシンにデプロイされます。 このオペレーティング システムは、AKS で実行されているコンテナーに使用されます。 このホスト オペレーティング システムは、セキュリティ構成が適用された Ubuntu 18.04.LTS イメージに基づいています。

セキュリティ最適化オペレーティング システムの一環として、次が挙げられます。

  • AKS は、既定でセキュリティが最適化されたホスト OS を提供しますが、別のオペレーティング システムを選択するオプションはありません。
  • セキュリティ最適化されたホスト OS は、AKS 専用に構築および保守されており、AKS プラットフォーム以外ではサポートされていません
  • 攻撃対象領域をさらに減らすため、OS では一部の不要なカーネル モジュール ドライバーが無効になっています。

注意

CIS ベンチマークとは関係なく、Azure では、AKS 仮想マシン ホストに対して更新プログラム (セキュリティ更新プログラムを含む) が毎日適用されます。

ホスト OS に組み込まれたセキュリティ構成の目標は、攻撃の対象となる領域を減らし、安全な方法でコンテナーをデプロイするために最適化することです。

CIS Ubuntu 18.04 LTS ベンチマーク v2.1.0 の推奨事項の結果を次に示します。

推奨事項の理由は次のいずれかになります。

  • 運用への影響の可能性 - 推奨事項は、サービスに悪影響を及ぼす可能性があるため、適用されませんでした。
  • その他でカバー - 推奨事項は、Azure クラウド コンピューティングの別のコントロールによってカバーされています。

実装される CIS ルールを次に示します。

CIS 段落番号 推奨事項の説明 Status 理由
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 は timesync に ntpd を使用します
2.1.1.3 chrony が構成されていることを確認する 失敗 その他でカバー
2.1.1.4 ntp が構成されていることを確認する 合格
2.1.2 X Window System がインストールされていないことを確認する 合格
2.1.3 Avahi Server がインストールされていないことを確認する 合格
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 プロキシ サーバーがインストールされていないことを確認する 合格
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 iptables-persistent が ufw と共にインストールされていないことを確認する 合格
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 nftables で ufw がアンインストールまたは無効になっていることを確認する 失敗 その他でカバー
3.5.2.3 iptables が nftable でフラッシュされていることを確認する 適用しない その他でカバー
3.5.2.4 nftables テーブルが存在することを確認する 失敗 その他でカバー
3.5.2.5 nftables ベース チェーンが存在することを確認する 失敗 その他でカバー
3.5.2.6 nftables ループバック トラフィックが構成されていることを確認する 失敗 その他でカバー
3.5.2.7 nftables 送信接続と確立された接続が構成されていることを確認する 適用しない その他でカバー
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 nftables が iptables と共にインストールされていないことを確認する 合格
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 journald の構成
4.2.2.1 ログを rsyslog に送信するように journald が構成されていることを確認する 合格
4.2.2.2 大きなログ ファイルを圧縮するように journald が構成されていることを確認する 失敗
4.2.2.3 永続ディスクにログ ファイルを書き込むよう journald が構成されていることを確認する 合格
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 が 1 分以下に設定されていることを確認する 合格
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 root アカウントの既定のグループの 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 ユーザーのドット ファイルへの書き込みがグループまたは全員に許可されていないことを確認する 合格
6.2.8 どのユーザーにも .netrc ファイルが存在しないことを確認する 合格
6.2.9 どのユーザーにも .forward ファイルが存在しないことを確認する 合格
6.2.10 どのユーザーにも .rhosts ファイルが存在しないことを確認する 合格
6.2.11 root が唯一の UID 0 アカウントであることを確認する 合格
6.2.12 ルート PATH の整合性を確認する 合格
6.2.13 重複した UID が存在していないことを確認する 合格
6.2.14 重複した GID が存在していないことを確認する 合格
6.2.15 重複したユーザー名が存在していないことを確認する 合格
6.2.16 重複したグループ名が存在していないことを確認する 合格
6.2.17 シャドウ グループが空であることを確認する 合格

次のステップ

AKS のセキュリティに関する詳細については、次の記事をご覧ください。