オープンソースのセキュリティ欠陥、最善の対策とは

近頃、Microsoftだけでなく、オープンソースの世界でもセキュリティ問題が相次いで見つかっている。先週、権限のないユーザがルート権限を得ることができるというLinuxカーネルの欠陥についての報告があったばかりだが、今度はSendmailだ。CERTによれば、「特別なアドレスを持つ電子メールメッセージが、スタックオーバーフローを引き起こす可能性」があり、それにより「攻撃者が脆弱なSendmailサーバを操れるようになるかもしれない」ということだ。オープンソースはその性質上、商用ソフトウェアよりも安全であるという考えを改めなくてはならない時が来ているのだろうか。

もちろん、この2つの脆弱性は、WindowsやOutlookを始めとするMicrosoft社の製品で毎週のように見つかるセキュリティ上の欠陥には遠く及ばない。しかし、これで明らかになったのは、欠点のないソフトウェア開発方法論などない、ということだ。

オープンソースの世界では、膨大な数の開発者から成るコミュニティによって検査、テスト、修正ができるオープンソースの開発方法は、商用ソフトウェアのそれよりも優れているという主張がしばしば聞かれる。一方、商用ソフトのベンダは、専門のスタッフがコードの品質維持にあたっている彼らの製品が、オープンソースに劣るはずはないと反論している。

どちらの主張も間違ってはいない。しかし同時に、どちらの方法も時には失敗するのだ。新しい脆弱性が見つかったからといって、どちらの開発方法が優れているなどとあげつらうのはナンセンスというものだ。

それよりも、脆弱性の情報をこまめにチェックするほうが建設的だ。オープンソースのセキュリティに関しては、本サイトに毎週掲載されるLinux Advisory Watch(Linux勧告ウォッチ)や、Guardian DigitalのLinuxSecurity.comが詳しい。セキュリティ全般では、CERT Coordination CenterSecurityFocusの2つが、企業のセキュリティ問題を幅広く扱っているのでお勧めだ。

自覚ある企業のほとんどは、このような情報収集を怠っていない。しかし、対策に消極的な企業があるのも事実だ。もちろん、これにはもっともな理由がある。かえって問題を起こさないとも限らないバグフィックスを最初にインストールするのは誰でも心配だし、毎日24時間実行していなければならないサーバを、保守のためにそう簡単にダウンさせることはできない。そして、複数あるサーバの一部にだけパッチを当てることで、ネットワークの一貫性が崩れるのを避けたいという理由もあるかもしれない。

しかし、このような理由は絶対ではない。いずれパッチを当てなくてはならないなら、先延ばしにする理由はないだろう。SQL Slammerの被害に遭ってしまった後で、「実はパッチがあったのに当てていなかった」と上司に報告するなんて、考えただけで嫌にならないだろうか?

常に最新のセキュリティ問題を把握できるようにしておこう。