南京大学とシドニー大学の2人の学術研究者が、Androidアプリケーションの脆弱性発見と検証のためにAIを活用したフレームワークを開発しました。
A2と呼ばれるこのシステムは、人間の専門家による分析および検証活動を模倣し、まずアプリケーションのセキュリティについて推論し、その後、各潜在的な欠陥を悪用試行によって検証します。
Agentic Vulnerability Discovery(エージェンティック脆弱性発見)フェーズでは、セマンティックなコード理解と従来のセキュリティツールを組み合わせて脆弱性の仮説を作成します。次のAgentic Vulnerability Validation(エージェンティック脆弱性検証)フェーズでは、各仮説を検証するための攻撃計画、実行、検証が行われます。
研究の一環として、研究者たちは、AndroidアプリケーションのAPKをリバースエンジニアリングし、実行時の挙動を観察し、Androidのインタラクションチャネルを通じて入力を注入できる脅威アクターを想定しました。
「彼らはAndroidプラットフォーム、カーネル、またはハードウェアを制御しません。root化されたデバイス、カスタムファームウェア、またはハードウェアサイドチャネルを必要とする攻撃は対象外です。攻撃者は、開発者や安全でないライブラリの利用によって導入されたアプリケーション層の脆弱性に注目します」と、研究論文(PDF)で述べています。
APKが入力されると、A2はLLM(大規模言語モデル)を使ってコードを分析し、推測的な脆弱性発見を生成します。また、静的アプリケーションセキュリティテスト(SAST)ツールからの警告も利用して追加の発見を生成し、すべての発見をアグリゲーターで統合します。
次のフェーズでは、各発見がPoCプランナーに渡され、タスクと期待される結果が生成されます。各タスクは実行され、バリデーターが結果を検証し、反復的に精緻化します。脆弱性が正常に検証されるか、再試行回数の上限に達するまで続きます。
分析フェーズでは、A2はAPKのコードをデコンパイルし、サードパーティライブラリを除外してマニフェストの詳細を抽出し、コードとマニフェストデータを処理します。また、サードパーティツールと統合されている場合は、多様な出力を標準化して下流処理のために集約できるようにします。
次に、PoCプランナーは各バグの特性を分析し、検証計画を立てて誤検知を排除し、タスクをエグゼキューターに割り当てます。エグゼキューターは「コード実行、デバイス制御、ファイルシステム、静的解析、UI操作、ログ解析、APK生成、Webサーバ管理」などの検証ステップを実行すると研究者は説明しています。
最終的に、バリデーターは各PoCの結果を独立して検証し、タスクエグゼキューターの成功報告をそのまま受け入れません。代わりに、自身の観察に基づいて期待される結果が生じたかどうかを検証します。
実行に失敗した場合やバリデーターが成功を拒否した場合、フィードバックがPoCプランナーに送られ、戦略が修正されて再試行されます。すべてのタスクが検証に合格するとプロセスは終了します。
研究者らはGeminiを用いて82件の推測的な脆弱性発見を行いましたが、そのうち19件を除外しました。残り63件のうち、56件は完全なPoCコードで検証された真の脆弱性でした。
O3、Gemini、ChatGPTにおけるA2の計算コストと効率を調査したところ、検出のみのコストはAPKあたり1ドル未満であり、完全な検証パイプラインのコストはGeminiで脆弱性1件あたり最大26.85ドル(中央値8.94ドル)に達する可能性があると研究者は推定しています。
研究者らは160個のAPKからなる実データセットでこのフレームワークをテストしました。検出フェーズで報告された136件の推測的脆弱性のうち、60件が悪用可能なセキュリティ欠陥として検証され、29件が誤検知と判定されました。また、検証範囲外のバグも特定されました。
手動レビューの結果、検証された60件のバグのうち誤検知は3件のみでした。残りの57件は暗号、アクセス制御、入力検証の欠陥であり、責任を持って開示されました。
研究者によると、A2は既存ツールよりも高いカバレッジを達成しており、Android向けの自動化セキュリティ分析に向けた前進ですが、範囲、LLMの推論の信頼性、コンテキストに関する複数の制限が依然として存在します。
関連記事: Androidで悪用された2件の脆弱性が修正
関連記事: その他のニュース:イラン船舶のハッキング、認証済みAndroid開発者、攻撃に使われるAI