AppArmor

AppArmor（Application Armor）とは、Linux Security Modulesの一種であり、各プログラムにセキュリティプロファイルを結びつけ、プログラムのできることに制限をかけるプログラムである。プロファイルは、ネットワークアクセス、Raw socket アクセス、ファイルへの読み書き実行などの機能を制限することができる。AppArmor は、Unixの伝統的な任意アクセス制御モデルを、強制アクセス制御モデルを提供することで補っている。このプログラムはバージョン2.6.36からLinuxのメインラインに含まれており、2009年からカノニカルが開発をサポートしている。

手動でセキュリティプロファイルを作るだけでなく、AppArmorでは学習モードを使うことができる。学習モードでは、プロファイル違反が見つかってもその動作を妨害せず、単にログに出力する。このログを使ってプログラムの挙動に基づくAppArmorプロファイルを生成することができる。

AppArmorはLinux Security Modulesのインターフェイスを利用して実装されている。

AppArmorは、Security-Enhanced Linux（SELinux）の一部の機能の代わりとして使うことができる。ラベルをファイルに適用することに基づくSELinuxとは異なり、AppArmorはファイルパスを利用する。AppArmorの支持者は、この方法のほうがSELinuxよりも平均的な利用者にとって理解しやすいと主張している。また彼らは AppArmor のほうが既存のシステムに適用する際により少ない修正ですむと主張している。例えば、SELinuxは「セキュリティラベル」をサポートするファイルシステムを必要とするので、NFSを通じてマウントされたファイルに対してアクセスコントロールを提供できない。一方、AppArmorは任意のファイルシステムで利用できる。

他のシステム 

AppArmor represents one of several possible approaches to the problem of restricting the actions that installed software may take.

AppArmorは、インストールされたソフトウェアによる動作を制限するという問題に対して取りうるアプローチの1つである。

SELinuxのシステムも、普通はAppArmorと同じような対応を取る。大きな違いは、SELinuxはファイルのパスの代わりにinodeの番号が同じであれば、そのファイルを同一であると見なす。これは、例えばアクセス不可能であるが、ハードリンクが作られるときにAppArmorであればアクセス可能になるかもしれないファイルであるのに、SELinuxはinodeによって参照された元のデータが同じになっても、依然として新しく作られたハードリンクを通してでもアクセスできない。

SELinuxとAppArmorは、管理方法や、システムとの結合方法という点でも大きな違いがある。

プロセスの分離はバーチャライゼーションのようなメカニズムによって出来上がっている。例えばOLPCプロジェクトの軽量Vserverでのサンドボックスの個々のアプリケーションがそうである。

2007年には、Smackという単純化された命令のカーネルへの操作へのアクセスが導入された。

2009年には、AppArmorのようなパスネームベースのアクセス制御を使うTOMOYO Linuxと呼ばれる新しい手法がLinux 2.6.30に統合された。

活用 
AppArmorは1998年から2003年にかけてImmunix Linixで初めて使用された。そのとき、AppArmorはサブドメイン、すなわち異なるドメインへ分けられた特定のプログラムへのセキュリティ・プロファイルの参照として知られており、ダイナミックに換えることができる。AppArmorは第一にSUSEとopenSUSEで役立てられており、 SUSE Linux Enterprise Server 10とopenSUSE 10.1において初めて有効化された。

2005年から2007年9月まで、AppArmorはノベルに保守されていた。

AppArmorは2007年4月から初めて、成功のうちにUbuntuにパッケージされていた。AppArmorはUbuntu7.10からデフォルトのパッケージになり、Ubuntu8.04からはリリースの一部になった。デフォルトではCUPSの保護のみをしていた。Ubuntu9.04の時点で、MySQLのような、より多くのソフトウェアがインストールされた。AppArmorはUbuntu9.10でゲストセッション、libvirtのバーチャルマシン、Evince document viewer、Firefoxの任意のプロファイルのためにプロファイルとリリースされるのと並行して改善されていった。

AppArmorは、2010年10月に、Linuxカーネルへ統合された。

また、AppArmorは2014年に、Synology's DSM 5.1のベータ版にも統合された。

関連項目 

 Linux Intrusion Detection System (LIDS)
 Systrace
 grsecurity

脚注

外部リンク 
 AppArmor Wiki
 AppArmor description from openSUSE.org
 LKML thread containing comments and criticism of AppArmor
 Apparmor packages for Ubuntu
 Counterpoint: Novell and Red Hat security experts face off on AppArmor and SELinux
 http://www.novell.com/linux/security/apparmor/

Linux