モバイルアプリのセキュリティとは?
モバイルアプリのセキュリティ(モバイルアプリのセキュリティ)は、モバイルアプリ、その取り扱うデータ、そして接続するサービスを、不正アクセスや悪用、サイバー攻撃から守る取り組みです。
重要な理由は、モバイルアプリが銀行取引、ショッピング、メッセージ送受信、社内システムへのアクセスなど機微な操作に多用されている点にあります。アプリの脆弱性があると、個人情報、ログイン情報、決済データ、あるいは企業の記録が漏えいする可能性があります。
モバイルアプリのセキュリティは、端末自体を保護するモバイル端末セキュリティとは異なります。また、個人情報の収集や共有のあり方を扱うアプリのプライバシーとは別の領域です。

責任は複数に分かれます。開発者は安全に設計・テストされたアプリを作る必要があり、組織はアクセス管理や接続システムの保護を行う必要があります。利用者もアプリを最新に保ち、アカウントやデータを守ることが求められます。
- モバイルアプリのセキュリティは、アプリ本体、利用者データ、そしてアプリが接続するサービスを保護します。
- 一般的なリスクには、不安全なデータ保存、脆弱な認証、通信の脆弱性、APIs、不正アプリ、古いコンポーネントの利用などがあります。
- 開発者は安全な設計、コーディング、テスト、保守に責任があります。
- 利用者は信頼できるアプリをインストールし、権限を確認し、ソフトウェアを更新し、アカウントを保護することでリスクを下げられます。
- 企業は従業員やBYOD端末上のアプリやデータへのアクセスを管理するべきです。
- モバイルアプリのセキュリティは端末セキュリティやプライバシーと関連しますが、同一ではありません。
モバイルアプリで最も一般的な脅威と脆弱性は何か?
脆弱性とは、アプリやその支援システムに存在する弱点を指します。攻撃手法はその弱点を突く方法で、結果はデータ損失から即時の金銭被害まで様々です。
一般的なリスクはAndroidとiOSの双方に影響し、OWASP Mobile Top 10で指摘されている問題と重なります。具体例としては不適切なデータ処理、脆弱な認証、通信の脆弱性、そして安全でないソフトウェアコンポーネントなどです。これらは銀行・ショッピングアプリからメッセージング、業務用ソフトまで広く影響を及ぼす可能性があります。
不安全なデータ保存と通信
アプリが機密情報を端末に安全でなく保存したり、保護の不十分な接続で送信したり、脆弱なAPIsに依存していると、情報が露出する危険があります。
これにより個人情報、ログイン情報、決済情報、業務データが危険にさらされます。例えば金融アプリの不備は取引情報を露出させる可能性があり、業務用アプリの脆弱性は顧客記録や機密文書の漏えいを招くことがあります。
脆弱な認証とアクセス制御
不十分な認証、セッション管理の不備、弱い権限管理は、攻撃者に不正なアカウントアクセスや情報取得の道を開きます。
起こりうる結果としてアカウント乗っ取り、権限昇格、他ユーザーのデータへのアクセスがあります。ショッピングアプリなら保存された決済情報の漏えい、業務アプリなら内部記録や管理機能への不正アクセスなどが想定されます。
マルウェア、不正改ざん、リバースエンジニアリング
モバイルの脅威には、不正アプリ、スパイウェア、銀行型トロイの木馬、正規アプリの偽装版などがあります。これらは認証情報を盗んだり、利用状況を監視したり、決済をすり替えたりする目的で作られます。
リバースエンジニアリング(逆解析/逆コンパイル)は、アプリのコードや振る舞いを解析して仕組みを理解する行為です。正当なセキュリティ調査に用いられることもありますが、攻撃者はそれを使って防御を回避したり脆弱性を特定したりします。アプリの改ざんは機能を不正に変更し、セキュリティ制御を破壊したり詐欺を容易にしたりします。正規アプリでも脆弱性があれば攻撃者に悪用され得ます。
古いソフトウェアと脆弱な構成要素
多くのアプリはサードパーティ(第三者)ライブラリや他のソフトウェアコンポーネントに依存しています。これらが古かったり安全でなかったりすると、アプリ自体の設計が良好でも弱点を導入してしまいます。
未修正のアプリやサポート切れのコンポーネントは特に危険です。既知の脆弱性が放置されると攻撃に利用されやすく、同じ脆弱な外部コンポーネントに依存する多数のアプリが同時に影響を受けるソフトウェアサプライチェーンの問題も起き得ます。
モバイルアプリのセキュリティチェックリストには何を含めるべきか?
モバイルアプリのセキュリティチェックリストは、アーキテクチャと権限、認証と認可、データ保存とプライバシー、ネットワーク通信とAPIs、アプリ整合性とテストの五つの主要分野を扱うべきです。
これらの対策はアプリの開発と保守を通じて考慮されるべきです。モバイルサービスを運用する開発者や組織は、OWASP Mobile Application Security Verification Standard(MASVS)のようなフレームワークや、Android・iOSのセキュリティガイダンスを併用して実装することが推奨されます。
安全なアーキテクチャと権限管理
アプリは最小権限の原則に従うべきです。ユーザーやコンポーネント、サービスには必要最小限のアクセスだけを与えてください。
開発者はハードコードされたパスワード、APIキー、その他の秘密情報を避け、機密情報の不必要な露出を最小化するべきです。サードパーティのSDKsや依存関係はライフサイクルを通じて脆弱性評価を行い、アーキテクチャは一部のコンポーネントが侵害された場合の影響を限定する設計にしてください。
認証と認可
認証は確実に利用者を検証し、認可は各ユーザーが何にアクセスできるかを制御するべきです。重要なアクセス判断はモバイルアプリ側だけでなく、サーバ側で強制されるべきです。
アプリは適切なMFAや安全なアカウント復旧をサポートするべきです。認証トークンは安全な保存と慎重なセッション管理で保護し、許可外の機能や情報へユーザーがアクセスできないようにしてください。
安全なデータ保存とプライバシー
モバイルアプリの暗号化は、端末とバックエンドに保存された機密情報を保護する助けになります。適切なアクセス制御と安全な鍵管理と組み合わせることで、暗号化は不正なデータ露出のリスクを低減します。
Android KeystoreはAndroid端末上で暗号鍵を安全に保存できます。iOSのKeychainは認証情報などの小さな機密データの保護を提供します。ただし、これらを理由に過剰なデータ保存を正当化してはなりません。
アプリは不要な収集や保持を最小限にし、機密データがログ、バックアップ、通知、あるいは露出したインターフェースに現れないようにするべきです。
安全なネットワーク通信とAPIs
アプリとサーバ間の通信は、適切に設定されたHTTPSを使用するべきです。TLSの設定も適切に行ってください。
APIsは安全な認証と認可を必要とし、リクエストはサーバ側で検証するべきです。高リスクのアプリには盗聴や改ざんに対する追加の保護が適切な場合がありますが、機密データを決して安全でないチャネルで送信してはいけません。
アプリ整合性とセキュリティテスト
アプリ整合性(インテグリティ)チェックは不正な改ざんを検出または抑止するのに役立ち、モバイルアプリのセキュリティテストは攻撃者が悪用する前に脆弱性を特定します。これらを組み合わせることで、アプリのライフサイクル全体でリスクを低減できます。
コードの難読化、整合性チェック、ランタイム保護はリバースエンジニアリングや改ざんを難しくしますが、完全な免疫を保証するものではありません。
セキュリティテストはリリース前にまとめて行うのではなく、開発のプロセスに組み込むべきです。これには次のような手法が含まれます:
- SAST: ソースコードやバイナリを検査してセキュリティ上の弱点を探すこと。
- DAST: 実行中のアプリを動的にテストして悪用可能な振る舞いを探すこと。
- 脆弱性評価:既知の弱点を特定し優先順位を付けること。
- ペネトレーションテスト:現実的な攻撃を模擬して脆弱性が実際に悪用可能かを検証すること。
重要なアプリ変更後や新たな脅威・脆弱性が出現した際には、テストを繰り返すべきです。
|
セキュリティ領域 |
確認すべき重要な質問 |
|
アーキテクチャと権限 |
アプリは最小権限を守っているか?サードパーティ依存関係は脆弱性評価されているか? |
|
認証と認可 |
利用者は安全に認証されているか?アクセス制御はサーバ側で強制されているか? |
|
データ保存とプライバシー |
機密情報は保存時に保護されているか?不要なデータ収集は避けられているか? |
|
ネットワーク通信 |
アプリ−サーバ接続は暗号化されているか?APIsは適切に保護されているか? |
|
アプリ整合性とテスト |
アプリは関連する改ざんリスクから保護されているか?定期的なセキュリティテストは実施されているか? |
モバイルアプリのセキュリティをどう改善するか?
モバイルアプリのセキュリティは、アプリの作り方と使われ方の双方に依存します。開発者は安全な設計、コーディング、テスト、バックエンド保護に責任を持ち、個人や企業は安全なアプリ選択、アカウント保護、権限管理、端末管理によってリスクを減らせます。
セキュリティソフトは、不正アプリ(malware)、フィッシング、悪質なリンクなど特定の脅威に対して追加の防護層を提供できますが、不安定なアプリコードや提供者のバックエンドの脆弱性を修復することはできません。
個人向けのモバイルアプリのセキュリティ対策

- 信頼できる配信元からダウンロードする:評判のあるアプリストアを優先し、開発者を確認し、不明なAPKファイルやインストールリンクには注意してください。
- 権限を確認する:位置情報、連絡先、カメラ、マイクなどの不要なアクセスは制限してください。
- アプリを最新に保つ:アプリとオペレーティングシステム(OS)の更新を速やかに適用し、使っていないまたはサポートが終わったアプリは削除してください。
- アカウントを保護する:固有のパスワードを使い、パスワード管理ツールを利用し、利用可能ならばMFAを有効にしてください。
- 疑わしい挙動に注意する:不明なアプリ、予期しない権限要求、異常なログイン通知、あるいは不正なアカウント活動がないか調べてください。
- 適切なセキュリティソフトを使う:端末やサポート機能に応じて、不正アプリやフィッシング、危険なリンクを検出できる評判の良いモバイル保護製品を選んでください。
業界の主要ラボによる独立したテストで評価・受賞。
中小企業向けのモバイルアプリのセキュリティ対策
中小企業は従業員向けの指針と、どのモバイルアプリが企業情報にアクセスできるかの管理を組み合わせるべきです。
- アプリの利用を管理する:業務システムやデータにアクセスを許可するアプリを定義してください。
- 業務アカウントを保護する:適切なMFAを要求し、従業員の権限は業務に応じて制限してください。
- モバイルリスクを管理する:企業所有の端末とBYOD端末が業務アプリにアクセスする際の最低限のセキュリティ要件を設定してください。
- 企業情報を保護する:顧客記録や機密文書、接続されたクラウドサービスへの不要なアクセスを制限してください。
- 従業員を教育する:不正アプリ、詐欺的なインストールリンク、疑わしいログイン要求を見分ける手助けをしてください。
- 適切な対策を組み合わせる:エンドポイント保護、アカウントの安全、アクセス制御、従業員の意識向上を単一の対策に頼らず併用してください。
Kaspersky Small Office Securityは、サポートされる業務端末とアカウントを保護して中小企業の総合的なサイバーセキュリティを支援します。受賞歴のある保護で、専任のITチームは不要です。
モバイルアプリが侵害された場合、どうすべきか?
モバイルアプリの侵害が疑われる場合は、使用を中止し、影響を受けたアカウントを保護し、機密情報が漏えいしていないか調査してください。迅速な対応により不正アクセスや金銭被害、さらなる被害を抑えられます。

- 疑わしい挙動を特定する: 不明なアプリ、予期しない権限要求、セキュリティ警告、無断の取引、異常なアカウント活動を探します。
- 脅威を封じる: 該当アプリの使用を中止してください。マルウェアが疑われる場合は適宜端末をネットワークから切断し、不正アプリを削除または隔離してください。
- アカウントを保護する: 信頼できる端末でパスワードを変更し、アクティブなセッションを取り消し、多要素認証を有効にしてください。
- 露出した情報を確認する: 個人情報、決済情報、ログイン情報、業務記録がアクセスされていないか確認してください。
- 関係者へ通知する: 金融情報にリスクがある場合は銀行へ連絡してください。業務アプリの場合はIT管理者やセキュリティチームに報告してください。
- さらなる脅威に備えて監視する: 不審なログイン、無断取引、継続的な侵害の兆候を監視してください。
関連記事:
- データ窃盗を防ぐには?
- スマートフォン利用者のためのモバイルセキュリティのベストヒントは?
- 私の端末を守るための必須の Android セキュリティ対策は?
- Android と iPhone のモバイルセキュリティの主な違いは何か?
おすすめ製品:
FAQs
そのモバイルアプリは安全かをどう見分けるか?
アプリが安全であることを一つで示す決定的な指標はありません。有効な指標としては、評判のある開発者、定期的な更新、合理的な権限要求、安全なログイン手段、信頼できる配信チャネルなどが挙げられます。高リスクのアプリについては、開発者がOWASP MASVSなどの認められた基準に従っているべきです。
モバイルアプリの脅威監視とは何か?
モバイルアプリの脅威監視は、改ざん、無効なAPI署名、不審なAPI要求、ボット活動、その他の攻撃の兆候など、アプリや端末からのシグナルを観察して疑わしい活動を検出することを指します。リリース後にアプリがどのように標的にされているかを開発者が理解するのに役立ちます。
モバイルアプリのセキュリティテストとペネトレーションテストの違いは?
モバイルアプリのセキュリティテストは、静的解析、動的テスト、設定レビュー、依存関係チェックなどの手法を用いてアプリの脆弱性を広く確認するプロセスです。ペネトレーションテストは、特定の脆弱性が実際に悪用可能かを確かめるために、より現実的な攻撃を模擬することに焦点を当てます。
アプリ認証とは何か?
アプリ認証(アプリ・アテステーション/attestation)は、プラットフォーム提供の証拠を利用してサーバ側がアプリのIDや整合性を評価する方法です。仕組みによっては不正な改ざんや疑わしい実行環境を検出できますが、アプリや端末が完全に安全であることを保証するものではありません。
