web-dev-qa-db-ja.com

FirejailとApparmorの比較

ApparmorとFirejailの比較(長所、長所と短所、目的、類似点など)を理解したいと思います。

私はリンゴとオレンジを比較するように求めているかもしれませんが、いくつかの類似点に気づきました。 Firejailには「プロファイル」があり、アプリケーションが使用できるファイルを定義できるルールのリストが含まれています。 Apparmorを使用すると、多かれ少なかれ同じことができます。ただし、Firejailでは「機能」を定義することもできます。どうやら、プロセスがroot権限を取得した場合でも(コンテナー内にあるように)、プロセスを分離しようとします。とにかく、私はいくつかの類似点を見つけることができますが、それらのいずれかを十分に理解していないため、それらのすべての機能と目的を理解できません。

1
reed

AppArmorはFireJailよりもSELinuxに比べて近いかもしれませんが、違いはここにあります。

最も重要な(IMO)は、実行するレベルです。 FireJailはユーザー空間でプログラムとして実行され、AppArmorはカーネルレベルで実行されます。

FireJailはLinux名前空間を利用して、ユーザー、マウント、ネットワーク、およびプロセスレベルでの分離を提供します。この分離により、独自のサンドボックスであるアプリケーションに、それらの変更がシステムの他の部分に影響を与えないようにしながら、やりたいことをすべて実行できるようになります。これはあなたが言ったようなコンテナに似ていると考えることができます。 コンテナも分離のために名前空間を使用します

対照的に、AppArmorはサンドボックスを提供せず、アプリケーションがアクセスできるシステムの部分を制限します。アプリが使用できない特定のリソースを指定しています。ただし、これらのリソースは分離されていないため、同じリソースにアクセスできるAppArmorで実行される2つのアプリが相互作用する可能性があります。

2
Daisetsu