リバースエンジニアリング
出典: フリー百科事典『ウィキペディア(Wikipedia)』
リバースエンジニアリング(Reverse engineering)とは、機械を分解したり、製品の動作を観察したり、ソフトウェアを解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図、ソースコードなどを調査する事である。
目次 |
[編集] 概要
一般的に工業製品の多くは、設計図や仕様書の概略程度しか公表されていない。ソフトウェア製品にしても、プログラムの原型であるソースコードは公開されておらず、コンパイル済みの実行ファイルや、それらをインストールするためのパッケージの形でしか提供されていない。そのため、これら工業製品には様々な技術や創意工夫が用いられているのだが、その技術的情報を公開された文献から入手できない場合が多いのが現状である。
これらの非公開情報を入手するため、従来の工業製品やソフトウェア製品をリバースエンジニアリングして使用されている技術を分析、調査、確認することは、よりすぐれた製品の開発に欠かせないプロセスである。しかし、リバースエンジニアリングによって得られる技術情報には、特許や著作権、意匠権などの知的財産権で保護されているものも存在するため、そのまま使用すると非合法となる場合がある。
とはいえ、市販されている製品をリバースエンジニアリングすること自体は原則的に合法行為である。知的財産権で保護される秘密は営業秘密(Trade Secret)だけであり、日本では不正競争防止法で保護されるが、市販品などの秘密保持契約(NDA)なしで入手できる製品/文献/情報については、保護の対象にならない。保護の対象となるのは、たとえば、社内で秘密裏に開発していた試作品を産業スパイが社外に持ち出す等の非合法な手段で入手した場合であって、合法的に入手した市販品についてリバースエンジニアリングする場合は合法である。
ともすれば、リバースエンジニアリングは、製造者が非公開にしておきたい情報を白日の元に晒してしまう行為であり、更に云えば複製物の作成や、製造者の意図しない改造を可能にしてしまう。悪意あるリバースエンジニアリング技術者は、何らかの不当な機能を追加した偽物を作成したり、場合によっては知的財産権で保護された技術を無断で用いることを容易にし、労せずして新しい製品を作ることで、本来の開発者が享受すべき利益を侵害する事も可能になってしまう。 だが、一般的にリバースエンジニアリングが咎められたり、倫理的に問題があるとは考えられていない。なぜならば、工業やソフトウェアの進歩においてリバースエンジニアリングは必要不可欠な手段であるし、工業製品やソフトウェアの分野では、特許や著作権などにより、重要な技術には保護が与えられているからである。
つまるところ、リバースエンジニアリングにまつわる問題は、リバースエンジニアリングの行為そのものよりも、解明した技術などを不当に利用する行為であるといえる。一律にリバースエンジニアリングを非合法化することが社会にとって得策とは限らない。 また、どうしても製品に組込まれた技術情報を非公開にしたい場合は、製品を手にするすべての人間と秘密保持契約を結ぶという手段もある。
リバースエンジニアリングは、法的には合法であっても、倫理的には許されない行為であると考える技術者もいる。しかし製品の欠陥を発見したり、ソフトウェアのセキュリティホールを発見するためには、これらリバースエンジニアリング行為が、非常に強力な手法である事も知られており、幅広く用いられる種類のソフトウェアに関しては、ソースコードを一般公開すべきだと考えるソフトウェア技術者もある。
[編集] リバースエンジニアリングにまつわる問題
現在、インターネットでは様々なコンピュータウイルスが蔓延している。これらのプログラムは、当然の事ながら作者が居る訳だが、この作者以外の人間がコンピュータウイルスのプログラムを入手した際に、本来無かった新しい機能を組み込んだり、特定の企業や組織を攻撃するように、リバースエンジニアリングで入手したソースコードを改造し、再配布する事例は跡を絶たない。
マイクロソフトなどのサーバーをDDoS攻撃するMyDoomウイルスは、マイクロソフト側が懸賞金を掛け、2004年5月8日までに犯人逮捕に扱ぎ付けるまでに至ったものの、その後も同ウイルスの亜種発生は続いており、同年7月26日にはMyDoom.Oに感染したパソコンから検索エンジンに向けて一斉に検索リクエストが殺到、一時Google等の主要検索サイトが応答しなくなる事件が発生した。このMyDoom.Oの作者は、偶然入手したコンピュータウイルスのMyDoomをリバースエンジニアリングを行ってソースコードを入手・改造して再配布を行ったと見られている。
この他にも、市販のソフトウェア製品をリバースエンジニアリングによって解析し、本来はライセンスキーをインストール時に入力しないと動かないソフトウェアを、このライセンスキーが無くても動くようにするプログラムを製作・配布する人物が、違法な不正コピーソフトウェアの蔓延を助長している例が挙げられる。
[編集] ものづくりにおけるリバースエンジニアリング
ものづくりにおけるリバースエンジニアリングとは、製品の先行イメージとして作られたクレイモデルや、既に現物がある製品などの形状データを測定しそれをもとにCADデータを作成することである。
3DCAD、および接触式、非接触式の3次元形状データ測定器が発達するにつれ、急速に普及している。3D CADを活用した製品の事前検討を行う際に、CADでは作成しにくいデザインの微妙な変化が織り込まれた製品データや、2D図面しかない製品データを3D化したりする際に活用されている。
上の図は、自動車の開発における、リバースエンジニアリングの一例である。右上の絵から順に、クレイモデル、非接触カメラ撮影式の3次元計測器での形状データ測定、測定結果である点群データの張り合わせ、断面線の作成、3D CAD化、そして実車である(CADと実車の間は大きく段階が跳んでいる)。
[編集] 関連項目
カテゴリ: 製造 | セキュリティ技術 | コンピュータ関連のスタブ項目