- セキュリティとプライバシー
- セキュリティ
- 検出
検出 (Detection)
Ostorlabの静的分析は、設定チェック、サードパーティの依存関係のフィンガープリント、ハードコードされたシークレットの検出、テイント分析を実行し、動的分析は計装されたサンドボックスでアプリを実行して、ネットワーク、ファイルシステム、キーチェーン、APIとのやり取りを追跡します。Ostorlabは、サーバー側の脆弱性を特定するために、動的分析中に収集されたシステムのバックエンドを対象としています。
静的分析 (Static Analysis)
Ostorlabの静的分析は、複数の手法を使用して脆弱性を特定します:
設定チェック (Configuration Checks)
安全でない設定のための設定チェックです。これらの設定には、AndroidManifest.xmlのデバッグモードやバックアップモードなどのAndroidおよびiOSネイティブパラメータや、Cordovaのホワイトリスト(whitelist)やデバッグモードなどのCordovaフレームワークのパラメータが含まれます。
チェックの完全なリストについては、ナレッジデータベースのセクションを参照してください。
サードパーティの依存関係 (3rd Party Dependencies)
サードパーティの依存関係チェックは、ネイティブAndroid、iOS CocoaPods、Cordovaプラグイン、Xamarin DLLなど、サポートされているフレームワーク全体にわたるアプリケーションの依存関係をフィンガープリント化します。
サードパーティの依存関係は、静的にコンパイルされた依存関係もフィンガープリント化し、OpenSSL、Zlib、Libjpeg、Libpng、Xercesなどの大規模なライブラリセットを特定します。
フィンガープリントは、既知の脆弱性データベースと照合されます。データベースには、公に報告されている脆弱性と、公開ソースコードリポジトリを分析することによって特定された未報告の脆弱性のリストの両方が含まれています。
ハードコードされたシークレット (Hardcoded Secrets)
静的エンジンは、モバイルアプリケーションにデプロイされるべきではないAPIキー (API Keys) などのハードコードされたシークレットや、パスワード、トークン、暗号化キー、および初期化ベクトル(IV)を検索します。
特定されたシークレットは、アクセス可能な権限、ロール、およびサービスをチェックすることで、検証と影響度がテストされます。
テイント分析 (Taint Analysis)
Ostorlabの中核となる静的テクノロジーはテイント分析エンジンであり、オブジェクト指向情報と型情報を考慮に入れながら、テイント(汚染データ)が複数の可能な実行経路にわたってどのように伝播するかを追跡します。その後、数十のルールがそのテイント情報を使用して、SQLインジェクション、コマンドインジェクション、またはハードコードされたキーの使用などの脆弱性を特定します。

動的分析 (Dynamic Analysis)
Ostorlabは、ネットワーク、ファイルシステム、キーチェーン (keychain)、APIなど、外部環境とのインタラクションを追跡するために、計装されたサンドボックス内でモバイルアプリケーションを実行します。
計装エンジンは、標準APIへの呼び出しを追跡し、弱い暗号化スキーム、安全でないRPC呼び出し、信頼できないパスからのコード読み込み、ユーザー入力によるコマンド実行など、安全でない引数を特定します。
Ostorlabの計装は、暗号化されたトラフィックを含むアプリのネットワークトラフィックを収集します。ただし、一部のアプリではTLSピニング(TLS pinning)によってトラフィックの傍受が妨げられる場合があります。モバイル スキャンの前提条件を参照してください。収集されたバックエンドは、バックエンド分析を実行するために再利用されます。
動的計装は、ファイルシステムアクセス用のFanotifyのようなシステム計装手法と、AndroidおよびiOS用のJDWPとデバッグAPIを使用するカスタムの非侵襲的ランタイム計装エンジンの両方を使用します。
カスタムメモリ操作を必要とするインラインフッキング(inline hooking)などの侵襲的手法と比較して、このアプローチは、Objective CおよびSwiftを使用して構築されたiOSアプリケーションを含め、JDWPとデバッグAPIを通じてランタイム情報を収集し、システムの新リリースによって基盤となるシステムランタイムが変更された際に必要なメンテナンスも少なくて済みます。
バックエンド (Backend)
Ostorlabは、サーバー側の脆弱性を特定するために、動的分析中に収集されたバックエンドをターゲットにします。この分析には、安全でないHTTPヘッダーの存在の検出のようなパッシブ(受動的)なものと、SQLインジェクションやXXEの検出のようなアクティブ(能動的)なものの両方があります。
Ostorlabは、Chromeベースの動的テストと強力なポリグロット・ペイロードを備えた高度なクロスサイトスクリプティング(XSS)スキャナーエージェントを使用しています。スキャナーはまた、微妙なXSSベクターの検出を合理化するために、Webアプリケーションの事前プロファイリングにJavaScriptプロキシオブジェクトの計装を統合するなどの手法を使用しています。
Ostorlabのアクティブテストは、脆弱性を特定するために確率的アプローチを使用しています。このアプローチには、ブロックされたり、特定のOSに限定されたり、バックエンドの安定性に影響を与えたり、侵入検知システムやアプリケーションファイアウォールをトリガーしたりする可能性のある完全なペイロードを送信する必要がないという利点があります。
さらに、Ostorlabは、CISA KEV、GoogleのTsunami、およびOstorlabの革新的なAsteroidプロジェクトなどの信頼できるプラットフォームから提供される、クリティカルで、深刻度が高く、活発に悪用可能な脆弱性の検出を自動化します。
Ostorlabのバックエンド分析エンジンは、大規模なシリアル化スキームのセットをサポートし、ネストされたシリアル化インジェクションをサポートしています。
確率的テストと安全なレート制限 (rate-limiting) の組み合わせにより、バックエンドシステムを予期しない障害や望ましくないサービス拒否(DoS)から保護します。