クライアントOSが備えるセキュリティ機能の重要性が高まっている。ネットワーク接続が当たり前になった今,クライアント・パソコンにおけるウイルス全般や悪意を持った第三者による脅威は増すばかりだ。特に,個人情報保護法や内部統制への対応が求められる企業システムにおいては,情報漏えいやシステム破壊を避けるためには,クライアント・レベルでのセキュリティ対策が不可欠だ。実際,クライアントOSの主流であるWindowsの最新版「Windows Vista(以下,Vista)」では,前版のWindows XPと比べ,セキュリティ機能が大幅に強化されている。

 日経Linux編集部に籍を置く筆者としては,Vistaのセキュリティ機能に興味を持つと同時に,どうしてもLinuxと比較したOSレベルでのセキュリティ機能の優劣に目が向いてしまう。最近では,LinuxをクライアントOSとして使う事例が,少しずつではあるが,増えている(関連記事「『全事務職員がLinuxデスクトップを使用している町役場』は実在する」)。LinuxをクライアントOSとして使用する機運が高まれば,遅かれ早かれ,WindowsとLinuxのセキュリティ機能を冷静に比較する必要が出てくるのではないだろうか。

 そこで,クライアントOSの主流になるであろうVistaと,個人ユーザーを中心にクライアント用途でも広く利用されているLinuxディストリビューション「Fedora Core 6」(以下,Fedora)のセキュリティ機能を比べてみた。

ファイアウオールはOSの標準機能だけで十分対応できる

 まずはネットワークを流れるパケットを監視して,侵入を防ぐファイアウオール機能を見てみよう。

 Vistaのファイアウオール機能は2つある。1つは,Windows XPで搭載された「Windowsファイアウォール」だ。ただし,Windowsファイアウォールは,送信トラフィックを制御できないなど,セキュリティ対策として十分とは言い難い。そのため,XPではこれを利用せず,マカフィーやシマンテックなどのセキュリティ対策ソフトを利用しているユーザーが多い。

 もう1つは,Vistaで追加された「セキュリティが強化されたWindowsファイアウォール」(写真1)である。従来のWindowsファイアウォールと比べ,より細かい設定や送信トラフィックの制御ができるようになった。これを利用すれば,別途セキュリティ対策ソフトがなくても,クライアント・レベルでは十分なファイアウオールとして機能する。

写真1●Windows Vistaの「セキュリティが強化されたWindowsファイアウォール」の操作画面
[画像のクリックで拡大表示]

 一方のFedoraは,「netfilter」と呼ぶファイアウオール機能を標準で備える。送受信のトラフィックに対応でき,Vistaの「セキュリティが強化されたWindowsファイアウォール」と同程度の機能を実現できる。

ゼロデイ攻撃に備えた機能が追加

 次は,侵入攻撃に対する機能である。先日公開された記者の眼,「『ゼロデイ』とは戦うべきか,付き合うべきか」の中でも紹介されているが,ゼロデイ攻撃に備える機能を見てみよう。

 ゼロデイ攻撃とは,ソフトウエアのセキュリティ・ホールに対し,修正用パッチの提供前やユーザーがそのパッチを適用する前に,仕掛けられる攻撃である。仕組みは異なるが,VistaとFedoraのいずれにも,対策機能が備わっている。

 まず,VistaとFedoraのいずれも,システムのメモリー配置を起動のたびに変える(ランダム化する)ことで,攻撃を受けにくくする「ASLR(Address Space Layout Randomization)」機能を持つ。

 さらに,VistaとFedoraはともに,本来データを書き込むメモリー領域では命令を実行させないようにする機能を持つ。この機能はCPUのメモリー保護機能を利用したものだが,Fedoraはこれに加えて,メモリー保護機能に非対応のCPUを搭載したパソコンでも同等の機能を提供する「Exec-Shield」機能も備える。

 これらの機能により,ゼロデイ攻撃で狙われることの多いバッファ・オーバーフローに両OSともに対処している。

大きく異なるのは暗号化と強制アクセス制御

 Vistaでは,ハード・ディスク内などのデータを暗号化する「BitLocker」という機能が加わった。パソコンを盗まれてしまったときでも,ディスク内のデータを読み出されないようにするものだ。同等の機能は,Fedoraにも備わっている。「dm-crypt」機能だ。

 BitLockerとdm-cryptの大きな違いは,利用者の認証方法である。データを読み出すときの認証に,LinuxではパスワードかUSBメモリーを使うが(Fedoraの標準ではパスワードのみ),VistaではTPM(パソコン側に設置されたセキュリティ・チップ)やUSBメモリー,パスワード,これらの組み合わせなどが利用できる。また,Vistaには,ファイルやディレクトリ単位で暗号化する「EFS」が備わるが,Fedoraには標準でこの機能はない。

 一方,Fedoraでは,Vistaにない「強制アクセス制御」を実行できる。強制アクセス制御とは,管理者であってもあらかじめ決められたルールに従ってアクセスを制限されること。仮に管理者権限を奪われても,被害がシステム全体に及ぶことを防ぐ機能だ。Fedoraでは,「SELinux(Security-Enhanced Linux)」というセキュアOS機能を使って,強制アクセス制御を実現している(写真2)。

写真2●Fedora Core 6のSELinuxの設定画面

※          ※          ※

 以上,両OSが備える主なセキュリティ機能を簡単に紹介してきた。実際には,機能だけでなく,使い勝手などを考慮して比較する必要があるだろう。例えば,Fedoraでファイアウオールを細かく設定するときには,コマンドラインから操作しなければならないが,Vistaではマウス操作で行えるなどの違いもある。

 日経Linux2007年7月号の第1特集「Fedora vs. Vista セキュリティ全面対決」では,セキュリティ機能の仕組みから使い勝手までを含めて,両OSのセキュリティ機能を比較した。クライアントOSでのLinuxの利用が広がるにつれて,「Linuxを攻撃するウイルスは少ないから,セキュリティ面は心配ない」という主張は通用しなくなるだろう。Windowsを評価基準にしてLinuxのセキュリティ機能を見つめ直す意味は大きいと考える。