LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問52
アクセスおよび権限制御の強化/SELinux による強制アクセス制御RHEL 9系のシステムで、カスタムアプリケーションの動作がSELinuxに拒否された。/var/log/audit/audit.log の拒否メッセージから、最小限のカスタムポリシーモジュールを作成して読み込ませる手順として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- Aausearch -m avc -ts recent の出力を audit2why に渡して拒否の理由を表示させ、その出力をsemodule -i で読み込む
- Bausearch -m avc -ts recent の出力を audit2allow -M mypolicy に渡して .pp を生成し、semodule -i で読み込む
- Caudit2allow -a で記録済みの拒否からallowルールのテキストを標準出力に書き出し、chcon でラベルを変更して対処する
- Dsemanage permissive -a myapp_t を実行して対象のドメインだけを寛容モードに設定し、拒否をログのみにとどめる
正解:B
解説
audit2allowは、audit.logに記録されたSELinuxの拒否メッセージからallowルールを生成するツールです。-Mオプションを付けると、Type Enforcementファイル(.te)とコンパイル済みのポリシーパッケージ(.pp)を一度に作成します。生成された.ppファイルはsemodule -iで読み込むと、カーネルのSELinuxポリシーにモジュールとして追加されます。audit2whyは拒否の原因を表示するツールですがポリシーは生成しません。chconはファイルのセキュリティコンテキストを一時変更するコマンドでポリシーの追加には使えません。
選択肢ごとの解説
- A誤り。audit2whyはSELinuxの拒否の原因(ブール値の不足やタイプの不一致など)を表示するツールで、ポリシーモジュールは生成しない。semodule -iで読み込む対象も無い。
- B正しい。audit2allow -Mは.teと.ppを一度に生成し、semodule -iで.ppファイルを読み込むことでカスタムのallowルールをポリシーに追加できる。
- C誤り。audit2allow -aはallowルールをテキストとして標準出力に書き出すだけで、chconはファイルのセキュリティコンテキストを一時的に変更するコマンドであり、ポリシーモジュールの読み込みには使えない。
- D誤り。semanage permissive -aは指定したドメインを寛容モードにし、拒否せずに記録だけする状態にする。カスタムポリシーモジュールの作成とは異なり、問題の根本解決にはならない。