web-dev-qa-db-ja.com

防具とは何ですか?

私は防具について多くの話を聞きます、私は次を知りたいです:

  • 防具とは何ですか?
  • Apparmorはどのように機能しますか?
93
Alvar

それは何ですか

Apparmorは、必須アクセス制御(またはMAC)システムです。 LSMカーネル拡張機能を使用して、プログラムを特定のリソースに制限します。 AppArmorは、システムの起動時にカーネルにロードされたプロファイルでこれを行います。 Apparmorには、強制と苦情の2種類のプロファイルモードがあります。強制モードのプロファイルenforceそのプロファイルのルールは、syslogまたはauditdで違反の試みを報告します。苦情モードのプロファイルは、プロファイルルールを強制せず、違反の試みを記録するだけです。

Ubuntuでは、デフォルトでApparmorがインストールされます。アプリケーションをプロファイルに限定し、プログラムがアクセスする必要があるファイルと権限を決定します。一部のアプリケーションには独自のプロパティが付属し、apparmor-profilesパッケージにさらに多くのアプリケーションがあります。

apparmor-profilesを実行すると、Sudo apt-get install apparmor-profilesをインストールできます。

この投稿のために書き直したUbuntuフォーラムで、Apparmorの良い例を見つけました。

Apparmorは、アプリケーションが悪を回すのを防ぐセキュリティフレームワークです。たとえば、Firefoxを実行して、homeフォルダーを削除するマルウェアをインストールしようとする悪いサイトにアクセスすると、Apparmorには、Firefoxに制限がありますが、望まないこと(音楽、ドキュメントなどへのアクセスなど) 。この方法では、アプリケーションが危険にさらされても、害はありません。

使い方

apparmor-utilsパッケージには、Apparmorを設定するためのコマンドラインツールが含まれています。これを使用して、Apparmorの実行モードを変更したり、プロファイルのステータスを検索したり、新しいプロファイルを作成したりできます。

これらは最も一般的なコマンドです:

注:プロファイルは/etc/apparmor.d/に保存されます

  • Sudo apparmor_statusでApparmorのステータスを確認できます。 *ロードされたすべてのプロファイル、強制モードのすべてのプロファイル、苦情モードのすべてのプロファイル、強制/苦情で定義されているプロセスなどのリストを取得します。
  • プロファイルをcomplainモードにするには、Sudo aa-complain /path/to/binを使用します。/path/to/binはプログラムbinフォルダーです。たとえば、Sudo aa-complain /usr/bin/firefoxを実行すると、Firefoxが苦情モードになります。
  • Sudo aa-enforce /path/to/binを使用して、プログラムプロファイルを適用します。
  • それぞれSudo aa-complain /etc/apparmor.d/*Sudo aa-enforce.d/*を使用してallプロファイルをcomplain/enforceモードにロードできます。

プロファイルをカーネルにロードするには、apparmor_parserを使用します。 -rパラメーターを使用してプロファイルを再ロードできます。

  • プロファイルをロードするには、cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -aを使用します。これは、profile.nameの内容をApparmorのパーサーに効果的に出力します。
  • プロファイルをリロードするには、次のように-rパラメーターを使用します:cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -r
  • Apparmorのすべてのプロファイルをリロードするには、次を使用します:Sudo service apparmor reload

プロファイルを無効にするには、次のようにlnを使用して/etc/apparmor.d/disable/linkします:Sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/その後、実行します:Sudo apparmor_parser -R /etc/apparmor.d/profile.name

注:apparmor_parser -rと混同しないでくださいapparmor_parser -Rこれらは同じものではありません!

  • プロファイルを再度有効にするには、/etc/apparmor.d/disable/でそのプロファイルへのシンボリックリンクを削除し、-aパラメーターを使用してロードします。 Sudo rm /etc/apparmor.d/disable/profile.namecat /etc/apparmor.d/profile.name | Sudo apparmor_parser -a
  • Sudo service apparmor stopでApparmorを無効にし、Sudo update-rc.d -f apparmor defaultsを使用してカーネルモジュールを削除できます。
  • Sudo service apparmor startでApparmorを起動し、Sudo update-rc.d apparmor defaultsでカーネルモジュールをロードします

プロフィール

プロファイルは/etc/apparmor.d/に格納され、プロファイルする実行可能ファイルへのフルパスに基づいて名前が付けられ、「/」が「。」に置き換えられます。たとえば、/etc/apparmor.d/bin.pingは、/binpingのプロファイルです。

プロファイルで使用されるエントリには、主に2つのタイプがあります。

  1. パスエントリアプリケーションがアクセスできるファイルを決定します。

  2. Capabilityエントリは、プロセスが使用できる特権を決定します。

例として、etc/apparmor.d/bin.pingにあるpingのプロファイルを見てみましょう。

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global>ディレクトリglobalにファイルtunablesを含めます。これにより、複数のアプリケーションに関するステートメントを共通ファイルに配置できます。

/bin/ping flags=(complain)は、プロファイルされたプログラムへのパスを設定し、モードを文句を言うように設定します。

capability net_rawは、アプリケーションがCAP_NET_RAW Posix.1e機能にアクセスできるようにします。

/bin/ping mixrは、アプリケーションによるファイルへの読み取りおよび実行アクセスを許可します。

/etc/modules.conf r,rはアプリケーションに与えますread/etc/modules.confの特権

注:プロファイルを作成/編集した後、変更を有効にするためにプロファイルをリロードする必要があります。

使用できる権限のリストは次のとおりです。

  • r-読み取り
  • w-書き込み
  • ux-制約のない実行
  • Ux-制約なしの実行-環境をスクラブします
  • px-個別プロファイルの実行
  • Px-個別プロファイルの実行-環境のスクラブ
  • ix-実行を継承
  • m-mmap(2)呼び出しでPROT_EXECを許可します
  • l-リンク

ソース

92
Seth

AppArmorはMandatory Access Control(MAC)システムであり、限られたリソースセットにプログラムを限定するカーネル(LSM)拡張です。 AppArmorのセキュリティモデルは、アクセス制御属性をユーザーではなくプログラムにバインドすることです。 AppArmorの制限は、通常ブート時にカーネルにロードされるプロファイルを介して提供されます。 AppArmorプロファイルは、強制と苦情の2つのモードのいずれかになります。施行モードでロードされたプロファイルは、プロファイルで定義されたポリシーの施行に加えて、ポリシー違反の試行を報告します(syslogまたはauditdを介して)。苦情モードのプロファイルはポリシーを強制しませんが、代わりにポリシー違反の試みを報告します。

AppArmorは、パスベースであり、強制モードプロファイルと苦情モードプロファイルの混合を可能にし、インクルードファイルを使用して開発を容易にし、他の一般的なMACシステムよりもはるかに低い障壁を持つという点で、Linux上の他のいくつかのMACシステムとは異なります。

AppArmorは、Immunixで最初に見られ、後にUbuntu、Novell/SUSE、およびMandrivaに統合された確立されたテクノロジーです。コアAppArmor機能は、2.6.36以降のメインラインLinuxカーネルに含まれています。 AppArmor、Ubuntu、およびその他の開発者は、追加のAppArmor機能をメインラインカーネルにマージするための作業を継続しています。

あなたに役立つリンクがいくつかありました: Wiki.Ubuntu.combuntuforums.org

buntu 12.04 および buntu 12.1 のApparmorガイド

それがあなたを助けることを願っています。

6
rɑːdʒɑ

Apparmor wiki からの引用です:

AppArmorは、効果的で使いやすいLinuxアプリケーションセキュリティシステムです。 AppArmorは、適切な動作を強制し、未知のアプリケーションの欠陥の悪用を防止することにより、オペレーティングシステムとアプリケーションを外部または内部の脅威、ゼロデイ攻撃からも積極的に保護します。 AppArmorセキュリティポリシーは、個々のアプリケーションがアクセスできるシステムリソースと、どの特権で完全に定義します。 AppArmorには多くのデフォルトポリシーが含まれており、高度な静的分析と学習ベースのツールの組み合わせを使用して、非常に複雑なアプリケーションのAppArmorポリシーも数時間で正常にデプロイできます。

3
Adeline Dale