8.6. セキュリティー
Audit の実行可能な監視機能がシンボリックリンクで機能しない
-w
オプションによって提供されるファイルモニタリングでは、パスを直接追跡できません。デバイスと inode へのパスを解決して、実行したプログラムとの比較を行う必要があります。実行可能なシンボリックリンクを監視する監視機能は、メモリーで実行されるプログラムではなく、デバイスとシンボリックリンク自体の inode を監視します。これは、シンボリックリンクの解決から確認できます。監視機能がシンボリックリンクを解決して作成される実行プログラムを取得する場合でも、ルールは別のシンボリックリンクから呼び出されるマルチコールバイナリーでトリガーされます。これにより、誤検出でログがいっぱいになります。したがって、Audit の実行可能な監視機能は、シンボリックリンクでは機能しません。
この問題を回避するには、プログラム実行可能ファイルの解決されたパスに対して監視機能を設定し、comm=
フィールドまたは proctitle=
フィールドに記載されている最後のコンポーネントを使用して、生成されるログメッセージをフィルタリングします。
(BZ#1421794)
別の SELinux コンテキストに移行中にファイルを実行する場合は、追加のパーミッションが必要
RHEL 7.8 の CVE-2019-11190 における修正のバックポートにより、別の SELinux コンテキストに移行中にファイルを実行するには、以前のリリースよりも多くのパーミッションが必要となります。
ほとんどの場合、domain_entry_file()
インターフェイスによって、新たに必要なパーミッションが SELinux ドメインに付与されます。ただし、実行されたファイルがスクリプトの場合は、インタープリターのバイナリーを実行するパーミッションがターゲットドメインにないことがあります。新たに必要なパーミッションがないと、AVC 拒否が生じます。このような場合に SELinux が enforcing モードで実行されていると、カーネルは、SIGSEGV または SIGKILL シグナルでプロセスを強制終了する可能性があります。
selinux-policy
パッケージに含まれるドメインのファイルで問題が発生した場合は、このコンポーネントに対してバグを報告してください。このコンポーネントがカスタムポリシーモジュールの一部である場合、Red Hat は以下の標準の SELinux インターフェイスを使用して、不足しているパーミッションを付与することを推奨します。
-
corecmd_exec_shell()
(シェルスクリプト用) -
corecmd_exec_all_executables()
(Perl や Python など、bin_t
のラベルが付いたインタープリターの場合)
詳細は、selinux-policy-doc
パッケージが提供する /usr/share/selinux/devel/include/kernel/corecommands.if
ファイル、およびカスタマーポータルの記事 An exception that breaks the stability of the RHEL SELinux policy API を参照してください。
(BZ#1832194)
OpenSCAP で多数のファイルをスキャンすると、システムがメモリーを使い切ってしまう
OpenSCAP スキャナーでは、スキャンが完了するまで、収集したすべての結果がメモリーに保存されます。そのため、たとえば大規模な Server with GUI および Workstation パッケージグループから大量のファイルをスキャンすると、RAM が少ないシステムでメモリーが不足する可能性があります。
この問題を回避するには、RAM が少ないシステムで、より小さいパッケージグループ (例: Server および Minimal Install) を使用します。大規模なパッケージグループを使用する必要がある場合は、システムの仮想環境またはステージング環境に十分なメモリーがあるかどうかをテストしてください。または、スキャンプロファイルを調整して、/
ファイルシステム全体の再帰を行う、以下のルールの選択を解除することができます。
-
rpm_verify_hashes
-
rpm_verify_permissions
-
rpm_verify_ownership
-
file_permissions_unauthorized_world_writable
-
no_files_unowned_by_user
-
dir_perms_world_writable_system_owned
-
file_permissions_unauthorized_suid
-
file_permissions_unauthorized_sgid
-
file_permissions_ungroupowned
-
dir_perms_world_writable_sticky_bits
これにより、OpenSCAP スキャナーによってシステムのメモリー不足が引き起こされることが回避されます。
RHEL 7 で、SHA-1 を使用した RSA 署名を完全に無効化できない
OpenSSH で ssh-rsa
署名アルゴリズムが新しい SHA2 (rsa-sha2-512
、rsa-sha2-256
) 署名を使用できるように設定する必要があるため、RHEL 7 では SHA1 アルゴリズムを完全に無効にすることはできません。この制限を回避するには、RHEL 8 に更新するか、SHA2 のみを使用する ECDSA/Ed25519 鍵を使用します。
CIS プロファイルで rpm_verify_permissions
が失敗する
rpm_verify_permissions
ルールでは、ファイルパーミッションがパッケージのデフォルトパーミッションと比較されます。ただし、scap-security-guide
パッケージで提供される Center for Internet Security (CIS) プロファイルでは、一部のファイルパーミッションがデフォルトよりも厳格なものに変更されます。その結果、rpm_verify_permissions
を使用した特定ファイルの検証が失敗します。この問題を回避するには、これらのファイルに以下のパーミッションがあることを手作業で確認します。
-
/etc/cron.d
(0700) -
/etc/cron.hourly
(0700) -
/etc/cron.monthly
(0700) -
/etc/crontab
(0600) -
/etc/cron.weekly
(0700) -
/etc/cron.daily
(0700)
関連機能の詳細は、SCAP セキュリティーガイドで、CIS RHEL 7 Benchmark v2.2.0 に一致するプロファイルを提供 を参照してください。
OpenSCAP ファイルの所有権関連のルールはリモートユーザーおよびグループバックエンドでは機能しない
設定チェック向けに OpenSCAP スイートが使用する OVAL 言語の機能に制限があります。一部のシステムユーザー、グループ、および ID がリモートにある場合に、完全なリストを取得できない場合があります。たとえば、システムユーザー、グループおよび ID が LDAP などの外部データベースに保存されている場合が挙げられます。
そのため、ユーザー ID またはグループ ID に関連するルールは、リモートユーザーの ID にアクセスできません。したがって、このような ID はシステム外のものとして判断され、準拠したシステムでスキャンが失敗する可能性があります。scap-security-guide
パッケージでは、以下のルールが影響を受けます。
-
xccdf_org.ssgproject.content_rule_file_permissions_ungroupowned
-
xccdf_org.ssgproject.content_rule_no_files_unowned_by_user
この問題の回避策として、リモートユーザーを定義するシステムでユーザーまたはグループ ID を処理するルールが失敗する場合は、障害が発生した部分を手動で確認します。OpenSCAP スキャナーを使用すると、--oval-results
オプションと --report
オプションを併せて指定できます。このオプションは、問題のあるファイルおよび UID を HTML レポートに表示し、手動のリビジョンプロセスを単純化します。
また、RHEL 8.3 では、scap-security-guide
パッケージのルールに local-user のバックエンドのみが評価されていることを示す警告が含まれています。
rpm_verify_permissions
および rpm_verify_ownership
が Essential Eight プロファイルで失敗する
rpm_verify_permissions
ルールでは、ファイルパーミッションがパッケージのデフォルトパーミッションと比較されます。一方、rpm_verify_ownership
ルールでは、ファイル所有者がパッケージのデフォルト所有者と比較されます。ただし、scap-security-guide
パッケージで提供される Australian Cyber Security Centre (ACSC) Essential Eight プロファイルでは、一部のファイルパーミッションと所有者がデフォルトよりも厳格なものに変更されます。その結果、rpm_verify_permissions
および rpm_verify_ownership
を使用した特定ファイルの検証が失敗します。この問題を回避するには、/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
ファイルの所有者が root
であり、ファイルに suid
ビットと sgid
ビットが設定されていることを手動で確認します。