LKMLにTOMOYO LinuxのRFCを投稿しました
2007-06-15 12:12 (by haradats)

2007年6月13日、LKML(カーネルメーリングリスト)にTOMOYO Linuxの
RFCを投稿しました。http://lkml.org/lkml/2007/6/13/58

<メッセージ日本語要約>

Hello,

こんにちは。

A couple of years ago, we tried to build a tool to generate
SELinux policy (*1). To do that, we had to gather the access
requests information. So we researched a profiling method and
got to the idea of having a process to store its invocation
history information (or ancestors).

数年前、私たちはSELinuxのポリシーの生成について試みた。
それを行うためには(ポリシーの元情報となる)アクセスに
関する情報を収集する必要がある。プロファイリングの方法に
ついて検討を行い、プロセスにその起動履歴の情報を持たせると
いうアイデアに到達した。

Here are examples:

例えばこういうことだ。

/bin/bash process invoked from mingetty: /sbin/mingetty /bin/bash
/bin/bash process invoked from sshd: /usr/sbin/sshd /bin/bash
/bin/bash process invoked from /bin/bash which was invoked from sshd: /usr/sbin/sshd /bin/bash /bin/bash

It seemed to us that this clarification would be familiar to
users/administrators and could be used for various purposes.
We did implement this by making use of the Linux\'s traditional
fork & exec mechanisms, and built a pathname-based MAC using
this implementation. We named the result as \"TOMOYO Linux\"
and made it open source at SourceForge.jp (*2).

この(プロセスに起動履歴の情報を持たせるという)分類方法は、
Linuxのユーザや管理者にとって親しみやすいものであり、さまざまな
用途に適用できるのではないかと考えた。私たちは、Linuxの
伝統的なプロセス生成の仕組みを活用し、この仕組みを実装した。
そしてそれを用いてパス名に基づく強制アクセス制御機構を
構築した。私たちは、それに\"TOMOYO Linux\"という名前をつけて、
SourceForgeの日本語サイトでオープンソースとして公開した。

TOMOYO Linux kernel keeps track of process invocation and
distinguishes every different process invocation history as a \"domain\". TOMOYO Linux can accumulate the accesses
requests for each domain.

TOMOYO Linuxを導入したカーネルは、プロセスの起動を追跡し、
異なる起動履歴を持つプロセスを独立な「ドメイン」として区別する。
TOMOYO Linuxは、このドメインごとにアクセス許可の内容を蓄積
することができる。

TOMOYO Linux has a utility called \"ccstree\". It prints
the invocation history for each process in addition to the output of \"pstree\" command:

TOMOYO Linuxは、\"ccstree\"と呼ばれるユーティリティを持つ。
このユーティリティは(標準のツールである)\"pstree\"の出力する
情報にプロセス起動履歴の情報を追加したものを出力する。

[root@tomoyo ~]# ccstree
init (1) <kernel> /sbin/init
   +- udevd (388) <kernel> /sbin/udevd
   ...
   +- automount (1970) <kernel> /etc/rc.d/init.d/autofs /usr/sbin/automount
   +- acpid (1993) <kernel> /etc/rc.d/init.d/acpid /bin/bash /usr/sbin/acpid
   +- cupsd (2008) <kernel> /etc/rc.d/init.d/cups /bin/bash /usr/sbin/cupsd
   +- sshd (2026) <kernel> /usr/sbin/sshd
   +- sshd (2269) <kernel> /usr/sbin/sshd
     +- bash (2271) <kernel> /usr/sbin/sshd /bin/bash
       +- ccstree (15125) <kernel> /usr/sbin/sshd /bin/bash /root/ccstools/ccstree

   (symbol, \"<kernel>\" indicates a virtual base.)
   (上の例で、\"<kernel>\"はプロセス起動履歴の基底を示す)

We had a presentation and a tutorial session of TOMOYO Linux
version 1.4 at the ELC2007 (*3). Version 1.4.1 is the latest and
has a rich set of MAC functions for files, networking, and
capabilities and so on. For historical reasons, it is not using
LSM or auditd. We decided to share this idea with the Linux
community and totally rewrote the code. The result was
TOMOYO Linux 2.0, which is now using LSM and auditd. To make discussion smooth, we cut off MAC functions other than
for files.

私たちはELC2007において、TOMOYO Linux version 1.4に関する
プレゼンテーションとチュートリアルを行った。version 1.4.1は
現時点の最新版であり、ファイル、ネットワーク、ケイパビリティなどに
関する強制アクセス制御機能を備えたものである。歴史的な
経緯により、このバージョンは(Linux標準のセキュリティ強化
フレームワークである)LSMを用いていない。私たちは、
プロセス起動履歴の活用に関するアイデアをLinuxのコミュニティに
共有するために(version 1.4.1の)プログラムを全面的に
書き直した。その結果がTOMOYO Linux 2.0であり、それは
今やLSMやauditdを利用している。(このRFCに関する)議論を
効率よく行うために、私たちは2.0でファイル以外の強制アクセス
制御の実装を取り外した。

We are posting this message because we believe that this process
invocation history idea might be a useful addition to Linux.
Please take some time to see what this small piece of software
can do with your own eyes. Your feedback will be greatly
appreciated.

私たちがこのメッセージを投稿しているのは、プロセス起動履歴の
活用というアイデアが、きっとLinuxにとって有用だと信じるからである。
どうか、時間をつくり、自分自身でこのちっぽけなソフトウェアが
可能にすることを確かめてみて欲しい。あなたからの
フィードバックは感謝される。

If some of you are interested in TOMOYO Linux as a method for
access control, please be advised to try full-featured version
1.4.1 (*4). It is quite easy to install and maintain
TOMOYO Linux, but it should not be considered as a replacement
of SELinux.

もし、(アイデアとしてでなく)強制アクセス制御の実装としての
TOMOYO Linuxに興味を持たれる方があれば、フル機能を持つ
(しかし、Linux標準には従っていない)version 1.4.1を
使うことを勧める。TOMOYO Linuxをインストールして、運用する
ことは全く簡単である。しかし、TOMOYO LinuxをSELinuxに
とって変わる存在と考えるのは間違いだ。

All right, that\'s almost everything. Please visit the following
URL for the code and documents:

さて、これがだいたい全てだ。どうか下記のURLを開いて、プログラムと
ドキュメントを見て欲しい。
   
  http://tomoyo.sourceforge.jp/wiki-e/

If you want to see the code first, then:

もし、あなたが最初にコードを見たい!というのなら、それはこちらだ。

   <http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/security/tomoyo/?v=linux-2.6.21.3-tomoyo-2.0>

We will have a TOMOYO Linux BOF session at the OLS2007 (*5).
Please come along and let\'s talk.

私たちは、OLS2007でTOMOYO LinuxのBOFセッションを開催する。
どうか立ち寄って欲しい。そして議論しよう。

Thank you.

読んでくれて、どうもありがとう。

Toshiharu Harada (project manager)
Tetsuo Handa (main architect, version 1 author)
Kentaro Takeda (version 2.0 author)
NTT DATA CORPORATION
http://www.nttdata.co.jp/en/index.html

*1) <http://sourceforge.jp/projects/tomoyo/document/nsf2003-en.pdf>
*2) http://tomoyo.sourceforge.jp/
*3) http://www.celinux.org/elc2007/
    http://tree.celinuxforum.org/CelfPubWiki/ELC2007Presentations
*4) http://tomoyo.sourceforge.jp/en/1.4.1/
*5) http://www.linuxsymposium.org/2007/


投稿したメッセージの原文およびそれを含むスレッドに
ついて、下記のURLでモニターすることができます。

http://lkml.org/lkml/2007/6/13/58

--
株式会社NTTデータ
原田季栄

TOMOYO project news list