こちらは、2019年5月13日に公開された以下のドキュメントを翻訳したものとなります。
Securing Mobile Apps against Reverse Engineering
モバイルアプリケーションセキュリティという言葉は、今日のテクノロジー業界において流行語となりました。モバイルアプリの開発や管理にあたって、開発者の集中的な努力望まれるテーマです。アプリケーション市場がモバイルアプリで溢れかえっているように、セキュリティの脅威や脆弱性も溢れています。リバースエンジニアリングはそのような脅威の1つで、知財の情報漏えいや収益の損失によってビジネスが深刻な影響を受けます。開発者がアプリケーションにセキュリティ機能を備え付けておけば、脅威にすぐに対抗し、妨害行為からアプリケーションを保護することが必要です。
リバースエンジニアリングとは何か?
リバースエンジニアリングとは、元のソースコードおよびバイナリからAPKファイルを作成するその他のリソースを獲得するためのプロセスです。市場で手に入るツールでDEXファイルからJARファイルへ、そしてJAVAソースコードへと逆コンパイルされるおそれがあります。この手口でライバルにアプリケーションのお粗末な機能を盗み見られたり、こっそりコピーされることもあります。ハッカーはというと、この技術で認証プロセスをバイパスしてアプリケーションのプレミアム機能へのアクセスを試みます。ゲーム中にこの手口を使って、不正にアドバンテージを手にしチート行為が行われることもあります。
SoftIceやOllyDbgなどのデバッガは、ビジネス全体のアプリケーションロジックを通してプログラムのフローをトレースしていました。これはマルウェアに感染したり配布される恐れがあります。こうして何も知らないユーザーが感染したアプリケーションをダウンロードし、個人情報が漏れてしまうのです。
リバースエンジニアリングへの対策
アプリケーションセキュリティというものが本質的に信頼性を高めるものなので、セキュリティ対策をしている製品には顧客信用度があがります。開発者がモバイルアプリーションに以下に示したようなリバースエンジニアリング対策のベストプラクティスを採用することが何よりも大切です。
1.プログラミング言語の選択が大いにものを言います。ビジネスで欠かせない機能の部分にはCもしくはC++を使用します。通常、AndroidアプリはJavaで書かれていることが多いですが、JavaだとCやC++に比べてデコンパイルされやすくなってしまいます。NDKを使用し、極めて重要なコードをネイティブで.soファイルに書き込みコンパイルすることでリバースエンジニアリングの手順を非常に複雑で厄介なものにすることができます。
2.サーバーサイドに適切な暗号化技術を適用してコードチャンクを保管しておくことも、リバースエンジニアリングを阻止するための1つの方法です。アプリとサーバーの間の通信には安全なAPIが使用されていなければいけません。
3.いかなる場合でもビジネスロジックは暗号化形式で保管しておくことを推奨します。コードがうまく難読化されていると、リバースエンジニアリングを抑えるのにとても有効です。アプリのロジックを壊そうとしても、ハッカーには暗号化されたコードのかけらが散乱しているようにしか見えないので、できません。
4.強力なハッシュアルゴリズムを使用しましょう。パスワードなど機密情報の保管にはPBKDF2やbcryptなどを使えば、解読や誤使用を不可能にできます。
5.暗号化形式でユーザー情報を守りましょう。デバイスや外部ストレージ、アプリなどの環境に保管することは絶対やめてください。このようなデータを暗号化されていない状態で保管すると、モバイルデバイスへのU SB接続で簡単にアクセスされ、改造されてしまいます。
6.データベースは、AES-256暗号化のような強力な暗号化アルゴリズムで保護してデータセキュリティを高めておかなければいけません。
7.APIキーは保護したうえで、隠しておくべきです。またハードコードやリソースフォルダでの保管もしてはなりません。コードが簡単に解凍され、APIがデコンパイルされてキーにアクセスされてしまうからです。
AppSealing:アプリケーションセキュリティのワンストップソリューション
AppSealingのセキュリティソリューションでは、エンドツーエンドのモバイルアプリ保護を提供しています。リバースエンジニアリングを含むいくつものセキュリティの脆弱性に効果的に対応しています。世界中の開発者がDEXファイル、SOファイル、DLLファイル暗号化でモバイルアプリの保護を行っており、アプリのコードが攻撃されても、「解読不能」としておくことができます。
AppSealingのランタイムアプリケーション自己保護(RASP)はバイナリ保護やアンチデバッギング、アンチデコンパイルでランタイムのアプリ保護を行います。アプリのコンポーネントとモジュール全てのハッシュのバリデーションを行うことで、堅牢な環境とインテグリティ保護が確実なものとなります。
AppSealingはルート化されたデバイスやAndroidエミュレーターがアプリにアクセスして「サニタイズ」開始を妨げるのを検出します。このノーコード方式はメモリ使用量、CPU、バッテリー性能への影響が最小限です。APKをアップロードすると、10分以内で総合的なセキュリティレイヤがアプリに適用されます。
現代のセキュリティの課題には、最先端のセキュリティソリューションでの対策が必要です。従来のセキュリティから一歩進んで、信頼のおけるセキュリティソリューションプロバイダーAppSealingを適用しましょう!
無料トライアルはこちらから -http://bit.ly/apply-security-now
詳細は弊社のセキュリティエキスパートにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。