信頼できる プログラムを実行していても、バグによって引き起こされる様々な脆弱性に直面します。信頼できるプログラムのうち、権限を利用して動作しているプログラムについては、攻撃者からも格好の標的となります。プログラム内に何らかのバグがあれば、攻撃者はそれを悪用して必要な権限を奪取しようとしますので、プログラムに対する信頼も損なわれることになります。
お使いのシステムに AppArmor を問題なく配置するには、下記の項目について注意深く考慮する必要があります:
コンピュータシステムのセキュリティを効率的に強化するには、まず権限を仲介するプログラムをできる限り少なくした後、それらのプログラムをできるだけ強く保護する流れで行います。 AppArmor は、お使いの環境下で攻撃にさらされるプログラムに対してプロファイルを作成するだけで保護が実現できる仕組みであることから、セキュリティを強化する際の手間を劇的に減らすことができます。 AppArmor ではポリシーの仕組みによって、プログラムが想定通りの動作のみを実行するよう強制することができます。
アプリケーションに対する AppArmor のプロファイル作成はわかりやすく、直感的な仕組みになっています。 AppArmor にはプロファイル作成を支援するツールが添付されているため、プログラミングの知識もスクリプトの処理も必要とはなりません。管理者に対して求められる作業は、セキュリティを強化する目的で、各アプリケーションに対して最も厳格なアクセス制御とプログラム実行のポリシーを設定することだけです。
AppArmor には既定で有効化されているプロファイルセットが添付されています。これらは AppArmor の開発者が作成したもので、 /etc/apparmor.d
内に配置されます。これらのプロファイルに加えて、 openSUSE Leap ではアプリケーションごとの個別のプロファイルも用意されています。これらのプロファイルは既定では有効化されませんし、標準の AppArmor プロファイルとは異なる /usr/share/apparmor/extra-profiles
というディレクトリ内に配置されます。
YaST には AppArmor® のプロファイルを構築したり管理したりするための基本的な仕組みが 2 種類用意されています。一方はグラフィカルなもの、他方はテキストベースのものです。テキストベースの場合、メモリなどのリソースもネットワーク帯域も比較的少なくなるようになっていますので、リモートからの管理を行うような場合や、ローカルのグラフィック環境が貧弱な場合に最適です。グラフィカルなものとテキストベースのものは、外観が異なるものの、同じ機能を同じ手順で利用できるようになっています。また、 AppArmor のコマンドも用意されていて、このコマンドは端末ウインドウから AppArmor の制御…
AppArmor® には、システムのセキュリティを管理するにあたって、グラフィカルなインターフェイスだけでなく、コマンドラインインターフェイスも用意されています。 AppArmor のコマンドラインツールでは、 AppArmor の状態確認のほか、プロファイルの作成や削除、修正などを行うことができます。
AppArmor® のプロファイルは本来、個別のプログラムやプロセスに対するセキュリティポリシーを表すものです。つまり、実行可能なプログラムに対してプロファイルを割り当てることになります。ところが、プログラムの一部では他の部分とは異なるアクセス許可が必要となることもあります。このような場合は、 「チェンジハット」 の機能を利用して、メインのプログラムに対して適用されているものとは異なるセキュリティコンテキストを適用するように設定します。このような 「異なるセキュリティコンテキスト」 のことを、 ハット や サブプロファイル などと呼び、 これを変更する行為を チェンジハット と呼びます。
pam_apparmor
によるユーザの制限AppArmor のプロファイルは実行ファイルに対して適用されるもので、特定のプログラム内の機能が、ほかの箇所とは異なるアクセス許可を必要とする場合は、チェンジハットの機能を利用して、異なる役割であるハット (サブプロファイルとも呼ばれます) に切り替える処理を行います。 pam_apparmor
という PAM モジュールでは、グループ名やユーザ名を基準にしたり、既定のプロファイルを適用したりして、認証済みのユーザを制限する機能を提供します。この機能を利用するには、 pam_apparmor
を PAM のセッションモジュールとして登録する必要があります。
AppArmor® でアプリケーションのプロファイルを作成して予防接種を実施し、プロファイルをメンテナンス (ログファイルの分析からプロファイルの更新、プロファイルのバックアップや最新状態への維持) することで、 openSUSE® Leap は非常に効率的にシステムを堅牢にすることができます。また、電子メールへのイベント通知を設定し、 aa-logprof ツールを利用してログを調査し、プロファイルを更新することで、様々な問題が顕在化する前に対応を取ることができます。
本章では、メンテナンスに関連する作業を説明しています。 AppArmor® の更新方法のほか、 AppArmor が提供するコマンドラインツールを使用するための基礎情報となる、マニュアルページの一覧取得方法などを説明しています。また、トラブルシューティングの章では、 AppArmor で一般的に直面する様々な問題や、その解決方法を説明しています。このほか、 AppArmor に対する欠陥報告や機能拡張のリクエスト方法などについても、説明しています。
下記の プロファイルファウンデーションクラス をお読みください。