grepstrength/grepwatch
GitHub: grepstrength/grepwatch
grepWatch 是一款开源的依赖行为差异分析引擎,通过对软件包版本间的源代码变更进行静态分析和评分,帮助团队在恶意依赖更新进入生产环境前发现并拦截供应链攻击。
Stars: 0 | Forks: 0

# grepWatch
**在恶意依赖更新进入生产环境之前将其拦截!**
*忘掉 AI 吧!2026 年是供应链攻击之年!*
grepWatch 是一个开源的依赖行为差异分析引擎。它监控跨越六个生态系统的软件包仓库,并在新版本的*变更*出现可疑情况时发出警报。(例如:新增的出站网络调用、添加的代码混淆、与编码后的 payload 一致的高熵字符串,以及安装时执行的 hook)
通过随着时间推移对不同版本进行差异比对,检测软件包中的恶意变更——在您将其发布之前就拦截供应链攻击。
支持检查以下生态系统:
- npm
- PyPI
- Go
- Cargo
- Maven
- NuGet
## 托管版本
一个托管实例运行在 **[grepwatch.com](https://grepwatch.com)**,提供实时发现结果推送——无需任何设置。我们在下方完整记录了对自托管的支持,方便任何希望运行自己实例的用户。
## 工作原理
grepWatch 以两个共享 Postgres 数据库的服务形式运行:
- **Worker**:以固定的时间间隔,抓取各个仓库中新发布的版本,获取新版本及其上一版本的源代码,针对差异运行一系列静态分析检查,对任何可疑内容进行评分,并将发现的结果持久化存储。
- **Web**:提供 REST API 和 Server-Sent Events 流,为发现结果的实时推送提供支持。
## 自托管
### 前置条件
- Go 1.25+
- PostgreSQL 14+
### 配置
这两个服务均从环境中读取配置:
| 变量 | 必需 | 描述 |
|---|---|---|
| `DATABASE_URL` | 是 | Postgres 连接字符串 (`postgres://...`) |
| `PORT` | 仅 Web | Web 服务器端口(默认为 8080) |
### 运行
```
DATABASE_URL=postgres://... go run ./cmd/worker
DATABASE_URL=postgres://... PORT=8080 go run ./cmd/web
```
Worker 会在首次运行时自动创建其 schema。
## 许可证
AGPL-3.0 — 详见 [LICENSE](LICENSE)。您可以自由地进行自托管和修改。如果您将修改后的版本作为网络服务运行,AGPL 要求您向其用户公开您的源代码。
标签:DNS 反向解析, EVTX分析, Go, PostgreSQL, Ruby工具, WebSocket, 云安全监控, 依赖分析, 文档安全, 日志审计, 测试用例, 网络信息收集, 静态分析