|
||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||
| プロファイル適用による動作封じ込め | ||||||||||
|
AppArmorは、プロファイルと呼ばれる設定をアプリケーションに適用し、動作を封じ込めます。プロファイルには「アプリケーションにどんなアクセスを許可するか」が設定されています。デフォルトの状態では、アプリケーションはAppArmorの制限を受けません。プロファイル設定が用意されたアプリケーションのみ、AppArmorによって動作が封じ込まれるようになっています。 ここに、SELinuxとの思想の違いがでています。SELinuxでは「すべてのアプリケーションにアクセス制御設定を行い、システムすべてを守ることを目指す」ことを目的としています。 しかしAppArmorでは「攻撃されやすいアプリケーション、例えばネットワークに公開されたアプリケーションだけに、プロファイルを適用して守ればいい」という考えに立っています。一部のアプリケーションに対してのプロファイルだけを書けばよいため、必要な設定の量が少なく、管理が容易に行えるのです。 さて、AppArmorの実際のアクセス制御を知るため、図1のプロファイル設定例をみてください。 ![]() 図1:ntpdのプロファイル設定の抜粋 これはntpdのプロファイル設定の例で、ntpdはここで設定されたアクセス許可にしたがって動作します。 まず(1)でntpdの実行ファイルを指定し、{}の中に、ntpdに許可する権限を記述していきます。 続く(2)では、許可する特権(POSIX Capability)を指定しています。今回は、システム時間を変える権限を許可しています。 (3)ではアクセスできるファイル名を指定しています。今回は、ntpdの設定ファイルの読み込みとログファイルの書き込みを許可しています。このように、AppArmorのプロファイル設定の書式は単純でわかりやすいことが理解できるでしょう。 |
||||||||||
| パス名ベースのアクセス制御とPOSIX capabilityの制御 | ||||||||||
|
AppArmorがアクセスの制御を行える対象は、ファイルとPOSIX Capabilityです。ファイルのアクセス制御については、図1の(3)のようにファイル名を基に行っています。ここではファイルに対して、読み(r)/書き(w)/実行(ix)/消去(l)などの操作を制限することができます。 ファイルのアクセス制御の際にファイル名ではなくラベルを使っています。このためファイルとラベルの2つを管理する必要があり、作業が煩雑になりがちでした。しかしAppArmorではファイル名を使って管理しているため、設定の意味もわかりやすくなっています。 ファイル以外には、POSIX Capabilityの利用を制限することができます。POSIX Capabilityは、「なぜなにLIDS〜シンプル・セキュアOS〜」で紹介したケーパビリティと同様の機能となります。ファイル操作以外の、システムに対して重要な操作を制限しています。 このほか、プロセス間の通信や細かいポート番号の利用制限ができますが、AppArmorでは現時点では不可能です。SELinuxより設定項目は少なく簡単ですが、その分セキュリティ面では劣る部分もあります。 |
||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||


