8.6. Integrity Measurement Architecture によるファイルのハッシュの収集
Integrity Measurement Architecture (IMA) の最初の操作段階は、 Measurement フェーズです。ここでは、ファイルのハッシュを作成し、それらをファイルの拡張属性 (xattrs) として保存することができます。以下のセクションでは、ファイルのハッシュを作成し、検証する方法を説明します。
前提条件
-
ima-evm-utils
、attr
、keyutils
パッケージがシステムにインストールされている。 - 「Integrity Measurement Architecture および Extended Verification Module の有効化」 で説明されているように、Integrity Measurement Architecture (IMA) および Extended Verification Module (EVM) は有効にされている。
手順
テストファイルを作成します。
# echo <Test_text> > test_file
秘密鍵でファイルに署名します。
# evmctl sign --imahash --key /etc/keys/privkey.pem test_file
test_file
ファイルのハッシュを作成すると、IMA はファイルが破損していないことを確認します。EVM は、test_file
の拡張属性に保存されるハッシュコンテンツに署名することで、IMA ハッシュに間違いがないことを確認します。オプションで、署名されたファイルの拡張属性を確認します。
# getfattr -m . -d test_file file: test_file security.evm=0sAwICztVdCQCAZLtD7qAezGl8nGLgqFZzMzQp7Fm1svUet2Hy7TyI2vtT9/9ZfBTKMK6Mjoyk0VX+DciS85XOCYX6WnV1LF2P/pmPRfputSEq9fVD4SWfKKj2rI7qwpndC1UqRX1BbN3aRUYeoKQdPdl6Cz+cX4d7vS56FJkFhPGlhq/UQbBnd80= security.ima=0sAfgqQ5/05X4w/ltZEfbogdI9+KM5 security.selinux="unconfined_u:object_r:admin_home_t:s0"
この出力例は、SELinux および IMA および EVM ハッシュ値に関連する拡張属性を示しています。EVM は、
security.evm
拡張属性をアクティブに追加し、ファイルコンテンツの整合性に直接関連するsecurity.ima
などの他のファイルの xattrs に対するオフライン改ざんを検出します。security.evm
フィールドの値は、秘密鍵で生成された Hash-based Message Authentication Code (HMAC-SHA1) になります。
関連情報
- カーネル整合性サブシステムの詳細は、公式のアップストリーム wiki ページ を参照してください。
- TPM の詳細は、Trusted Computing Group resourcesを参照してください。
- 暗号化された鍵の作成に関する詳細は、RHEL 7 セキュリティーガイドのTrusted and Encrypted Keysセクションを参照してください。