検出 (Detection)
Ostorlabのスキャン機能は、アタックサーフェスの高いカバレッジを実現する静的分析と、誤検知のないレポートを生成する動的分析を使用しています。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などの大規模なライブラリセットを特定します。
フィンガープリントは、既知の脆弱性データベースと照合されます。データベースには、公に報告されている脆弱性と、公開ソースコードリポジトリを分析することによって特定された未報告の脆弱性のリストの両方が含まれています。
脆弱性データベースにはVulnDBメニューからアクセスでき、日付、名前、バージョンでエントリを検索するために使用できます。
ハードコードされたシークレット (Hardcoded Secrets)
静的エンジンは、モバイルアプリケーションにデプロイされるべきではないAPIキー (API Keys) などのハードコードされたシークレットや、パスワード、トークン、暗号化キー、および初期化ベクトル(IV)を検索します。
特定されたシークレットは、アクセス可能な権限、ロール、およびサービスをチェックすることで、検証と影響度がテストされます。
テイント分析 (Taint Analysis)
Ostorlabの中核となる静的テクノロジーは、テイント(汚染データ)が複数の可能な実行経路にわたってどのように伝播するかを計算するテイント分析エンジンです。Ostorlabの静的テイントエンジンは、オブジェクト指向情報と型情報を考慮に入れて、高速かつ効率的で、誤検知がほぼないテイント情報を提供します。その後、数十のルールがテイント情報を使用して、SQLインジェクション、コマンドインジェクション、またはハードコードされたキーの使用などの脆弱性を特定します。

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