第3回 セキュアOS論争から見える「カジュアル」なセキュアOS
中村 雄一
日本SELinuxユーザ会
2007/8/8
「カジュアル派」の妥協点
カジュアル派のセキュアOSは、基本的に自由な発想で作られているのですが、共通して見られる特徴が2つあります。1つ目は、「パス名ベースのアクセス制御」、もう1つは「部分的にアクセス制御を適用」という特徴です。
●パス名ベースのアクセス制御
ラベルには、先ほど説明したような問題点があり、使い勝手に影響を及ぼしていました。これに対し、カジュアル派のセキュアOSでは、パス名ベースのアクセス制御を採用しています。パス名ベースのアクセス制御では、ラベルを使わず、ファイル名を使ってアクセス制御を行います。
/usr/sbin/httpd { /var/www/html/** r, } |
リスト1 AppArmor(パス名ベースのアクセス制御)のポリシー |
・/usr/sbin/httpdに「httpd_t」ラベルを付与 domain_auto_trans(initrc_t, httpd_exec_t, httpd_t) ・/var/www/htmlに「httpd_contents_t」ラベルを付与 /var/www/html(/.*)? system_u:object_r:httpd_contents_t ・httpd_tにhttpd_contents_tの読み込み許可 allow httpd_t httpd_contents_t:file read; |
リスト2 SELinux(ラベルベースのアクセス制御)のポリシー |
例を見てみましょう。リスト1は、AppArmorのポリシーの抜粋です。AppArmorは、パス名ベースのアクセス制御を実装しています。Apache Webサーバに対するポリシーを設定しています(AppArmorの用語ではプロファイルと呼びます)。アプリケーションの実行ファイル、そして、アクセスできるファイル/ディレクトリ名を指定しています。見てのとおり、直感的に分かりやすいです。
一方、ラベルベースのセキュアOSであるSELinuxで同様の設定をしようとするとリスト2のようになります。プロセス、ファイルにラベルを付与し、ラベルを使ってアクセスを許可しています。ラベルを付与する分だけ手間がかかっています。さらに、前ページで説明したように、ラベルの情報が失われることがあるため、 ラベルの点検・維持の手間がかかります。
パス名ベースでは、ラベルを維持するような手間はかかりません。ファイルが消去・再生成されてもファイル名が同じだからです。
【注】 LIDSでは、設定はパス名で行えますが、内部的にはiノードで管理しているため、ラベルと同様の問題が起こります。 |
●部分的にアクセス制御を適用
カジュアル派のもう1つの特徴が、部分的にアクセス制御を適用することです。これがなぜ特徴なのかを見るために、「強制アクセス制御」という用語の解釈について見てみます。
セキュアOSの基本機能である「強制アクセス制御」という用語は、「rootでも逆らえないアクセス制御」的な意味で使われることが多いです。しかし、SELinuxの主要開発者が、Linuxカーネルメーリングリストに投稿した発言を引用すると、
“Mandatory access control as historically understood has always meant system-wide.” ――強制アクセス制御は、システム全体を制御するものだ、
と歴史的には理解されている。 (Linuxカーネルメーリングリストより引用) |
とのことです。さらには、システム全体を保護しないAppArmorに対して、
“Then yours isn't mandatory access control.” ――そういう意味では、AppArmorは強制アクセス制御ではない。
(Linuxカーネルメーリングリストより引用) |
と発言し、軽々しく「強制アクセス制御」という言葉を使うことに苦言を呈しています。
これから、セキュリティ至上主義の思想では、システム全体を守ることが重要と考えていることがうかがえます。つまり、システムで動作しているすべてのプロセス、リソースにアクセス制御をすることが重要と考えているようです。実際に、SELinuxでは、すべてのプロセス・リソースにラベルを付与し、アクセス制御を適用しています。
ただし、システム全体を守ることを目指してしまうと、すべてのアプリケーションに対して、それを動作させるポリシー設定を書く必要があります。そのため、設定も膨大になりがちです。
そこで、カジュアル派では、伝統的な強制アクセス制御にはとらわれず「一部のアプリケーションのみにアクセス制御をかける」「一部のファイルのみにアクセス制御をかける」といったように、部分的にアクセス制御をかける考え方を採用することが多いです。こうしておけば、セキュリティの強度は落ちてしまうものの、必要な設定は少なくてすみます。
例えばAppArmorでは、設定を用意したアプリケーションだけがAppArmorのアクセス制御を受けるようになります。そのほかのアプリケーションは、AppArmorの制御を受けません。LIDSでは、「/etcは全プロセスからread only」のように、保護したいファイルだけにアクセス制御をかけることができます。
2/3 |
Index | |
セキュアOS論争から見える「カジュアル」なセキュアOS | |
Page1 セキュリティを数学的に証明できるラベル、実は使いづらい? もうちょっと手軽にしてもいいんじゃない? |
|
Page2 「カジュアル派」の妥協点 |
|
Page3 「至上主義」と「カジュアル派」は統合できるか? 論争がいい物を育てると信じて 息抜きコラム:第3回「最小特権」 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|