第2章 検疫するプログラムの選択

目次

2.1. 権限を与えるプログラムへの免疫付与
2.2. プログラムに免疫を与えるための、オープンポートの検査

NovellŪ AppArmorではプログラムを検疫して、攻撃にさらされたプロセスからシステムの残りの部分が損傷を受けないよう保護します。ポートを検査してプロファイルするべきプログラムを確認し(2.2項 「プログラムに免疫を与えるための、オープンポートの検査」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照)、権限を与えるプログラムをすべてプロファイルします(2.1項 「権限を与えるプログラムへの免疫付与」 (↑Novell AppArmor 2.0アドミニストレーションガイド))。


2.1 権限を与えるプログラムへの免疫付与

プロファイリングを必要とするプログラムは、権限を仲介するプログラムです。以下のプログラムには、プログラムを使用する人にはない、リソースへのアクセスがあります。そのためプログラムは、ユーザが使用する際に権利を与えます。

cronジョブ

cronが定期的に実行するプログラムです。このようなプログラムはさまざまなソースからの入力を読み取り、特別な権限で実行できます。時にはrootと同程度の権限が必要です。たとえば、cronでは毎日/usr/bin/updatedbを実行して、システム内にある各ファイルの名前を読み取るのに十分な権限を使用して、locateデータベースを最新の状態に保ちます。これらの種類のプログラムを検索する説明については、2.2.1項 「cronジョブへの免疫付与」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

Webアプリケーション

Webブラウザを使用して呼び出されるプログラムです。CGI Perlスクリプト、PHPページ、およびさらに複雑なWebアプリケーションを含みます。これらの種類のプログラムを検索する説明については、2.2.2項 「Webアプリケーションへの免疫付与」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

ネットワークエージェント

オープンネットワークポートがあるプログラム(サーバおよびクライアント)メールクライアントおよびWebブラウザのようなユーザクライアントは意外にも、権限を仲介します。これらのプログラムは、ユーザのホームディレクトリへの書き込み権限を備えて実行され、敵意のあるWebサイトおよび電子メールによる悪意のあるコードなど、潜在的に敵意のあるリモートのソースからの入力を処理します。これらの種類のプログラムを検索する説明については、2.2.3項 「ネットワークエージェントへの免疫付与」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

逆に、権限のないプログラムはプロファイルする必要がありません。たとえばシェルスクリプトでは、ファイルのコピーのためcpを呼び出す場合があります。cpには自分自身のプロファイルがないため、親のシェルスクリプトのプロファイルを継承します。そのため、親シェルスクリプトのプロファイルが読み取りおよび書き込みできる、任意のファイルをコピーできます。