信頼のおける プログラムであっても、バグに起因する 数多くのセキュリティ脆弱性が存在しています。信頼のおけるプログラムは、 攻撃者が望むだけの権限を持って動作しているため、プログラム内にバグが 存在すると、攻撃者に必要な権限を与えてしまうことになり、信頼を損なって しまいます。
AppArmor® は、疑念のあるプログラムに対して権利の制限を行なうことに特化して 設計された、アプリケーションセキュリティソリューションです。 AppArmor は管理者 に対してプログラムが実施できる動作領域を指定できるようにするためのもので、 動作領域はセキュリティ判断 (AppArmor では プロファイル と呼びます) によって設定を行ないます。プロファイルとは、プログラムがアクセス する可能性のあるファイルや、プログラムが実施する可能性のある操作の一覧です。 これにより、 AppArmor は実際の攻撃を検出することなく、アプリケーションに対して 正しい動作を強制することになり、たとえ未知の脆弱性に対する攻撃であっても それを防ぐことができるようになります。
AppArmor は下記のコンポーネントから構成されています:
一般的な Linux* アプリケーション向けの AppArmor プロファイルライブラリ。 プログラムがアクセスする必要のあるファイルを列挙しています。
AppArmor プロファイル基礎クラス (プロファイル構築ブロック) 。 DNS の参照や ユーザ認証など、一般的なアプリケーション動作に必要となります。
AppArmor プロファイルの開発や拡張のためのツールスイート。これらを利用すること で、既存のプロファイルを必要に応じて修正することができるほか、独自の アプリケーションに対して、新しいプロファイルを作成したりすることもできます。
AppArmor が有効化されている特別版のアプリケーションで、ユニークなサブプロセス 制限の形でセキュリティの拡張可能を提供するもの (Apache や Tomcat などを含む) 。
AppArmor それ自身。読み込み可能なカーネルモジュールと、関連する制御用スクリプト から構成され、お使いの openSUSE® 製品に対して AppArmor のポリシーを適用する ために使用します。
AppArmor の技術やセキュリティについて、詳しくは下記の書籍をお読みください:
AppArmor の初期デザインと実装について説明した書籍です。 2000 年 12 月の New Orleans, LA における USENIX LISA カンファレンスで発行された報告書 です。内容は既に古いものになってしまっていて、文法や機能に 関する説明は、現在の AppArmor 製品とは異なっています。この書籍は背景と なる知識を得るために有用なものであり、技術文書としては使用すべきでは ありません。
とても短い期間に発生した重要なセキュリティ問題を AppArmor で解決する際の、 戦略/戦術的に良いガイドです。 2003 年 4 月に Washington, DC で開催された DARPA Information Survivability Conference and Expo (DISCEX III) で発行 された報告書です。
このドキュメントは、 AppArmor の技術詳細についてよりよく理解するための 文書です。こちらは http://en.opensuse.org/SDB:AppArmor_geeks からアクセスできます。