jmaleonard/tripwire-feed
GitHub: jmaleonard/tripwire-feed
一个基于 GitHub 免费服务构建的 npm/PyPI 恶意软件包 IoC 公开数据源,每日自动更新并供 agent-tripwire 守护进程同步使用。
Stars: 0 | Forks: 0
tripwire 背后的公开恶意软件源 —— 完全基于 GitHub 构建、提供和报告。
这是
[agent-tripwire](https://github.com/jmaleonard/agent-tripwire) 的公开妥协指标 (IoC) 源。每天一次的 GitHub
Actions 任务会获取 Aikido 的 npm + PyPI 恶意软件列表,将它们合并(约 13 万个 IoC),
并发布在这里供 tripwire 守护进程拉取 —— 此外还有一个公开的
**[首要违规者页面](https://jmaleonard.github.io/tripwire-feed/)** 以及一种
供任何人报告恶意包的方式。
整个项目**运行成本为零。** 它完全依托于 GitHub 的
公开仓库免费服务 —— Actions 负责构建,Releases 托管快照,
Pages 提供网站服务,Issues 收集报告。这里没有服务器,也没有 AWS。
## 目录说明
- **📦 数据源** — 已知恶意 npm/PyPI
包的每日快照 + 增量,供 tripwire 守护进程使用。
- **🌐 网页** — [jmaleonard.github.io/tripwire-feed](https://jmaleonard.github.io/tripwire-feed/),
一个基于最新快照构建的公开“首要违规者”报告。
- **⚠️ 报告** — 一个[报告表单](https://github.com/jmaleonard/tripwire-feed/issues/new?template=report-malicious-package.yml)
(以及页面上每个包对应的 **报告** 链接),以便社区可以标记
恶意包。提交的内容在进入数据源之前会经过审核。
## 数据源
```
Release `feed` tag:
snapshot-YYYY-MM-DD.json full snapshot, 3 newest retained ← release asset (manifest points here)
latest.json clobbered mirror of newest ← human convenience only
feed/v1/:
manifest.json index clients read first
delta-YYYY-MM-DD.json daily diff, last 30 retained ← committed (small, audit trail)
```
快照带有日期戳(文件名绝不重复使用),因此其 CDN URL 始终是
最新的 —— 覆盖单个 `latest.json` 会导致 Fastly 提供过期的副本。
### 使用方式
```
# 索引 — 从这里开始;它指向当前的 snapshot + deltas
curl -s https://raw.githubusercontent.com/jmaleonard/tripwire-feed/main/feed/v1/manifest.json
# 最新的完整 snapshot(镜像;客户端转而遵循 manifest.full.url)
curl -sL https://github.com/jmaleonard/tripwire-feed/releases/download/feed/latest.json
```
tripwire 守护进程在启动时以及每 6 小时自动执行此操作
(使用 `tripwire ioc sync` 强制执行):读取清单,仅下载
缺失的增量,并在应用之前对每个内容主体进行 SHA-256 验证。格式和客户端
记录在
[agent-tripwire `spec/docs/feed.md`](https://github.com/jmaleonard/agent-tripwire/blob/main/spec/docs/feed.md) 中。
## 网页
[`jmaleonard.github.io/tripwire-feed`](https://jmaleonard.github.io/tripwire-feed/)
是一个静态的“首要违规者”报告 —— 包含最新标记的包、最大的
活动、生态系统细分 —— 每次发布时都会根据最新快照重建
并部署到 GitHub Pages。它由
`scripts/build-site.mjs` 生成;发布任务将其作为
workflow artifact 交给新构建的快照,因此它从不依赖于 release CDN。
## 报告恶意包
发现不在数据源中的恶意包?有两种免费途径:
- **从网页** — 点击 **⚠️ Report a malicious package** 按钮,或
任意包行的 **report** 链接(它会自动预填包名称)。
- **直接** — 打开
[报告表单](https://github.com/jmaleonard/tripwire-feed/issues/new?template=report-malicious-package.yml)。
报告将以 `ioc-report` issues 的形式到达,并且**在导入前会进行审核** ——
没有任何内容会自动发布到数据源中。这仅用于检测预警,
并非对任何维护者的指控。
## 发布
`.github/workflows/seed-feed.yml` 在每天 UTC 时间 06:00 运行(或通过
**Run workflow** 手动触发)。它执行自包含的 `scripts/publish-feed.mjs`
bundle,并使用内置的 `GITHUB_TOKEN` 发布到此仓库 —— 无需配置
任何密钥。
该 bundle 生成自
[agent-tripwire](https://github.com/jmaleonard/agent-tripwire)
(`packages/feeds` + `scripts/publish-feed.mjs`)。要更新它:
```
# 在一个 agent-tripwire checkout 中
pnpm --filter @tripwire/shared --filter @tripwire/feeds build
npx esbuild scripts/publish-feed.mjs --bundle --platform=node --format=esm \
--outfile=/path/to/tripwire-feed/scripts/publish-feed.mjs
npx esbuild scripts/build-site.mjs --bundle --platform=node --format=esm \
--outfile=/path/to/tripwire-feed/scripts/build-site.mjs
```
## 许可证
源代码可见,**保留所有权利**:您可以阅读、运行
并为之贡献 —— 但未经许可,不得出于自身使用目的复制、重新分发或派生它。有关项目许可证,请参阅 [agent-tripwire](https://github.com/jmaleonard/agent-tripwire)。
标签:Cilium, MITM代理, NPM, PyPI, 域名收集, 威胁情报, 安全情报源, 开发者工具, 数据可视化, 文档安全, 自动化CI/CD, 自定义脚本