web-dev-qa-db-ja.com

SELinuxとAppArmorの適用性

LSMの実装についていくつかの入門書を読んでいるので、最終的にはAppArmorSELinuxを少し掘り下げています。

私は知っています この議論 しかし、これはこれらの2つのLSM実装に関して私が持っている1つの質問をあまり明確にしません:

それは事実ですか:

  • SELinuxはシステム全体に適用する必要があります(したがって、auto-relabelingファイルシステムスキャンと同じくらいの時間がかかる最初の起動時のプロセス)
  • AppArmorは、必要なプロセス/スクリプトに対してのみポリシーを定義する柔軟性を提供しますか? -インタラクティブな監査プロセスを介して)

(?)

1
pkaramol

他の質問に答えたように、AppArmorとSELinuxの主な違いはラベリングです。 AppArmorはパスベースですが、SELinuxはすべてのオブジェクトにラベルを追加します。これが、デフォルトのファイルラベルを適用するために、最初の起動時に自動再ラベル付けが行われる理由です。そうしないと、すべてのファイルが同じであると見なされるため(ラベルが同じであるため)、ファイルアクセスに意味のあるポリシーを記述できません。

AppArmorとSELinuxの両方に、プロセスを制限しない制限のないドメインがあります。どちらのシステムにも、ポリシー違反をログに記録するだけでポリシーを強制しない不平モード(SELinuxでは許可ドメインと呼ばれます)があります。 AppArmorとSELinuxはどちらもシステム全体で有効になっており、両方のシステムでセキュリティモジュールによって制限されていないプロセスを実行することができます。

自動ポリシー生成に関しては、両方のシステムに同様のツールとメカニズムがあります。

AppArmorプロファイルは、 aa-genprof および aa-logprof を使用して生成できます。 aa-genprofは基本プロファイルを作成し、それを不平モードに設定します。プログラムの実行後、ルールはログファイルから生成できます。

SELinuxツールは policygentool および audit2allow です。ここでも大きな違いはファイルのラベル付けですが、policygentoolは、プログラムデータ(var)、構成ファイル、およびログファイルのファイルタイプを自動的に作成できます。その後、ポリシーを許容モードでロードし、audit2allowを使用してログからルールを生成できます。

5
sebasth