オープンソース系データベースプロジェクト間の橋渡しを担ったコンソーシアム

PostgreSQLとMySQLが先週立て続けにSQLインジェクションの脆弱性に対する修正をリリースしたのは、偶然ではない。この背景には、SQLインジェクションの脆弱性が確認されたことを契機にOpen Source Database Consortium(OSDBC)のメンバ間におけるセキュリティ問題に関する最初のコラボレーションが形成されたという経緯があるのだが、これが最初で最後のケースということにはおそらくならないだろう。

OSDBCが設立されたのは、昨年ドイツにて開催された第1回Open Source Database Conference(OpenDBCon)でのことであった。OpenDBConのメインオーガナイザであり、MySQLのArjen LenzとともにOSDBCを立ち上げたZak Greant氏によると、同コンソーシアム設立の背景には、様々なオープンソース系データベースプロジェクトの間で情報を共有することで「フリーソフトウェアやオープンソース系のデータベースソリューションの全体的」な向上を後押しする、という意図があったという。

過去の経緯を眺め直してみると、PostgreSQLとMySQLは互いにライバル関係にあったが、PostgreSQL Core TeamのJosh Berkus氏によると、今回双方のプロジェクトは共通の問題に対処するにあたって、そうした関係を一時棚上げにしているとのことだ。「プロジェクト間にライバル意識があっても、セキュリティ関連の重要な情報を共有する上で特に大きな障害になるわけではありません。実際のところ、データを共有できるようになれば、オープンソースの発展にも大きく寄与するでしょう」。

MySQLでコミュニティ担当副社長を務めるKaj Arno氏によると、同グループはその他の問題についても情報交換をしているが、エンドユーザの利害に直接影響してくるのは、やはりセキュリティ関連の対策ということになる。

バグの特定の経緯

今回の脆弱性は、石田朗雄氏、石井達夫氏、大垣靖男氏により3月に発見されたものである。大垣氏および石田氏はJapanese PostgreSQL User Groupのメンバであり、石井氏はSRA OSS Japanの従業員である。当時これらの研究員は、IPAセキュリティセンタにてPostgreSQLおよびその他のオープンソースソフトウェアに関する研究を行っていた。そしてIshii氏から脆弱性に関するレポートを受けたPostgreSQLチームはその後、これが実際に発生しうる問題であることを確認したのである。

このように今回の脆弱性の存在が確認されたのはPostgreSQLが最初であったが、その後この情報がOSDBCのメンバ間でも公開されたことにより、その他のオープンソース系データベースソフトウェアに対する影響が検討され始めた。Berkus氏によると、Derby、SQLite、BerkeleyDB系のデータベースに対する検討の結果では、 こうした脆弱性は存在しなかったという。一方で同様の脆弱性が確認されたのがMySQLであり、MySQL開発者の1人であるSergei Golubchik氏はそのための対策を構築し始め、その成果はMySQLに対する修正として水曜日に公開されている。

Arno氏の指摘によると、このような共通の脆弱性が生じた原因は、コードが共有化されていたためではなく、マルチバイトキャラクタのエンコード処理における「関連コードの複雑さ」に起因するという。いずれにせよ複数のオープンソース系データベースプロジェクトが協力して共通の問題に対処できる分野を考える場合、今回の出来事は典型的な事例と見なせるだろう。またこれはArno氏およびBerkus氏の共通する見解であるが、今回の脆弱性はその性質上、プロプライエタリ系データベースでも発現しうる可能性がある。

将来的なコラボレーションの展望

現状のオープンソース系データベースプロジェクト間でのコラボレーションはごく限られたものでしかなく、Arno氏の言葉を借りれば「場当たり的」に成立する協力関係でしかないが、こうしたコラボレーション関係の成立が緒に就いたばかりである点は割り引いて考えなければいけないだろう。「現状は、こうした相互協力体制の成立しうる機会をうかがっているところです。次はこちら側から、お返しができればいいのですが」。

実際コラボレーションが行われているのは、セキュリティの分野に限られている訳ではない。Arno氏が指摘しているのは、MySQLから公開されたSakilaというサンプルデータベースで、これはBSDライセンス下でリリースされているため、PostgreSQLのライセンスとの共存が可能となっている。MySQL ABがオープンソースとしてMySQLをリリースする際に採用しているのがGNU General Public License(GPL)であるのに対して、一方のPostgreSQLチームが用いているのはBSDライセンスなのである。

複数のオープンソース系プロジェクトが意見交換とコラボレーションを行える体制を整えるべく、共通したフォーラムを設けることが、すでにfreedesktop.orgの参加者の間で計画されている。OSDBCが半分でも成功したと見なせるのであれば、すべてのオープンソース系データベースのユーザーにとって、それは朗報だと言えるのではないだろうか。

NewsForge.com 原文