私は防具について多くの話を聞きます、私は次を知りたいです:
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のステータスを確認できます。 *ロードされたすべてのプロファイル、強制モードのすべてのプロファイル、苦情モードのすべてのプロファイル、強制/苦情で定義されているプロセスなどのリストを取得します。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
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.name
cat /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
は、/bin
のping
のプロファイルです。
プロファイルで使用されるエントリには、主に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
-リンク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ガイド
それがあなたを助けることを願っています。
Apparmor wiki からの引用です:
AppArmorは、効果的で使いやすいLinuxアプリケーションセキュリティシステムです。 AppArmorは、適切な動作を強制し、未知のアプリケーションの欠陥の悪用を防止することにより、オペレーティングシステムとアプリケーションを外部または内部の脅威、ゼロデイ攻撃からも積極的に保護します。 AppArmorセキュリティポリシーは、個々のアプリケーションがアクセスできるシステムリソースと、どの特権で完全に定義します。 AppArmorには多くのデフォルトポリシーが含まれており、高度な静的分析と学習ベースのツールの組み合わせを使用して、非常に複雑なアプリケーションのAppArmorポリシーも数時間で正常にデプロイできます。