ankitsxchdeva/repo-airlock
GitHub: ankitsxchdeva/repo-airlock
一个只读的仓库安全预检脚本,用于在克隆不受信任的代码后、构建或运行之前筛查自动执行脚本、恶意软件和 AI 提示注入风险。
Stars: 0 | Forks: 0
# 仓库-airlock
**在不受信任的 repo 于您的机器上运行之前,先对其进行筛查。** 这是一个针对克隆代码、面试作业和面试 repo 的只读分拣防线——请在执行 `npm install`、构建或将文件夹打开到 AI 编码 agent 之前运行它。它绝不安装、构建或运行 repo 自身的代码。
## 为什么
有两种攻击手段专门针对运行非本人编写代码的开发者:
- **虚假面试恶意软件** —— 一种“编码挑战”,其 payload 会在 `npm install` 或 VSCode 的“信任此 repo?”时触发,窃取您的钥匙串、浏览器凭据和加密钱包。
- **Prompt injection** —— 一个看似干净的 repo 附带了 `CLAUDE.md` / `.cursorrules`,它会劫持您的 AI agent 去获取反向 shell。
`repo-airlock` 是*克隆*与*运行*之间的去污步骤。
## 快速开始
筛查是只读的,因此可以直接在您的机器上运行:
```
git clone https://github.com/ankitsxchdeva/repo-airlock
bash repo-airlock/scripts/screen.sh
```
或者将其作为 agent 技能安装(在您处理不熟悉的 repo 之前会自动运行):
```
git clone https://github.com/ankitsxchdeva/repo-airlock \
~/.claude/skills/screen-untrusted-repo
```
它会注册为 `screen-untrusted-repo` 技能 —— 然后只需说:
*“在我接触 ~/Downloads/take-home 之前,先对它进行筛查。”*
## 然后在隔离环境中构建它
筛查是分拣,而不是保证。**隔离才是真正的防御** —— 在代码无法触及您的机密信息的地方构建并运行不熟悉的代码。
- **GitHub Codespace(最简单):** 在 repo 的 GitHub 页面 → **Code** → **Codespaces** → **Create**。一次性的云端 container,无法访问您的笔记本电脑。在那里进行筛查和构建,然后在 github.com/codespaces 删除它。不要将真实的机密粘贴到其中。
- **Docker(本地):** 仅挂载 repo —— 绝不挂载您的主目录:
cd untrusted-repo
docker run --rm -it -v "$PWD:/repo" -w /repo node:20 bash # 根据技术栈更换镜像
# 在容器内:先进行筛查,然后 npm install && npm start
`--rm` 会在退出时删除 container。
## 它会标记什么
自动运行的文件(git hooks、`.vscode/tasks.json`),AI-agent 配置文件(`CLAUDE.md`、`.cursorrules`),npm/pip install hooks,`curl … | sh` / DNS-TXT / 反向 shell 链,动态 `eval`/`exec`,混淆的 blobs,凭据/钱包窃取路径,以及隐藏的 unicode。每一项命中都需要人工肉眼审查 —— 预期会出现误报。
## 危险信号(任何扫描都无法覆盖这些)
被迫在 container 之外运行(尤其是在屏幕共享时),被要求禁用 Gatekeeper / SIP / 杀毒软件,或者“只需 `npm install` 然后向我展示它能运行”。
## 来源 · 许可证
DPRK“Contagious Interview”(Microsoft、Socket.dev、Unit 42);投毒 repo agent injection(Mozilla 0DIN、Pillar Security)。MIT — 请参阅 [LICENSE](LICENSE)。
标签:应用安全, 请求拦截