信頼できる プログラムを実行していても、バグによって引き起こされる様々な脆弱性に直面します。信頼できるプログラムのうち、権限を利用して動作しているプログラムについては、攻撃者からも格好の標的となります。プログラム内に何らかのバグがあれば、攻撃者はそれを悪用して必要な権限を奪取しようとしますので、プログラムに対する信頼も損なわれることになります。
AppArmor® はアプリケーション側でのセキュリティソリューションで、特にプログラムに対して与えられた権限を制限することによって、システムの安全性を守る仕組みです。 AppArmor では、管理者がプログラムに対して プロファイル と呼ばれる動作許可範囲を作成して適用することができます。このプロファイルは、プログラムがアクセスする可能性のあるファイルや、プログラムが行う処理などを集めたもので、これによって不正な動作を防ぎ、未知の脆弱性に対して攻撃が加えられた場合であっても、その攻撃による影響を防いだり、軽減したりすることができます。
AppArmor には下記のものが含まれています:
一般的な Linux* アプリケーション向けの AppArmor プロファイルライブラリ。プログラム側からアクセスする必要のあるファイルを示しています。
DNS 参照やユーザ認証など、一般的なアプリケーション動作に必要な、 AppArmor プロファイルファウンデーションクラス (プロファイル構築ブロック) ライブラリ。
AppArmor のプロファイルを作成したり拡張したりする際に使用するツールスイート。これらのツールを使用することで、既存のツールを要件にあわせて調整したり、独自のアプリケーション向けに新しいプロファイルを作成したりすることができるようになります。
ユニークなサブプロセス制約として強化されたセキュリティを提供する、 AppArmor を有効化するために独自に修正されたプログラム類 (Apache など) 。
お使いの openSUSE® Leap システムで使用される AppArmor 関連のカーネルコード、および AppArmor ポリシーを強制するための関連する制御スクリプト類。
AppArmor の科学的およびセキュリティの観点における詳しい情報については、下記の書籍をお読みください (いずれも英語です):
AppArmor 初期の設計と実装について説明しています。 2000 年 12 月にアメリカのルイジアナ州ニューオーリンズで行われた USENIX LISA Conference の議事録として発表されたものです。この文書は今となっては古くなっていて、現在の AppArmor 製品とは文法も機能も異なるものになっています。そのため、本文書は技術文書としてではなく、背景となる情報を知るための資料としてのみお使いください。
短期間で深刻なセキュリティ問題を解決する必要がある場合、 AppArmor を戦略的/戦術的に使用するのに適したガイドです。 2003 年にアメリカのワシントン DC で行われた、 DARPA Information Survivability Conference and Expo (DISCEX III) の議事録として発表されたものです。
この文書には、 AppArmor の技術的な側面について、理解を深めるための説明が書かれています。 https://en.opensuse.org/SDB:AppArmor_geeks (英語) でも提供されています。