LSMの実装についていくつかの入門書を読んでいるので、最終的にはAppArmor
とSELinux
を少し掘り下げています。
私は知っています この議論 しかし、これはこれらの2つのLSM実装に関して私が持っている1つの質問をあまり明確にしません:
それは事実ですか:
auto-relabeling
ファイルシステムスキャンと同じくらいの時間がかかる最初の起動時のプロセス)(?)
他の質問に答えたように、AppArmorとSELinuxの主な違いはラベリングです。 AppArmorはパスベースですが、SELinuxはすべてのオブジェクトにラベルを追加します。これが、デフォルトのファイルラベルを適用するために、最初の起動時に自動再ラベル付けが行われる理由です。そうしないと、すべてのファイルが同じであると見なされるため(ラベルが同じであるため)、ファイルアクセスに意味のあるポリシーを記述できません。
AppArmorとSELinuxの両方に、プロセスを制限しない制限のないドメインがあります。どちらのシステムにも、ポリシー違反をログに記録するだけでポリシーを強制しない不平モード(SELinuxでは許可ドメインと呼ばれます)があります。 AppArmorとSELinuxはどちらもシステム全体で有効になっており、両方のシステムでセキュリティモジュールによって制限されていないプロセスを実行することができます。
自動ポリシー生成に関しては、両方のシステムに同様のツールとメカニズムがあります。
AppArmorプロファイルは、 aa-genprof
および aa-logprof
を使用して生成できます。 aa-genprof
は基本プロファイルを作成し、それを不平モードに設定します。プログラムの実行後、ルールはログファイルから生成できます。
SELinuxツールは policygentool
および audit2allow
です。ここでも大きな違いはファイルのラベル付けですが、policygentool
は、プログラムデータ(var)、構成ファイル、およびログファイルのファイルタイプを自動的に作成できます。その後、ポリシーを許容モードでロードし、audit2allow
を使用してログからルールを生成できます。