ノード コンプライアンス

GKE On-Prem ノードイメージは、PCI DSS、NIST ベースライン ハイ、DoD クラウド コンピューティングの SRG インパクト レベル 2 の設定で事前構成されています。

以降のセクションでは、変更されたコンプライアンス構成について説明します。

インストール済みのパッケージ

ノード OS イメージには次のパッケージが含まれています。

監査

オペレーティング システムに追加された監査ルールは、ファイルの所有権と権限、ファイルの削除、カーネル モジュールの読み込みまたは削除、特権コマンドの使用、システム管理コマンドのロギングの変更に関する要件を満たしています。

ノード OS の auditd により、次のイベントが記録されます。

  • 随意アクセス制御(DAC)の変更:

    • chmod: ファイルモードまたはアクセス制御リストの変更
    • chown: ファイルのオーナーとグループの変更
    • fchmod: ファイルのモードの変更
    • fchmodat: ファイルのモードの変更
    • fchown: ファイルのオーナーとグループの変更
    • fchownat: ファイルのオーナーとグループの変更
    • fremovexattr: 拡張属性値の削除
    • fsetxattr: 拡張属性値の設定
    • lchown: ファイルのオーナーとグループの変更
    • lremovexattr: 拡張属性値の削除
    • lsetxattr: 拡張属性値の設定
    • removexattr: 拡張属性値の削除
    • setxattr: 拡張属性値の設定
  • ファイルの削除

    • ename: ファイル名の変更
    • renameat: ファイル名の変更
    • rmdir: ディレクトリの削除
    • unlink: ディレクトリ エントリの削除
    • unlinkat: ディレクトリ エントリの削除
  • カーネル モジュールの読み込み

    • deleted: 未使用の読み込み可能なカーネル モジュールの削除
    • finit: ファイル記述子からのカーネル モジュールの読み込み
    • init: ELF イメージのカーネル空間への読み込み
  • ログイン イベント

    • faillock: ログインの試行に繰り返し失敗した後のユーザー アカウントのロック
    • lastlog: ログインの記録
    • tallylog: 成功および失敗したログイン試行の記録
  • メディア エクスポート: mount -F コマンドでリモート ファイル システムをマウント

  • 特権コマンド

    • chage: ユーザー データベース情報の追加または変更
    • chsh: ユーザー データベース情報の追加または変更
    • crontab: 個別ユーザーの crontab ファイルの管理
    • gpasswd: グループ メンバーのパスワードの設定または変更
    • newgrp: 新しいグループに対する変更
    • passwd: ユーザーのパスワードの変更
    • postdrop: Postfix メール送信ユーティリティ
    • postqueue: Postfix キュー制御
    • ssh_keysign: SSH デーモンのホストキーの管理
    • su: ユーザー ID の代用
    • sudo: 別のユーザーとしてコマンドを実行する
    • unix_chkpwd: 現在のユーザーのパスワードを確認する
  • システム管理者の操作: sudoers の変更

  • システムのシャットダウン: OS のシャットダウンと再起動

  • ファイルの変更の失敗

    • creat: 新しいファイルの作成
    • ftruncate: ファイルを指定された長さに切り詰める、または伸張する
    • open: ファイルおよびディレクトリを開く
    • open_by_handle_at: 読み書き用にファイルを開く、または作成する
    • openat: 読み書き用にファイルを開く、または作成する
    • truncate: ファイルを指定された長さに切り詰める、または伸張する
  • ユーザー / グループの変更

    • group: ローカル グループ メンバーシップ
    • gshadow: グループ パスワード データベース
    • opasswd: パスワードの再利用データベース
    • passwd: ローカル ユーザーのログイン情報
    • shadow: ハッシュ化されたローカル ユーザー パスワードのデータベース

ユーザー プロファイルのパスワード要件

コンプライアンス上、ユーザー パスワードには複雑性の要件が必要です。このような複雑性についての要件は、次のように /etc/security/pwquality.conf で実装されます。

minlen = 15
lcredit = -1
maxrepeat = 3
difok = 8
maxclassrepeat = 4
ocredit = -1
dcredit = -1
ucredit = -1
minclass = 4

SSH サーバー

以下の設定が、sshd サーバー構成に実装されています。

システムバナー

警告メッセージにより、ログイン プロセスでのポリシーの認知を高め、攻撃者に対する法的措置を講じやすくします。システムの所有者情報の公開を避けたい場合には、属性を容易に特定できないバナーを使用する必要があります。

SSH プロトコル 2

SSH プロトコル 1 は安全性が低いため、クライアントが誤って脆弱な接続パラメータでネゴシエートしないように、無効にする必要があります。

SSH での root ログインの無効化

SSH では、管理者権限による操作のトレーサビリティが低下するため、root ユーザーとしての直接ログインは許可しないようにする必要があります。

SSH での PermitUserEnvironment の禁止

PermitUserEnvironment を使用するとサーバーの構成を迂回できます。これを禁止することにより、セッションの確立中に安全でない設定がインポートされないようにします。

SSH 警告バナー

警告メッセージにより、ログイン プロセスでのポリシーの認知を高め、攻撃者に対する法的措置を講じやすくします。この設定により、SSH デーモンがシステムの構成済みバナー コンテンツを表示するようになります。

SSH アイドル タイムアウト

SSH を使用すると、管理者はアイドル タイムアウト間隔を設定できます。操作をしない状態でこの時間が経過した場合、ユーザーは自動的にログアウトします。

SSH キープアライブ

これにより、SSH アイドル タイムアウトに達すると直ちにユーザー ログインが解除されます。

SSH 承認済み暗号

暗号モジュールに対する認証に使用される未承認の仕組みは、検証が行われていないため、機密性や整合性を確保することを目的として利用できません。また、使用すると、システムデータが侵害される可能性があります。暗号化を使用するオペレーティング システムでは、FIPS 準拠の仕組みを使用して暗号モジュールに対する認証を行う必要があります。FIPS 140-2 は、暗号モジュールへのアクセスに使用される仕組みが業界や政府の要件を満たす認証を利用していることを検証するための現行の標準です。

SSH 承認済み MAC

MAC を FIPS で承認されているハッシュ アルゴリズムに制限します。

SSH UsePrivilegeSeparation

SSH デーモンの特権分離によって、必要ない場合は SSH プロセスの root 権限を破棄することで、非特権セクションにおけるソフトウェアの脆弱性の影響を軽減します。

SSH ログイン試行の表示

認証が成功した場合に、前回のログイン試行を表示します。目的は、想定外のログインについてユーザーに知らせることです。

ファイルの整合性スキャン

次の AIDE 整合性チェックが構成されています。

AIDE 定期スキャン

少なくとも、週に 1 回スキャンするように AIDE を構成する必要があります。また、AIDE の実行回数の上限については、1 日あたり 1 回とする必要があります。Ubuntu では、デフォルトで毎日実行されるように AIDE が構成されています。

AIDE 通知

スキャンの実行後、AIDE はスキャンの詳細を適切な担当者に通知する必要があります。Ubuntu の AIDE のデフォルト構成では、/etc/cron.daily/aide にメールレポートが自動的に送信されます。

AIDE: FIPS 承認の暗号ハッシュの使用

ファイル整合性ツールは、ファイルの内容とディレクトリが変更されていないことを確認するために、暗号ハッシュを使用します。これらのハッシュは、FIPS 140-2 で承認された暗号ハッシュであることが必要です。

AIDE: ACL の検証

ACL は、ファイルモードを通じて許可される権限を超える権限を付与できるため、ファイルの整合性ツールで検証する必要があります。

AIDE: EXT 属性の検証

ファイル システムの拡張属性は、セキュリティに影響のある任意のデータとファイル メタデータを格納するために使用されます。

カーネル設定

/etc/sysctl のカーネル設定に以下の変更が加えられています。

Ctrl+Alt+Del キーによる再起動の無効化

Ctrl+Alt+Del キーを押すと、コンソールでローカルにログインしたユーザーがシステムを再起動できます。OS 環境が混在する環境で発生する可能性のある誤ったボタンの押下により、意図しない再起動が発生してシステムの可用性が短期的に失われる危険性があります。

DCCP カーネル モジュールの無効化

Datagram Congestion Control Protocol(DCCP)は比較的新しいトランスポート レイヤ プロトコルであり、ストリーミング メディアと電話通信をサポートするように設計されています。DCCP を無効にすると、実装での欠陥の悪用からシステムを保護できます。

USB ストレージのカーネル モジュールの無効化

USB メモリなどの USB ストレージ デバイスは、悪意のあるソフトウェアの導入に使用される可能性があります。USB ストレージ デバイスが使用されないようにするには、USB ストレージ ドライバの自動読み込みを行わないように、カーネル モジュールの読み込みシステムを構成します。

仮想アドレス空間のランダム化

アドレス空間配置のランダム化(ASLR)を行うと、攻撃者が攻撃を試みる際、プロセスのアドレス空間に導入された攻撃コードの位置を予測することが困難になります。さらに、ASLR により、攻撃者がリターン指向プログラミング(ROP)の手法で既存のコードを再利用しようとする場合にも、そのコードの位置を特定することが困難になります。

IPv4 リダイレクトの無効化

ICMP リダイレクト メッセージは、特定の宛先へのより近いルートの存在をルーターがホストに通知するために使用されます。これらのメッセージはホストのルートテーブルを変更しますが、認証を受けません。不正な ICMP リダイレクト メッセージは、中間者攻撃によるものであることが考えられます。IPv4 プロトコルのこの機能の用途のうち、合法的なものはごくわずかです。必要不可欠な場合を除き、無効化してください。

送信元でルーティングされる IPv4 パケットの無効化

送信元でルーティングされるパケットを使用すると、送信元は、ルーターで構成されたものと異なるパスをパケットが通るように指定できます。これは、ネットワーク セキュリティ対策をバイパスする手段として利用されることがあります。この要件は、IPv4 転送が有効でシステムがルーターとして機能している場合など、送信元でルーティングされるトラフィックの転送にのみ適用されます。送信元でルーティングされたパケットを IPv4 プロトコルで受信する機能の用途のうち、合法的なものはごくわずかです。必要不可欠な場合を除き、無効化してください。

IPv4 リダイレクトの送信の無効化

ICMP リダイレクト メッセージは、特定の宛先へのより近いルートの存在をルーターがホストに通知するために使用されます。これらのメッセージには、ネットワーク トポロジの一部を明らかにする可能性のあるシステム ルートテーブルの情報が含まれます。ICMP のリダイレクトを送信する機能が適しているのは、ルーターとして機能するシステムのみです。

IPv4 リダイレクトの受信の無効化

ICMP リダイレクト メッセージは、特定の宛先へのより近いルートの存在をルーターがホストに通知するために使用されます。これらのメッセージはホストのルートテーブルを変更しますが、認証を受けません。不正な ICMP リダイレクト メッセージは、中間者攻撃によるものであることが考えられます。IPv4 プロトコルのこの機能の用途のうち、合法的なものはごくわずかです。必要不可欠な場合を除き、無効化してください。

IPv4 ソース ルーティング パケットの受信の無効化

送信元でルーティングされるパケットを使用すると、送信元は、ルーターで構成されたものと異なるパスをパケットが通るように指定できます。これは、ネットワーク セキュリティ対策をバイパスする手段として利用されることがあります。送信元でルーティングされたパケットを IPv4 プロトコルで受信する機能の用途のうち、合法的なものはごくわずかです。IPv4 転送が有効になっており、システムがルーターとして合法的に機能している場合など、必要不可欠な場合を除き無効化してください。

IPv4 リダイレクト パケットの送信の無効化

ICMP リダイレクト メッセージは、特定の宛先へのより近いルートの存在をルーターがホストに通知するために使用されます。これらのメッセージには、ネットワーク トポロジの一部を明らかにする可能性のあるシステム ルートテーブルの情報が含まれます。ICMP のリダイレクトを送信する機能が適しているのは、ルーターとして機能するシステムのみです。

IPv4 ブロードキャスト パケットへの応答の無効化

ブロードキャスト(ICMP)エコーに応答すると、ネットワークのマッピングが容易になり、増幅攻撃の経路を提供してしまいます。ブロードキャスト アドレスまたはマルチキャスト アドレスに送信された ICMP エコー リクエスト(ping)を無視することで、ネットワーク上のシステムの把握が若干困難になります。

IPv6 ソース ルーティング パケットの受信の無効化

送信元でルーティングされるパケットを使用すると、送信元は、ルーターで構成されたものと異なるパスをパケットが通るように指定できます。これは、ネットワーク セキュリティ対策をバイパスする手段として利用されることがあります。この要件は、IPv6 転送が有効でシステムがルーターとして機能している場合など、送信元でルーティングされるトラフィックの転送にのみ適用されます。送信元でルーティングされたパケットを IPv6 プロトコルで受信する機能の用途のうち、合法的なものはごくわずかです。必要不可欠な場合を除き、無効化してください。

サービス

サービス構成に対する以下の変更が実装されています。

スケジュールされたジョブのリモート ロギング

cron ロギングを使用すると、cron ジョブの実行の成否を確認できます。また、不正なユーザーや悪意のあるユーザーが cron ファシリティの使用を侵害したことを検知することにも使用できます。

AutoFS の無効化

autofs デーモンは、オンデマンドで NFS を介して共有されるユーザーホーム ディレクトリなどのファイル システムのマウントおよびマウント解除を行います。また、autofs を使用してリムーバブル メディアを処理することができ、デフォルト構成により cdrom デバイスが /misc/cd として指定されます。ファイル システムを自動的にマウントすることで、未知のデバイスを容易に導入できるため、悪意のあるアクティビティを行うことが容易になります。

OpenSCAP レポート

次のレポートは、完全な OpenSCAP XCCDF プロファイルのコンプライアンス評価です。

OSImageVersion: 1.16.8-gke.6-20200424-d7e16ac3fd

参考までに、コンプライアンス プロファイルの実装前のノード OS の評価は、次の場所でも確認できます。

GKE OP - コンプライアンス プロファイル実装前の評価