📗
owasp-mobile-top10-ja
  • OWASP Mobile Top 10 ja
  • OWASP モバイル Top 10 日本語版
    • Mobile Top 10 2024-Top 10
      • M1: 不適切なクレデンシャルの使用 (Improper Credential Usage)
      • M2: 不適切なサプライチェーンセキュリティ (Inadequate Supply Chain Security)
      • M3: 安全でない認証と認可 (Insecure Authentication/Authorization)
      • M4: 不十分な入出力バリデーション (Insufficient Input/Output Validation)
      • M5: 安全でない通信 (Insecure Communication)
      • M6: 不適切なプライバシーコントロール (Inadequate Privacy Controls)
      • M7: 不十分なバイナリ保護 (Insufficient Binary Protections)
      • M8: セキュリティの設定ミス (Security Misconfiguration)
      • M9: 安全でないデータストレージ (Insecure Data Storage)
      • M10: 不十分な暗号化 (Insufficient Cryptography)
    • Mobile Top 10 2016-Top 10
      • M1 - 不適切なプラットフォームの利用
      • M2 - 安全でないデータストレージ
      • M3 - 安全でない通信
      • M4 - 安全でない認証
      • M5 - 不十分な暗号化
      • M6 - 安全でない認可
      • M7 - 脆弱なコード品質
      • M8 - コード改竄
      • M9 - リバースエンジニアリング
      • M10 - 余計な機能
Powered by GitBook
On this page
  • 脅威エージェント
  • 攻撃手法
  • セキュリティ上の弱点
  • 技術的影響
  • ビジネスへの影響
  • '余計な機能' の脆弱性はあるか?
  • '余計な機能' を防ぐには?
  • 攻撃シナリオの例
  • 参考資料
  1. OWASP モバイル Top 10 日本語版
  2. Mobile Top 10 2016-Top 10

M10 - 余計な機能

脅威エージェント

アプリケーション依存

一般的に、攻撃者はバックエンドシステムの隠し機能を発見するためにモバイルアプリ内の余計な機能を理解しようとします。攻撃者は一般的にエンドユーザーが関与することなくシステムから余計な機能を直接的に悪用します。

攻撃手法

悪用難易度 容易

攻撃者は自分のローカル環境内でモバイルアプリをダウンロードして調べます。ログファイル、設定ファイル、おそらくバイナリ自体も調べて、開発者が残した隠しスイッチやテストコードを発見します。これらのスイッチやバックエンドシステムの隠し機能を悪用して攻撃を実行します。

セキュリティ上の弱点

普及度 中 検出難易度 普通

モバイルアプリにインタフェース経由でユーザーに直接公開されていない余計な機能が組み込まれている可能性が高くなります。この追加コードの大半は本質的に無害であり、攻撃者にバックエンドの機能に関する補足的な洞察を与えるものではありません。但し、一部の余計な機能は攻撃者に非常に役に立ちます。バックエンドテスト、デモ、ステージング、UAT 環境に関連する情報を公開する機能は製品ビルドに組み込んではいけません。さらに、管理 API エンドポイントや非公式のエンドポイントは最終製品ビルドに組み込んではいけません。余計な機能を検出することは困難である可能性があります。自動化された静的解析ツールや動的解析ツールは低い位置にぶら下がる果物 (ログステートメント) を拾うことができます。しかし、一部のバックドアは自動化された手段では検出が困難です。したがって、手動のコードレビューによりこれらを検出することが常に最善となります。

技術的影響

影響度 深刻

余計な機能による技術的影響には以下があります。

  • バックエンドシステムの仕組みを開示する

  • 不正な高特権アクションが実行される

ビジネスへの影響

アプリケーション / ビジネス依存

余計な機能によるビジネスへの影響には以下があります。

  • 機密性の高い機能への不正アクセス

  • 風評被害

  • 知的財産漏洩

'余計な機能' の脆弱性はあるか?

開発者は製品環境にリリースされることを意図しない隠しバックドア機能やその他の内部開発セキュリティコントロールを組み込むことがよくあります。例えば、開発者はハイブリッドアプリのコメントにパスワードをうっかり入れてしまうことがあります。他にはテスト中の2要素認証の無効化があります。

このリスクの特徴は、アプリで有効でありリリースすることを意図していない機能が残存しているということです。

'余計な機能' を防ぐには?

この脆弱性を防ぐ最善の方法はこのコードで最も知識のあるセキュリティ担当者や対象分野の専門家により手動でセキュアコードレビューを行うことです。以下を行うべきです。

  1. 隠しスイッチを発見するためにアプリの設定を調べる

  2. すべてのテストコードがアプリの最終製品ビルドに含まれていないことを確認する

  3. モバイルアプリがアクセスするすべての API エンドポイントを調べて、これらのエンドポイントが十分に文書化されており公開されていることを確認する

  4. すべてのログステートメントを調べて、バックエンドについて過度に説明的なものがログに書き込まれていないことを確認する

攻撃シナリオの例

シナリオ #1: 管理エンドポイントの開示:

モバイルエンドポイントのテストの一環として、開発者はモバイルアプリに管理ダッシュボードを表示する隠しインタフェースを組み込みました。このダッシュボードはバックエンド API サーバー経由で管理情報にアクセスします。製品版のコードには、開発者はいつでもダッシュボードを表示するコードを組み込みませんでした。ただし、バックエンド管理 API にアクセスできる基となるコードが組み込まれていました。攻撃者はバイナリの文字列テーブル解析を実行して、管理 REST エンドポイントへのハードコードされた URL を発見しました。その後、攻撃者は 'curl' を使用してバックエンド管理機能を実行しました。

開発者はネイティブインタフェースから直接アクセスできないコードを含む、余計なコードをすべて削除しておく必要があります。

シナリオ #2: 設定ファイルのデバッグフラグ:

攻撃者はローカルアプリの .properties ファイルに手動で追加した "debug=true" を試みます。アプリケーションは起動時に過度に説明的であり攻撃者がバックエンドシステムを理解するのに役立つログファイルを出力しています。その後、攻撃者はログによりバックエンドシステムの脆弱性を発見します。

開発者はモバイルアプリの製品ビルド内では 'デバックモード' を有効にさせないようにする必要があります。

参考資料

  • OWASP

  • その他

PreviousM9 - リバースエンジニアリング

Last updated 4 months ago

OWASP
External References