Android アプリケーションの難読化 –モバイルアプリケーションを保護するために –
モバイルアプリケーションをリリースする際には、セキュリティを十分に考慮する必要があります。最先端の機能を備えたアプリケーションを開発するだけでは、十分なセキュリティ対策とは言えません。安全性を確保することも同様に重要です。そのための手段として、Android アプリケーションの難読化が大変有効です。
Android アプリケーションの難読化
難読化はソースコードを外部から保護する目的で、ソースコードの一部を隠したり変更したりすることです。多くのデコンパイラは、アプリケーションのソースコードに対して容易にリバースエンジニアリングを行えますが、ソースコードが難読化されている場合、その解析が困難となります。これにより、ハッカー(クラッカー)から顧客データなどの機密情報を保護し、データ改ざんなどを防ぐことができます。よって、攻撃者によるリバースエンジニアリングから身を守るには、ソースコードの難読化が必須と言えるでしょう。
Android のソースコードを難読化する簡単な方法
Android のソースコードを難読化するのは簡単です。一番簡単な方法は、app/build.gradle ファイルを開き、minifyEnabled フィールドを true に設定することです。
(ソースコードのサンプル例)
android { buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt’) } } … }
いくつかの proguard ルールを適用することで、さらに最適化を行うことができます。ただし、上記のような難読化を設定した場合でも、アプリケーションを強力に保護するには不十分です。その理由は、適用される設定が「名前の変更」に限定されるためであり、攻撃者がリバースエンジニアリングを行うと、ロジックを解析されてしまう恐れがあります。
難読化でセキュリティ事故を防止するためには
「名前の変更」を行うだけはなく、複数の難読化の機能を適用することで、ハッカーがロジックを理解したり、アプリケーションに侵入したりすることを困難にすることができます。市場にはそのような機能を有した様々なツールがありますが、ここでは弊社が販売している「DashO」を紹介します。
「PreEmptive Protection」のひとつ DashO とは?
DashO は、難読化ツールのパッケージ製品 PreEmptive Protection(※)のひとつであり、リネーム、文字列の暗号化、コントロールフロー、改ざん検知、デバッグ検知、電子透かしなど、proguard ではサポートされていない非常に多くの便利な機能を備えています。
また、技術サポートが受けられるのもライセンスソフトウェア(有料版)のメリットとして挙げられます。その他、煩雑になりがちな難読化の設定を、内部のルールにより迅速に設定を行うことができます。
※ PreEmptive Protection の詳細はこちら
▼ https://www.agtech.co.jp/preemptive/product/#a03
まずは評価版をお試しください
DashO を使用したソースコードの難読化によって、大半のハッカー(クラッカー)は、ロジックを解析する作業を諦めるでしょう。また、デバッグや改ざんの検知機能により、アプリケーションへの静的な侵入だけでなく、動的な侵入も保護することができます。
実際に難読化の設定を行ってみたい場合は、ぜひ一度、DashO の評価版をお試しください。製品版と同様にすべての機能をご使用いただけます。
※ DashO 評価版の申し込みはこちら
▼ https://www.agtech.co.jp/preemptive/dash_o/trial/