cochaviz/ruler
GitHub: cochaviz/ruler
一个 Suricata 规则可视化预览工具,支持上传 PCAP 和规则集后通过 Web 界面查看告警、引擎统计及规则语法错误。
Stars: 1 | Forks: 0
# Ruler 📏
上传 PCAP 文件和 Suricata 规则集,通过 Suricata 引擎的 unix-socket 控制协议运行它,并查看生成的警报、引擎统计信息和规则加载/语法错误。
## 快速开始
拉取已发布的镜像并运行:
```
docker run -p 3000:3000 --cap-drop=ALL --security-opt no-new-privileges:true ghcr.io/cochaviz/ruler:master
```
或者,使用 `docker compose`:
```
docker compose up
```
每次推送到 `master` 时都会自动构建并推送,通过
[`.github/workflows/docker-publish.yml`](.github/workflows/docker-publish.yml) —— 没有 `latest` 标签,`master` 即是最新版。
如果要从源码构建并运行:
```
docker build -t "ruler:latest" . && docker run -p 3000:3000 --cap-drop=ALL --security-opt no-new-privileges:true ruler:latest
```
## 开发
只需在 VSCode 中将其作为 devcontainer 打开,然后:
```
npm run dev
```
即可同时运行后端和前端,并支持热更新。打开打印的 Vite URL (`http://localhost:5173`) —— 它会将 `/api` 代理到后端的
`:3000` 端口。粘贴/上传的规则可以跨多行;在交给 Suricata 之前,它们会自动重新合并回每个规则一行。
## 测试
```
npm test # backend unit tests (go test)
npm run typecheck # shared + frontend
```
## 生产构建
上述“快速开始”中的任一流程(拉取或自行构建的镜像)均是受支持的
生产环境部署路径 —— `supervisord` 会同时运行 Suricata 和后端(参见
`docker/supervisord.conf`),并在其中任何一个崩溃时自动重启。后端是一个
静态编译的 Go 二进制文件;运行时镜像根本不包含 Node,只包含 Suricata、supervisor 和该二进制文件。它已经过端到端验证(构建、容器启动以及通过浏览器实际运行 PCAP+规则)。
如果你想在非 Docker 环境下运行构建好的应用:`npm run build && npm start` 可以通过一个 Go 进程在 `:3000` 上同时提供前端和 API 服务。
标签:Docker, EVTX分析, Go, Metaprompt, MITM代理, PCAP, Ruby工具, Suricata, 安全防御评估, 日志审计, 现代安全运营, 请求拦截