この記事の内容
実際に
モバイルアプリケーションセキュリティテスト (MAST) —課題と ツール
モバイルアプリケーションセキュリティテストの 主な 課題と ツール
モバイルアプリケーションセキュリティテスト
モバイルアプリケーションセキュリティテストとは?
モバイルアプリケーションセキュリティテストでは、
OWASP Mobile Security Testing Guideでは、
モバイルアプリケーションセキュリティでテストが重要なのはなぜですか?
202
組織は
MASTは、セキュアな
モバイルアプリケーションセキュリティには、
モバイルアプリケーションセキュリティテストにはどのような手法がありますか?
モバイルアプリケーションセキュリティテストで
手動テスト:人間の
テスターが アプリケーションを 実際に 操作して、 脆弱性を 特定します。 設計上の 欠陥や ビジネスロジックの エラーなど、 抽象度の 高い アプリケーションの 問題を 検出するのに 適しています。 自動テスト:自動化された
MASTソリューションで アプリケーションコードを スキャンし、 潜在的な 脆弱性を 検出する ことで、 開発チームが セキュリティリスクを できるだけ 早く 特定できるようにします。 迅速性、 正確性、 拡張性、 費用対効果などの メリットも あります。 バグバウンティ:組織の
環境内に ある 脆弱性を 特定して 報告した セキュリティ研究者や 倫理的ハッカーに、 金銭的な 報酬や その他の インセンティブを 提供します。 クラウドソースに
よる 脆弱性の 開示:バグバウンティと 似ていますが、 セキュリティ上の 欠陥を 非公開で 報告するのではなく、 一般に 公開します。 開発者が 脆弱性を 修正する 方法に ついて、 推奨事項が 含まれる 場合も あります。
企業は、
モバイルアプリケーションセキュリティテストにはどのようなツールを使えますか?
モバイルアプリケーションセキュリティテストで
各ツールの
静的アプリケーションセキュリティテスト
(SAST) ツールは、 アプリケーションの ソースコードを スキャンして 脆弱性を 特定します。 CI/CDパイプラインの 早い 段階や、 コーディング中に IDE プラグインと して 実行できます。 SASTは 「ホワイトボックス」テストの 一例です。 アプリケーションの 内部設計に 関する 知識を 考慮して テストします。 動的アプリケーションセキュリティテスト
(DAST) ツールは、 稼働中の アプリケーションに 一般的な 攻撃を 試し、 実行時の セキュリティを 確認します。 アプリケーションが 動作している 必要が ある ため、 開発プロセスの かなり 後半に ならないと 利用できません。 DASTは 「ブラックボックス」テストの 一例です。 外部からの 想定のみに 基づき、 アプリケーションの 内部情報は 考慮しません。 インタラクティブアプリケーションセキュリティテスト
(IAST) ツールは、 アプリケーションの スキャンと 内部フローの 分析を 通じて、 実行時の セキュリティを 確認します。 DASTのような 検出結果 (回帰の 特定など)を SASTツールのように ソースコードに 関連付ける ため、 ホワイトボックステストと ブラックボックステストを 組み合わせた 手法です。 ソフトウェア構成分析
(SCA) ツールは、 サードパーティの コード依存関係を 追跡する もので、 多くの オープンソースライブラリを 組み込む アプリに 役立ちます。 開発者は、 関連する アプリケーションの 各コンポーネントや それを 支える ライブラリ、 直接的・間接的な 依存関係を すべて 把握し、 脆弱性や 悪用の 可能性を 検出できます。 ファジングツールは、
アプリケーションに 不正または 予期しない 入力を 自動的に 与えて、 バグを 検出します。 ファジングは、 予期しない 動作や クラッシュ、 リソースリークを 引き起こす目的で アプリケーションに 過剰な 負荷を かける、 ブラックボックステストの 手法です。
モバイルアプリケーションセキュリティテストでよくある課題は何ですか?
モバイルアプリケーションセキュリティで
プラットフォームの
断片化とは、 アプリケーションが さまざまな OSや デバイスで 実行される ことです。 場合に よっては、 異なる プラットフォームだけでなく、 同じ OSの 異なる バージョンでも セキュリティテストが 必要です (サードパーティメーカーが 独自の OSバージョンを 提供する Androidでは、 特に 一般的です)。 言語の
サポート範囲も 課題に なることがあります。 組織が 利用する MASTツールセットが、 特定の 言語、 とりわけJava、Kotlin、Objective C、Swiftのような プラットフォーム非依存の 言語に 対応していない 場合です。 ハイブリッドモバイルアプリでは、 ネイティブ開発に 伴う セキュリティリスクに、 Webアプリケーションの リスクも 加わります。 DASTツールの
調達の 難しさも よく ある 課題です。 多くの テストフレームワークは、 モバイルアプリケーションセキュリティを 想定して 設計されていないためです。 こうした フレームワークは 改善されつつありますが、 モバイルDAST向けの 実環境データを 入手するのは、 今でも 困難な 場合が あります。 シミュレーションテストに
頼りが ちなのは、 手軽さから 開発者に よく 見られる 傾向ですが、 それだけでは 包括的な テストに なりません。 シミュレーションテストは 出発点と して 有効ですが、 ユーザー体験や 実際の 脆弱性シナリオを より 正確に 再現するには、 実機での テストが 重要です。
モバイルアプリケーションセキュリティテストのベストプラクティス
MASTの
MASTを
モバイルCI/CDパイプラインに 組み込むことで、シフトレフトセキュリティの メリットを 活用できます。 セキュリティ態勢や 統合の 改善に 加え、 スピード向上と コスト削減に も つながります。 確立された
セキュリティフレームワークを 活用しましょう。OWASPやMobile Security Testing Guideを 参照する ことで、 よく ある 問題を 見つけ、 セキュリティ専門家が すでに 行った 広範な 調査を 活用できます。 SAST、
DAST、 SCAなど、 複数の テスト手法を 使うことが 重要です。 前述の とおり、 テストごとに 対応する セキュリティ上の 問題や シナリオは 異なります。 モバイルアプリケーションを
継続的に テストすることで、 新たな 脆弱性を 特定できます。 アプリを 最初に 開発した ときに 安全だったからと いって、 今も 安全とは 限りません。 テストを
念頭に 置いて 開発するために、 開発プロセス中に コードや ウィジェットに 注釈を 付けておきましょう。 特に 動的テストなど、 後の テストを 管理しやすくなります。 適切な
自動スキャンツールを 選ぶ際は、補完的な 機能を 備えているか 確認しましょう。 CI/CDパイプラインに スムーズに 統合でき、 必要な モバイルアプリの プログラミング言語を カバーし、 誤検知を 抑えられる ツールを 選ぶことが 大切です。 モバイルアプリケーションの
バックエンドセキュリティも おろそかに しないようにしましょう。 フロントエンドが 安全でも、 接続先や 利用する データに脆弱性が 含まれていないことを 確認する 必要が あります。 多様な
デバイスで テストすることで、 端末ごとの コンポーネントの 違いに 対応できます。 プロセスを 効率化する ため、 自動化の 活用も 検討しましょう。
Mobile Security Testing Guideの
Snykでモバイルアプリケーションセキュリティテストを強化
MASTプロセスを
自動スキャンを