Difference between revisions of "TOMOYO Linux (日本語)"

From ArchWiki
Jump to: navigation, search
m
m
Line 49: Line 49:
 
CONFIG_SECURITY_NETWORK=y [optional: for providing network restriction]
 
CONFIG_SECURITY_NETWORK=y [optional: for providing network restriction]
 
</pre>
 
</pre>
* The restriction of a few advanced networking operations are limited or unavailable due to the absence of required LSM hooks
+
* LSMフックを使えないため、高度なネットワークオペレーションのいくつかの制限が使えません
 
* [http://en.wikipedia.org/wiki/Capability-based_security ケイパビリティ]を使った制限は行えません
 
* [http://en.wikipedia.org/wiki/Capability-based_security ケイパビリティ]を使った制限は行えません
 
* Looking up per-task variables is slower as they are managed outside "struct task_struct" in order to keep KABI unchanged. However, this should not be noticeable for the typical end-user as performance decrease by pathname based permission checking is dominant
 
* Looking up per-task variables is slower as they are managed outside "struct task_struct" in order to keep KABI unchanged. However, this should not be noticeable for the typical end-user as performance decrease by pathname based permission checking is dominant
 
This [http://akari.sourceforge.jp/comparison.html table] provides a comprehensive comparison of AKARI with the TOMOYO Linux 1.x and 2.x branches.
 
This [http://akari.sourceforge.jp/comparison.html table] provides a comprehensive comparison of AKARI with the TOMOYO Linux 1.x and 2.x branches.
  
{{Note|The Arch Linux kernel from 2.6.36 onwards provides all of the configuration options required for full functionality.}}
+
{{Note|2.6.36以後のArch Linuxカーネルでは全ての機能を有効にするのに必要なコンフィグレーションオプションの全てが提供されています。}}
  
 
===インストール===
 
===インストール===
Both AKARI and the userspace tools must be installed. A package for [https://aur.archlinux.org/packages.php?ID=42608 AKARI] and a package for [https://aur.archlinux.org/packages.php?ID=42606 ccs-tools] are available on the AUR.
+
ユーザースペースツールとあわせてAKARIをインストールする必要があります。[https://aur.archlinux.org/packages.php?ID=42608 AKARI][https://aur.archlinux.org/packages.php?ID=42606 ccs-tools]のパッケージがAURで手に入ります。
  
 
AKARIを有効にするためにブートローダの設定を変える必要があります:
 
AKARIを有効にするためにブートローダの設定を変える必要があります:

Revision as of 14:20, 11 November 2012

TOMOYO LinuxはLinux用の強制アクセス制御(MAC)の実装です。2003年3月にローンチされ、NTTデータによって提供されています。TOMOYO Linuxはシステムの振る舞いに着目し、目的を達成するのに必要な振る舞いやリソースについて報告させることができます。アクセス制限ツールとしてだけでなくシステム解析ツールとしても利用価値があります。

TOMOYO Linuxにおけるセキュリティのゴールは"多くのユーザーにとって現実的な要件を満たし、管理者が使いやすさを維持できる強制アクセス制御"を提供することです。TOMOYO Linuxはセキュリティ専門家のためだけでなく、標準的なユーザーや管理者のために開発されています。

Note: この記事では網羅的な解説はしないので、プロジェクトの充実したユーザードキュメントの補助としてお使いください。
Tip: TOMOYO Linux 2.xブランチがArch Linuxの[community]レポジトリに入っています。今のところこのブランチでは1.xブランチと同等の機能は完備されていませんが、手軽に始めたい人には2.xブランチの方が簡単にインストールできます。TOMOYO Linux 1.xブランチはより良いセキュリティを求める人向けで、AKARIはその中間に位置します。

イントロダクション

TOMOYO Linuxは簡単な方法でシステムを制御します:

  • カーネルのライフタイムに一度は必ず起こるアクセスリクエストの全てを記録します
  • 管理者は予想される・望ましいアクセスリクエストだけを許可するポリシーを作ります

AppArmorとは違って、TOMOYO Linuxはアプリケーションのexploitをつこうとする攻撃者からシステム全体を守るように設計されています。脅威に対処するために、TOMOYO Linuxはテスト環境で全てのアプリケーションの挙動を記録し、記録された挙動内でアプリケーションの行動を本番環境で制限します。

TOMOYO Linuxは他人に書かれた既製のポリシーファイルをユーザーが使うことを意図していません。自動的にポリシーファイルを生成する"learning mode"を必要に応じて使いながら、スクラッチからポリシーを作る必要があります。TOMOYO Linuxはシステム内で起こっていることを逐一観測するのでシステムの解析ツールとしても有用です。straceと同じようにプログラムによって実行されている命令やアクセス中のファイル/ネットワークを報告します。

この表ではTOMOYO LinuxとAppArmorSELinuxSMACKを比較しています。

開発ブランチ

TOMOYO Linux 1.xはオリジナルの実装です。TOMOYO Linuxは2005年11月11日に初めてリリースされました。当時Linuxカーネルへのパッチとして作られ、現在も活発に開発されています。SELinuxやSMACK、AppArmorなど他のセキュリティモジュールと共存できます。

TOMOYO Linux 2.xは標準のLinuxカーネルに統合されている実装です。2009年の6月に、Linux Security Module(LSM)インターフェースを利用する形でTOMOYOはLinuxカーネル2.6.30にマージされました。しかしながら、LSMはTOMOYO Linuxの完全な強制アクセス制御をLinuxカーネルで機能させるには不十分です。そのため1.xブランチよりも少ない機能しか提供されていません。この表にそれぞれのブランチの違いが比較されています。

AKARIはTOMOYO Linux 1.xをベースにローダブル・カーネル・モジュール(LKM)として機能します。そのためユーザーはカーネルにパッチをあてリコンパイルする必要がないという利点があります。このテーブルでAKARIとTOMOYO Linux 1.x・2.xブランチの比較を一覧することができます。

TOMOYO Linux 1.x

TOMOYO Linux 1.xを使うことでTOMOYO Linuxプロジェクトで開発された全ての機能を利用することができます。しかしながら、このブランチを使うには超えなくてはいけない多くのハードルがあります。カーネルにccs-patchをパッチしてその後リコンパイルしなくてはなりません。

linux-ccsとユーザースペースツールをインストールする必要があります。AURにそれぞれlinux-ccsccs-toolsのパッケージが存在します。

初期設定

ポリシーを初期化してください:

# /usr/lib/ccs/init_policy

ポリシーファイルは/etc/css/ディレクトリに保存されています。編集するには:

# ccs-editpolicy

AKARI

AKARIの制限

AKARIにはカーネルリコンパイルが必要ないという利点があります。TOMOYO Linuxを単純にシステムアナリシスに使うつもりなら、AKARIは一番簡単な方法になります。TOMOYO Linuxをシステム制限に使うのなら、TOMOYO Linux 1.xブランチの機能を得るためには最低限の労力が必要です。ただ、少しの機能制限を考慮しなくてはなりません:

  • どの機能が制限されるかはカーネルのバージョンと、ディストリビューションによる設定によります:
CONFIG_SECURITY=y [required]
CONFIG_KALLSYMS=y [required]
CONFIG_PROC_FS=y [required]
CONFIG_MODULES=y [required]
CONFIG_SECURITY_PATH=y [optional: for using absolute pathnames]
CONFIG_SECURITY_NETWORK=y [optional: for providing network restriction]
  • LSMフックを使えないため、高度なネットワークオペレーションのいくつかの制限が使えません
  • ケイパビリティを使った制限は行えません
  • Looking up per-task variables is slower as they are managed outside "struct task_struct" in order to keep KABI unchanged. However, this should not be noticeable for the typical end-user as performance decrease by pathname based permission checking is dominant

This table provides a comprehensive comparison of AKARI with the TOMOYO Linux 1.x and 2.x branches.

Note: 2.6.36以後のArch Linuxカーネルでは全ての機能を有効にするのに必要なコンフィグレーションオプションの全てが提供されています。

インストール

ユーザースペースツールとあわせてAKARIをインストールする必要があります。AKARIccs-toolsのパッケージがAURで手に入ります。

AKARIを有効にするためにブートローダの設定を変える必要があります:

title  Arch Linux
root   (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro init=/sbin/ccs-init
initrd /boot/initramfs-linux.img

初期設定

ポリシーを初期化してください:

# /usr/lib/ccs/init_policy --module_name=akari

ポリシーファイルは/etc/css/ディレクトリに保存されています。編集するには:

# ccs-editpolicy

TOMOYO Linux 2.x

TOMOYO Linux 2.xの制限

Linuxカーネルのメインラインに取り込まれているTOMOYO Linux 2.xの機能は完全ではありませんが、ファイルのMACには十分効果的です。 There are a few features that still need to be implemented as compared to the 1.x branch. This chart has a comprehensive comparison of the differences between each branch of development.

インストール

TOMOYO Linux 2.xはLinuxのメインラインのカーネルの一部です。次のカーネルコンフィグレーションが必要です:

CONFIG_SECURITY_TOMOYO=y
Note: 2.6.36以後のArch Linuxカーネルでは全ての機能を有効にするのに必要なコンフィグレーションオプションの全てが提供されています。

カーネルがTOMOYO Linux 2.xをサポートしていれば、あとはユーザースペースのツールをインストールすれば十分です:

pacman -S tomoyo-tools

カーネルバージョンが2.6.30から2.6.35の場合、tomoyo-tools 2.2.xをインストールしてください。パッケージはAURで手に入ります。

初期設定

ポリシーを初期化してください:

# /usr/lib/tomoyo/init_policy

/usr/lib/tomoyo/init_policyが終わったらコンピュータを再起動させます。

ポリシーファイルは/etc/tomoyo/ディレクトリに保存されています。編集するには:

# tomoyo-editpolicy

使用方法

TOMOYO LinuxやAKARIを効果的に使うためにもドキュメントをよく読みましょう:

編集をはじめるためにポリシーエディタを起動します。TOMOYO Linux 1.xもしくはAKARIを使っている場合はccs-tools'を使います:

# /usr/sbin/ccs-editpolicy

TOMOYO Linux 2.xを使っている場合はtomoyo-toolsを使います:

# /usr/sbin/tomoyo-editpolicy

システムが動いている間、TOMOYO Linuxはドメインを作りツリーに加えます。TOMOYO Linuxのアクセス解析・制限はドメインを通して適用されます。全てのプロセスはシングルドメインに属し、プロセスはプログラムを起動するたびに新しいドメインに遷移します。ドメインの名前は実行した順番に連結されて表現されます。例えば、カーネルが属しているドメインの名前は"<kernel>"で、カーネルによって起動した/sbin/initのドメインの名前は"<kernel> /sbin/init"。もし/sbin/init/etc/rc.d/rcを起動すると、そのドメインは"<kernel> /sbin/init /etc/rc.d/rc"になります。必要に応じてドメイン遷移を抑制したり初期化することができます。

それぞれのドメインにはプロファイルが割り当てられます。デフォルトでは異なる4つのプロファイルが定義されています:

Disabled 通常のカーネルのように動作します。
Learning アクセス要求がポリシーで許可されていなくても拒否しません。また、同じアクセス要求を次回以降は許可するためにポリシーに追加します。
Permissive アクセス要求がポリシーで許可されていなくても拒否しません。ただし、ポリシーへの追加も行いません。
Enforcing アクセス要求がポリシーで許可されていない場合には拒否します。また、ポリシーへの追加も行いません。

学習用プロファイルはシステムや特定のアプリケーションを解析するために使うことができます。 Once all of the desired access requests of a domain have been identified, the policy for that domain can be edited as required before selecting the enforcing profile. This can be done for any and all domains from the start of system boot.

参照

関連項目