第3回 セキュアOS論争から見える「カジュアル」なセキュアOS


中村 雄一
日本SELinuxユーザ会

2007/8/8
政府主導で軍事目的として作られたセキュアOS、セキュリティを数学的に証明する論理的なモデルなのですが……一般の用途では使い勝手が悪いことが障壁でした。そこでより多くの人に使ってもらうため、数学的なセキュリティをあえて追求しない、カジュアルなセキュアOSが登場しました。彼らの取捨選択を思想から追ってみましょう。毎回話題の息抜きコラムもどうぞ(編集部)

 第2回で紹介した「セキュリティ至上主義」の考え方で作られたセキュアOSは、軍事が背景にあるため厳格すぎ、エンドユーザーから不満が出てきています。それに対しまずは使ってもらうことが重要であると考えた、より簡単なセキュアOSが作られてきています。

 LinuxベースのセキュアOSでは、セキュリティ至上主義に属する「SELinux」とカジュアル派に属する「AppArmor」の2つのセキュアOSが、Linuxカーネルメーリングリスト(LKML)で意見を戦わせてきました。この論争の中から見えてきた、「カジュアル派」のセキュアOSの考え方を今回は紹介しようと思います。

 セキュリティを数学的に証明できるラベル、実は使いづらい?

 

 まず、なぜカジュアル派が現れたのかその背景を探ります。セキュリティ至上主義では、セキュリティの数学的な証明と保証、そのためにラベルを使う、という特徴がありました。しかし、ラベルを使うことによって、現実的な使い勝手の面で欠点を抱え込んでいます。

●ラベルの理解・定義が大変

 ラベルを使ったセキュアOSでは、ファイルや利用するポートの数が多くなればなるほど、ラベルの数も増えていきます。ファイルやネットワークの数が多くなればなるほど、ラベルの数も増えていきます。ラベルベースのセキュアOSの代表的な実装であるSELinuxでは、1000種類以上のラベルが定義されています。これらのラベルが、それぞれどのような意味を持つのかを把握するのは容易なことではありません。

 新しいアプリケーションに対するポリシーを記述する場合、アプリケーションが利用するリソースに対して、新たにラベルを定義してやる必要が出てきます。新たなラベルを命名する手間がかかるうえに、既存のラベルを変更してしまうことにより問題が発生することがあります。

 例えば、「FTPサーバが、ftp_contentsというラベルのファイルにアクセスできる」と設定されているとします。そして、「/var/ftp」というファイルにftp_contentsラベルが付与されているとします。この状態で、新たにWebサーバに対するポリシー設定をするとします。まず、Webで公開したいコンテンツに対し、「web_contents」というラベルを作成します。

 このとき、「/var/ftpもWebで公開したい」ということで、web_contentsラベルを付与します。すると、FTPサーバは、web_contentsラベルへのアクセス権がありませんので、いままでアクセスできていた/var/ftpにアクセスできなくなってしまい、FTPサーバが正常に動作しなくなってしまいます。このように、新たなラベルを付与する場合も、既存の設定に影響がないのか気を使う必要があります。

●ラベルの維持が大変

 システム構築直後にラベルを正しく付与できたとしても、そのラベルがシステム運用中も正しく維持されるとは限りません。SELinuxの場合、ラベルはiノード番号と一緒に管理されますが、ファイルが消去され、再生成されたときに、ラベルの情報が失われることがあります。典型的な例が、viコマンドでの編集です。

 例えば、/etc/shadowに「shadow」というラベルが付与されていたとします。これをviコマンドで編集し、保存すると、vi内部で/etc/shadowがいったん消去され、もう一度生成されます。ファイルが一度消去されるため、再生成時にiノード番号が変わります。iノード番号が変わるため、再生成前のラベルshadowは失われてしまいます。

 この問題を解決するためには、viコマンドを拡張し、ファイルの再生成時に、消去前のラベルを付与するように拡張しなければいけません(Fedora Coreなどに入っているviコマンドでは、この拡張がなされています)。しかし、ファイルの消去・再生成を行うすべてのアプリケーションに対して、このような拡張を行う必要が出てきますが、現実には対策漏れが出てくるため、定期的に、ラベルが正しく維持されているのかを点検する手間が生じてきます。

 もうちょっと手軽にしてもいいんじゃない?

 このようなラベルの問題点もあり、セキュリティ至上主義の考え方ではセキュアOSの使い勝手が悪くなってしまいます。結果、セキュアOSが使われないことが多くなります。例えばFedora CoreなどにはSELinuxが入っていますが、無効にされることが多いようです。どんなに優れたセキュリティ機能であっても、使ってもらえなければ意味がありません。

 そこで、「セキュリティの数学的証明」のような厳密さを完全に適用するのではなく、「使い勝手を重視して、取りあえずは使ってもらおう」という、柔軟な発想で作られたセキュアOSが現れてきました。こういったセキュアOSを本連載では便宜上「カジュアル派」と呼んでいます。

 カジュアル派として分類できるセキュアOSとしては、SUSE Linux標準のセキュアOSである「AppArmor」、NTTデータが開発したセキュアOSである「TOMOYO Linux」、フリーセキュアOSモジュールの「LIDS」などが挙げられます。また、「SELinux Policy Editor」もカジュアル派の一種です。カジュアル派の考え方でSELinuxを設定できるようにしています。

【関連記事】
セキュアOS「LIDS」入門
(全13回)
http://www.atmarkit.co.jp/fsecurity/rensai/lids01/lids01.html

SELinux Policy EditorでSELinuxを簡単にhttp://www.atmarkit.co.jp/fsecurity/special/94seedit/seedit01.html

 
1/3

Index
セキュアOS論争から見える「カジュアル」なセキュアOS
Page1
セキュリティを数学的に証明できるラベル、実は使いづらい?
もうちょっと手軽にしてもいいんじゃない?
  Page2
「カジュアル派」の妥協点
  Page3
「至上主義」と「カジュアル派」は統合できるか?
論争がいい物を育てると信じて
息抜きコラム:第3回「最小特権」


Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間