「モバイルアプリ」を社内システムと安全に連携させるには? 脆弱性のつぶし方は?:セキュアなモバイルアプリ開発の10大ベストプラクティス【後編】
モバイルアプリを開発する際に重要なのは、セキュリティだ。本稿ではコードレベルのセキュリティ確保や、バックエンドシステム/各種サービスとの接続時のセキュリティなどを取り上げる。
セキュリティはモバイルアプリケーション開発に欠かせない構成要素だ。だがセキュリティについての考慮事項は無数にあり、着手が難しいことも少なくない。
モバイルアプリ開発におけるセキュリティ面でのチェックリストを紹介した「“危険なモバイルアプリ”の開発者にならないための5つのチェックリスト」では、開発当初からセキュリティを最優先にする戦略を立て、プロセス全体に強力な認証や認可の仕組みを実装する重要性を確認した。その後編にあたる本稿では、モバイルアプリのセキュリティに関する、その他の重要なベストプラクティスを確認する。
併せて読みたいお薦め記事
モバイルアプリ開発のノウハウ
モバイルアプリ開発事例
6.モバイルアプリに保護を組み込む
開発チームがセキュリティに重点を置いてモバイルアプリ開発に取り組む場合、例えば以下の項目を考慮する必要がある。
- コードの難読化
- コードの暗号化
- 脆弱(ぜいじゃく)性の除去(ハードニング)
- API(アプリケーションプログラミングインタフェース)の暗号化
モバイルアプリが外部ソースからデータを受け取る場合は、不正なコマンドやスクリプトを送って想定外の動作をさせる「インジェクション」などの攻撃を避けるために、入力検証機能を含めるようにする。一定時間でセッション(一連の通信)を終了させる「セッションタイムアウト」を実装したり、暗号化通信プロトコル「SSL」「TLS」を使用していない外部サービスへのリンクを避けたりするのも効果的だ。
改ざん検知や「デバッガー」の使用制限など、攻撃テクニックへの対処策の検討も求められる。JavaScriptを無効化したり、開発時にコードに組み込まれたバックドア(不正侵入に利用可能な“裏口”)を除去したりすることも有力な手段となる。
モバイルアプリ開発のテクノロジーは急速に進化している。開発者はこうした変化に追従して、その時点で最も安全なテクノロジーを使用し、最新のベストプラクティスに基づいてコードを記述できるようにすべきだ。
7.バックエンドシステムのセキュリティを確保する
企業の社内バックエンドシステムと接続するモバイルアプリは、新たな脆弱性を生み出す恐れがある。開発チームは、モバイルアプリが接続する全てのバックエンドシステムの潜在的なリスクを評価し、接続に利用するAPIに細心の注意を払う必要がある。
基本とすべきなのは、必要最小限のリソースへのアクセス権限のみを付与する「最小権限の原則」だ。そうすれば承認を受けたアカウントでも、必要なリソースにしかアクセスできない。
開発チームはセキュリティのテクノロジーを使用して、バックエンドシステムとの通信をエンドツーエンド(経路全体)で保護する必要がある。VPN(仮想プライベートネットワーク)やコンテナを利用すれば、さらに高いレベルのセキュリティを実現できる。ファイルサーバやアプリケーションサーバ、データベース管理システム(DBMS)など、モバイルアプリの接続先となる、あらゆる要素の保護が目標だ。
8.社外サービスの使用には細心の注意を払う
Copyright © ITmedia, Inc. All Rights Reserved.