企業の多くのコアビジネスが、いつでもどこでも使えるモバイルアプリへ移ったということは、インターネットトラフィックの4分の3以上がモバイルデバイスにインストールされたアプリにより発生していることからも確認できます。このようなシナリオで、一般的にアプリはユーザー情報を保存し、金融取引を処理することができるよう、開発者はアプリのセキュリティに対する要求を最優先に考慮しなければなりません。時にセキュリティは、アプリが生き残れるかどうかの分かれ道で重要な要素となり、サイバー攻撃によるリスクから安全なアプリを選別するための必須要素となっています。
しかし幸いにも、アプリを作成する過程で、ほとんどのセキュリティ機能は開発者が管理することができます。開発者は、アプリのセキュリティの生態系における模範となる実践事例を認識し、製品の問題を取り除く必要があります。開発者が統合できるモバイルアプリがセキュリティホールを遮断し、顧客の信頼を維持するための上位10の実践事例リストは、下記のとおりです。
- セキュアコーディング
セキュアコーディングは、セキュリティリスクに対して最優先に考慮すべきものであり最も頻繁に行われる防御策です。この方法を積極的に用いると、公開して使用できるコードベースのリバースエンジニアリング攻撃を防御することができます。セキュアコーディングの実践は、リバースエンジニアリングを防止するためのバイナリ保護を伴います。この実践は、結果的に詐欺行為と収益損失の防止に役立ちます。 - エンドツーエンドデータの暗号化
ほとんどのユーザーデータはサーバーに保存されるため、開発者はすべてのデータベーステーブルを暗号化し、必須認証キーなしでは読み込めないようにする必要があります。ユーザーはホストサーバーを制御できないため、ホストサーバーに保存されているデータのセキュリティは、開発者の主な責任になることを忘れてはなりません。開発者は、悪意ある攻撃者がいかなる条件でもホストされたデータにアクセスできないよう、措置を講じなければなりません。 - セキュリティ検討後に3rd partyライブラリと拡張プログラムを使用する
セキュリティ専門家は、ハッカーが脆弱性を利用して攻撃する3rd partyライブラリと拡張プログラムを見つけることができます。時に、開発者は3rd partyライブラリや拡張プログラムを、セキュリティについて細かく検討せず使用することがあります。このようなライブラリは、悪性コードを挿入できるベクターの役割をすることがあるため、アプリの整合性を損なうおそれがあります。 - セキュリティの面で安全なAPI
設計を誤ったAPIは、他のノード、データベース、モバイルアプリの間で発生するデータプッシュにより、悪意のある活動を助けるゲートウェイの役割をします。開発者は、すべての種類のインジェクションを防御するAPIを作成する必要があり、OAuthなどの適切な認証メカニズムを利用し、リソースを保護しなければなりません。 - マクロレベルの改ざん検知メカニズム
動的で常時監視するセキュリティ層がアプリに設置されていれば、いかなる悪意あるアクセスも追跡し、アプリの整合性を保障することができます。この過程により、許可されていないアクセスは防御されます。 - 安全なセッション管理
モバイルデバイスのセッションは、クッキーでデスクトップより長く継続されるため、ユーザーの利便性を考慮しセッションを適切に処理することは複雑困難です。開発者がチャレンジすべき課題は、ユーザー環境が損傷されない状態で、ユーザーデータとコードが保護されているかを確認することです。そのための解決策は、予測可能なセッションがないという点を利用することです。開発者は、セッション情報が継続して変更されるようアプリを構成しなければなりません。 - 進歩した暗号化の使用
開発者は、SHA-256ハッシュを使用したAES暗号化アルゴリズムなど、最も進歩した暗号化標準を使用し、すべてのキーが保護されていることを保障しなければなりません。また、このようなキー・値が、アプリケーションそのものにハードコーディングされないよう措置を行わなければなりません。キーと認証書は、同時アクセスによりアルゴリズムを無効化できるため、それぞれのセキュリティを維持させる必要があります。 - 強力なトランスポート段階の保護
クライアントとサーバー間のデータ交換において、SSL(Secure Socket Layer)の使用は、複雑なセキュリティ問題を解決できる方法と考えられています。しかし、SSL以外にも多くのデータトランスポートセキュリティがあります。サーバーと通信が繋がる前に、他社が発給したSSLの適切な認証プロセスを行って、適切な長さの安全なキーを使用しなければなりません。 - 厳しいテスト
時に、開発者は「Time to Market」の目標を達成するため、コードベースや従属性が安全ではない不十分なテスト戦略を取り入れ、アプリを攻撃に晒すことがあります。OWASP標準は、セキュリティ標準に対するアプリの厳しい最新遵守を保障するガイドの役割を担っています。継続的な侵入テストによって発見された脆弱性は、即時にパッチされなければなりません。そのため、開発者はビルドがリリースされる前に、ホワイトハッカーの役割を担わなければなりません。 - 安全でないデータの保存場所
ユーザーデバイスのストレージ環境は、セキュリティ侵害による影響を受けるおそれがあるため、ユーザーのデバイスに重要な情報を保存することは望ましくありません。より重要な点は、ユーザーデバイスのストレージに保存されたデータの脆弱性です。ユーザーは、デバイスの「流出」動作を認識するのが困難で、結果としてアプリに対する信頼度を下げることにつながります。この問題に対する答えは、サーバーのセキュリティ環境にすべての重要なデータを保存することです。
このように、モバイルアプリのセキュリティは、ビジネスの目標達成に重要な役割を果たしますが、維持・補修、性能、最上のユーザーエクスペリエンスに対する要求と細かく調和させなければなりません。