SQL Server

大変遅くなりましたが、Jeff JonesさんのSQL Serverに関するブログ記事の翻訳です。
Microsoft Security - Home

先週、あるウェブニュースが気になった。それによると、SQLサーバは「去年、商用データベースのうちもっとも脆弱性があった。」という。そこで著者は事実確認を行うことにし、SQL脆弱性について本当の(本当に良い)ことや、商用データベースで去年もっとも脆弱性があったのは何かを文書化する価値があると考えた。

Microsoftのセキュリティ掲示板の検索ツールを使用したところ、公開後2年半経つSQL Server 2005についての掲載が、サポート期間を通して1件もない。
 →SecuniaのSQL Server 2005に関するページでも、この製品のアドバイザリがサポート期間を通して1件もない。・Microsoftのセキュリティ掲示板の検索ツールを使用したところ、4年間(2004年1月〜)SQL Server 2000に関する掲載が1件もない。
 →SecuniaのSQL Server 2000に関するページでは、この製品の最新アドバイザリは2004年1月に公開されている。
・著者はNational Vulnerability Database (NBD) http://nvd.nist.govで"Microsoft"と"SQL"を検索したが、2003年7月以降たった3件の問題を発見したにすぎない。(4年半で3件のみ)3件の内1件のみがSQLに関係することがわかったが、それにしてもクライアントサイドの問題であった。
 →CVE-2004-1560 これは2004年9月に発表され、SQL Server 7にのみ影響する。
 →CVE-2007-5090 これは2007年9月に発表されたが、実際はIBM Rational ClearQuestの問題だった。
 →CVE-2007-4814 これは2007年9月に発表されたが、これはクライアントサイドのsqldmo.dll 2000.085.2004.00の問題だった。はっきりとはいえないが、SQL 2000コンポーネントがこのバージョンに基づいているようである。
・最後に、Symantecのwww.securityfocus.comのサイトをチェックしようと思い、脆弱性検索ページで調査した。
 →"SQL Server"で検索すると、2004年9月のものが最新として出てきた。これはSQL 7に影響するものである。
 →"SQL Server 2005"で検索すると、クライアントサイドのCVE-2007-4814が結果として出てきた。また、XMLコアサービスに影響した2006年の問題2件が出てきた。
 → "SQL Server 2000"で検索すると、ページが2007年に改編されたこともあり、2002年の問題が最新として出てきた。それ以前は2006年のXMLコアサービスのものが出てきていた。

一方、私は2007年のOracle Critical Patch Update(CPU)も調べてみた。

Critical Patch Update-2007年1月  データベースの脆弱性は17件 うち13件が10bに影響
Critical Patch Update-2007年4月  データベースの脆弱性は16件 うち13件が10bに影響
Critical Patch Update-2007年7月  データベースの脆弱性は18件 うち16件が10bに影響
Critical Patch Update-2007年10月 データベースの脆弱性は30件 うち16件が10bに影響

よって、初歩的な調査から明らかになったことは、SQL Serverは商用データベースのうち去年もっとも脆弱性があったとは到底いえないということである。

実際、SQL Server 2000は2003年までの間さんざんな成績だったが、SQLチームはそこから大きく変わり、SQL Server 2005は商用データベースの中でもセキュリティ面が優れている。

最後に、David Litchfieldの論文「どちらのデータベースが安全か?Oracle vs. Microsoft」を引用する。これは著者が数年前に取り上げたものである。

「2002年以降、SQL Serverに発見されたバグはなぜこんなにも少ないのだろうか?
答えは3単語:セキュリティ開発ライフサイクル、SDLである。SDLはもっとも重要な要因である。SDLを採用することで得られる主な利益は、脆弱性発見し修正した後、学んだ知識が失われないことである。その代わり、その知識はサイクルに組み込まれる。これは他のところで同じ過ちは起きず、新しいコードが、完全にセキュアではなかったとしても古いコードよりはセキュアであるということだ。」

SQL Server脆弱性が1つもないとは言わないし、絶対に壊れないともいえないが、SQL Serverチームは顧客を守るため大きく進歩している。