PR

メインライン化したTOMOYO Linux

2009年7月2日(木)
沼口 大輔

TOMOYO Linuxの紹介とおさらい

 TOMOYO Linux(以下、TOMOYO)はNTTデータが開発、公開している、パス名ベースのセキュアOSのことです。本連載では、2009年6月にメインライン化を果たしたTOMOYOの各機能を紹介しながら、Ubuntuなど各ディストリビューションのTOMOYO開発者、また組み込み開発の技術者から、利用者視点でのTOMOYO活用法について解説していきます。

 UbuntuやRed Hat Enterprise Linuxのようなディストリビューションとよく勘違いされますが、TOMOYOはディストリビューションではなく、Linuxのセキュリティを強化するためものです。詳しくは、2007年の連載「初体験 TOMOYO Linux!」の「第1回:国産セキュアOSの歩み(http://www.thinkit.co.jp/free/article/0706/17/1/)」をご覧ください。

SELinuxとTOMOYOの関係

 セキュアOSというと米国NSAが中心になって開発したSELinux(Security-Enhanced Linux)が有名です。TOMOYOもSELinuxと同様にセキュアOSに分類されますが、基本となる考え方が異なるので、それについて説明します。

 Linuxでは、アプリケーションやデータなどの情報は、ファイルという形で保存されています。SELinuxはこの情報とユーザーに対して「ラベル」という属性を付与して、そのラベルごとにアクセス権限を設定します。これにより、権限のないユーザーやアプリケーションから情報を的確に分離して保護することができます。

 一方、TOMOYOはラベルを使わず、アプリケーションの動作をもとにして、アクセス権を設定します。ラベルの代わりに使われるのが、アプリケーションやデータファイルの「パス名」です。またアプリケーションのコマンドライン引数や環境変数を組み合わせて制御することが可能です。要するにパス名を使ってアプリケーションの動きを制御しているということです。

 そのためTOMOYOはカーネルに実装されたアプリケーションファイアウォールのように機能します。アクセス権の設定もSELinuxに比べて直感的に行うことが可能です。

 TOMOYOの機能をイラストにまとめたものが図1です。ここでは車がアプリケーション、ペンギンがTOMOYOを示します。通常のLinuxでは車(アプリケーション)は自由に移動することができますが、ペンギン(TOMOYO)が車の動きを常に記録しているため、ここでの記録結果をもとに、道路に柵をして車(アプリケーション)の動きを制限しています。

 TOMOYOの機能を簡単にご紹介しましたが、それでも「セキュアOSの設定は難しいんでしょう?」と感じる人もいるかもしれません。実際にアプリケーションに対する設定を一から行うのは非常に大変です。SELinuxにおけるアクセス権の設定は、セキュリティの有識者(SELinuxの開発者)やアプリケーションの開発者たちが提供したものを使うことが推奨されています。

 TOMOYOの場合はその反対で、「管理者が自分で設定できるようにする」ことを目的としています。そして、それを容易にするために「学習機能」というものがあり、アプリケーションを実行するとその動作を記録します。さらに記録した結果からアクセス権の設定を生成してくれます。学習機能を使うことで実際にシステムの振る舞いを理解しながら、必要なものに絞ってアクセス権の設定をすることが可能なのです。

TOMOYOの特徴を以下にまとめておきます。
・ファイル名によるアクセス権限設定が可能
・アクセス学習とアクセス権限の自動生成
・アプリケーション単位での動作制御

 SELinuxとTOMOYOはどちらもセキュアOSだから同じことができると思われることがありますが、実はそれぞれ実現していることが異なります。そのため、SELinuxとTOMOYOを組み合わせることで、お互いに足らない部分を補い合うことが可能であり、TOMOYOプロジェクトではそれを目指しています。そのためにはまずTOMOYOやパス名に基づくアプローチを理解してもらうことが必要です。

株式会社NTTデータ
NTTデータ技術開発本部所属。2005年からセキュアOSを中心にOSSにかかわり始める。一時期大規模Windowsネットワークシステムの開発に従事したあと、現在の担当に異動し2008年7月よりTOMOYO Linuxプロジェクトに参加する。最近は主にプロデュース的なことを中心に活動中。

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています