リバースエンジニアリングとは
リバースエンジニアリングとは、ハードウェア/ソフトウェア製品を分解・解析し、製造方法や動作、ソースコードなど技術情報を明らかにすることです。
リバースエンジニアリングの目的・用途
リバースエンジニアリングは、他社製品の技術ノウハウ獲得をはじめ、自社製品における脆弱性の発見といったセキュリティ対策を目的に行われます。なかには、仕様書などが継承されていない古い自社製品の分析にも活用されます。
ソフトウェア開発の現場では、自社製品との互換性確保や仕様書の修正、サイバー攻撃に備えた事前調査などに用いられることが多いでしょう。
リバースエンジニアリングは「違法」か?
リバースエンジニアリングは、自社製品の保守・検証のために有効活用される一方で、知的財産権の侵害など法的な問題が存在します。
しかし、基本的にリバースエンジニアリングそのものは違法ではありません。つまり正規ルートで入手した製品を解析して情報を得ること自体は、法律でも合法と認められています。ただし、情報の使用方法によっては違法行為とみなされるため注意が必要です。
リバースエンジニアリングと知的財産権の問題
リバースエンジニアリング自体は違法ではありませんが、場合によっては著作権法や特許法に触れることで、違法行為になりかねません。ここでは、リバースエンジニアリングに関する法的知識を紹介します。
著作権法:研究・開発目的であれば合法
ソースコードは著作物です。したがって、他者が権利をもつソースコードを無断で複製・抽出すると著作権法に抵触するおそれがあります。
しかし、アイデアは著作物にはなりません。そのため、ソースコードそのものを複製しなければ、コードを作るに至った発想を真似ることは問題ありません。したがって、研究・開発目的でアイデアを得るためにリバースエンジニアリングを行うことは合法とされます。
なお、アイデアについては、従来グレーゾーンと認識されていましたが、2019年に著作権法が改正され、合法と認められるようになりました。改正著作権法には、以下の文章が新設されています。
リバースエンジニアリングによりアイデアを得ることは上記に該当すると考えられるため、合法とされています。
特許法:分析・解析するだけであれば合法
特許法は、特許物の製造や販売、展示、輸入、輸出などを禁じる法律です。したがって、リバースエンジニアリングで得た知識や情報を活用し、上記のような行いをすれば特許法に抵触します。
しかし、特許法には「特許権の効力は、試験又は研究のためにする特許発明の実施には、及ばない。」と記されています。つまり、試験や研究を目的として分解・解析するだけなら問題ないということです。
悪意あるリバースエンジニアリングへの対策
前述したように、他者の技術を盗む目的でリバースエンジニアリングが行われることがあります。自社の技術を盗まれないようにするにはどうすればよいのでしょうか。
データを難読化する
データの難読化とは、人間から見たデータの可読性を低下させることです。ソースコードに無意味なコードを挿入したり、理解しづらいアルゴリズムにしたりすることで難読化できます。専用のツールを使えば、難なく対応できるでしょう
ただしデータの難読化はあくまで視覚的にわかりづらくするだけの手法です。解読を100%防げるものではありません
データを暗号化する
難読化よりも高い効果を期待できるのが暗号化です。ソースコードのファイルを暗号化し、第三者には解読できない状態に変換します。暗号化されたデータをもとに戻す「復号鍵」を持たない人には中身を見られないようにする技術です。
こちらも専用のツールを使うことで実現します。暗号化プログラムが実行されると、一時的にデータが復号されますが、通常時は暗号化によりデータは守られた状態に保ちます。
リバースエンジニアリングを有効に活用しよう!
リバースエンジニアリングとは、製品を分解・解析し、その構造や仕組みを知ることです。リバースエンジニアリングによって自社の技術情報を盗用される可能性もあるため、しっかり対策を講じましょう。
代表的な対策方法は以下の2つです。
- ■データの難読化
- ■データの暗号化
また、以下の法的知識も押さえておきましょう。
- ■著作権法:研究・開発目的なら合法
- ■特許法:分析・解析するだけなら合法
以上を踏まえ、リバースエンジニアリングを有効に活用しましょう。