Written by 夏野ゆきか

目 次
スマートフォンアプリケーション診断(以下、スマホアプリ診断)とは、iOS・Android のスマートフォン向けアプリ(以下、スマホアプリ)に存在するセキュリティ上の脆弱性を特定し、適切な対策を講じるための専門的な診断プロセスを指します。アプリ開発の初期段階から運用中のアプリまで、全てのライフサイクルにおいてセキュリティリスクを評価し、ユーザーや企業を保護することが目的です。
スマホアプリには、以下のような多岐にわたるセキュリティリスクが存在するため、脆弱性診断によって可視化・対策を講じることが不可欠です。
●データ保管の不備: 個人情報や機密情報を平文で保持している、もしくは適切に暗号化されていない状態。
●通信の脆弱性: 通信経路が暗号化されておらず、データが傍受されるリスク。
●認証と権限管理の欠如: 不正アクセスや権限の不正利用が可能な設計。
●セッション管理の不備: セッションIDの固定やタイムアウト設定の欠如。
スマホアプリ診断では、以下のような項目を重点的に評価します。
●サーバー・アプリケーション脆弱性: バックエンドシステムの脆弱性、APIを通じた不正アクセスやデータ漏洩のリスク。
●クライアント・アプリケーション脆弱性: アプリ本体のコードや機能に潜むセキュリティリスク。
●通信の安全性: HTTPS/TLSの適切な実装や暗号化状況。
スマホアプリ診断は、アプリの安全性を高めると同時に、利用者からの信頼を確保するために不可欠なプロセスです。本記事では、スマホアプリに潜む具体的なセキュリティリスクとともに、スマホアプリ診断の種類や具体的な診断項目などを詳しく解説します。
スマホアプリ診断とは?
スマホアプリ診断とは、スマホアプリのセキュリティを評価し、潜在的な脆弱性を特定するための診断サービスです。この診断によってアプリケーションの安全性を確保し、攻撃者による不正アクセスや情報漏洩のリスクを未然に防ぐことが可能です。
スマホアプリ診断は、専門のセキュリティベンダーやコンサルタント、あるいは社内のセキュリティチームによって実施されますが、スマホアプリに関する専門知識や経験の豊富な診断士の社内確保は容易でありません。
そのため多くの企業では、外部の専門ベンダーへ委託するケースが一般的です。
診断の対象と実施タイミング
スマホアプリ診断は、以下のような企業やタイミングで実施されることが一般的です。
診断対象
●アプリ開発企業: 新規開発中のアプリのセキュリティを確認するため。
●アプリ運営企業: 運用中のアプリに潜在的な脆弱性がないかを定期的に検証するため。
実施タイミング
本番リリース前: アプリケーションを正式にリリースする前に、脆弱性の有無を徹底的にチェックし、攻撃者に狙われそうな脆弱性を未然に解消します。
アップデート時: 新機能の追加や既存機能の改修に伴い、新たなセキュリティリスクが発生していないかを調査します。
「ソフトウェア製品」種類別の脆弱性件数で、スマホアプリは3位
出典元:IPA|ソフトウェア等の脆弱性関連情報に関する届出状況[2024 年第 3 四半期(7月~9月)](2024年10月17日)
独立行政法人情報処理推進機構(IPA)が2024年10月に公表した「製品種類別の脆弱性届出状況」によると、スマートフォン向けアプリに関する脆弱性の届出件数は、Webアプリケーションおよびルーターに次いで3番目に多いことが確認されています。
スマホアプリは、Webアプリケーション以上に機密性の高い情報を取り扱うケースが多く、脆弱性が放置されたままリリースされると以下のリスクが懸念されます。
1. 情報漏洩
スマホアプリが攻撃者に狙われた場合、アプリに保存されたユーザーの個人情報や機密データ(例:個人情報、認証情報など)が盗まれるリスクがあります。このような漏洩事故は、スマホアプリを提供する企業の信頼を大きく損ない、法的責任を問われるリスクもあります。
2. サービス停止
脆弱性を悪用したサイバー攻撃によりアプリが機能不全に陥ることで、サービス全体の停止や利用者への影響が生じる可能性があり、経済的損失やブランドイメージの毀損を招きます。
これらのセキュリティリスクを軽減し、ユーザーに安全なサービスを提供するためには、サービスリリース前及びリリース後の定期的な脆弱性診断の実施が不可欠です。
なぜスマホアプリはセキュリティリスクが高いのか
スマホアプリがセキュリティリスクの高い対象とされる理由は、以下の通りです。
- ・ セキュリティ対策の実施がユーザーに依存する
- ・ 重要情報が集約されている
- ・ 常に外部と通信している
1. セキュリティ対策がユーザーに依存する
スマホのセキュリティ対策は、ユーザー自身の行動・判断に大きく依存します。例えば、アプリやOSのセキュリティアップデートがリリースされても、ユーザーが適用しないままスマホを使用するケースは少なくありません。
このような状況は、既知の脆弱性を悪用したい攻撃者にとって、格好の標的となります。
2. 機密情報の集約
スマホアプリでは、連絡先やログイン情報、支払い情報といった機密性の高いデータを扱う機会が多くあります。これらのデータは攻撃者にとって高い価値を持ち、盗まれるとダークウェブ※ などで売買される可能性があります。
※ダークウェブ:通常の手段ではアクセスできないWebサイトの総称で、不正取得された個人情報やマルウェア作成ツールなどが取引される
3. 常時接続性と通信リスク
スマホアプリは常にインターネットと接続されているため、セキュリティ対策が不十分な場合、通信内容が傍受されるリスクがあります。特に、暗号化が適切に行われていない通信では、攻撃者による情報の盗聴が懸念されます。
スマホアプリの脆弱性に起因したサイバー攻撃事例
過去には以下のような、スマホアプリの脆弱性を狙った、大規模なサイバー攻撃被害が発生しています。
・スマホ決済サービス
スマホ決済アプリの認証機能に不備があり、ユーザーのアカウントが乗っ取られ不正決済が行われた事件。不正利用された金額は合計で推定5,000万円以上にのぼり、この事件をきっかけにサービス終了へと追い込まれた(2019年)
・ECサイトの改ざん被害
日本料理店のECサイトが不正アクセスを受け、決済アプリが改ざんされて6,900件の個人情報が流出。一部のクレジットカードが不正利用される事態に発展。(2023年)
これらの事例が示す通り、スマホアプリのセキュリティ対策は非常に重要です。
脆弱性診断を通じて潜在的なリスクを早期に発見し、適切な対策を講じることで、攻撃者の侵入を防ぐとともにサービスの安全性を確保します。

スマホアプリに潜む脆弱性・セキュリティリスクとは
スマホアプリは、今や私たちの日常生活に不可欠な存在ですが、多くのセキュリティリスクが潜んでおり、放置すれば個人情報漏洩や不正アクセスといった重大問題に発展する可能性があります。
以下は、スマホアプリの主なセキュリティリスクとその対策です。
1.認証・認可の脆弱性
認証や認可の不備により、なりすましやアクセス権限の不正利用が可能となるリスクがあります。
例: アカウントロック機能の欠如、権限外の操作によるアプリの不正利用
対策: 多要素認証(MFA)の導入、権限管理の徹底
2.サーバーサイドの安全対策不備
サーバーの設定ミスや、既知の脆弱性を攻撃者に利用されるリスクがあります。
例えば、サーバーの設定ミスでプログラムにエラーが画面に表示されていた場合、その情報を足掛かりに、さらなる攻撃を受ける可能性があります。また、古いバージョンのOSやミドルウェアを使用していた場合、既知の脆弱性を使った攻撃を受ける可能性も想定されます。
不必要な情報を公開しないような設定、適切なパッチ管理が必要です。
3.通信の安全性の欠如
データ送受信時に暗号化通信(HTTPS通信)を使用していない、あるいはサーバー証明書を適切に検証していない場合、通信内容が傍受される可能性があります。
例えば、HTTPS通信を使用していないアプリでは、通信内容が容易に傍受されるため、適切なHTTPS通信の使用とサーバー証明書検証が対策として求められます。
4.クライアントサイドからのインジェクション攻撃
ユーザー入力が適切に検証されていない場合、攻撃者によるSQLインジェクションや入力値の改ざんが可能となります。
これにより、サーバからの情報流出、あるいは決済やクーポン利用時の金額改ざんによる、アプリの不正利用などのリスクが想定されます。入力データの妥当性をチェックすることで、被害を防ぐことが可能です。
5.データの不適切な保存
アプリ内に保存されたデータが暗号化されていない、不適切な方法で保管されているなどの場合、第三者にアクセスされる可能性があります。
例えば、ローカルストレージやキャッシュに保存されたパスワードが暗号化されていない、などの事例があげられます。対策として強力な暗号化技術の活用や、不要なデータは保存しないといったポリシーの設定が重要です。
6.セッション管理の不備
セッションIDや識別子が固定値、デバイスIDに依存した管理が行われると、セッションの乗っ取りが容易となります。
このリスクを軽減するには、セッションIDをランダム化し、タイムアウト設定を導入する必要があります。
7.アプリの設定不備の悪用
アプリの設定(AndroidのIntentやiOSのカスタムURLスキームなど)に不備があった場合、意図しない操作による情報漏洩や不正アクセスが引き起こされる可能性があります。
外部から入力値の妥当性チェックが行い、アクセスできる情報は必要最低限に制限しましょう。
スマホアプリ診断を実施するタイミング
スマホアプリ診断を適切なタイミングで実施することで、潜在的なセキュリティリスクを早期に発見し、被害を未然に防ぐことができます。
以下は、主な診断タイミングです。
- 1. 開発中(テスト段階)
- 2. アップデート前
- 3. 定期診断
1. 開発中(テスト段階)
アプリ開発中の脆弱性診断は、スマホアプリの開発段階でセキュリティリスクを特定・修正するための評価プロセスです。ソースコードや設計、通信の安全性を確認し、潜在的な脆弱性を早期に発見します。
主な診断内容には、コードレビュー、通信の暗号化確認、動的診断(DAST)などが含まれ、例えばSQLインジェクションのリスクや過剰な権限要求といった問題が検出されます。
開発後期やリリース後に発生する修正コストを削減し、ユーザーからの信頼性向上を図ることが可能です。また、委託元や規制当局から第三者機関によるセキュリティ評価を義務付けられている場合にも、この段階で診断が行われます。
2.アップデート前
アプリの新機能追加や仕様変更を伴うアップデート時には、新たな脆弱性が発生するリスクがあります。そのため、アップデートのリリース前に診断を行い、潜在的な脆弱性を検出・修正する必要があります。
アップデート前の脆弱性診断はユーザーへの影響を最小限に抑え、アプリへの信頼性維持を図ることに繋がります。
3.定期診断
長期間運用されるアプリでは、新たに発見される脆弱性やセキュリティ要件の変化に対応するため、定期的な診断が欠かせません。
一般的には半年に1回、または年に1回の頻度で診断を行います。
ただし、金融や医療など高リスク分野のアプリでは、3ヶ月に1回程度の診断が推奨される場合もあります。定期診断を行うことで、継続的にアプリの安全性を担保できます。
スマホアプリ診断の種類・診断項目
スマホアプリ診断には、大きく2つの種類があります。
- ◆ サーバー・アプリケーション(API)脆弱性診断
- ◆ クライアント・アプリケーション脆弱性診断
エムオーテックスの提供するスマホアプリ診断を基に、2種類の診断と各診断項目について紹介します。
サーバー・アプリケーション(API)脆弱性診断
サーバー・アプリケーション(API)脆弱性診断は、スマホアプリのバックエンドで利用されるAPIを対象にセキュリティ上の欠陥を特定するための診断です。
APIは異なるソフトウェア間のデータ送受信を担う重要な役割を果たしますが、その設計や実装に脆弱性がある場合、外部からの攻撃にさらされるリスクが高まります。 そこで、APIを通じた不正アクセスやデータ漏洩を未然に防ぐ目的でこの診断が行われます。
診断では、自動ツールや手動の検査を用いてAPIの脆弱性を精査し、問題が見つかった場合には修正の指針を提供します。
▼サーバー・アプリケーション(API)脆弱性診断 診断項目
検査区分 | 診断項目 |
---|---|
サーバー設定 | 不要なメソッド/サービスの稼動 バナーチェック プラットフォームの既知の脆弱性 ディレクトリ・リスティング 強制ブラウジング |
アプリケーション | エラー処理状況 ロジック流出 バックドア、デバッグオプションの存在 ファイル機能(アップロード、ダウンロード) クロスサイト・リクエスト・フォージェリー |
通信 | キャッシュ制御 通信の暗号化強度 リファラ情報 |
セッション管理 | セッション ID 使用状況 Cookie 使用状況 ログアウト機能 |
認証 | ユーザー認証処理 アカウントロック機能 ブルートフォース攻撃(辞書攻撃)耐性 アクセス権限 |
アカウント管理 | 権限昇格 情報管理 パスワード使用状況 |
パラメータ操作 | HTTP ヘッダ・インジェクション メールヘッダ・インジェクション クロスサイトスクリプティング SQL インジェクション OS コマンド・インジェクション パス・トラバーサル バッファ・オーバーフロー LDAP コマンド・インジェクション その他パラメータ操作 |
クライアント側スクリプト | クライアント側コメント |
その他 | クライアント・アプリケーションに関する問題 その他、HTTP プロトコルに依存する問題 |
※診断を実施する環境によって、診断項目が異なる場合があります。
クライアント・アプリケーション脆弱性診断
クライアント・アプリケーション脆弱性診断は、スマホアプリ本体に潜むセキュリティリスクを特定し、ユーザー利用環境の安全性を確保するために実施されます。
アプリケーションに対して疑似的な攻撃を試行し、潜在的な脆弱性を明らかにします。
▼診断対象となる脆弱性の例
・設定ファイルの改ざんによる不正利用:アプリの設定ファイルを改ざんすることで、アプリを不正利用できないか確認。
・サーバー証明書検証の不備:HTTPS通信時に接続先のサーバー証明書を検証していないか確認。
・ローカルデータの保護: 保存データの暗号化の適切性や、キャッシュの安全性確認。
さらに、使用している最新のWebフレームワークやライブラリに由来する未知の脆弱性も検出の対象です。これによりアプリの設計や実装上のセキュリティ欠陥を早期に発見し、修正を促進します。
▼クライアント・アプリケーション脆弱性診断
検査区分 | 診断項目 |
---|---|
アプリ | 起動時のアプリチェック 重要情報アクセス時のチェック データチェック アカウント管理 ユーザー認証処理 エラー処理 その他 |
情報の取扱い | ローカルのファイル情報の取扱い 外部ストレージへのデータの取扱い パーミッションの確認 (不要なパーミッションの存在) ブラウザ連携 |
外部連携 | 課金連携 |
OS 依存による脆弱性 | 対応バージョン 既知の脆弱性 |
暗号 | 暗号の強度 暗号鍵の取扱い 非推奨の暗号化アルゴリズムの使用 |
その他 | 通信路の問題 逆コンパイルの耐性 |
スマホアプリ診断の価格
スマホアプリ脆弱性診断の費用は、診断内容、規模、手法に応じて大きく異なります。
特に、手動診断やペネトレーションテストを含む詳細な診断は、ツールを使用した簡易診断に比べて高額になる傾向があり、一般的な価格帯は30万円から200万円程度とされています。
これらの価格は診断の深度や対象アプリケーションの規模にも依存するため、診断依頼の際には自社のセキュリティ要件や予算に基づき、適切なものを選定することが重要です。
スマホアプリ診断の流れ
エムオーテックスの提供するスマホアプリ診断は、以下の手順で提供します。
1.診断スケジュールの確定
・依頼者のスケジュール提示:診断開始可能日および納品希望日を送付いただきます。
・診断スケジュール案の策定: MOTEXにて診断スケジュール案を策定し、依頼者と協議の上、最終スケジュールを確定します。
2.診断の実施
・事前ヒアリング:MOTEXが送付するヒアリングシートに必要事項を記入し、診断開始の5営業日前までに提出いただきます。
・診断作業:提出された情報をもとに脆弱性診断を実施します。診断は手動やツールを用いて行われ、アプリケーションやAPIのセキュリティリスクを洗い出します。
・結果の報告: 診断終了後、結果をまとめた「診断報告書」を作成し、通常5営業日以内に提出します(※ リソース状況や診断結果内容によって日数を要する場合があります)。
LANSCOPE プロフェッショナルサービスの「スマホアプリ診断」
LANSCOPE プロフェッショナルサービスでは、モバイルアプリケーションのセキュリティリスクを包括的に評価し、リスク軽減を支援するスマートフォンアプリケーション脆弱性診断を提供しています。
本サービスは、以下の2つの視点からアプリケーションのセキュリティ診断を行います。
・サーバーサイド: スマホアプリが利用するAPIやサーバー・アプリケーションの脆弱性を診断し、不正アクセスやデータ漏洩のリスクを特定。XSSやSQLインジェクションなどのリスクに対策。
・クライアントサイド:スマホやタブレット端末にインストールされたアプリケーションのセキュリティを評価し、アプリの設定不備やデータの取り扱い 起因するリスクを特定。
LANSCOPE プロフェッショナルサービス では、一般企業の業務用スマホやタブレット端末の利用から、アプリ開発・提供ベンダー向けまで、以下のような総合的なセキュリティ対策を支援します。
・端末設定基準の策定: 業務端末における適切なセキュリティ設定(パスワードポリシー、暗号化設定など)を策定し、基準の明確化を支援。
・紛失時のリスク軽減策: 端末紛失や盗難が発生した際の被害を最小限に抑えるためのセキュリティ対策(リモートワイプ、データアクセス制限など)の導入を支援。
・開発者向けガイドラインの提供: スマホアプリの安全性を高めるためのベストプラクティスや実装ガイドラインを、開発者に提供。
▼サービスのイメージ
スマホアプリのセキュリティを強化するための包括的な支援を行います。詳しくは下記の製品ページをご覧ください。
まとめ
本記事では「スマホアプリ診断」をテーマに、その概要やスマホアプリに潜むリスク、脆弱性について解説しました。
本記事のまとめ
- スマホアプリ診断とは
スマートフォン向けアプリケーションの安全性を評価し、脆弱性や潜在的なリスクを特定するためのセキュリティ診断プロセス。スマホアプリに起因する、不正アクセスや情報漏洩といったリスクの未然防止を図る。 - スマホアプリに潜むリスク
スマートフォンアプリは以下の理由から、セキュリティリスクが特に高いとされる
〇セキュリティ対策の適用がユーザーに依存している
〇個人情報、認証情報、クレジットカード情報 など重要なデータが集約されている
〇外部通信が常時行われる特性がある - スマホアプリ診断の費用感
診断内容や規模、手法により異なるが、特に手動診断やペネトレーションテストを含む高精度な診断は30万円~200万円程度が一般的。
今や誰しもが日常的に利用するスマホアプリですが、重要情報が集約されているため、攻撃者の標的になりやすい特性があります。よってアプリ開発を外部委託している企業や、自社でアプリを開発・運営する事業者は、脆弱性診断を定期的に実施することで潜在的なリスクを早期に発見・修正し、高いセキュリティレベルを維持することが不可欠です。
「脆弱性診断」の実施を検討されている企業様は、ぜひ以下の資料もご活用ください。

おすすめ記事