モバイル アプリケーションを保護するための 12 のヒント PlatoBlockchain データ インテリジェンス。垂直検索。あい。

モバイル アプリケーションを保護するための 12 のヒント

最近では、特にモバイル アプリケーションに関して、サイバー攻撃とデータ盗難が非常に一般的になっています。 その結果、セキュリティ違反が発生したモバイル アプリは、経済的損失を被る可能性があります。 多くのハッカーが顧客データを盗もうとしているため、これらのアプリケーションを保護することは、組織にとって最優先事項であり、開発者にとっては深刻な課題となっています。 ガートナーの最近の調査によると、 アプリケーション セキュリティのハイプ サイクル、アプリケーション セキュリティへの投資は、今後数年間で 6 倍以上に増加し、今年の 13.7 億ドルから 2026 年までに 12 億ドルになると予測されています。 DevOps セキュリティの基本的なコンポーネントを正しく理解することが重要です。 モバイル アプリケーションを保護するための XNUMX のヒントを次に示します。 

1. 信頼できるソースからアプリをインストールします。

Android アプリケーションを別の市場で再公開したり、その APK と IPA をダウンロードできるようにしたりすることはよくあります。 APK と IPA はどちらも、Web サイト、クラウド サービス、ドライブ、ソーシャル メディア、ソーシャル ネットワーキングなど、さまざまな場所からダウンロードしてインストールできます。 信頼できる APK および IPA ファイルのインストールは、Play ストアと App Store のみに許可する必要があります。 これらのアプリの利用を防ぐには、アプリの起動時にソース チェック検出 (Play ストアまたは App Store) を行う必要があります。

また読んで、 https://andresand.medium.com/add-method-to-check-which-app-store-the-android-app-is-installed-from-or-if-its-sideloaded-c9f450a3d069

2. ルート検出:

Android: 攻撃者は、ルート化されたデバイスでモバイル アプリケーションを起動し、ローカル メモリにアクセスするか、特定のアクティビティまたはインテントを呼び出して、アプリケーションで悪意のあるアクティビティを実行する可能性があります。 

iOS: ジェイルブレイクされたデバイス上のアプリケーションは、iOS サンドボックスの外部でルートとして実行されます。 これにより、アプリケーションが他のアプリに保存されている機密データにアクセスしたり、サンドボックス機能を無効にする悪意のあるソフトウェアをインストールしたりする可能性があります。 

ルート検出の詳細- https://owasp.org/www-project-mobile-top-10/2016-risks/m8-code-tampering

3. データ保存:

開発者は共有設定とユーザー デフォルトを使用して、トークン、携帯電話番号、電子メール、ブール値などのキーと値のペアを保存します。さらに、開発者はアプリを作成する際、構造化データ用に SQLite データベースを好みます。 ハッカーによる情報の抽出が困難になるように、データは暗号化された形式で保存することをお勧めします。

4. 秘密鍵を保護する:

API キー、パスワード、およびトークンをコードにハードコーディングしないでください。 ハッカーがアプリケーションを改ざんしてすぐに逃げることができないように、さまざまな手法を使用してこれらの値を保存することをお勧めします。 

参照リンクは次のとおりです。 https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

5. コードの難読化

攻撃者が APK ファイルを逆コンパイルし、アプリケーションのソース コードを抽出する可能性があります。 これにより、アプリケーションのソース コードに格納されている機密情報が攻撃者に公開され、カスタマイズされた攻撃に使用される可能性があります。 

ソース コードに含まれるすべての機密情報を防ぐために、ソース コードを難読化することをお勧めします。

6. 安全なコミュニケーション:

すべての通信は暗号化されていないチャネルを介して行われるため、攻撃者は悪意のあるアクティビティを実行して攻撃のレベルを利用する可能性があります。 そのため、常に HTTP URL よりも HTTPS URL を使用してください。

7. SSL ピニング:

証明書のピン留めにより、モバイル アプリケーションは、期待値 (ピン) と一致する有効な証明書を持つサーバーのみに通信を制限できます。 ピン留めにより、 ユーザーがだまされてモバイル デバイスに悪意のあるルート証明書をインストールさせられたとしても、ネットワーク データが侵害されることはありません。 証明書をピン留めするアプリは、侵害された接続を介したデータの送信を拒否することで、このようなフィッシングの試みを阻止します。

ご参照ください: 

https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning

8. API リクエストとレスポンスのデータを保護する

標準的な方法は、REST API 呼び出しのベースライン保護に HTTPS を使用することです。 サーバーに送信される情報、またはサーバーから受信される情報は、AES などでさらに暗号化される場合があります。暗号化からの保護の別のレイヤーがあります。

9. 安全なモバイルアプリ認証:

アプリケーションがユーザーへのログイン後に明確で複雑なセッション トークンを割り当てない場合、攻撃者はフィッシングを実行して、攻撃者が提供するカスタム生成トークンを使用するよう被害者を誘導し、キャプチャされたセッションでログイン ページを簡単にバイパスすることができます。 MiTM 攻撃を使用します。

i) ユーザーがアプリケーションに正常にログオンするたびに、個別の複雑なセッション トークンをユーザーに割り当てます。 

ii) ログアウト直後にセッションの有効期間を終了します。 

iii) XNUMX つ以上の IP アドレスに同じセッション トークンを使用しないでください。 

iv) すべてのセッション トークンの有効期限を制限します。

10. バックアップを許可する 

アプリに機密データが含まれている場合、ユーザーがアプリをバックアップできないようにします。 バックアップ ファイルにアクセスできる場合 (つまり、android:allowBackup="true" の場合)、root 化されていないデバイスでもアプリのコンテンツを変更/読み取ることができます。 そのため、allow backup を false にすることをお勧めします。 

11. Androidアプリ画面への他のアプリからのアクセスを制限する

理想的には、あなたの活動は、他のサービスやアプリケーションからの開始に備えるべきではありません。 他のアプリからフラッター画面にアクセスするという特定の要件がある場合にのみ true にします。それ以外の場合は次のように変更します アンドロイド:エクスポート=「偽」

12. Android アプリからのパッケージのインストールを制限する

REQUEST_INSTALL_PACKAGES 許可により、アプリは ユーザーのデバイスに新しいパッケージをインストールする. Google は、Android プラットフォームでの不正使用を防止し、Google Play の更新メカニズム以外の方法を使用して自己更新するアプリや有害な APK をダウンロードするアプリからユーザーを保護することに取り組んでいます。

結論: 

モバイル アプリはこれまで以上にパーソナライズされており、顧客の大量の個人データが毎日アプリに保存されています。 ユーザー間の信頼とロイヤルティを構築し、企業の重大な金銭的および資格情報の損失を防ぐために、アプリケーションがユーザーにとって安全であることを確認することが今や重要です。 上記のモバイル アプリのセキュリティ チェックリストに従うことで、ハッカーによるアプリのハッキングを防ぐことができます。

著者について:

Raviteja Aketi は、Mantra Labs のシニア ソフトウェア エンジニアです。 彼は B2B プロジェクトで豊富な経験を持っています。 Raviteja は、新しいテクノロジーを探求したり、映画を見たり、家族や友人と時間を過ごしたりするのが大好きです。

最新のブログを読む: Nest.JS によるクリーンなアーキテクチャの実装

受信トレイで配信する価値のある知識

タイムスタンプ:

より多くの マントララボ