20091218 celf jamboree 31

26
Copyright(C)2009 NTT DATA CORPORATION TOMOYO Linuxのご紹介 2009.12.18 TOMOYO Linux Project 半田哲夫 [email protected] CELF Japan Technical Jamboree 31

Upload: toshiharu-harada-phd

Post on 12-May-2015

987 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION

TOMOYO Linuxのご紹介

2009.12.18TOMOYO Linux Project半田哲夫[email protected]

CELF Japan Technical Jamboree 31

Page 2: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 1

本日のメニュー

Part 1:TOMOYO Linux 1.x の紹介

Part 2:TOMOYO Linux 2.x の紹介

Q&A

Page 3: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 2

TOMOYO Linux 1.x の紹介

Page 4: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 3

TOMOYO Linux 1.x について

2005年11月11日に1.0を公開

– 「学習モード」により振る舞いを記録し、「強制モー

ド」により記録された振る舞いをだけを許可することが

できる、アクセス制御機能

– Linuxカーネルに対するセキュリティ強化拡張

2009年11月11日に1.7.1を公開

– カーネル2.4.30以降および2.6.11以降に対応

– http://tomoyo.sourceforge.jp/

Page 5: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 4

TOMOYO Linux 1.x について

「パス名ベース」のアクセス制御であることと「学習モード」が存在することは知られているが、それだけではない。

– システム起動時から電源断までを制御下におく(1.0)

– システム管理者の操作を制限/なりすまし対策(1.0)

– ポリシー違反を対話的に処理する機能(1.1.1)

– ユーザIDなどに基づく条件付きアクセス許可(1.2)

– プログラム実行時のパラメータチェック機能(1.6.0)

– プログラム実行時のプリプロセッサ機能(1.6.0)

– ステートフルなアクセス許可(1.6.0)

– スリープペナルティ機能(1.6.0)

Page 6: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 5

TOMOYO Linux 1.x について

システム起動時から電源断までを制御下におく

– /sbin/initが実行されるタイミングから

/sbin/poweroffで電源が切れる直前までの全

ての動作を制御下に置くことも可能。

• 「学習モード」が全ての動作を記録してくれ

るので、それをチューニングおよびレビュー

して適用するだけ。

• SELinuxやAppArmorよりも適用しやすい。

Page 7: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 6

TOMOYO Linux 1.x について

システム管理者の操作を制限/なりすまし対策

– もちろん、コンソールやSSHセッションのよ

うに特定の範囲だけを制御下に置くことも可能。

– 状態遷移が木構造になっていることを利用して、

ログイン時に追加のユーザ認証を行うことによ

り、パスワードクラック対策や認証モジュール

の脆弱性への対策が可能。

Page 8: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 7

TOMOYO Linux 1.x について

ポリシー違反を対話的に処理する機能

– 「強制モード」で動作中にポリシー違反が発生

した場合に、アクセス要求を許可するかどうか

を対話的に指定することが可能。

• ソフトウェアアップデートによる突発的なア

クセス要求やパス名の変化に対処する。

• アプリケーション用のポリシーがまだロード

されていなかった場合に、その場でポリシー

をロードさせることも可能。

Page 9: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 8

TOMOYO Linux 1.x について

ユーザIDなどに基づく条件付きアクセス許可

– ユーザのIDやファイルの所有者IDなどの情

報に基づいてアクセスを制限することが可能。

• 例:rootユーザではない場合に/bin/shの実行を許可

– allow_execute /bin/sh if task.uid!=0

task.euid!=0

• 例:rootが所有者の場合に/tmp/fileの更新を許可

– allow_write /tmp/file if path1.uid=0

Page 10: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 9

TOMOYO Linux 1.x について

プログラム実行時のパラメータチェック機能

– 引数や環境変数などの内容に基づいてプログラ

ムの実行の可否を判断することが可能。

• 例:/bin/sh -c "uname -r"の場合だけ/bin/shの実

行を許可

– allow_execute /bin/sh if exec.argc=3

exec.argv[0]="/bin/sh" exec.argv[1]="-c"

exec.argv[2]="uname¥040-r"

Page 11: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 10

TOMOYO Linux 1.x について

プログラム実行時のプリプロセッサ機能

– プログラムの実行要求を横取りして、ポリシー

で指定されたプログラムに任意の処理(例えば

/tmp/にtmpfsをマウントさせたり、標準入出

力を繋ぎかえさせたり、コマンドライン引数を

修正させたりなど)を行わせることが可能。

• 例:プログラム実行時の引数を記録してから実行する

– execute_handler /usr/lib/ccs/audit-exec-

param

Page 12: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 11

TOMOYO Linux 1.x について

ステートフルなアクセス許可

– 状態変数を用いた権限の分割が可能。

• 例:LANからのクライアントには/bin/shを許可、

WANからのクライアントには/bin/rbashを許可

– allow_network TCP accept @LAN @any ; set

task.state[0]=1

– allow_network TCP accept @WAN @any ; set

task.state[0]=2

– allow_execute /bin/sh if task.state[0]=1

– allow_execute /bin/rbash if task.state[0]=2

Page 13: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 12

TOMOYO Linux 1.x について

スリープペナルティ機能

– 「強制モード」でのポリシー違反の発生時に、

ポリシー違反を起こしたプロセスを指定された

時間強制的にスリープさせることで、CPU使

用率を下げ、無駄な電力消費を抑えることが可

能。(ポリシーで許可されていない要求を永遠

に繰り返すプロセスに対する防御として有

効。)

Page 14: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 13

TOMOYO Linux 1.7 について

TOMOYO Linux 2.2 がメインライン化されたの

を契機に、Linux Kernel開発者コミュニティから

のフィードバックを取り込んで、仕様変更と機能

強化を行ったもの

– パス名の再帰的指定の追加(1.7.1)

– プロファイルの仕様変更(1.7.0)

– ガベージコレクタ機能の追加(1.7.0)

– パーミッションチェックの細分化(1.7.0)

– アクセスログの詳細化(1.7.0)

Page 15: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 14

TOMOYO Linux 1.7 について

パス名の再帰的指定の追加

– 「/」+「1回以上のdir/の繰り返し」に一致す

る/¥{dir¥}/というワイルドカードが追加され

た。

• 例:/var/www/html/以下の¥*.htmlの参照を許可

– allow_read /var/www/html/¥{¥*¥}/¥*.html

• 例: /var/www/以下の.svnおよび.gitディレクトリ

の外にある全てのファイルの参照を許可

– allow_read /var/www/¥{¥*¥-.svn¥-.git}/¥*

Page 16: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 15

TOMOYO Linux 1.7 について

プロファイルの仕様変更

– TOMOYO 1.6までは、カテゴリ単位(ファイル/ネッ

トワーク/ケイパビリティ等)での指定しかできなかっ

た。

– TOMOYO 1.7では、項目単位(ファイルのオープン/

ファイルの新規作成/TCP接続要求の送信/TCP接

続要求の受信等)での指定が可能になった。これにより、

例えばファイルの読み書きについてはSELinuxや

Smackに任せ、ディレクトリエントリの変更操作は

TOMOYOによる制限およびアクセスログの取得も行う

という使い方が可能になった。

Page 17: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 16

TOMOYO Linux 1.7 について

ガベージコレクタ機能の追加

– TOMOYO 1.6までは、ポリシーを削除してもポリシー

が使用していたメモリ領域を解放することができなかっ

た。そのため、再起動以外に不要になったメモリを解放

することができなかった。

– TOMOYO 1.7では、ポリシーを削除するとポリシーが

使用していたメモリ領域が自動的に解放されるように

なった。

Page 18: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 17

TOMOYO Linux 1.7 について

パーミッションチェックの細分化

– TOMOYO 1.6までは、ファイルに対するアクセス制御

ではパス名しかチェックしていなかった。

– TOMOYO 1.7では、ファイルに対するアクセス制御に

関して、ファイル作成時のモード、パーミッションや所

有者やグループ変更時の値、ioctlのコマンド番号など、

数値で表現されているパラメータもチェックされるよう

になった。

• 例:/etc/shadowのパーミッションを0600に変更

許可

– allow_chmod /etc/shadow 0600

Page 19: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 18

TOMOYO Linux 1.7 について

アクセスログの詳細化

– if節で使用できる全ての情報を取得できるよう

になり、「学習モード」を使わずに、アクセス

ログからif節付きのポリシーを生成できるよう

になった。

• 「学習モード」では学習されない条件も付与

されるので、より厳格な制限が可能

Page 20: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 19

TOMOYO Linux 1.7 について

元々はPCやサーバでの利用を想定して開発されたが、組込みでの利用にも向いている。

– アーキテクチャ非依存

– ファイルシステム非依存

– マルチコールバイナリ( BusyBox )の識別が可能

– 省メモリ

– 既存プログラムの修正が不要

Androidにも適用できる。

– TCP/IP で通信するエージェント経由で TOMOYO を制御可能

Page 21: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 20

どうぞお試しください

YouTubeで動画を観れます。

– http://www.youtube.com/results?search_query=tomoyo+linux

LiveCDもあります。

– CentOS 5 http://tomoyo.sourceforge.jp/1.7/1st-step/centos5-live/

– Ubuntu 9.10 http://tomoyo.sourceforge.jp/1.7/1st-step/ubuntu9.10-live/

Page 22: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 21

TOMOYO Linux 2.x の紹介

Page 23: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 22

TOMOYO Linux 2.2 について

2009年6月10日、Linuxカーネル2.6.30に採用

– TOMOYO 1.6から出発し、メインラインに採

用してもらうためにLSMを使用するように改造

されたバージョン。

• SELinuxやSmackやAppArmorとの併用は

不可能

– まだProof of Conceptレベルの内容

• ファイルに対するアクセス制御の一部しか実

装されていない。

Page 24: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 23

TOMOYO Linux 2.2 について

今後の予定

– カーネル2.6.33でパス名の再帰的指定が追加

Call for reviewers– 既にTOMOYO 1.7.1とほぼ同じレベルまで実

装できてはいるが、LSMメーリングリストでの

レビューを受けないと採用されない。

– LSMメーリングリストでのレビューに参加して

いただける方を募集しています。

Page 25: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 24

Q&A

Page 26: 20091218 CELF Jamboree 31

Copyright(C)2009 NTT DATA CORPORATION 25

TOMOYOは株式会社NTTデータの登録商標です。LinuxはLinus Torvalds氏の日本およびその他の国における登録商標または商標です。

その他の商品名、会社名、団体名は、各社の商標または登録商標です。