20091218 CELF Jamboree 31

1,270 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,270
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20091218 CELF Jamboree 31

  1. 1. CELF Japan Technical Jamboree 31 TOMOYO Linuxのご紹介 2009.12.18 TOMOYO Linux Project 半田哲夫 penguin-kernel@I-love.SAKURA.ne.jp Copyright(C)2009 NTT DATA CORPORATION
  2. 2. 本日のメニュー Part 1:TOMOYO Linux 1.x の紹介 Part 2:TOMOYO Linux 2.x の紹介 Q&A Copyright(C)2009 NTT DATA CORPORATION 1
  3. 3. TOMOYO Linux 1.x の紹介 Copyright(C)2009 NTT DATA CORPORATION 2
  4. 4. 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/ Copyright(C)2009 NTT DATA CORPORATION 3
  5. 5. 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) Copyright(C)2009 NTT DATA CORPORATION 4
  6. 6. TOMOYO Linux 1.x について システム起動時から電源断までを制御下におく – /sbin/initが実行されるタイミングから /sbin/poweroffで電源が切れる直前までの全 ての動作を制御下に置くことも可能。 • 「学習モード」が全ての動作を記録してくれ るので、それをチューニングおよびレビュー して適用するだけ。 • SELinuxやAppArmorよりも適用しやすい。 Copyright(C)2009 NTT DATA CORPORATION 5
  7. 7. TOMOYO Linux 1.x について システム管理者の操作を制限/なりすまし対策 – もちろん、コンソールやSSHセッションのよ うに特定の範囲だけを制御下に置くことも可能。 – 状態遷移が木構造になっていることを利用して、 ログイン時に追加のユーザ認証を行うことによ り、パスワードクラック対策や認証モジュール の脆弱性への対策が可能。 Copyright(C)2009 NTT DATA CORPORATION 6
  8. 8. TOMOYO Linux 1.x について ポリシー違反を対話的に処理する機能 – 「強制モード」で動作中にポリシー違反が発生 した場合に、アクセス要求を許可するかどうか を対話的に指定することが可能。 • ソフトウェアアップデートによる突発的なア クセス要求やパス名の変化に対処する。 • アプリケーション用のポリシーがまだロード されていなかった場合に、その場でポリシー をロードさせることも可能。 Copyright(C)2009 NTT DATA CORPORATION 7
  9. 9. 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 Copyright(C)2009 NTT DATA CORPORATION 8
  10. 10. 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" Copyright(C)2009 NTT DATA CORPORATION 9
  11. 11. TOMOYO Linux 1.x について プログラム実行時のプリプロセッサ機能 – プログラムの実行要求を横取りして、ポリシー で指定されたプログラムに任意の処理(例えば /tmp/にtmpfsをマウントさせたり、標準入出 力を繋ぎかえさせたり、コマンドライン引数を 修正させたりなど)を行わせることが可能。 • 例:プログラム実行時の引数を記録してから実行する – execute_handler /usr/lib/ccs/audit-exec- param Copyright(C)2009 NTT DATA CORPORATION 10
  12. 12. 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 Copyright(C)2009 NTT DATA CORPORATION 11
  13. 13. TOMOYO Linux 1.x について スリープペナルティ機能 – 「強制モード」でのポリシー違反の発生時に、 ポリシー違反を起こしたプロセスを指定された 時間強制的にスリープさせることで、CPU使 用率を下げ、無駄な電力消費を抑えることが可 能。(ポリシーで許可されていない要求を永遠 に繰り返すプロセスに対する防御として有 効。) Copyright(C)2009 NTT DATA CORPORATION 12
  14. 14. 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) Copyright(C)2009 NTT DATA CORPORATION 13
  15. 15. 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}/¥* Copyright(C)2009 NTT DATA CORPORATION 14
  16. 16. TOMOYO Linux 1.7 について プロファイルの仕様変更 – TOMOYO 1.6までは、カテゴリ単位(ファイル/ネッ トワーク/ケイパビリティ等)での指定しかできなかっ た。 – TOMOYO 1.7では、項目単位(ファイルのオープン/ ファイルの新規作成/TCP接続要求の送信/TCP接 続要求の受信等)での指定が可能になった。これにより、 例えばファイルの読み書きについてはSELinuxや Smackに任せ、ディレクトリエントリの変更操作は TOMOYOによる制限およびアクセスログの取得も行う という使い方が可能になった。 Copyright(C)2009 NTT DATA CORPORATION 15
  17. 17. TOMOYO Linux 1.7 について ガベージコレクタ機能の追加 – TOMOYO 1.6までは、ポリシーを削除してもポリシー が使用していたメモリ領域を解放することができなかっ た。そのため、再起動以外に不要になったメモリを解放 することができなかった。 – TOMOYO 1.7では、ポリシーを削除するとポリシーが 使用していたメモリ領域が自動的に解放されるように なった。 Copyright(C)2009 NTT DATA CORPORATION 16
  18. 18. TOMOYO Linux 1.7 について パーミッションチェックの細分化 – TOMOYO 1.6までは、ファイルに対するアクセス制御 ではパス名しかチェックしていなかった。 – TOMOYO 1.7では、ファイルに対するアクセス制御に 関して、ファイル作成時のモード、パーミッションや所 有者やグループ変更時の値、ioctlのコマンド番号など、 数値で表現されているパラメータもチェックされるよう になった。 • 例:/etc/shadowのパーミッションを0600に変更 許可 – allow_chmod /etc/shadow 0600 Copyright(C)2009 NTT DATA CORPORATION 17
  19. 19. TOMOYO Linux 1.7 について アクセスログの詳細化 – if節で使用できる全ての情報を取得できるよう になり、「学習モード」を使わずに、アクセス ログからif節付きのポリシーを生成できるよう になった。 • 「学習モード」では学習されない条件も付与 されるので、より厳格な制限が可能 Copyright(C)2009 NTT DATA CORPORATION 18
  20. 20. TOMOYO Linux 1.7 について 元々はPCやサーバでの利用を想定して開発され たが、組込みでの利用にも向いている。 – アーキテクチャ非依存 – ファイルシステム非依存 – マルチコールバイナリ( BusyBox )の識別が可能 – 省メモリ – 既存プログラムの修正が不要 Androidにも適用できる。 – TCP/IP で通信するエージェント経由で TOMOYO を 制御可能 Copyright(C)2009 NTT DATA CORPORATION 19
  21. 21. どうぞお試しください YouTubeで動画を観れます。 – http://www.youtube.com/results?search_quer y=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/ Copyright(C)2009 NTT DATA CORPORATION 20
  22. 22. TOMOYO Linux 2.x の紹介 Copyright(C)2009 NTT DATA CORPORATION 21
  23. 23. TOMOYO Linux 2.2 について 2009年6月10日、Linuxカーネル2.6.30に採用 – TOMOYO 1.6から出発し、メインラインに採 用してもらうためにLSMを使用するように改造 されたバージョン。 • SELinuxやSmackやAppArmorとの併用は 不可能 – まだProof of Conceptレベルの内容 • ファイルに対するアクセス制御の一部しか実 装されていない。 Copyright(C)2009 NTT DATA CORPORATION 22
  24. 24. TOMOYO Linux 2.2 について 今後の予定 – カーネル2.6.33でパス名の再帰的指定が追加 Call for reviewers – 既にTOMOYO 1.7.1とほぼ同じレベルまで実 装できてはいるが、LSMメーリングリストでの レビューを受けないと採用されない。 – LSMメーリングリストでのレビューに参加して いただける方を募集しています。 Copyright(C)2009 NTT DATA CORPORATION 23
  25. 25. Q&A Copyright(C)2009 NTT DATA CORPORATION 24
  26. 26. TOMOYOは株式会社NTTデータの登録商標です。 LinuxはLinus Torvalds氏の日本およびその他の国における登録商標または商標です。 その他の商品名、会社名、団体名は、各社の商標または登録商標です。 Copyright(C)2009 NTT DATA CORPORATION 25

×