OWASP(Open Web Application Security Project)は、非定期的にモバイル・ウェブベースのアプリケーションに関するセキュリティリスク脅威トップ10を発表しています。OWASPは、ウェブベースのアプリケーション関連セキュリティリスクを知らせるため、2001年オンラインコミュニティとして発足しました。はじまると同時に広く知れわれることになり、発表されるリリース資料と脅威リストは、開発者が必ず参考すべき業界標準となりました。非営利組織のコミュニティ中心の専門家団体が発表する関連ドメインのセキュリティ脅威リストは包括的で、内容も信頼することができます。
最新のOWASP モバイルトップ 10 は、2016年に発表されたものです。(ご参考までに、2017年に作成されたウェブ用脅威候補リストに含まれた内容の多くは、ウェブとモバイル間のコンバージェンスの増加によりモバイル分野でも考慮すべき点があります。)このリストは、主なリスクと環境について、モバイルアプリケーションを保護するため、優先的に考慮すべき重要な点が記されています。そのため、モバイルアプリ開発者なら、自らのモバイルアプリを保護する第一段階として、OWASPモバイルトップ10を熟知する必要があります。
BetaNewsのレポートによると、ダウンロード数基準でトップ30以内にランクされたモバイルアプリの94%に、3つ以上のセキュリティホールが含まれていました。Androidのアンチウイルスソフトウェアも、モバイルアプリを完璧に保護することができません。独立的なテスト機関であるAV-Comparativesの最近のレポートによると、Androidアンチウイルスソフトウェアの3分の2が遮断しているのは、全体リスクの30%未満だと言います。
モバイルアプリケーションのアーキテクチャが変化するにつれ、モバイルリスクに関する認識方法も急変していることを知る必要があります。最近、Bootstrap、Electron、Augular、Reactなどの最新ウェブフレームワークが人気を集め、アプリソースはもはやセキュリティサーバーに限らず、比較的信頼できないブラウザへ移動している現象はこの一例を示しており、これは、OWASPの2017RCリストからも確認することができます。OWASPは、開発組織のためのコミュニティベースのリスク評価方法論を開発し、アプリが生産サイクルを始める前にリスクから保護される方法論を提示しています。
OWASPモバイルトップ10
OWASPが定義したモバイルアプリに対する脅威とそれに対する対処法について、詳しく紹介したいと思います。
M1:不適切なプラットフォームの使用
AppSealingは、不適切なプラットフォームでのアプリの実行を防止し、ルーティングされたデバイスでアプリを保護する機能を提供しています。これは、Androidエミュレータなどの安全でない環境でのアプリ実行を防止します。また、実行されるアプリの構成要素に対する強力な暗号化とハッシュ検証により、有効性を確認します。
ルーティングされたデバイスでアプリケーションを保護する方法については、ブログをご参照ください。
M2:安全でないデータストレージ
OWASPは、AES-256、SHA-256などの安全な暗号化やハッシュアルゴリズムを使い、アプリで使用するすべてのデータを安全に保護し、損傷が発生した場合は、悪用される可能性を除去することを推奨しています。
M3:安全でないコミュニケーション
ハッカーは、ネットワークをスヌーピングし、デバイスとサーバー間を行き来するデータをキャプチャすることで、APIを通して使用されたコミュニケーションプロトコルを悪用します。開発者は、データを保護するためMITM(Man In The Middle)攻撃を防止し、SSLベースの通信を行う措置を講じる必要があります。優れたセキュリティサービスは、適切なセッション処理を保障し、アプリケーションとサーバー間の通信で使用されるデータを盗む「パケットスニファ」がないかを監視する機能を提供します。
M4:安全でない認証、M5:安全でない許可(権限付与)
認証と許可に対する検証がしっかり行われないと、ハッカーはサーバーに直接接続し、サーバーに保存されたデータを「感染」させることができます。適切なユーザープロファイリング、管理、ユーザーアクセス権限の制限、サーバー側の認証は、このようなリスクの対処に役立ちます。
M6:不十分な暗号化
モバイル資産には、ハッカーが重要なデータと収益に影響を与える知的財産を盗めないよう、エンドツーエンド暗号化を使わなければなりません。全体のソースコードの暗号化とバイナリ保護は、デバッグ攻撃と逆コンパイル攻撃を防御する強力な方法です。また、暗号化に使われるキーは、安全な方式で管理されなければなりません。
M7:クライアントコードの品質、M8:コードの変造
アプリを構成するすべての要素に対するハッシュを検証し、コードやアプリの変造を監視しなければなりません。また、ランタイム時にメモリ情報をダンプし、コードを変造する攻撃も、適切に処理しなければなりません。開発者は、アプリがオフラインモードに設定されているときでも、安全であるかを確認する必要があります。コードの変更を防止するため、定期的に整合性を確認するセキュリティ段階を踏まなければなりません。
アプリケーションの整合性を保障するためのハッシュ検証の過程は、非常に重要です。この過程により、悪性コードを挿入する行為が遮断されます。また、アプリケーションに使用される様々な3rd partyライブラリの安全性を検証し、外部モジュールによる悪性コードの搭載可能性を完全に除去しなければなりません。整合性の検証と同時に、メモリのダンプ攻撃に対する防御は、AppSealingなど専門的なセキュリティサービスを利用し、正しく処理しなければなりません。開発者は、オフライン環境でもアプリケーションが安全に動作することを保障する必要があります。コードの変更を防止するため、常時モニタリングする手段が必要不可欠です。
M9:リバースエンジニアリング
AppSealingは、強力なアンチデバッグ、アンチ逆コンパイルの機能を提供します。アプリ解析に使用される様々なデバッグツールの使用を妨害してコードを解析できないよう、全体の暗号化をサポートします。
リバースエンジニアリング攻撃からアプリを防御する方法については、ブログをご参照ください。
M10:関係のない機能
開発者は、バックドア機能を隠したり、製品としてリリースされない予定の機能などをライブしたりしないようにしましょう。例えば、開発者のミスでハイブリッドアプリのレビューにパスワードが記入されたり、またテストのため二要素認証を使用しないよう修正したコードが製品に含まれたりなどの事故が発生しないよう、注意しなければなりません。
AppSealingのセキュリティ層
AppSealingは、OWASPモバイルトップ10に含まれている多くの共通リスクから、AndroidやiOSのモバイルアプリを保護するための包括的かつ効果的な方法を提供します。さらに、セキュリティ適用において煩わしいコーディングが必要ありません。AppSealingが提供するセキュリティサービスは、ビルドされたアプリに直接適用でき、性能とバッテリーなどに影響を与えません。
AppSealingは、スマートレポートと知能型ダッシュボードなどの洞察力のあるレポートをリアルタイムで提供します。OWASPが提示している多くの脆弱性から、あなたのモバイルアプリを保護します。
詳細については、AppSealingセキュリティ専門家にお問い合わせください。