当社のAIエンジンNeutronが、UCバークレーのCyberGymベンチマークで96.75%のスコアを記録しました。 詳細を見る

エンジニアリング

エンジニアリング

DAST(動的解析)はどのように機能するのか

動的解析

Ostorlabは動的解析を用いてモバイルアプリケーションを評価し、実行時に脆弱性を確認します。これにより誤検知(フォールスポジティブ)が大幅に減少します。

動的解析では、実際のAndroidまたはiOS端末上でアプリケーションを実行し、アプリケーションとさまざまなOSコンポーネントとのやり取りを監視して、安全でない挙動や潜在的に危険な挙動を検出します。

動的解析に使用する端末は実機のスマートフォンとタブレットで、さまざまなアーキテクチャ向けに異なるOSバージョンを搭載しています。

インストールフェーズでは、iOSアプリケーション(.ipa)はインストール前に再署名と計装が行われます。Androidアプリケーションは一切変更を加えずにそのままインストールされます。

アプリケーションがインストールされると、計装エンジンがフックされ、脆弱な挙動を検出するために膨大な数のAPI呼び出しのインターセプトを開始します。対象には暗号API、キーチェーン、ネットワーク、ファイルシステム、SQLなどが含まれます。

モンキーUIファザーがランダムな操作をエミュレートしてアプリケーションのカバレッジを高めようとします。同時に、別の端末には別のインスタンスがインストールされ、そこでは人間のオペレーターが、複数のステップを必要とする複雑な操作や、メール登録の確認やSMS認証コードの入力といった外部システムとのやり取りをエミュレートします。目的はアプリケーションコードのカバレッジを高めることです。

解析ステップでは、ファイルシステム、ネットワーク、API呼び出しが収集され、脆弱な暗号方式の使用などの脆弱性がないかパッシブにチェックされるとともに、アクティブテストを実施するために他のシステムへも送られます。

代替テキスト
Selection_021

アクティブテストでは、アプリケーションのすべてのエントリーポイントが収集され、ファジングされます。対象にはコンテンツプロバイダー、ブロードキャストレシーバー、URIハンドラーなどが含まれます。

このステップではバックエンドシステムも収集され、SQLインジェクション、コマンドインジェクション、クロスサイトスクリプティング(XSS)などの脆弱性がないかスキャンされます。

収集されたものの一部は、ネットワークログやスクリーンショットなど、アーティファクトとしてスキャン結果にエクスポートされます。

代替テキスト
Selection_021

当初、Ostorlabはすべての動的テストをジェイルブレイク済みおよびroot化済みの端末で実行していましたが、これは不要であり、場合によっては問題があることがわかりました。堅牢で高速な計装エンジンを使用すれば必要な情報をすべて収集できますが、そのためにはネイティブのCレベルAPIに加え、Cordovaの場合のJavaScriptやXamarinの場合のCLIといったプラットフォーム固有のAPIのフックをサポートする必要があります。