21.8. カーネルランタイム整合性監視の有効化

IMA 評価が提供するカーネルランタイム整合性の監視を有効にすることができます。

前提条件

  • システムにインストールされている kernel のバージョンが 5.14.0-359 以降である。
  • dracut パッケージのバージョンが 057-43.git20230816 以降である。
  • keyutils パッケージがインストールされている。
  • ima-evm-utils パッケージがインストールされている。
  • ポリシーの対象となるファイルに有効な署名がある。手順については、パッケージファイルへの IMA 署名の追加 を参照してください。

手順

  1. Red Hat IMA コード署名鍵を /etc/ima/keys ファイルにコピーするには、次のコマンドを実行します。

    $ mkdir -p /etc/keys/ima
    $ cp /usr/share/doc/kernel-keys/$(uname -r)/ima.cer /etc/ima/keys
  2. IMA コード署名鍵を .ima キーリングに追加するには、次のコマンドを実行します。

    # keyctl padd asymmetric RedHat-IMA %:.ima < /etc/ima/keys/ima.cer
  3. 脅威モデルに応じて、/etc/sysconfig/ima-policy ファイルで IMA ポリシーを定義します。たとえば、次の IMA ポリシーは、実行可能ファイルと、関連するメモリーマッピングライブラリーファイルの両方の整合性をチェックします。

    # PROC_SUPER_MAGIC = 0x9fa0
    dont_appraise fsmagic=0x9fa0
    # SYSFS_MAGIC = 0x62656572
    dont_appraise fsmagic=0x62656572
    # DEBUGFS_MAGIC = 0x64626720
    dont_appraise fsmagic=0x64626720
    # TMPFS_MAGIC = 0x01021994
    dont_appraise fsmagic=0x1021994
    # RAMFS_MAGIC
    dont_appraise fsmagic=0x858458f6
    # DEVPTS_SUPER_MAGIC=0x1cd1
    dont_appraise fsmagic=0x1cd1
    # BINFMTFS_MAGIC=0x42494e4d
    dont_appraise fsmagic=0x42494e4d
    # SECURITYFS_MAGIC=0x73636673
    dont_appraise fsmagic=0x73636673
    # SELINUX_MAGIC=0xf97cff8c
    dont_appraise fsmagic=0xf97cff8c
    # SMACK_MAGIC=0x43415d53
    dont_appraise fsmagic=0x43415d53
    # NSFS_MAGIC=0x6e736673
    dont_appraise fsmagic=0x6e736673
    # EFIVARFS_MAGIC
    dont_appraise fsmagic=0xde5e81e4
    # CGROUP_SUPER_MAGIC=0x27e0eb
    dont_appraise fsmagic=0x27e0eb
    # CGROUP2_SUPER_MAGIC=0x63677270
    dont_appraise fsmagic=0x63677270
    appraise func=BPRM_CHECK
    appraise func=FILE_MMAP mask=MAY_EXEC
  4. IMA ポリシーをロードしてカーネルがこの IMA ポリシーを受け入れるようにするには、次のコマンドを実行します。

    # echo /etc/sysconfig/ima-policy > /sys/kernel/security/ima/policy
    # echo $?
    0
  5. dracut Integrity モジュールが IMA コード署名鍵と IMA ポリシーを自動的にロードできるようにするには、次のコマンドを実行します。

    # echo 'add_dracutmodules+=" integrity "' > /etc/dracut.conf.d/98-integrity.conf
    # dracut -f