grepstrength/grepwatch

GitHub: grepstrength/grepwatch

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

Stars: 0 | Forks: 0

![替代文本](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0d263dc091075755.png) # 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, 云安全监控, 依赖分析, 文档安全, 日志审计, 测试用例, 网络信息收集, 静态分析