為何容易被忽略
您的代理安裝了一個相依套件。套件清單中也指定了一個在安裝期間執行的腳本。看似設定步驟的操作,可能包含值得獨立審查的程式碼執行。
專案可能使用安裝 hook 進行完全正常的建置步驟,也可能包含意外指令。重點在於腳本存在於清單中,若只檢查頂層安裝指令,很容易遺漏。
ClawMetry 偵測的內容
ClawMetry 掃描工作區套件清單中支援的安裝生命週期 hook,並在發現 hook 時觸發套件清單執行警告。掃描器讀取檔案,不執行所發現的指令。
改變發現結果的關鍵差異
觸發範例
postinstall: node build.js
警告發現
靜默對比
test: node build.js
此偵測器無發現。
在檢查範例中,含有 postinstall 腳本並指向建置程式的情況會產生警告。將同一程式放在普通的 test 腳本下,此偵測器則保持靜默。關鍵在於清單宣告程式將於何時執行。
檢查偵測器結果
{
"kind": "package_manifest_exec",
"severity": "warning",
"evidence": {
"hooks": [
"postinstall"
],
"hits": [
{
"hook": "postinstall",
"command": "node build.js",
"tool": null,
"alarm": null
}
],
"manifest": "package.json",
"tools": [],
"observed": "package_manifest"
}
}下載輸入及完整結果 (JSON)範例的檢查方式
這些範例使用已撰寫的事件資料或一次性設定檔來評估已發布的偵測器。影片說明這些行為,並非即時代理或產品介面的錄製內容。範例中沒有任何指令被實際執行。
結果確立了這些輸入的行為,並不確立執行時期擷取、預防或實際入侵。 檢查已固定的原始碼合約.
接下來要檢查什麼
讀取 hook 指令及其參照的程式。確認該安裝行為是否適合此專案,以及相依來源是否可信。若安裝已完成,在接受此環境前,請另行審查實際影響。
- 讀取生命週期 hook
- 檢查所參照的程式
- 審查預期的安裝行為
此訊號確立的範圍
安裝 hook 並非自動代表惡意。此發現回報清單條目,不證明安裝或執行已發生。