GitHub Security Labは、オープンソースのAIセキュリティエージェントを活用し、Androidアプリケーションで24件の脆弱性を特定したことを明らかにしました。中には、位置情報の秘密裏な追跡やアカウント乗っ取りを可能にする欠陥も含まれています。
この成果は、目的を絞ったAIのタスクフローによって、複雑なモバイル向けロジックの脆弱性を発見できることを示しています。ただしGitHubは、すべての結果を人間の研究者が検証する必要があると注意を促しています。
研究者のKevin Stubbings氏が使用したのは、GitHub Security Lab Taskflow Agentです。これは、AIを活用したセキュリティ調査のワークフローを自動化・パッケージ化・共有するために設計された、オープンソースのフレームワークです。
Android向けのワークフローは、汎用的なプロンプトに頼るのではなく、より絞り込んだタスクを通じて大規模言語モデル(LLM)を誘導します。たとえば、攻撃者が制御可能なモバイルのエントリポイントの特定や、Android固有の脆弱性パターンの評価といったタスクです。
このワークフローはまず、モバイル、Web、デスクトップのコンポーネントが混在するリポジトリで、モバイルのエントリポイントをそれ以外から切り分けます。次に、モデルにAndroidの攻撃対象領域を調べさせます。対象は、エクスポートされたアクティビティ、インテント、ディープリンク、confused deputy(混乱した代理人)の状態、安全でないブロードキャスト、WebViewの問題、JavaScriptブリッジなどです。
この段階的な手法により、モデルは関連するアプリケーションコンポーネント同士を結び付け、危険そうに見えるコードを単に指摘するだけでなく、悪用され得るデータフローについて推論できるようになります。
注目すべき発見の一つが、Playストアでのダウンロード数が1,000万件を超えるナビゲーションアプリ「OsmAnd」に影響するものです。GitHubによると、エクスポートされたMapActivityが、本来は内部のAIDLサービス経由で渡されるはずのインテントエクストラを、攻撃者の制御下で受け付けてしまう可能性がありました。
報告によると、権限を持たない悪意あるアプリが、設定のインポートを無通知で実行し、既存の設定を置き換え、アプリのタイルソースURLを改変できます。
攻撃者は、地図タイルのリクエストを自身の管理するサーバーに向け直し、一見正規に見える地図画像を返すことで、被害者の端末が要求したタイル座標を記録できます。
この座標からは、ユーザーの位置情報が割り出せます。状況によっては出発地と目的地を含む経路情報も再構築でき、しかもOsmAndの画面上に目立った変化は現れません。
影響の大きい2件目の問題は、WikipediaのAndroidアプリに存在しました。このアプリのwikipedia://ディープリンクハンドラーは、信頼するドメインを厳密に検証せず、endsWith()によるホスト名の末尾チェックを使っていました。
そのため、evil-wikipedia.orgのようなよく似たドメインでもチェックを通過し、アプリのWebView内に読み込ませることが可能でした。
この結果、Wikipedia、Commons、Wikidata、Metaを含むWikimediaの各サービスで、アカウント乗っ取りが起こり得る状態になっていました。
今回の調査は、アプリケーションセキュリティのテストにおけるAIの限界も浮き彫りにしています。GitHubは、モデルが影響の小さい問題を見つけたり、深刻度を過大評価したりすると説明しています。緩和策を見落としたり、実行時の挙動を理解できなかったりした場合には、誤検知を生むこともあるといいます。
そのため研究者は、結果を検証し、概念実証(PoC)のエクスプロイトを開発し、見つかった欠陥が実際に到達可能で影響があるかどうかを評価する必要があります。
GitHubは、このタスクフローをseclab-taskflow-agentプロジェクトを通じて公開しています。Android監査を実行するには、GitHub Copilotのライセンスが必要です。プレミアムモデルのリクエストを消費し、中規模のリポジトリでは1〜2時間かかる場合があります。
脅威調査を効率化し、手作業を減らすため、1万6,000以上のSOCチームがANY.RUNを利用しています。チームで試してみる
翻訳元: https://cyberpress.org/github-ai-security-agent-finds-24-android-vulnerabilities/