米Microsoftをネタにしたジョークを言うのは,弁護士をネタにするのと同じくらい簡単であり,人々は長い間,Microsoft製品のセキュリティの欠如を「ネタ」にしてきた。特にWindowsは世界中のパソコンで使われているので,一般メディアは何度も,セキュリティ分野におけるMicrosoftの欠点を指摘してきた。しかしMicrosoftは近年,セキュリティ分野での評価を高めつつある。このことはとりわけ,SQL Serverの分野で顕著である。

 米Enterprise Strategy Group (ESG)が先日発表した報告書「Microsoft SQL Server Runs the Security Table」という報告書は,世界中のデータベースやセキュリティのプロフェッショナルにとって面白い内容だろう。この3ページからなる興味深い文書によると,「適切に使用した場合,Microsoftは安全で信頼できるデータベース製品を作るという点で,OracleやMySQLの何年も先を行っている,とESGは考えている」そうだ。

 この内容はすごいが,本当なのだろうか。筆者はミズーリ州の出身ではないが,同州の「Show-Me State(証拠がなければ信じない州)」というニックネームの真実性は信じている。手品のショーをみているとき以外は,目で確かめられることだけが,真実なのである(Seeing is believing)。

CVEの数が圧倒的に少なかったSQL Server

 ESGの報告書は主に,米国標準技術局(NIST)が運営する「ぜい弱性データベース」の「一般的なぜい弱性と露出(Common Vulnerabilities and Exposures,CVE)」データを詳しく調べて,SQL ServerとOracle,そしてMySQLのセキュリティぜい弱性を比較している。この調査結果は興味深いものだった。2006年の場合,SQL Serverは2個のCVE,MySQLは59個のCVE,Oracleは70個のCVEを,それぞれ抱えている(ESGの報告書はSQL ServerとOracle,MySQLを中心に取り扱っているが,Sybaseは2006年の場合7個のCVEを抱え,IBM DB2は4個のCVEを抱えていることに注意が必要だ)。

 筆者はセキュリティの専門家ではないし,正直に言って,NISTのぜい弱性データベースがデータベースのぜい弱性を示す唯一の(あるいは最高の)指標なのかどうかも,はっきりとは知らない。だが同データベースに登録されているすべてのベンダーは自己報告しているし,「ESGがNISTのぜい弱性データベースを使ったのは,同データベースには,セキュリティ問題を主に取り扱う多くの商業・教育・調査団体から集めたデータが登録されているからだ」とESGの報告書には書かれている。SQL ServerのCVEが2個なのに対して,OracleのCVEが70個という結果には,何らかの意味があるはずだ。

屈辱的だったSQL Slammerとその後のMicrosoft

 「Microsoftの結果は,信じられないほど優秀だ」と報告書には書かれている。そしてミズーリ州を愛する筆者も,この調査結果には驚かずにはいられなかった。正直に言って,筆者もSQL Serverの製品チームやプログラム管理チームに知り合いがいなかったら,この報告書を真剣に受け止めないだろう。何年か前に「SQL Slammer」が世界で猛威を振るったあの日,筆者はMicrosoftの数人のエンジニアと一緒にいた。そして,筆者はあの出来事がMicrosoftにとってどれほど屈辱的なことだったのかを知っている。

 「状況改善に努める」という紋切り型の約束を筆者は何度も聞いてきたので,顧客が懐疑的になっている理由も筆者は理解している。だが筆者はこうした約束を実行する役割を担っているSQL Serverチームのメンバーたちと実際に会う機会に恵まれているので,彼らが責任を持って非常に真剣に仕事に取り組んでいることを知っている。「あまりにも話がうますぎると感じるとき,その話は恐らく本当ではない(if it looks too good to be true, then it's probably not true)」という格言は真実であることが多いが,今回の朗報にそれは当てはまらない。Microsoftをからかうネタは簡単に見つかることが多いのだが,堅牢で安全なデータベース・プラットフォームを作る競争においては,Microsoftはこのところ素晴らしい仕事をしており,からかう余地はない。

 SQL Slammerとそれに続いたひっきりなしのセキュリティ・パッチの提供のため,Microsoftはセキュリティの管理方法について厳しい決断を下すことを余儀なくされた。そのために,SQL Server 2005の開発が何カ月も滞ることもあった。セキュリティを「コアな部分に焼き付ける(Microsoftの社員が好んで使う表現)」ために,詳細なコード・レビューやデザイン・レビューに多大な技術的リリースが注ぎ込まれたからだ。Microsoftが2006年に素晴らしいCVE結果を達成した経緯について詳しく知りたい方は,ESGの報告書の全文を読むといいだろう。今回一番ふさわしいアドバイスは,「あまりにも出来が良すぎるから,信じてはいけない(it's too good to be true)」ではなく,恐らく「贈り物のあら捜しをしてはいけない(don't look a gift horse in the mouth)」だろう。