使用 Autoruns 分析惡意軟體持續性 是做什麼的?
概述
Sysinternals Autoruns 從 Windows 上數百個自動啟動擴展點 (ASEP) 提取資料,掃描 18+ 個類別,包括 Run/RunOnce 機碼、服務、排程工作、驅動程式、Winlogon 項目、LSA 提供者、列印監視器、WMI 訂閱和 AppInit DLL。數位簽章驗證會過濾 Microsoft 簽署的項目。比較功能可透過基線差異分析識別新新增的持續性機制。VirusTotal 整合可檢查雜湊信譽。透過 -z 旗標支援離線分析,可進行鑑識磁碟映像檢查。
使用時機
- 調查需要分析惡意軟體持續性的安全事件時
- 為此領域建立偵測規則或威脅情資獵捕查詢時
- SOC 分析師需要此分析類型的結構化程序時
- 驗證相關攻擊技術的安全監控覆蓋範圍時
先決條件
- Sysinternals Autoruns (GUI) 和 Autorunsc (CLI)
- 目標系統的管理員權限
- Python 3.9+ 用於自動化分析
- 用於信譽檢查的 VirusTotal API 金鑰
- 用於比較的乾淨基線匯出
工作流程
步驟 1:自動化持續性掃描
#!/usr/bin/env python3
"""自動化基於 Autoruns 的持續性分析。"""
import subprocess
import csv
import json
import sys
def scan_and_analyze(autorunsc_path="autorunsc64.exe", csv_path="scan.csv"):
cmd = [autorunsc_path, "-a", "*", "-c", "-h", "-s", "-nobanner", "*"]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=600)
with open(csv_path, 'w') as f:
f.write(result.stdout)
return parse_and_flag(csv_path)
def parse_and_flag(csv_path):
suspicious = []
with open(csv_path, 'r', errors='replace') as f:
for row in csv.DictReader(f):
reasons = []
signer = row.get("Signer", "")
if not signer or signer == "(Not verified)":
reasons.append(\