難読化だけで大丈夫?!アプリに施すセキュリティ対策の落とし穴


■こんな方におすすめ:

  • 難読化をアプリのセキュリティ対策として検討している
  • 現在、アプリのセキュリティ対策として難読化を採用している
  • 難読化について知識を付けたい

こんにちは!DNPハイパーテック マーケティンググループです。

近年、あらゆる業界において
パソコンやスマホのアプリを事業に活用する手法が一般的になっています。
一例として、下記のようなアプリの活用法はよく目にするところです。

・自社の製品とアプリを連携、アプリから機器の操作が可能
・アプリ上でクーポンを配布
・顧客の関心が高そうなコンテンツをアプリ内で配信

このような活用方法は、
アプリを利用して自社商品の価値をより優位にする動きとして広がっています。

こうした中で、アプリを配信する際にセキュリティ対策を施しておくことが
ますます重要になっています。
配信されたアプリがクラッキング(不正な解析・改ざん)されて、
配信企業に不利益をもたらすような被害が起こるリスクがあるからです。

アプリのクラッキング被害については、
こちらのコラムで詳しく説明していますので
ご興味のある方はぜひご覧ください。
【連載】「アプリケーションの保護はなぜ必要?」
第一回:クラッキング被害事例と守るべき企業資産について

アプリに施すセキュリティ対策の一つに「難読化」があります。
ソースコード等を読み取りづらくし、解析しづらくする技術であり
アプリ保護の方法として実施している企業も多くあります。
しかし、難読化だけでアプリのセキュリティ対策は十分と言えるのでしょうか?
本資料では、安全にアプリを配信するために
どのようなセキュリティ対策が必要となるかについて説明していきます。


<目次>

  1. 難読化とは?
  2. アプリに難読化を施す際の注意点
  3. アプリを多角的に守る方法
  4. おわりに

1. 難読化とは?

「難読化」とはどういった技術で
どのような仕組みでアプリを保護するのでしょうか。

悪意を持ってアプリを解析する攻撃者は、
まずアプリのソースコードを解析します。
その上で、そこから読み取れる独自技術を窃取したり、
配信企業が意図しない機能を追加した不正コピーアプリを作成し販売するなど、
配信企業に不利益をもたらす行為をおこないます。
それらを阻止するために、元のコードを判読しづらい形に変え、
解析を困難にするのが「難読化」です。

コードが簡単に解読できる形ではなくなることで、
アプリ保護に一定の効果があります。

難読化については、当サイトの開発者コラムにも記事がありますので
より技術的な視点からの解説にご興味のある方は、ぜひご覧ください。
「アプリに施せる耐タンパ―Tips -難読化はなぜ必要か?-」
「Javaソースコード難読化ツール自作入門 – 第1回」

2.アプリに難読化を施す際の注意点

アプリのセキュリティ対策として実施されることが多い難読化ですが、
あらかじめ認識しておくべき注意点もあります。

難読化には段階があるため、その難読化レベルがあまり低すぎると
解読までの時間が短くなってしまいます。
だからといって強力に難読化すればよいというわけでもなく、
難易度を過度に高めると
アプリ自体のパフォーマンスが低下する恐れがあります。
また、どれだけ難読化の強度を高めたとしても、
完全に読めなくなるわけではないことを念頭に置く必要があるでしょう。

前提として、難読化は「読みづらくする技術」であり、
あくまで対策の内の一つなので、
それだけで対策が十分と言えるものではありません。
難読化だけではなく、他のセキュリティ対策も併用し、
アプリを多角的に守ることでより安全に配信することができるでしょう。

3. アプリを多角的に守る方法

難読化のみでセキュリティ対策をしているアプリに対して
さらに保護レベルを上げ、多角的に守るためには
どういう対策をすればよいのでしょうか。

クラッカーの攻撃手法には大きく分けて2つの手口があります。
「静的解析」と「動的解析」です。
静的解析とは、プログラムファイルの解析で
何も動かしていない状態で「アプリそのもの」を解析することです。
動的解析とは、実行中のプログラムに対する解析で、
アプリを動作させながら「アプリの動き」を解析することです。
難読化は静的解析対策のうちの一つになります。

当社のセキュリティ対策ツールCrackProofでは、
静的解析対策、動的解析対策の両方を備え、
さらに攻撃者側の不正な実行環境を検知することで
アプリを多角的に保護します。
そのため、難読化だけでは守りきれない攻撃からも
アプリを守ることが可能になります。

配信済みのアプリにも適用が可能なので、
配信後にセキュリティ上の危険性が見えてきた場合にも対応できます。

4.おわりに

自社のアプリに最適なセキュリティ対策を施すことは
決して簡単な作業ではありません。
また、セキュリティ対策ツールを導入する場合は、
対象となるアプリの仕様、アプリ内のどの部分を守りたいのかなど、
様々な要素を検討した上で選ぶ必要があります。
難読化も含め、アプリへのセキュリティ対策を実施されている方や
自社のアプリにはどのような対策が必要になるのかの判断にお悩みの方は、
ぜひお気軽に当社へお問い合わせください。

お問い合わせはこちら