容易被忽视的原因
代理安装一个依赖项,而软件包清单中还指定了一个在安装期间运行的脚本。看似普通的安装步骤可能包含代码执行,值得单独审查。
项目可能将安装钩子用于完全正常的构建步骤,也可能包含意外命令。重要的是,该脚本位于清单中,若只检查顶层安装命令,很容易被忽视。
ClawMetry 检测什么
ClawMetry扫描工作区软件包清单,查找支持的安装生命周期钩子。发现钩子后,触发软件包清单执行警告并标识该钩子。扫描器仅读取文件,不会执行其中找到的命令。
影响检测结果的关键差异
触发示例
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)示例的检查方式
这些示例使用预设事件数据或一次性配置文件评估已发布的检测器。视频展示了相应行为,并非真实智能体或产品界面的录屏。示例中的命令均未实际执行。
结果仅反映这些输入的行为,不代表运行时摄取、防护或真实的攻击场景。 查看固定源合约.
接下来检查什么
读取钩子命令及其引用的程序。确认该安装行为是否属于项目预期,以及依赖来源是否可信。若安装已发生,在接受当前环境前,请单独审查实际影响。
- 读取生命周期钩子
- 检查引用的程序
- 审查预期的安装行为
此信号说明什么
安装钩子并非自动意味着恶意。此发现报告的是清单条目,而非安装或执行已发生的证明。