資安調查與鑑識 / FIELD NOTE

Autoruns 不是病毒掃描器:從 Windows 自動啟動項目追查可疑程式

電腦變慢不等於中毒,Autoruns 顯示的也不是病毒名單。本篇延伸 RuleArena 實作影片,整理從降低雜訊、判讀簽章與 VirusTotal,到回查登錄與實際檔案的完整調查流程,並附上可直接使用的 AI 分析 Prompt。

Autoruns 不是病毒掃描器:從 Windows 自動啟動項目追查可疑程式封面

電腦變慢、登入後風扇突然加速,或工作管理員出現一串陌生名稱,都只能算是「值得確認的現象」,不能直接推論電腦已經中毒。

Autoruns 的價值,是把 Windows 分散在登錄、排程工作、服務、驅動程式與其他位置的自動啟動設定集中顯示。它能幫助調查者縮小範圍,卻不會替我們完成最後的惡意判定。

先講結論:Autoruns 是入口地圖,不是病毒名單

Autoruns 顯示的是「Windows 被設定成會自動載入什麼」,不是「哪些檔案一定有毒」。正常軟體、更新程式、企業代理程式、硬體驅動與真正需要調查的項目,都可能同時出現在畫面中。

看到以下情況,都不能單獨下結論:

  • 黃色的 File not found:只代表設定指向的檔案目前找不到。
  • Publisher 顯示 Not Verified:代表簽章未被驗證,不等於惡意。
  • 檔案位於 AppData:使用者可寫入路徑值得提高注意,但許多正常軟體也會使用。
  • VirusTotal 顯示 Error:代表這次沒有取得結果,不是偵測到惡意程式。
  • VirusTotal 顯示 0/N:代表目前沒有引擎回報,不代表檔案未來也一定安全。
  • 少數引擎回報偵測:可能是有效訊號,也可能是誤報,仍需搭配來源、簽章與行為確認。

穩健的作法,是把 Autoruns 當成調查入口,再沿著「啟動設定 → 實際檔案 → 執行證據 → 後續行為」逐步驗證。

Autoruns 到底看了哪些地方?

Microsoft 將 Autoruns 定位為涵蓋大量 auto-start locations 的工具。它不只檢查 Startup folder 與 Run、RunOnce,還包含 Explorer add-ons、Winlogon、Services、Drivers、Scheduled Tasks、WMI 等位置。

初次調查可以先理解四個最常用的分頁。

Logon:使用者登入後會啟動什麼

Logon 會集中顯示使用者登入時可能被執行的項目。Windows 官方文件指出,Run 會在每次登入時執行,RunOnce 則通常只執行一次後移除。

調查時先問:設定屬於目前使用者還是整台電腦?Image Path 指向哪個目錄?檔名與 Publisher 是否符合已知軟體?這個項目是近期新增還是長期存在?

Scheduled Tasks:什麼條件會觸發執行

排程工作不一定只看固定時間,也可能在登入、開機或其他事件發生時觸發。不要只看工作名稱,還要回到原始排程設定確認 trigger、action 與執行帳號。

Services:哪些程式在背景常駐

服務常跟著系統啟動,且可能使用較高權限。需要一起確認服務名稱、Image Path、啟動類型、執行帳號與檔案簽章。

Drivers:哪些元件會進入更底層的位置

Drivers 靠近系統底層,但 Autoruns 裡大量驅動項目本來就是正常現象。黃色 File not found 可能來自軟體移除後留下的設定,也可能需要進一步確認;顏色本身不是惡意判定。

開始掃描前,先保留調查邊界

如果是公司設備、客戶設備或正在處理的事件,先遵守組織的事件回應流程。建議在變更任何項目前先留下:

  • 主機名稱、使用者與調查時間。
  • Autoruns 畫面或原始輸出。
  • Entry、Image Path、Publisher、時間戳與 VirusTotal 欄位。
  • Jump to Entry 所在的登錄或檔案系統位置。
  • Jump to Image 對應的實際檔案資訊。
  • 已執行與尚未執行的確認動作。

第一步:降低雜訊,但不要把篩選當成信任

使用系統管理員權限執行 Autoruns,可以減少部分系統位置因權限不足而無法讀取的情況。接著可在 Scan Options 開啟 Verify Code Signatures,並視組織政策決定是否查詢 VirusTotal。

Hide Windows Entries 與 Hide Microsoft Entries 能把大量已知項目暫時移出畫面,讓第三方項目更容易被看見。但這只是篩選:

  • 被隱藏不等於百分之百安全。
  • 沒被隱藏不等於可疑。
  • 有有效 Microsoft 簽章也不代表整條執行鏈都可信。
  • 沒有簽章可能只是開發者未簽署,仍需其他證據。

篩選的目標不是得到「安全清單」,而是讓有限時間先用在最值得確認的項目。

第二步:把四條線索放在一起看

1. 啟動入口

先確認它出現在 Logon、Scheduled Tasks、Services、Drivers,還是其他分頁。不同入口代表不同觸發方式、權限與調查方向。

2. 檔案路徑

優先確認是否位於使用者可寫入目錄、資料夾與檔名是否模仿系統元件、路徑是否包含異常引號或參數,以及同一個檔案是否被多個入口引用。「AppData」或「Temp」不是惡意結論,而是提高調查優先順序的上下文。

3. Publisher 與數位簽章

Not Verified 只表示目前未驗證成功;有效簽章也不能取代檔案來源與行為分析。Autoruns 顯示的 Publisher 應再和檔案內容裡的 Digital Signatures 交叉確認。

4. VirusTotal 結果

Autoruns 可以使用檔案雜湊查詢 VirusTotal。Microsoft 的命令列說明也區分了 hash query 與 unknown file submission;是否上傳未知檔案是另一個決策。

VirusTotal 官方說明指出,一般提交的檔案與報告可能會和安全合作夥伴及社群分享。因此,公司程式、客戶檔案或任何敏感內容都不應在未經核准時上傳。

若只想查詢既有結果:

  • 在 GUI 不要勾選 Submit Unknown Images。
  • 在 Autorunsc 不要因為想取得更多結果就直接使用會上傳未知檔案的參數。
  • 若檔案沒有既有報告,將結果記為 unknown,改走組織核准的分析流程。

第三步:回到原始設定與檔案

使用 Jump to Entry

Jump to Entry 會帶回該自動啟動設定所在的登錄或檔案系統位置。確認 Autoruns 顯示的 Entry 是否和原始設定一致、實際 command line 是否包含參數、登錄路徑屬於 HKCU 還是 HKLM,以及排程工作或服務實際使用哪個帳號執行。

使用 Jump to Image

Jump to Image 會定位到被執行的檔案。接著可以保留完整路徑、檔案大小與時間戳、SHA-256、版本資訊、數位簽章、檔案擁有者與必要的權限資訊。

再確認是否真的執行

Autoruns 證明的是「存在自動啟動設定」,不一定證明該程式已成功執行。執行證據可能來自程式自己的 log、Windows Event Logs、EDR process telemetry、Prefetch、Amcache 或其他鑑識資料。

影片裡的 UpdateHelper 是隔離測試機上的教學模擬項目。登入後產生的 last-run 記錄證明它被執行,但不能因此推論真實環境中的同名檔案具有惡意行為。

用 Autorunsc 留下可比較的輸出

GUI 適合逐筆調查;需要建立 baseline、前後比對或交給其他人分析時,可以使用同套工具附帶的 Autorunsc。

autorunsc64.exe -a * -c -h -s -m > autoruns.csv

這個範例選擇全部自動啟動類別、輸出 CSV、加入雜湊、驗證簽章並隱藏 Microsoft 項目。

如果要查詢 VirusTotal 既有結果,可在理解服務條款與內部政策後使用 -v 與 -vt。Microsoft 文件指出,-v 會依 hash 查詢;加入 s 形成 -vs 時,未知檔案會被上傳。不要在未核准的企業環境裡直接把 -v 改成 -vs。

保存輸出時,建議在檔名加入主機與 UTC 時間,例如:

HOST01-autoruns-20260908T093000Z.csv

CSV 仍可能包含使用者名稱、內部路徑與軟體資訊。交給外部 AI 或第三方服務之前,必須先去識別化。

AI Prompt Pack:讓 AI 幫忙整理,不替你下最後結論

以下 Prompt 的共同原則是:AI 只能依輸入證據排序與提出下一步,不能把「未簽章」「AppData」「VirusTotal Error」直接翻譯成惡意。

Prompt 1:批次整理 Autoruns CSV

你是一名 SOC triage analyst。請分析我提供的 Autoruns CSV,但只能依資料內容提出「調查優先順序」,不要直接判定惡意。

規則:
1. 不得把 unsigned、Not Verified、AppData、Temp、File not found 或 VirusTotal Error 單獨視為惡意證據。
2. 若欄位不足,標示 unknown,不得自行補值。
3. 不建議刪除、停用或執行檔案。
4. 每項判斷都要引用對應欄位。

請輸出:高/中/低優先順序、Entry、Category、觸發方式、Image Path、Publisher/簽章狀態、VirusTotal 狀態、判斷證據、下一個 read-only 確認動作,以及仍缺少的證據。

以下資料已去識別化:
[貼上 CSV 內容]

Prompt 2:深入檢查單一項目

請把以下 Autoruns 項目當成待調查線索,不是已知惡意程式。

Entry:
Category:
Registry/Task/Service location:
Image Path:
Command line:
Publisher:
Signature status:
SHA-256:
VirusTotal:
File timestamps:
Observed execution evidence:

請回答:
1. 目前能確認的事實。
2. 目前不能確認的推論。
3. 哪些欄位彼此矛盾或需要交叉驗證。
4. 下一步最多 5 個 read-only 調查動作,依價值排序。
5. 哪些動作會改變現場狀態,必須先取得核准。
6. 只用低/中/高表示調查優先度,不輸出 benign 或 malicious verdict。

Prompt 3:比較 baseline 與事件快照

以下有兩份同一台 Windows 主機的 Autoruns CSV:A 是已知正常時期的 baseline,B 是事件發生後的快照。

請依穩定識別欄位比較,避免只靠列順序。找出:
- B 新增的自動啟動項目
- B 移除或失效的項目
- 相同 Entry 但 Image Path、command line、hash 或 Publisher 改變的項目
- 從 signed 變成 unsigned,或檔案從存在變成 File not found 的項目
- 需要人工確認的解析差異

每個差異都要列出 A、B 原值與判斷理由。不要因為新增就直接判定惡意,也不要建議自動刪除。

Baseline A:
[貼上去識別化內容]

Snapshot B:
[貼上去識別化內容]

Prompt 4:生成交接用調查摘要

請把以下 Autoruns 調查紀錄整理成可交給 L2 或事件處理人員的摘要。

格式:
- Scope:主機、使用者、時間範圍
- Trigger:為什麼開始檢查
- Evidence preserved:已保存哪些原始資料
- Priority entries:最多 5 項
- Confirmed facts:只寫已有證據支持的事實
- Open questions:尚未確認的問題
- Actions taken:區分 read-only 與會改變狀態的動作
- Recommended next steps:依優先順序
- Privacy note:哪些欄位已去識別化、哪些資料未送到外部服務

禁止把 VirusTotal Error 寫成惡意、把 0/N 寫成保證安全、虛構 EDR 或 network evidence,或在未核准時建議刪除或停用。

原始紀錄:
[貼上調查紀錄]

Prompt 5:把端點發現轉成後續遙測需求

我們在 Autoruns 發現一個值得調查的自動啟動項目。請不要假設 SIEM 或 EDR 已收集所有必要事件。

根據以下資料,建立後續遙測需求清單:
- 需要哪些 Windows Event Logs、process creation、registry、scheduled task、service、driver、file hash 或 network telemetry
- 每一類資料要回答什麼問題
- 可能的資料缺口
- 可在端點 read-only 蒐集的證據
- 可送入 SIEM 做關聯的欄位
- 哪些偵測想法仍需在測試環境驗證

請把現有證據、推測與建議新增的遙測分開,不能把偵測構想寫成已存在的規則。

Autoruns 項目:
[貼上去識別化資料]

常見錯誤與限制

  • 一看到紅色或黃色就刪除:顏色是閱讀提示,不是裁決。
  • 把 Hide Microsoft Entries 當成安全保證:篩選只能降低雜訊。
  • 把 VirusTotal 當成唯一答案:Error、0/N 與少量偵測都有各自的限制。
  • 把自動啟動設定當成執行證據:設定存在、檔案存在、程式成功執行與產生惡意行為是不同命題。
  • 把未去識別資料直接貼給 AI:CSV 可能包含帳號、內部路徑與安全產品名稱。

Autoruns 不取代 EDR、惡意程式分析或完整數位鑑識。它能告訴我們該往哪裡查;是否惡意,仍需靠來源、執行、行為與其他遙測串成證據鏈。

誰適合使用這套流程?

這套流程適合想理解 Windows 自動啟動機制的資安初學者、需要快速縮小端點範圍的 SOC 分析人員、建立 baseline 的藍隊、把端點線索轉成 SIEM/EDR 遙測需求的偵測工程人員,以及想用 AI 整理大量輸出但仍保留人工判斷與核准的團隊。

從看見入口,到證明發生了什麼

Autoruns 最有價值的地方,不是用顏色告訴我們答案,而是把隱藏在 Windows 各處的自動啟動設定轉成可追查的入口。

影片示範如何找到 UpdateHelper,本文則把流程延伸成可以重複使用的調查框架與 Prompt。下一步如果要知道程式執行後連到哪裡,就需要再接上程序與網路證據;RuleArena 後續會以 TCPView 延續這條調查鏈。

觀看完整 Autoruns 實作影片


參考資料

ARTICLE IMAGE圖片放大檢視