AppArmor設定ファイルの「ptrace(trace)Peer =」とはどういう意味ですか?

AppArmor設定ファイルの「ptrace(trace)Peer =」とはどういう意味ですか?

私はAppArmor設定ファイルを作成してきました。新しいプロファイルを作成するたびに、以前に見たことのない高度なルールに遭遇します。

この例では、PulseAudio の設定ファイルを生成します。 SMPlayerのプロファイルもありますが、PulseAudioプロファイルを作成するときにSMPlayerで特定の映画を見たい場合は、AppArmorは次のように言います。

kernel: audit: type=1400 audit(1505370398.880:1005): apparmor="DENIED" operation="capable" profile="/usr/bin/smplayer" pid=40033 comm="pacmd" capability=19  capname="sys_ptrace"
Sep 14 08:26:38 morfikownia kernel: audit: type=1400 audit(1505370398.880:1006): apparmor="DENIED" operation="ptrace" profile="/usr/bin/smplayer" pid=40033 comm="pacmd" peer="/usr/bin/pulseaudio"

この問題は、以下を追加することで解決できます。SMPlayer設定ファイルに:

  capability sys_ptrace,
  ptrace (trace) peer=/usr/bin/pulseaudio,

しかし、これについて2つの質問があります。

  1. 今SMPlayerにルールが必要なのはなぜですか?しばらくの間この設定ファイルがありましたが、SMPlayerはルールを要求したことがありません。 PulseAudio用に生成された設定ファイルが原因であることを知っていますが、その理由を説明できる人はいますか?

  2. このルールは実際にはどういう意味ですか?追加しないとどうなりますか? SMPlayerはCAPやptraceルールなしでうまく動作するようです。

ベストアンサー1

AppArmorドキュメント追跡ルール彼らのwikiから。読む確認するファイル内のファイルによって、トレース要求/proc/<pid>拒否メッセージがログに表示されることがあります。

あなたのログからの抜粋によれば、pulseaudio(comm=pacmd、profile /usr/bin/pulseaudio)はアクセスを拒否しますが、生成されたルールはアクセスを許可します(これが起こる理由に答えるほどpulseaudioの詳細に慣れていません)。最近pulseaudio用のAppArmorプロファイルを有効にした場合、以前にこの監査メッセージを受け取らなかった理由が説明されています。

問題がない場合や見つかった場合は、アクセスを許可する必要はありません。 AppArmorがログを埋めるのを防ぐにはルールを拒否する。拒否ルールによってアクセスが拒否されると、ログにメッセージは生成されません。

deny ptrace (trace) peer=/usr/bin/pulseaudio,

ただし、アクセスを許可することを決定した場合は、まず承認だけで十分でptrace (trace) peer=/usr/bin/pulseaudioあることを確認する必要があります。capability sys_ptraceもう一つ能力ルールSMPlayerの場合、これは不要な可能性があります。

おすすめ記事