リバースエンジニアリングとは?手法や目的、法律上の注意点などを解説

製品の研究開発のために、既存の製品を解析するリバースエンジニアリング。

ハードウェアであれば実際に解体して設計図を作成したり、内部構造をスキャン3DCADを生成したりといった手法があります。

またソフトウェアが対象であれば「逆アセンブル」などの手法によってソースコードを復元して分析していきます。

開発コストの削減や製品の品質向上において、リバースエンジニアリングは強力な効果を発揮する手法です。

この記事では、そんなリバースエンジニアリングについて、どのような手法であるのかについて解説します。

また、ともすれば著作権法や特許法から違法となってしまう手法であるため、法律上の注意点についても合わせて解説していきます。

リバースエンジニアリングとは

まずは、リバースエンジニアリングがどのようなものなのか、その概要と実施する目的について解説します。

既存製品の解析と調査

リバースエンジニアリングとは、すでに市場に流通している製品の仕組みを調査する手法のことを指します。

機械であれば分解して設計図を作成し、ソフトウェアであればソースコードを解析することで、その製品の仕様や技術などを調査して、自社製品の開発に役立てていきます。

設計書がまずあって、そこから試作品を作っていくという通常の製造工程と逆の順序をたどることから、「リバース(逆向きの)エンジニアリング(製造)」と呼ばれています。

リバースエンジニアリングの目的

リバースエンジニアリングの主な目的は、既存製品を深く解析することで得られた情報を、自社の開発に活かすことです。

その製品がどのような技術、設計のもとで成り立っているかを調査することが、この手法の核となります。

様々なシステムが開発されている現在、
「他社製品に付いていて、自社製品に付けられない機能」
が、ビジネスの成否を分けるケースが多々あります。

時代の流れが速いからこそ、その分野を一から研究するよりも、他社製品を解析する方が、効率的であると考えられるのです。

リバースエンジニアリングによって得られた知識・ノウハウは、開発コストの削減や、自社製品の品質の向上などにつながります。

リバースエンジニアリングの手法

リバースエンジニアリングにはさまざまな手法が存在します。

ここでは、ハードウェアとソフトウェアに対しておこなわれる代表的な手法を紹介します。

ハードウェアに対しての手法

ハードウェアに対してのリバースエンジニアリングでは、基本的には実際に製品を解体して、内部回路や製造メカニズムなどを分析します。

分析手法としては「成分分析」や「寸法測定」などがあります。

成分分析は、その製品にどのような素材が用いられているかを分析することで、分析装置などによって成分を特定していきます。

そして寸法分析は、製品をスキャンすることで3DCADを作成していく手法で、自動車製造の業界での活用が有名です。

かつては非常に手間のかかる方法でしたが、近年はスキャン技術が発達したため、製品を分解せずとも、容易に3DCADを作成することができるようになりました。

ソフトウェアに対しての手法

ソフトウェアに対してのリバースエンジニアリングは、ソフトウェアの実行ファイルからソースコードを解析・復元することを指します。

手法としては「逆アセンブル」や「逆コンパイル」などがありますが、逆アセンブルのほうがより復元精度が高いため、こちらが採用されることが一般的です。

通常、ソースコードはプログラミング言語によって書かれ、その後、コンパイラやアセンブラに変換され、最終的に機械語として実行されます。

逆アセンブルでは、専用ソフトを用いて、機械語からアセンブラに変換し、ソースコードを擬似的に復元します。

完全な復元は難しく、この手法自体に高度な技術が必要になりますが、研究においては大きな成果をもたらすことがあります。

ちなみに、そのソフトウェアに使用されているプログラミング言語が、特定の高級言語であるとあらかじめ判明している場合は、コンパイラからソースコードの復元をおこなう「逆コンパイル」を採用します。

リバースエンジニアリングをおこなうメリット

リバースエンジニアリングをおこなうことには、具体的にどのようなメリットがあるでしょうか。

この手法を採用する目的・メリットとしては、以下のようなことが挙げられます。

開発コストの削減

一般的に、リバースエンジニアエンジニアリングは開発コストの削減を目的としておこなわれます。

基本的に、製品開発はトライアンドエラーを繰り返していくことになります。

開発ではまず設計書を作成し、仕様や技術を検討したうえで試作品を作っていくことになります。

そこでリバースエンジニアリングで得られた情報を活かすことで、開発コストを削減することができます。

開発コストを抑えることができれば、市場サイクルを速めることにつながります。

また、この手法が効果を発揮するのは開発段階だけではなく、既存製品を分析することによって、新たな製品を考案することもできます。

古い製品の記録を残す

リバースエンジニアリングの対象は、他社の製品だけではありません。

自社の製品でも、開発から長い年月が経過したために、設計書や記録などが残っていない、当時の関係者がすでに退社しているということがあります。

そうした製品を解析して設計書を新たに作成することで、これからの開発に活かすことができます。

一度途切れたノウハウを、この手法を用いて積み重ねていくことは、自社製品の改良や新製品の開発、開発サイクルの向上につながります。

セキュリティの向上

例えば、既存製品になんらかの不具合があったとき、その製品に対してリバースエンジニアリングをおこなって問題箇所を特定することは、自社製品の品質向上につながります。

とくにソフトウェアの場合は、製品のセキュリティが重要になります。

セキュリティホールなどの脆弱性をついたサイバー攻撃への対策をするために、既存製品を対象に、
「サイバー攻撃を仕掛ける立場を想定してリバースエンジニアリングをおこなう」
ことで、自社製品のセキュリティを向上させていきます。

設計図やそこで使われている技術の理解は、リスク発見に欠かすことができないポイントのため、IT業界ではとくに力を入れてリバースエンジニアリングに取り組んでいます。

リバースエンジニアリングは違法?法律上の注意点など

既存製品を解析して自社の開発に活かす手法であるリバースエンジニアリング。

このように聞くと、法律上は問題がないのかと疑問に思うかもしれません。

結論としては、リバースエンジニアリングそのものは違法ではありませんが、この手法によって得られた情報の取り扱い方には注意しなければなりません。

ここでは、リバースエンジニアリング自体は合法であること、しかし法律上、注意すべきポイントを解説していきます。

手法自体は違法でなはい

リバースエンジニアリングそのものは合法です。

つまり、既存製品を正規の方法で入手して解析することで、得られた情報を開発に活かすことは、法律で認められています。

既存のアイデアやノウハウをもとに製品を開発したり、自社の技術力・開発力向上を目的として特許物の研究をしたりといったことには、なんら問題はありません。

法律上、問題になるのは、そこで得られた情報の扱い方で、誤った利用をしてしまうと違法となる可能性があります。

また、このような法律を守らない、悪意のある解析を外部からおこなわれるリスクは常にあるため、コードの難読化などの対策をしていく必要もあります。

法律上の注意点

リバースエンジニアリングをおこなう上で特に注意しなければならないのが、著作権法と特許法です。

それぞれについて、どのような点が問題となるのかを簡単に解説していきます。

著作権法上の注意点

まず著作権法において、設計図やソフトウェアのソースコードなどには著作権が認められており、それをそのまま自社製品に活用することは違法です。

注意しなければならないのが、はじめから自社製品に活用することを目的として、リバースエンジニアリングをおこなうこと「自体」が著作権法に違反するという点です。

この手法は、あくまで研究を目的とした場合に合法となるのです。

なお、既存製品のアイデアについては長い間グレーゾーンでしたが、2019年の改正著作権法(第13条4項「著作物に表現された思想又は感情の享受を目的としない利用」)において、いくつかの条件付きで合法であると認められました

(参考:https://elaws.e-gov.go.jp/document?lawid=345AC0000000048)

特許法上の注意点

特許法において、特許によって保護されている情報を用いて製造をおこなうことが禁じられています。

つまりリバースエンジニアリングによって得られた情報のうち、特許のあるものを開発に活用することが違法となります。

著作権法と同様に、特許法上認められている行為は、研究のための利用のみです。

新たな技術を発明するうえで特許物を用いることは合法なのです。

以上をまとめると、リバースエンジニアリングは基本的に、技術研究においてのみおこなうべき手法といえます。

クリーンルーム設計について

リバースエンジニアリングをおこなう際に、上記のような法律上の問題を避けるために「クリーンルーム設計(手法)」という方法を採用することがあります。

簡単に説明すると、対象の製品を解析するチームと、得られた情報をもとに実装方法を検討するチームに分かれ、両チームが隔絶されることで、著作権法への接触を回避する手法です。

しかし、この手法は特許法への対策には無効で、実行方法によっては著作権法にも接触するため、一般的には法律の専門家による指導のもとでおこなわれます。

安心安全なシステム開発はAMELAに

今回は、リバースエンジニアリングという手法について見てきました。

特にIT業界は、次々に新しいシステムが導入され、ブロックチェーンや5Gなどのような新技術もどんどんと出てきます。

そんな中で、競合他社よりも優れたシステムを作るのは、多くの企業にとって重要な事です。

一方で、そういったシステムを開発するだけの費用を回せないと考える企業も多いです。

是非、そんな企業様には弊社のオフショア開発を検討いただければと思います。

高い技術力を持つエンジニアが多数在籍し、且つ手頃な価格でのシステム開発を可能にしています。