依頼主が作成したプログラムをリバースエンジニアリングして改修したエンジニアが訴えられた。僕、何か悪いことしましたか?
IT訴訟事例を例に取り、システム開発にまつわるトラブルの予防と対策法を解説する本連載。今回は、リバースエンジニアリングに関する判決を元に、今後エンジニア(特にプログラマー)が生き残るためには何が必要であるかを考える。
あらためて解説の必要もないかもしれないが、ソフトウェアのリバースエンジニアリングとは、簡単にいえば「既に実行形式となっているプログラムに逆アセンブル、逆コンパイルをかけるなどして、元のソースプログラムの構造や内容を解析可能な形にすること」である。詳細は「リバースエンジニアリングとは」も参考にしていただきたい。
プログラムにはそれを開発した技術者のさまざまな工夫や知恵が織り込まれている場合が多く、それを解析され流用されることは知的な資産の窃盗だという考え方もある。その一方、リバースエンジニアリングにはソフトウェアの保守や検証、あるいは研究のために有効な手段であるという側面もあり、事実そうした目的で数多くのリバースエンジニアリングが行われている。
どこまでが認められ、どこからが不法行為に当たるのだろうか。
今回紹介する判決は、ある実行形式プログラムの動作検証を行うために、作成者とは別のプログラマーがリバースエンジニアリングをかけて検証用プログラムを作成したことが不法行為に当たるのかが争われた。
まずは概要を見ていこう。
原告は外国為替証拠金取引の投資戦略を自動実行するプログラムを開発、販売していたが、このプログラムに改修の必要ができたため、それを被告であるプログラマーに依頼した。
プログラマーは改修作業に当たり、その動作検証のための新プログラムを作成したが、その際、元のプログラムの一部をリバースエンジニアリングの手法を用いて解析し、それを元にプログラム作成が行われていた(ただし、新プログラムは第三者には頒布されていない)。
原告は、これについて「プログラマーによる新プログラム作成は、原告の持つプログラムの複製権、翻案権を侵害するものである」として、不法行為に基づく損害賠償金を求めて提訴した。これに対して被告プログラマーは「著作権法では、著作物たるプログラムの内容について、その構成とか、盛り込まれた機能を研究する行為については何ら規制されていない。(中略)複製物、翻案物を外部の第三者に譲渡したり、研究、評価のために必要な限度を超えて多数の複製物を作成したりなどの場合を除いて、リバースエンジニアリングは違法とならない」と反論した。
リバースエンジニアリングをしてプログラムを作ることは不法行為なのか、それを譲渡したり多数複製したりなどしない限り問題とはならないのか。
そもそも、リバースエンジニアリングが不法とされる境界線はどこなのか、実は判然としていない。もちろん現在数多く行われているリバースエンジニアリングについて、その全てが不法行為であるとは筆者も考えてはいない。しかし一方、全てのプログラムに無制限に認められるのであれば、プログラムの著作権者の権利が脅かされるし、元のプログラムを開発したエンジニアの知的な優位性も失われてしまう。
裁判所はどのように判断したのだろうか。
Copyright © ITmedia, Inc. All Rights Reserved.