web-dev-qa-db-ja.com

AppArmor / SELinuxはワークステーションにセキュリティを提供しますか?

プライマリワークステーションのセキュリティを少し強化することにしました。以前は、信頼性の低い特定のアプリ(インターネットにアクセスできるすべてのアプリ)にfirejailを使用していましたが、それは一種のおもちゃです。私には本当にうまくいきませんでした。だから私は、SELinuxとAppArmorであるrealツールについて読み込もうとしました。

それがサーバーにとってどのように有益であるかを知ることができます-それはよく知られているプロファイルでいくつかのよく知られているアプリを実行します、あなたはプロファイルを有効にする必要があり、それは機能します。涼しい。しかし、ワークステーションやデスクトップでどのように機能するのかは、まったくわかりません。それが真実なのか、何か不足しているのかはわかりませんが、よく理解していれば、AppArmorとSELinuxの両方でアプリを保護するためにプロファイルが必要です。そして、それらのプロファイルは事前に準備する必要があります。誰かによって。すべてのアプリに。

では、ワークステーションでOpenSUSEを使用しています。多くのアプリを実行するので、フルDVDをインストールすることにしました。約16GBのソフトウェアです。私はそれをウェブ開発にも使用しているので、数十のウェブブラウザなど、フラッシュプレーヤーなどを追加でインストールしました。

lapsio@linux-6o92 ~> ll /usr/bin/ | grep -vc "^l"
4225
lapsio@linux-6o92 ~> ls /etc/apparmor.d/ | wc -l
46

もちろん、すべてのアプリが/usr/binは完全なスタンドアロンアプリケーションですが、信頼できない場所からファイルを操作するほぼすべてのアプリが含まれているため、画像はlibmagicのエクスプロイトを使用したり、マクロを記録したりする可能性があります。 、JavaScriptを使用したsvgファイル、さらにはブレンダーでも、3dファイルに埋め込まれたpythonスクリプト、もちろんすべてのブラウザー、あらゆるWeb機能を備えたすべてのアプリなどを実行できます。300個のアプリのうち、 ... apparmorルールで、実際にはこれらの大きな脆弱なアプリのリストに属している5つを参照します。

ポイントは、OSのすべてのアプリのプロファイルを作成することはほとんど不可能です。セキュリティについて話すとき、ブラックリストのアプローチはほとんど常に悪いです。ホワイトリストのソリューションはありますか? Androidは非常に安全ですが、その一方で、すべてのアプリを互いに本当に分離しているようです。

理想的な解決策は、デフォルトですべてのアプリが自分のファイル(パッケージマネージャーによって決定される)のみにアクセスし、インターネットアクセスは許可しないことです。次に、特定のアプリにのみ、他のパスまたはインターネットアクセスへの明示的な許可を与えます。 2番目の目標は適切なiptablesルールによって簡単に達成できますが、最初の目標は、SELinuxまたはAppArmorによって達成されるべきもののように聞こえます。しかし、私は方法がわかりません。

3
Lapsio

やった。計画が必要であり、ツールを習得する必要があります。どこに妥協できるか、どこに妥協する必要があるかを妥協できる必要があります。あなたはそれを現実にするために働く必要があります。

アクセス制御は全体像の一部です。必然的に信頼が関わる。環境と脅威に関する知識。トレードオフ。常識、パラノイアの健康な線量。基本的に意識全般。

しかし、より実用的なメモについて。まず、必要なものをインストールするだけです。あなたが持っているほど、壊れる可能性があります。したがって、考えられるすべてのプロセスをターゲットにする必要はありません。あなたは仕事を成し遂げるためにあなたがターゲットしなければならないものをターゲットにします。

これは現在使用しているセキュリティポリシーです。私の環境と要件に合わせて調整されています。それにはトレードオフ、妥協点があります。それがなければそれは不可能でしょう。セキュリティは絶対的なものではありませんが、それを最大限に活用することができ、それが目標でなければなりません。

インスピレーションが必要ですか?

これは私の個人的なSELinuxセキュリティポリシーのDSSPです。

https://github.com/DefenSec/dssp

4
dac.override