回答:
Apparmorは、必須アクセス制御(またはMAC)システムです。LSMカーネル拡張機能を使用して、プログラムを特定のリソースに制限します。AppArmorは、システムの起動時にカーネルにロードされたプロファイルでこれを行います。Apparmorには、強制と苦情の2種類のプロファイルモードがあります。強制モードのプロファイルは、そのプロファイルのルールを強制し、syslog
またはで違反の試みを報告しauditd
ます。苦情モードのプロファイルは、プロファイルルールを強制せず、違反の試みを記録するだけです。
Ubuntuでは、デフォルトでApparmorがインストールされます。アプリケーションをプロファイルに限定し、プログラムがアクセスする必要があるファイルと権限を決定します。一部のアプリケーションには独自のプロパティが付属し、さらに多くのapparmor-profiles
パッケージがパッケージに含まれています。
を実行apparmor-profiles
してインストールできsudo apt-get install apparmor-profiles
ます。
この投稿のために書き直したUbuntuフォーラムで、Apparmorの良い例を見つけました。
Apparmorは、アプリケーションが悪を回すのを防ぐセキュリティフレームワークです。たとえば、Firefoxを実行して、
home
フォルダーを削除するマルウェアをインストールしようとする悪いサイトにアクセスすると、ApparmorにはFirefoxに制限がありますが、Firefoxは望ましくないこと(音楽、ドキュメントなどにアクセスするなど)を実行できません。この方法では、アプリケーションが危険にさらされても、害はありません。
apparmor-utils
パッケージには、AppArmorのを設定するためのコマンドラインツールが含まれています。これを使用して、Apparmorの実行モードを変更したり、プロファイルのステータスを検索したり、新しいプロファイルを作成したりできます。
これらは最も一般的なコマンドです:
注:プロファイルはに保存されます/etc/apparmor.d/
sudo apparmor_status
。*ロードされたすべてのプロファイル、強制モードのすべてのプロファイル、苦情モードのすべてのプロファイル、強制/苦情で定義されているプロセスなどのリストを取得します。 sudo aa-complain /path/to/bin
、を使用します。ここ/path/to/bin
で、はプログラムbin
フォルダです。たとえば、running:sudo aa-complain /usr/bin/firefox
はFirefoxをコンプレインモードにします。sudo aa-enforce /path/to/bin
プログラムプロファイルを実施するために使用します。 sudo aa-complain /etc/apparmor.d/*
sudo aa-enforce.d/*
プロファイルをカーネルにロードするには、を使用します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
sudo service apparmor reload
プロファイルを無効にするには、リンクにそれを/etc/apparmor.d/disable/
使用してln
、次のように: 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.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
、カーネルモジュールを削除できます。sudo update-rc.d -f apparmor defaults
sudo service apparmor start
、カーネルモジュールをロードしますsudo update-rc.d apparmor defaults
プロファイルは/etc/apparmor.d/
、プロファイルの実行可能ファイルへの完全パスに基づいて保存され、「/」を「。」に置き換えて名前が付けられます。例えば/etc/apparmor.d/bin.ping
のためのプロファイルであるping
の中で/bin
。
プロファイルで使用されるエントリには、主に2つのタイプがあります。
パスエントリは、アプリケーションがアクセスできるファイルを決定します。
機能エントリは、プロセスが使用できる特権を決定します。
例としてping
、にあるのプロファイルを見てみましょうetc/apparmor.d/bin.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
アプリケーションが与える読みの権限を/etc/modules.conf
注:プロファイルを作成/編集した後、変更を有効にするにはプロファイルをリロードする必要があります。
使用できる権限のリストは次のとおりです。
r
-読む w
- 書く ux
-制約のない実行 Ux
-制約のない実行-環境をスクラブ px
-個別プロファイルの実行 Px
-個別プロファイルの実行-環境をスクラブ ix
-実行を継承 m
-許可PROT_EXEC
でmmap(2)
の通話 l
-リンク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.com Ubuntuforums.org
Ubuntu 12.04およびUbuntu 12.10の Apparmorガイド
それがあなたを助けることを願っています。
これはApparmor wikiからの引用です:
AppArmorは、効果的で使いやすいLinuxアプリケーションセキュリティシステムです。AppArmorは、適切な動作を強制し、未知のアプリケーションの欠陥の悪用を防止することにより、ゼロデイ攻撃などの外部または内部の脅威からオペレーティングシステムとアプリケーションをプロアクティブに保護します。AppArmorセキュリティポリシーは、個々のアプリケーションがアクセスできるシステムリソースと、特権を完全に定義します。AppArmorには多くのデフォルトポリシーが含まれており、高度な静的分析と学習ベースのツールの組み合わせを使用して、非常に複雑なアプリケーションのAppArmorポリシーも数時間で正常にデプロイできます。