LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問46
アクセスおよび権限制御の強化/AppArmor による強制アクセス制御AppArmorのプロファイルで @{HOMEDIRS} のような「@{変数名}」形式のTunable変数を使う主な目的として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- ASELinuxのセキュリティコンテキストタイプと連携し、動的なラベルをプロファイル間で共有するため
- Bケーパビリティ名の省略形として使い、capability規則をより短く記述するため
- Cプロファイルで共通のパスパターンをまとめて定義し、一箇所を変更するだけで参照する全プロファイルに反映させるため
- Dネットワーク規則で許可するポート番号の範囲を変数として定義し、複数の規則で再利用するため
正解:C
解説
AppArmorのTunable変数(@{変数名}形式)は /etc/apparmor.d/tunables/ 以下のファイルで定義され、プロファイル内で繰り返し登場するパスパターンを一元管理するための仕組みです。例えば @{HOMEDIRS} は /home/ に展開されますが、この値を tunables 側で変更すれば @{HOMEDIRS} を参照するすべてのプロファイルに即座に反映されます。プロファイルは include <tunables/global> 等でこれらの定義を取り込んで使います。
選択肢ごとの解説
- A誤り。AppArmorはSELinuxとは独立したMACシステムであり、SELinuxのコンテキストタイプとデータを共有する仕組みはない。
- B誤り。capability規則はケーパビリティ名(cap_net_bind_service など)をそのまま記述するものであり、@{変数名}を使って省略する仕組みはない。
- C正しい。@{変数名}形式のTunable変数は /etc/apparmor.d/tunables/ で定義されたパスパターンの集合で、@{HOMEDIRS} を使うことで異なる環境でもホームディレクトリのパスを一箇所だけ変更して全プロファイルに反映できる。
- D誤り。AppArmorのネットワーク規則はプロトコルファミリやソケット種別で制御するもので、ポート番号の範囲をTunable変数として定義する仕組みは提供されていない。