コードの難読化 – Code obfuscation

English -> Visit Promon Web Page

コード難読化とは何ですか?

コード難読化とは、実行可能ファイルを完全に機能させながら、ハッカーにとって役に立たないように変更するプロセスです。コードの機能は変更されず、コード難読化によりアプリのコードのロジックと目的を隠すことができます。コード難読化は、サイバー犯罪者がソース コードを逆コンパイルしたりリバース エンジニアリングしたりするのを防ぎ、アプリを知的財産の盗難から保護するための標準的な方法です。

コード難読化はどのように機能しますか?

コード難読化は、互いに補完し合う複数の手法で構成され、アプリのソース コードに階層化された防御を構築します。難読化手法の分類は、対象となる情報によって異なります。一部の変換はソフトウェアの語彙構造を対象とし、その他の変換は制御フローを対象とします。主要なコード難読化手法には、データ難読化、レイアウト難読化、制御難読化などがあり、詳細については、 アプリ コード難読化ガイド (Promonサイト 英語) をご覧ください。

JavaScript 難読化

JavaScript で書かれたハイブリッド アプリは、ネイティブ言語を使用したアプリよりも攻撃に対して脆弱になる可能性があります。そのため、アプリ プロバイダーは、重要なコードを保護するために強力な防御層を使用して、新たな脅威からアプリを積極的に保護する必要があります。JavaScript コードを難読化 (Promonサイト 英語) することで、文字列、オブジェクト、変数が非表示になり、サイバー犯罪者がコードを理解するのが難しくなります。また、リバース エンジニアリング攻撃を実行するためのしきい値も高くなります。

iOS の難読化

iOS アプリの最も一般的なプログラミング言語である Objective-C と Swift は、マシン コードにコンパイルされます。このため、iOS アプリはリバース エンジニアリングが難しいという誤解が生じています。マシン コードのリバース エンジニアリングには成熟したテクノロジが存在します。さらに、誰かがジェイルブレイクされたデバイスにアプリをインストールした場合、Apple の暗号化だけではリバース エンジニアリングやアプリ分析を防ぐのに十分ではありません。iOS アプリに制御フロー難読化や文字列難読化などの難読化手法を使用する (Promonサイト 英語) ことで、サイバー犯罪者がリバース エンジニアリングを実行するのを困難にすることができます。

Android の難読化

一般的に、すべてのコードはリバース エンジニアリングの対象になりがちですが、実行時に動的なイントロスペクションを可能にする言語で記述されたコードは特に危険です。保護されていない Android アプリは、知的財産の盗難、収益の損失、評判の低下につながる可能性があります。プロバイダーは、重要なコードを保護するために強力な防御層を使用して、アプリをサイバー攻撃から積極的に保護する必要があります。Android の難読化 (Promonサイト 英語)手法には、クラス名、関数名、メソッド名の変更、名前空間のフラット化、コードのシャッフルなどがあります。Android アプリには、複数の難読化手法を適用するセキュリティ ソリューションを選択することをお勧めします。

コード難読化とランタイム保護を組み合わせるべき理由

アプリ コードを難読化することは、リバース エンジニアリングや知的財産の盗難に対する重要なセキュリティ対策ですが、すべての攻撃シナリオからアプリを保護するには十分ではありません。Android アプリと iOS アプリの両方を完全に保護するには、 コード難読化技術と ランタイム保護を組み合わせた包括的なアプリ セキュリティ ソリューションが必要です。

Promon SHIELD™を使用すると 、アプリのセキュリティを難読化だけに頼る必要がなくなります。このソリューションは、実行時の動作を監視し、アプリが安全でない環境で実行されているかどうかを検出します。Promon SHIELD™ は、コード フックを検出し、外部コードの挿入をブロックし、アプリがリアルタイムで動作を変更して攻撃を阻止できるようにします。アプリの難読化を多層アプリ シールド ソリューションと組み合わせて使用​​すると、アプリがリバース エンジニアリングや知的財産の盗難に遭う可能性が低くなります。

難読化対応

コード難読化を実現するために以下のページを参考にしてください。

コード難読化で攻撃からアプリコードを保護

アプリのための次世代 Jigsaw バイナリコード難読化

セキュリティソフトウェア用語集

アプリケーション・ハーデニングアプリケーションシールドアプリの改ざん
証明書のピン留めコードの難読化デバイスのクローン作成
フッキングフレームワーク脱獄キーロギング
モバイルアプリのセキュリティルート化リバースエンジニアリング
ランタイム保護ソフトウェア開発キットホワイトボックス暗号化

Promon 関連情報

エキスパートによるアプリセキュリティ | Promon
インターネットで利用される、モバイル、デスクトップアプリのセキュリティを確保します。