ReactOS、開発を中断してソースコードを監査

世界で最も使われているOSのコードを盗用したという疑惑に、ReactOSチームは開発を中断してコード監査を実施する。

ReactOSはWindows NTのフリー・オープンソース版を実用に供すべく10年前から活動しているプロジェクトだ。そのコードベースにMicrosoftから流出したコードが含まれているという疑惑が浮上、その当否を巡る鳩首協議の結果、1月27日に開発を一時中止した。ReactOSの300万行ほどあるコードベースの監査が終了するまで、ReactOSのダウンロード提供も中止される。

この問題を受けて、ReactOSはプロジェクトのWebサイトに声明を出し、3つの措置を講ずると発表した。すなわち、プロジェクトが行うクリーン・ルーム方式によるリバース・エンジニアリングが米国法の定める要件を満たすよう知的財産に関するポリシーの規定を明確化すること。そのポリシーに基づき、ReactOSのコードベースを監査し、準拠していない部分があれば書き直すこと。同プロジェクトに主要なコードを提供している開発者に対し、同プロジェクトのポリシーに同意する旨の文書に署名を求めること。以上の3つである。

最近選出されたばかりのReactOSプロジェクト・コーディネータSteven Edwardsによると、ある開発者が米国における著作権および企業秘密に関する法律および慣習に反してWindowsコードの一部をリバース・エンジニアリングしたという疑惑が複数の開発者から指摘されたのが事の始まりだという。

Windows 2000およびWindows NTのソースコードが一部流出し数年前からインターネット上を流通しているが、「コードベースには流出した不正なソースを転用したと思われる個所はありません。クリーン・ルーム方式で行っている活動の仕方を統一・徹底し、この点で告訴されることがないようにしたいだけです。それを確認するためにコードベースを監査しようとしているのです」

そして、この監査によりプロジェクトは1年ほど停滞する見込みだが、行動規定の強化と徹底により将来の提訴を予防できるため、長い目で見ればプロジェクトにとってプラスになるだろうという。開発者たちがコードベースを精査する間に、プロジェクトのメンバーはコードの提供者がどこまでWindowsおよびそのコードベースに関われるかを明確にする。

ReactOSはまだαレベルの域を出ていないし安定した製品と言えるようなものでもないとEdwardsは言うが、ともあれプロジェクトの目標はWindows OSのフリー実装だ。ユーザーの手元にあるハードウェアが使え、WineプロジェクトのコードによりWindowsアプリケーションが動くWindows風の環境である。Wineは、MicrosoftのWin32アプリケーション・プログラム・インタフェース(API)を再実装することによってLinuxやFreeBSDなどのx86をベースとするオペレーティング・システム上でWindowsアプリケーションを動かそうというプロジェクトである。

Wineを基に商用製品を開発している企業CodeWeaversの創立者でありCEOのJeremy Whiteは、WineにはReactOSの開発者が多く参加しているが、提供したコードに問題があってWineへの参加を禁じられた者が何人かいると言う。必ずしもコードの盗用あるいは不正なコードが含まれていたからというわけではなく、コードを査閲しているAlexandre Julliard(CodeWeaversのCTO)が、自作として提供されたコードに懸念を抱いたための措置だ。

Whiteは、Windowsコードをざっと眺めたり偶然見かけたりするだけで開発者が影響を受けるとは考えにくく、いずれにしてもコードを手に入れるのは容易ではないだろうと言う。「王冠を手に入れるには探さなければなりません。たまたま見つかったなどということはないのです。(しかも)そのために何週間も何か月間も取り組んだと言っているのなら、それは偶発的なことではありません」

Wineでは信頼できないコードや開発者を拒否しているが、昨年、Software Freedom Law Center(SFLC)の支援を受けてプロジェクトのコードを監査した。Edwardsによれば、ReactOSもSFLCの協力を仰ぐつもりだという。

SFLCの会長Eben Moglenは、弁護士の守秘義務を引いて、両プロジェクトとの接触の有無については明かせないと述べた。SFLCの役割についての沈黙は言わずもがなである。

しかし、一般論として、既製のプロプライエタリ製品をまねる方法は幾つかあると言う。たとえば、ソフトウェアの動きを単純に観察したり、あるいは動作を調べるアプリケーションを用いたりして、リバース・エンジニアリングを行い、それによって得た知見を実装する方法。あるいは、プロプライエタリ・ソフトウェアのコードの一部を一旦そのまま利用し、その後、徐々に自作のコードに置き換えていく方法もある。

「模倣したソフトウェアの動作からその製作方法を推測することはできません」

また、Microsoftの場合、Windowsコードの使用はすべて不正であることは明白であり、企業秘密であることを知らなかったと主張する余地はほとんどないだろうと言う。「グレーゾーンは、コード自体の流用はないが、コードから得た情報――ノウハウ――が使われている場合です。……、慎重なプロジェクトなら、クリーン・ルーム方式を厳格に実行しているはずです」

ReactOSは、Windowsコードがプロジェクトに紛れ込まないよう対策を強化する予定だ。Edwardsによれば、プロジェクトには世界中の開発者が参加しており、それぞれ自国の法に従っているためにいろいろな問題が発生するのだという。

流出したWindowsコードを見たり調べたりしたことがあるとわかっている開発者がReactOSから排除されることはないだろうが、Edwardsは、少なくとも、Windowsソースコードで見たことのあるものに類似した機能に関わることは許されないだろうと言う。

Microsoftはノーコメント

Edwardsによると、今回の問題についてReactOSとMicrosoftとの間に公式の接触はなく、予想しうる法的問題についてプロジェクトのメンバーが接触を試みているが、これまでのところ応答は得られていないという。

Microsoftの広報は、編集部に対しても、流出したWindowsコードやReactOSの現状あるいはReactOS自体についてのコメントを断った。

しかし、Microsoftがいくら論評を拒否しても、Whiteは、Microsoftのシニア・エグゼクティブ数名がWineのメーリング・リストを見ていることを知っており、両プロジェクトや同様のプロジェクトに関心を持っているのは確かだと言う。

だが、WineにしてもReactOSにしても、Windowsコードの混入を防ごうとしている限り、Microsoftに追求される可能性はほとんどないだろうと言う。

「これは(Microsoftにとって)危険な領域です。彼らは独占企業と宣告されており……恐れから自制します。私には、(Microsoftが)提訴に踏み切るとは思えません」

一方、Moglenは、ReactOSの開発者たちが今抱えているような問題はソフトウェア開発チームにとって共通の問題であり、そのため監査を要するような問題がなくても安全のために定期的にコードを監査するよう勧めているのだと言う。

「よくあることです。特別な理由があって起こるわけではありません。フリーソフトウェアやオープンソース・ソフトウェアに固有の問題ではなく、どの業界でも、どのソフトウェア企業でも起こりうることなのです」

原文