編集部からのお知らせ
ZDNet Japanが新しくなりました!
New! 懸念高まる産業機器のセキュリティ

スマホアプリ開発の現場で高まるリバースエンジニアリングのリスク

ZDNet Japan Ad Special

2012-07-30 11:00

[PR]難読化ツールとは、万一アプリケーションの実行ファイルがデコンパイルされてしまっても、ソースコードを読み取りにくくするツールだ。その必要性を解説とビデオでお伝えする。

 スマートフォン向けアプリ開発のニーズが大きく高まっている。自社サービスをアプリとして消費者に提供しようという企業、そうした企業から依頼をうけてアプリを開発するソフトハウス、BtoBシステムの一環でアプリを開発するSIerなど、さまざまなシーンでスマートフォンアプリが求められるようになっている。

 そんな中、にわかに懸念されるようになったのが、リバースエンジニアリングによるリスクだ。Android端末で利用されるJavaアプリやWindows Phoneで使用される.NETアプリは、特定の機種に依存しない「中間コード」の形で配布され、ユーザーごとの環境で実行される。その特性上、実はデコンパイル(逆コンパイル)によりソースコードを解析しやすい弱点も合わせ持つのだ。従来から指摘されてきたリスクではあったが、スマートフォンの普及に伴い、いよいよ顕在化してきている。

 ソースコードが読み取られてしまえば深刻な影響が広がる。アプリから企業の独自技術(知的財産)が漏れてしまったり、違法にコピーされ無断で他の企業に利用されてしまう可能性もある。また、ソースコード上で脆弱性を発見され、それを悪用した攻撃を受けたり、アプリ内にマルウェアを仕込まれたりといったリスクも考えられるだろう。

リバースエンジニアリングのリスクはどのようにして防げばいいのか?

 では、リバースエンジニアリングのリスクはどのようにして防げばいいのだろうか。その1つとして有効なのが、難読化ツールの利用だ。難読化ツールとは、万一デコンパイルされてしまっても、ソースコードを読み取りにくくするツールである。

 難読化ツールには、Java向け、.NET向けがあるが、ここでは、.NET向けのツールとしてマイクロソフトのVisual Studioにも簡易版がバンドルされている「Dotfuscator」を見てみよう。以下のビデオで、難読化ツールが求められる背景、効果、具体的な機能をみることができる。

 社運をかけて開発したAndroidアプリや.NETアプリであっても、何も対策をしなければ容易にデコンパイルされる可能性がある。その結果、ソフトウェアのロジックなどの貴重なノウハウ、知的財産が流出し、模倣の被害ばかりか、改竄も容易になり、ウィルスを仕込まれる可能性がある。難読化ツールの効果を今こそ検討すべきときだろう。

コラム
スマートフォンを狙ったマルウェアが続々登場

 近年大きな問題になっているAndroid向けのマルウェア。これらがどのように作成され、拡散しているかを調べると、中間コードをデコンパイルする手法が使われていることが多いとも言われている。

 例えば、Google Play(マーケット)で人気アプリがあったとする。犯人は、そのアプリをデコンパイルして、アプリを改造できるかどうかを探る。もし改造が可能なら、アプリ内にマルウェアを仕込み、それを正規アプリとほとんど同じ名前をつけて、マーケットに公開する。ユーザーは、人気アプリのつもりで不正アプリをダウンロードしてしまうといった被害を受けるわけだ。

インフォメーション
難読化製品に関するセミナー 8月29日に開催決定

本記事で紹介した、難読化によるアプリケーション/システムの保護方法について、下記の無料セミナーが開催される予定だ。こちらもぜひ参考にしていただきたい。

「あなたのアプリケーションは保護されていますか?.NET/Java リバースエンジニアリングの脅威~内部統制時代に必要とされるアプリケーション対策」

詳細はこちらへ

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

Special PR

特集

CIO

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]