最近在 Windows 上用 Cursor IDE 時,卡巴斯基(Kaspersky)一直狂跳高風險警告,直接攔截一個 PDM:Trojan.Win32.Generic 的威脅。點開細節看,光看到偵測到惡意物件就倒抽一口涼氣,隨著 PowerShell 7、%TEMP%、ps-script-xxxx.ps1 這些很敏感的關鍵字。
事件: 偵測到惡意物件
應用程式: PowerShell 7
使用者: xxx
使用者類型: 發起者
元件: 系統監控
結果描述: 偵測到
類型: 木馬程式
名稱: PDM:Trojan.Win32.Generic
威脅等級: 高
物件類型: 處理程序
物件路徑: C:\Users\xxxx\AppData\Local\Temp
物件名稱: ps-script-29462b68-1ff2-4e70-83ce-0a00a6ec340d.ps1
原因: 行為分析
資料庫發佈日期: 今天, 20xx/x/xx 00:00:00
MD5: FC543EDFBC35E7C256E8A8C784C338AA第一時間看到可能會有點毛,畢竟這幾個關鍵字湊在一起,真的很像木馬腳本。但我花點時間比對觸發時機、Cursor 產生 Agent Shell 的方式與卡巴斯基的掃描邏輯之後,結論很單純:這只是行為分析造成的誤判(False Positive)。
如果你剛好也一直被防毒軟體擋,這篇整理了為什麼會誤判,以及怎麼在「不犧牲系統最低防線」的前提下,把 Cursor 設為信任。

為什麼會被當作木馬?
PDM:Trojan.Win32.Generic 其實不代表你中了某個具體家族的電腦病毒,它是卡巴斯基的行為防護(Heuristic Analysis)發出的警告。簡單說就是:「這支程式目前的動作很像惡意程式」。

那為什麼 Cursor 會踩雷?關鍵在它底層串接工具的運作邏輯。
在 Windows 上,當 Cursor 裡的 Agent 要跑 Shell 指令,它會先建立一個 PowerShell 暫存腳本來過渡:
C:\Users\你的帳號\AppData\Local\Temp\ps-script-xxxxxxxx.ps1對我們來說這叫正常運作,但對防毒軟體來說,這三個行為同時發生就叫「準備幹壞事」:
- 在 Temp 目錄偷偷建腳本
- 呼叫 PowerShell 執行它
- 透過腳本再去啟動子程序
這幾乎是惡意程式最愛用的避開傳統防毒套路,主打行為監控的卡巴斯基當然會直接把它攔下來。

怎麼分辨是真中獎還是誤判?
我自己會用這幾個點來判斷:
- 觸發時機:只有在用 Cursor、讓 Agent 跑指令時才跳警告,關掉就沒事。
- 檔案路徑:如果細節確實指向
%TEMP%底下的ps-script-xxxx.ps1,那就吻合 Cursor 的行為特徵。 - 威脅名稱:「Generic」代表這是泛用型的行為警告,不是確診的特定病毒碼。
- 有無異常狀況:如果沒開 Cursor 也在跳警告,或是電腦莫名卡頓、瀏覽器被綁架,那請不要當成誤判,按標準的資安流程處理。
信任 Cursor 本體,給予最小權限
很多人遇到這種狀況,為圖方便會直接把 %TEMP% 整包加進白名單,或是把 pwsh.exe(PowerShell)設為信任。
拜託不要這麼做。惡意程式也很喜歡躲在 Temp 目錄,你大開後門,防毒系統就真的瞎了。這對系統安全的退讓太多。
比較務實的做法是:去教防毒軟體「信任發起這個動作的源頭」,也就是 Cursor 本體。
把它加入卡巴斯基的「受信任應用程式」清單:
C:\Users\你的帳號\AppData\Local\Programs\cursor\Cursor.exe

而設定細節上,我秉持「最小放行原則」,只勾選:
- 不監控應用程式活動
- 不監控子應用程式活動
- 此規則遞迴套用到子處理程序
會勾選子程式,是因為 Cursor 做事勢必要帶出 PowerShell,不放行子程式一樣會被行為分析攔截。

至於其他的選項(例如不要掃描檔案、允許與介面互動等),建議保持關閉。我們只想解決誤判,重點是維持防毒軟體的底線防禦機制,只要最小化允許 Cursor 使用就好,不然到時真的中獎卡巴不幫你掃出來。
這幾年接觸越來越多 AI 開發工具,因為常常需要在本機動態跑腳本、跑 Shell 來完成自動化,這本來就很考驗防毒軟體的容忍度。遇到警告不用太緊張,看清楚細節,用最小範圍的信任去排除,才是比較好的習慣。
