PCにおいて、rootユーザの権限は絶対。彼はそのPCにおいてはあらゆることを実行できる。そう、rootたるもの、自分の身はしっかりと守っておかなくてはならない。パスワードを破られるなどもってのほかである。
しかしながら、不測の事態とはいつでもありうること。プログラムが脆弱性を抱えており、それをついてroot権限を剥奪される可能性はどうしても消せないのだ。
しかしながら、そうやって取得されたroot権限であってもrootであることに違いはなく、ありとあらゆることを実行できてしまうのです・・・。
というのは最近までの話。この危険性を阻むため、NSAがオープンソースで開発したものがあります。それがSELinuxです。セキュアOSと呼ばれる技術の1つで、今書いたような被害を最小限に抑えるための仕組みを提供します。
詳しいメカニズムはまだ勉強不足でしてここで説明することはできないのですが、簡単に言えば地方分権です。プログラムの脆弱性をついてroot権限を取得したとしても、そのプログラムからではアクセスできる範囲や実行できる動作に制限を加えることができるのです。そう、絶対的権限を剥奪しているのです。
rootユーザがそのPCにおける権限を失ったわけではありません。たとえば、Webサーバの実行ファイルであるapacheがroot権限で実行されていたとしましょう(できればこれはやめた方がよいです)。そしてそのapacheが何らかの脆弱性をつかれてroot権限を不正にのっとられたとします。けれどSELinuxを適切に設定していると、apacheのプログラムからはほとんど他のものにアクセスはできないのです。apacheがアクセスできる範囲を制限しているためです。これがSELinuxがなければ、root権限でさまざまな不正コードが実行されるかもしれないのです。
しかし、きちんとした手順でログインしたrootユーザはこれまで通りあらゆる権限を持ちます。制限されるのは実行ファイルの権限です。ですから、rootのパスワードを厳重に管理しなくてはいけないことに変わりはありません。
とはいえ、これにより被害を最小限に抑えられることは確かです。外部からの攻撃はファイアウォールで防いだりウイルス対策ソフトで対策を取りますが、未知の脆弱性などにはどうしても後手に回ってしまいますから。
これはLinuxに限ったことではありません。次期Windows(開発コード Longhorn)のIE7にも同等の機能が用意されるようです。IEはどうしてもクラックの足がかりにされがちですからね。この機能が提供されると、IEをクラックしたとしてもできるのはWebブラウジング程度なのだそうです。
こうした機能が提供されることは素晴らしいのですが、扱うのは結局ユーザ。適切に対処しなくては意味がありません。中々ついていくのはしんどいのですが、頑張っています^^;
SELinuxはFedora Core 2で搭載され、3ではデフォルトでオンとなっております。そしてRedHat Enterprise 4でも搭載されましたから、これから広まってくるのは間違いないでしょう。知っておいて損はないと思います。
0 件のコメント:
コメントを投稿