過去問ドリル

LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問6

アクセスおよび権限制御の強化/SELinux による強制アクセス制御

RHEL 9系で、SELinuxが原因と思われる動作不良があるのに、/var/log/audit/audit.log に type=AVC の拒否ログが記録されない。ポリシーの dontaudit ルールで隠れている拒否を確認する手順として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)

正解:D

解説

SELinuxポリシーには、害が無いのに頻発する拒否をログに残さないための dontaudit ルールが多数含まれています。これに該当する拒否はenforcing・permissiveのどちらでもログに出ないため、semodule -DB(-D: dontauditを除く、-B: 再構築)で一時的に無効化してから現象を再現させ、AVCを確認します。調査が終わったら semodule -B で元に戻します。反対に auditallow は、許可したアクセスもログに記録させるためのルールです。

選択肢ごとの解説

  • A誤り。audit2allowは記録された拒否ログから許可ルールを作るツールです。拒否が記録されていない状態では材料が無く、根拠の無い許可を追加することにもなります。
  • B誤り。permissiveモードでも dontaudit に該当する拒否はログに出ません。モードを変えても隠れた拒否は見えません。
  • C誤り。restoreconはファイルのコンテキストを定義どおりに戻す操作で、ラベルが原因なら解決することはあっても、dontauditで隠れた拒否を可視化するものではありません。
  • D正しい。semodule -DB でdontauditを外すと、それまで隠れていた拒否がAVCとして記録されます。調査後は semodule -B で戻します。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く