web-dev-qa-db-ja.com

AppArmorとSelinuxの比較

AppArmorとSELinuxのいくつかの異なる比較をレビューしました。

これらの記事から、AppArmorはAppArmorに基づくSELinuxよりも優れており、複雑さがはるかに少なく、学習曲線がはるかに短いと結論付けています。したがって、比較の大部分はAppArmorを支持していますが、AppArmorはSELinuxよりも安全であると言えるでしょうか。

66
Ali Ahmad

これらのセキュリティシステムは、アプリケーションを互いに分離するツールを提供します。アプリケーションが侵害された場合、攻撃者をシステムの残りの部分から分離します。

SELinuxルールセットは非常に複雑ですが、この複雑さにより、プロセスの分離方法をより詳細に制御できます。これらのポリシーの生成 自動化可能 。このセキュリティシステムに対するストライキは、独立して検証することが非常に難しいことです。

AppArmor(およびSMACK)は非常に単純です。プロファイルは人間が手書きするか、aa-logprof。 AppArmorはパスベースの制御を使用して、システムをより透過的にするため、個別に検証できます。

44
rook

insanitybit link は私のウェブサイトです。ここで私の意見を正当化したいのですが:)

SELinuxとApparmorを見ると、同じようにどちらも強力で弱点があります。 SELinuxはファイルにさらに細かくアクセスできるという点で「より強力」ですが、攻撃者がapparmorプロファイルにいることに対して攻撃者は何を得るのですか?あなたはすでにapparmorプロファイルでかなり制限されています。では、SELinuxで本当にもっと多くを得ることができるのでしょうか?

SELinuxで得られるもの(特にポリシーの作成では、監査よりもはるかに重要です-監査を許可するのも大変ですが)はさらに複雑になります。たくさん。

SELinuxやApparmorなどのLinuxサンドボックスで最も抵抗の少ないパスは、kernelです。 SELinuxは、カーネルを保護するためにApparmorよりも何もしません

したがって、攻撃者がApparmor/SELinuxの設計上の問題に取り組むという愚かな道を進みたい場合、SELinuxは潜在的により安全ですが、プロファイルはうまく構築されており、SELinuxは非常に複雑であるため、実際にSELinuxがもたらす脆弱性を見てきました。

攻撃者が賢い場合は、両方をバイパスしてカーネルにアクセスします。

したがって、どちらも同じように弱く、どちらも重要なあらゆる点で強力で、そのうちの1つははるかに単純です。

出来上がり。

バターナイフの比喩は機能しません。それは明らかです。

26
IBit

AppArmorは、そのシンプルさによりポリシーの確認と検証を容易にすることで、より安全です。間違いは起こりにくく、見つけやすく、バックドアの試みは偽装が困難です。

8
evanxsummers

SELinuxは確かにAppArmorより完全で野心的なセキュリティツールです。 SELinuxは広い世界であり、すべてに浸透し、システム内のすべてのオブジェクトにラベルを付け、概念的にシステムをより高度なセキュリティインフラストラクチャに昇格させ、アクセス制御理論のすべての主要なセキュリティパラダイムを実装できるようにします。さえ

軍事および政府機関は、厳格なセキュリティニーズに使用できます。 SELinuxを使用すると、MAC(「強制アクセス制御」)、MLS(「マルチレベルセキュリティ」、Bell-La PadulaおよびBibaモデル)、MCS(「マルチカテゴリセキュリティ」)、RBAC(「ロールベースのセキュリティ」)を実装できます。アクセス制御」)、TE(「タイプ施行」)。さらに、SELinuxはデフォルトの拒否原則に基づいています。

一方、AppArmorでは、最小限の特権の原則に従って、完全なセキュリティパラダイムを実装せずに、単一のアプリケーションが実行できることと実行できないことを簡単に定義できます。

5
bryn1u

一般に、appArmorがSELinuxよりも優れているとは言えません。これは、セキュリティで保護する対象と保護する対象、およびシステムの保守を担当する人/人の個々のスキルと好みに大きく依存するためです。

SELinuxはより細かい制御が可能です。状況によっては、これによりAppArmorよりも適切になります。一方、AppArmorはLinuxユーザーの大多数にとって十分強力である可能性があります。さらに、多くの報告では、理解と使用が容易であると報告されています。つまり、構成のエラーによって、見つけにくい危険な穴が発生する可能性が低くなります。一方、SELinuxに慣れ親しんでいる人にAppArmorを使用させると、AppArmorが知っているシステムではないという理由だけで、構成エラーが発生しやすくなります。

ポイントは、特定の状況と関係者のスキルセット/好みに基づいて評価する必要があることです。どちらも優れたシステムです。重要な状況に応じて適切なツールを選択しているのであり、どちらが優れているかではありません。

4
Tim X

SElinuxを使用した私の個人的な経験から、それはGNU + Linuxに複雑さを少しも追加しなかったと言えるでしょう、それがした唯一のことであり、私はそれが利点であると私はオペレーティングシステムにすでに固有の複雑さをもたらすことです、それが私たちの多くを困惑させるのは、その設計パラダイムやその実装とは何の関係もないということです。 AppArmor(AA)と比較すると、SElinuxには、AAがアプリケーションについて考える際にAAがコンテナーの考え方を持ち、AAプロファイルで許可されたリソースのパスが指定されている範囲で、安全なシステムがどうあるべきかについてよりホリスティックで抽象的な視点がありますこれはあまり抽象的ではありません。はい、アプリケーションごとにプロファイルを書く方が簡単かもしれませんが、システムの全体像を失うことになります。現在、SElinuxは出荷時に出荷されているので、実質的にSElinuxはFedoraとRHELでうまく動作しますが、AAはUbuntuとSUSEでうまく動作します。つまり、以前のディストリビューションでSElinuxを使用する方法を学ぶほうが、AAを動作させるという煩わしさを経験するよりも良いでしょう。その逆。

3
sami

必須アクセス制御のポイント全体は、きめ細かい構成を可能にするためのものです。他のすべての点で2つが等しい場合を除いて、単純性は完全に無関係です。複雑さは、仕事を成し遂げるために必要なものです。

偶然にも、SELinuxは粒度がはるかに優れており、成熟度が高く、より広く展開されており、私の主観的な意見では、よりよく設計されています。あなたの結論は、実際の評価というよりは、ポップカルチャーのようなものです。

(私は、バターナイフはチェーンソーよりも優れていると結論付けています。

2
Craig

SELinuxではセキュリティを確保できないため、NFSを使用するどの環境でもAppArmorはSELinuxよりも優れていると大胆に主張します。 AppArmorも使いやすいですが、これは両者の明確な客観的な違いです。

0
Gaius