← 所有文章

AI惡意軟體分析需要證據包

Zane St. John買了一台便宜的Android投影機,發現可疑的DNS流量,並使用Claude Code作為逆向工程助手,檢查裝置預先安裝的應用程式。1

值得關注的不是AI代理協助了惡意軟體分析。這種說法很快就會變得稀鬆平常。真正有意思的是產出物的形態:觀察到的網路行為、套件名稱、反編譯後的程式碼路徑、指令輸出、筆記,以及可供人工檢視的指標。只有當代理的輸出不像答案,而更像一份案件檔案時,惡意軟體分析才值得信任。

AI惡意軟體分析需要證據包。代理可以加速解包、反編譯、搜尋、摘要與假設生成。但在信任結論之前,分析師仍然需要雜湊、工具版本、指令、擷取出的指標、來源路徑、不確定性標籤,以及主張與證據的對照軌跡。

重點摘要

Microsoft Research將Project Ire描述為一個自主惡意軟體分類代理,能對軟體進行逆向工程,並在驗證器判斷是否已有足夠依據支撐惡意軟體判定之前,先產生一條證據鏈。2 Zane的Android投影機調查,則在較小規模上呈現了相同模式:代理可以協助個別分析師處理APK、記錄、字串與可疑程式碼路徑。1

安全的產品啟示很明確:把AI惡意軟體分析師當作工作台,而不是權威。工作台可以擷取、整理並串連證據;但它不應接觸線上基礎設施、撰寫利用程式用戶端、在一般工作站上執行未知酬載,也不應取代人類對影響範圍的判斷。真正有用的產出,是審查者可以重現的證據包。

關鍵收穫

給安全團隊: - 要求代理提供證據包,而不是判定。 - 將樣本身分、指令記錄、工具版本、擷取出的指標與主張依據放在一起。 - 任何動態執行、網路連線或涉及憑證的分析,都必須先取得人工核准。

給代理建構者: - 惡意軟體分析工作流程預設採用唯讀靜態分析。 - 將擷取、假設、驗證與報告拆成不同步驟。 - 保留原始產物與來源位置,讓人類能稽核整條證據鏈。

給產品團隊: - 不要把「自主惡意軟體分析」包裝成魔法。 - 清楚呈現代理檢查了什麼、推論了什麼、尚未驗證什麼,以及哪些仍需人類決定。 - 先打造審查包,再打造戲劇化儀表板。

Android投影機案例證明了什麼

St. John的調查始於可觀察的行為:投影機在正常使用前就送出DNS請求。1這一點很重要,因為可疑來源來自裝置本身,而不是模型。代理是在分析師已經有值得追查的問題之後才進場。

接著,工作流程進入一般逆向工程會碰到的介面:

介面 為什麼重要
DNS觀察 顯示裝置在使用者要求前就開始通訊。
Android套件名稱 協助縮小哪些預裝應用程式值得檢查。
APK反編譯 將打包的程式碼轉成可搜尋、近似原始碼的輸出。
字串與端點 揭露設定、網路目的地與更新行為。
筆記與摘要 避免調查變成一堆零散的原始檔案。

文章提到常見的Android逆向工程工具,例如adbjadx1這些工具不會讓結論自動成真;它們讓產物變得可檢視。jadx自述為命令列與GUI反編譯器,可將Android Dex與APK檔案轉成Java原始碼,並能解碼Android資源。3Apktool自述為Android APK檔案逆向工程工具,涵蓋資訊清單、資源、smali與重建工作流程。4

代理的優勢位於中間地帶。它可以搜尋陌生套件、摘要程式碼、提出可能值得檢查的區域,並維護待辦清單。分析師仍須逐一對照原始產物驗證每項主張。

AI把逆向工程變成案件管理

傳統惡意軟體分析本來就會產出案件檔案。內容可能包含雜湊、樣本來源、字串、網域、IP位址、互斥鎖(mutex)、登錄機碼、檔案路徑、截圖、反組譯筆記、沙箱輸出,以及最終判定。

代理改變的是這項工作的速度與規模。它們能閱讀更多檔案、寫下更多筆記,並產生比單一分析師手動輸入更多的假設。若缺少更強的產出契約,這種速度會造成信任問題。自信的摘要可能掩蓋錯誤推論、漏看的分支,或幻覺生成的API名稱。

Microsoft的Project Ire指向更好的形態。Microsoft表示,該系統會自主分析與分類軟體,並為其發現建立證據鏈。2此設計包含逆向工程工具,以及檢查證據是否支撐判定的驗證器。2驗證器這個概念比品牌名稱更重要。惡意軟體分析需要一個獨立的證據裁判,而不只是能流暢敘述結論的旁白。

較小型的工作流程也應採用同樣切分:

步驟 代理角色 人工或政策關口
取得 記錄樣本來源與雜湊。 確認授權與隔離措施。
擷取 解包靜態產物。 核准工具鏈與樣本處理方式。
檢查 搜尋程式碼、資訊清單、字串與資源。 檢查來源位置。
假設 提出可疑行為與風險。 要求支撐證據。
驗證 將每項主張對應到產物。 拒絕缺乏依據的主張。
報告 撰寫指標與影響筆記。 決定處置與揭露方式。

代理可以做很多事。關口決定什麼值得相信。

Android有實用的靜態介面

Android惡意軟體分析有一項務實優勢:在任何人執行應用程式之前,APK就已暴露多種靜態介面。

Android安全文件列出風險類別,例如明文通訊、動態程式碼載入、不安全的廣播接收器、硬編碼祕密,以及與權限相關的錯誤。5MITRE ATT&CK for Mobile包含廣播接收器與在執行環境中下載新程式碼等技術,提供分析師一套詞彙,用於將觀察到的行為對應到攻擊者手法。6

因此,以靜態分析為先的證據包很有價值:

Android產物 應捕捉的證據
APK雜湊 SHA-256、來源、收集日期與檔名。
資訊清單 套件名稱、權限、服務、接收器、提供者、匯出元件與SDK目標。
反編譯程式碼 圍繞主張的檔案路徑、類別、方法,以及行號或符號。
資源 URL、網域、API路徑、設定值、憑證與資產。
原生函式庫 函式庫名稱、架構、匯出符號與解包筆記。
網路觀察 觀察到的網域或IP、時間戳記、工具,以及連線是被動或主動發生。
行為對應 只有在證據支撐時,才標記ATT&CK Mobile技術。
不確定性 代理未檢查或無法證明的事項。

這張表避開了一個重要錯誤:它沒有要求模型先判定「是不是惡意軟體」。它要求系統保留證據,讓之後的判定可以被審查。

證據包

有用的AI惡意軟體分析包應該有可預期的形態:

區段 必要內容
範圍 誰授權分析、檢查了哪個樣本或裝置,以及哪些動作被禁止。
樣本身分 雜湊、檔名、大小、時間戳記、來源路徑與保管鏈筆記。
工具鏈 工具名稱、版本、命令列與環境邊界。
靜態發現 資訊清單事實、套件名稱、可疑字串、端點、資源與程式碼位置。
動態發現 僅限已授權時:環境、網路隔離、記錄、截圖與觀察到的行為。
指標 網域、IP位址、套件名稱、檔案路徑、憑證資料與其他可觀察產物。
主張對照表 每個結論都配上支撐它的精確產物。
未驗證工作 尚未解包的樣本、尚未追蹤的程式碼路徑、尚未重現的網路行為與假設。
建議行動 封鎖、監控、移除、升級處理、揭露或繼續分析,並附可信度。

主張對照表是證據包的核心:

主張 證據 可信度
應用程式使用動態程式碼載入 反編譯程式碼路徑加上Android風險類別引用。 中等,直到動態行為被重現。
應用程式連線到可疑網域 被動DNS觀察加上字串或設定參照。 若兩個來源相符,則為高。
應用程式透過接收器維持持續性 資訊清單接收器加上處理開機或系統廣播的程式碼路徑。 除非在實驗室觀察到,否則為中等。
應用程式是惡意的 多個有依據的行為、脈絡與人工審查。 絕不能只根據模型摘要。

最後一列是在保護分析師。惡意軟體判定會帶來後果。誤報可能傷害供應商,或干擾事件應變。漏報則可能讓使用者暴露在風險中。模型不應繞過證據走捷徑。

代理應該拒絕什麼

即使目標是防禦,惡意軟體工作也需要拒絕邊界。

在以下情況發生前,代理應拒絕或要求明確人工授權:

  • 接觸線上命令與控制基礎設施;
  • 為疑似後門或更新程式撰寫用戶端;
  • 從攻擊者控制的基礎設施下載第二階段酬載;
  • 在隔離實驗室以外執行未知樣本;
  • 在分析期間使用真實使用者憑證、個人帳號或正式環境網路;
  • 在負責任揭露前,發布可能識別受害者的線上指標;
  • 將防禦調查轉成利用教學。

OpenAI的本機shell文件警告,允許代理執行任意shell指令可能很危險,並建議在將指令轉送到shell前,先使用沙箱或嚴格的允許與拒絕清單。7Anthropic的Claude Code最佳實務指南則強調代理工作的驗證標準與脈絡管理。8惡意軟體分析兩者都需要:行動前要有指令限制,相信前要有證據限制。

拒絕邊界應該直接出現在任務中:

Analyze this APK statically.
Do not execute it.
Do not contact remote infrastructure.
Do not write exploit or client code.
Return only evidence with file paths, commands, and confidence labels.
Mark every unsupported claim as unverified.

這類指令本身不會讓工作流程安全。它提供了具體內容,讓掛鉤、沙箱與審查者能夠執行與核對。

人類仍然擁有判定權

AI代理可以在惡意軟體分析工作階段中省下數小時。它能把一堆APK整理成可疑套件的短清單;能摘要類別、解包intent filter、識別設定字串,並產生報告草稿。這些收益很重要。

但代理不應擁有最終判定權。

分析師負責:

  • 授權分析樣本;
  • 決定是否動態執行任何內容;
  • 解讀意圖與影響;
  • 與受影響的供應商、使用者或平台溝通;
  • 做出修復與揭露決策;
  • 決定報告中的最終措辭。

這種分工讓代理保持有用。模型處理耗力的串連工作;人類保留倫理、法律與脈絡責任。

如何建立工作流程

從小型靜態分析循環開始:

  1. 對樣本產生雜湊,並記錄其來源。
  2. 將資訊清單、資源、字串與反編譯程式碼擷取到唯讀工作資料夾。
  3. 要求代理建立附來源位置的發現清單。
  4. 要求第二輪檢查挑戰每項發現,並標記缺乏支撐的主張。
  5. 建立證據包。
  6. 決定此證據包是否足以支持進一步的動態實驗室分析。

代理提示應要求結構化輸出:

For every finding, include:
- claim
- artifact path
- command that produced the artifact
- source excerpt or symbol
- confidence
- what would falsify the claim
- whether dynamic analysis is required

這種輸出不如「這台投影機有惡意軟體」聽起來刺激,卻有用得多。

證據關口可以直接套用。沒有證據的主張,不應進入最終答案。審查包才是新的最終答案也同樣適用:交付物不是文字摘要,而是能讓另一個人驗證工作的資料包。

FAQ

AI代理可以做惡意軟體分析嗎?

可以,但有界限。代理可以協助靜態分析、摘要、反編譯導覽、指標擷取與報告草稿。不過,若沒有可重現證據與人工審查,它們不應成為惡意軟體判定的最終權威。

在惡意軟體上使用Claude Code或Codex安全嗎?

只有在受控的防禦工作流程中才安全。不要在一般工作站上執行未知樣本,不要接觸線上基礎設施,也不要提供代理憑證或不受限制的shell/網路存取權。較安全的起點,是在隔離工作資料夾中進行靜態分析。

惡意軟體分析證據包應包含什麼?

至少應包含:雜湊、樣本來源、工具版本、指令、資訊清單事實、擷取出的指標、程式碼位置、主張與證據的對照表、可信度標籤,以及未驗證工作清單。

AI判定算是證據嗎?

不算。模型陳述是一種解讀。證據來自產物:雜湊、記錄、指令、程式碼路徑、資訊清單、觀察到的網路行為,以及可重現的分析步驟。

代理應該把發現對應到MITRE ATT&CK嗎?

應該,但前提是證據支撐這個對應。沒有產物支撐的技術標籤,只是裝飾。請把ATT&CK Mobile當作詞彙表,而不是證明的替代品。6

結語

AI不會把分析師從惡意軟體分析中移除。它改變的是分析師應該要求什麼。

薄弱的產出,是自信的判定。強健的產出,是可重現的證據包:樣本身分、指令、產物、指標、主張依據、不確定性與下一步行動。

代理可以讓逆向工程更快。證據包讓它值得信任。


參考資料


  1. Zane St. John, “Reverse Engineering Android Malware with Claude Code,” published February 5, 2026. Android投影機案例、可疑DNS起點、adbjadx使用、Claude Code輔助APK檢查,以及防禦性逆向工程工作流程形態的來源。 

  2. Microsoft Research, “Project Ire: Autonomously Identifying Malware at Scale,” published August 2025. Project Ire自主逆向工程框架、證據鏈設計、工具使用與驗證器階段的來源。 

  3. jadx project, “jadx README,” GitHub repository documentation, accessed May 18, 2026. jadx作為Dex轉Java反編譯器的用途、命令列與GUI使用方式,以及Android APK/資源支援的來源。 

  4. Apktool, “Apktool,” official documentation, accessed May 18, 2026. Apktool自述作為Android APK檔案逆向工程工具,以及其資訊清單/資源/smali解碼工作流程的來源。 

  5. Android Developers, “Mitigate Security Risks in Your App,” accessed May 18, 2026. Android風險類別的來源,包括明文通訊、動態程式碼載入、硬編碼祕密與不安全的廣播接收器。 

  6. MITRE ATT&CK, “Mobile Matrix,” accessed May 18, 2026. ATT&CK Mobile技術詞彙的來源,包括廣播接收器與在執行環境中下載新程式碼。 

  7. OpenAI, “Local shell,” OpenAI API documentation, accessed May 18, 2026. 本機shell風險框架,以及代理執行shell指令前應使用沙箱或允許/拒絕清單指引的來源。 

  8. Anthropic, “Best Practices for Claude Code,” Claude Code documentation, accessed May 18, 2026. 脈絡視窗、驗證標準與CLI工具工作流程指引的來源,本文用於代理分析框架。 

相關文章

Fork Bomb 拯救了我們

LiteLLM 的攻擊者犯了一個實作錯誤。正是這個錯誤,讓 47,000 次安裝在 46 分鐘內被發現。

1 分鐘閱讀

開放原始碼不是安全邊界

GDS關於AI弱點發現的指引,正確掌握了開放原始碼安全的核心:預設保持開放、加快修補,並以證據明確列出例外。

1 分鐘閱讀

Ralph 迴圈:我如何在夜間運行自主 AI 代理

我建構了一套自主代理系統,搭配停止鉤子、生成預算與檔案系統記憶體。以下是失敗經驗與真正能交付程式碼的方法。

3 分鐘閱讀