GitHub Security Lab 以一套開源 AI 代理找出並回報了 24 個 Android 應用程式漏洞,而這套工具任何開發者都能直接對準自己的儲存庫執行。研究員 Kevin Stubbings 在 GitHub 部落格的一篇文章中說明了整個過程,並逐一拆解兩項已揭露的發現:導航軟體 OsmAnd 的無聲定位外洩,以及 Wikipedia Android 版的一鍵帳號接管。
重點摘要
- 研究團隊以自建的工作流程搭配 GitHub Security Lab 的開源 Taskflow Agent,找出並回報了 24 個 Android 漏洞。
- OsmAnd 在 Play 商店的下載數超過 1,000 萬次,其中一個對外開放的 activity 讓裝置上任何已安裝的應用程式都能改寫地圖設定,並把使用者的圖磚座標與路線送往攻擊者的伺服器。
- 模型找漏洞的本事遠勝於評分:它持續產出低嚴重度的雜訊與誤判,最後只能靠人工審查攔下。
工作流程如何為 Android 調校
代理本身是通用的,價值落在提示詞上。Stubbings 新增了一個工作流程 gather_mobile_entry_point_info.yaml,把進入點分成行動端與非行動端兩類,讓同時放著手機軟體、網頁伺服器與桌面用戶端的儲存庫,不會害模型一路對著錯誤的攻擊面推理。
接著他改寫 classify_application_local.yaml,直接點名漏洞類別,例如混淆代理人問題與不安全的廣播,而不是指望模型自己想起來。由於模型輸出並非確定性的,嚴格版提示詞會與較寬鬆的版本並行反覆執行:窄的那版抓明顯的,寬的那版找意料之外的。
OsmAnd 的缺陷讓人做到什麼
24 份回報中有 3 份落在 OsmAnd,其中最嚴重的一件讀起來更像架構問題,而非寫錯一行程式。
- 負責處理深層連結與設定匯入的畫面
MapActivity對外開放,裝置上任何其他應用程式都能觸及。 - 它的匯入路徑會讀取
silent_import、replace、export_type_list_key等 intent 額外參數,而開發者原本預期這些只會經由行程內的 AIDL 通道傳入。Android 並未提供任何方式,限制外部呼叫端能夾帶哪些額外參數。 - 因此,一個不需要權限的應用程式就能在沒有通知、也沒有確認的情況下寫入設定,包括 OsmAnd 用來組出地圖圖磚網址的樣板。
- 只要把樣板指向攻擊者的主機,每一塊載入圖磚的座標與每一條規劃的路線都會外流;同時伺服器會代轉真正的 OpenStreetMap 圖資,地圖看起來完全沒被動過。
這裡沒有記憶體安全錯誤,也沒有異常的裝置設定。這正是靜態分析工具鮮少標記、審查者也鮮少有時間從頭追到尾的那類邏輯缺陷。
信錯字串的深層連結檢查
Wikipedia 這一件的結局是點一個連結就被接管帳號,起因則是一次字串比對:它的深層連結處理程式用 endsWith 去比對網址的 authority 與基準網域,而不是要求相符。於是一個指向 evil-wikipedia.org 這類相似網域的 wikipedia:// 連結通過了檢查,在軟體的 WebView 內被渲染,讓攻擊者的 JavaScript 在軟體視為自家的環境中執行。
Cookie 管理器裡的第二道檢查重蹈覆轍,使該頁面得以讀取在所有 Wikimedia 服務上都有效的工作階段 Cookie。
模型不足之處
Stubbings 對弱點說得直白:嚴重程度的評估。就算被告知不要,模型仍不斷回報影響有限的問題;遇到有緩解因素抵銷攻擊時,它也會誤判實際影響——如果軟體對同一批資料優先使用內部儲存空間,那麼一個通往外部儲存空間的路徑穿越就毫無價值。強迫它產出可運作的概念驗證,能讓部分這類情況現形,代價是在可能無關緊要的漏洞上多跑幾輪。
作為補償的長處是 API 知識:模型能穩定分辨與安全相關的函式行為差異,例如 Go 的 path.Clean 與 filepath.Clean,而且多數自動產生的概念驗證幾乎不必修改。正如 Help Net Security 的歸納,每一項發現仍需要一名懂行動應用程式的審查者把關。
在自己的專案上執行
這些工作流程放在 seclab-taskflows 儲存庫,可直接在 Codespace 啟動;執行 ./scripts/audit/run_mobile.sh myorg/myrepo 便會展開稽核,中型程式庫約需一到兩小時,並把標記出的項目寫入 SQLite 的 has_vulnerability 欄位。它需要 Copilot 授權,會消耗進階模型請求額度,GitHub 也提醒這筆 token 帳單並不便宜。這也是本站從另一端報導過的趨勢的建設性對照:攻擊者讓代理不斷改寫惡意程式,直到掃描工具再也抓不到。
FAQ 常見問題
GitHub 的 AI 資安代理可以免費使用嗎?
Taskflow Agent 與範例工作流程都是開源的,但實際執行並不免費。它需要 GitHub Copilot 授權,而單次稽核會發出大量進階模型請求,GitHub 明確指出這在較大的儲存庫上是一筆有感的成本。
OsmAnd 與 Wikipedia 的漏洞已經揭露了嗎?
都已揭露。兩件都經由正常流程回報,並在揭露之後才公開說明。24 項發現中的其餘部分,GitHub Security Lab 會在每一件釋出時刊登於其資安公告頁面。
AI 代理能取代人類資安審查者嗎?
就這些證據看,不能。該代理產出了有用的線索與可運作的概念驗證,卻過度回報低嚴重度問題,並在有緩解因素時錯估影響,因此仍須由熟悉該平台的研究者逐項驗證。






