alleyviper/anis

GitHub: alleyviper/anis

ANIS 是一个为 ARGUS 网络防御系统提供众包威胁情报、IP 信誉查询和许可证管理的轻量级社区情报服务器。

Stars: 0 | Forks: 0

# ANIS — ARGUS 网络智能服务器 [![Docker Pulls](https://img.shields.io/docker/pulls/ai4sec/anis?style=flat-square&logo=docker&color=f97316)](https://hub.docker.com/r/ai4sec/anis) [![License: MIT](https://img.shields.io/badge/License-MIT-f97316.svg?style=flat-square)](LICENSE) [![Build](https://img.shields.io/github/actions/workflow/status/ai4sec/anis/build.yml?style=flat-square&label=build)](https://github.com/ai4sec/anis/actions) **ANIS** 是一个独立的威胁情报中心,ARGUS 实例连接到它以获取: - **社区威胁情报** — 众包的 IP 信誉数据,来源于所有已连接的 ARGUS 部署 - **精选威胁情报源** — 35+ 个免费威胁情报源(FireHOL、Abuse.ch、Spamhaus、Tor Project、Blocklist.de 等) - **许可证管理** — 针对部署 ARGUS 实例的基于等级的功能控制 - **IP 信誉 API** — 用于 nginx/ModSecurity 集成的实时 IP 评分 ANIS 旨在作为轻量级的社区中心运行(空闲时 RAM 占用 <30 MB),任何 ARGUS 运维者都可以自行托管,或将其实例指向一个共享的社区服务器。 ## 架构 ``` graph TD A1[ARGUS Instance 1] -->|report attack IPs| ANIS A2[ARGUS Instance 2] -->|report attack IPs| ANIS A3[ARGUS Instance N] -->|report attack IPs| ANIS ANIS -->|decisions delta| A1 ANIS -->|decisions delta| A2 ANIS -->|decisions delta| A3 FEEDS[Threat Feeds\nFireHOL, Abuse.ch\nSpamhaus, Tor, etc.] -->|pull every 1-24h| ANIS ANIS -->|blocklist| NGINX[nginx + ModSecurity] ADMIN[Admin Dashboard\nbrowser] -->|manage| ANIS ``` ## 快速开始 ``` # 1. Clone git clone https://github.com/ai4sec/anis.git && cd anis # 2. Configure cp .env.example .env # 编辑 .env — 设置 ANIS_ADMIN_KEY 和 ANIS_ADMIN_PASSWORD # 3. Run docker compose -f docker/docker-compose.yml up -d # 4. 打开 dashboard open http://localhost:8090 ``` 默认凭据:`admin` / 你的 `.env` 文件中 `ANIS_ADMIN_PASSWORD` 的值。 ## 环境变量 | 变量 | 默认值 | 描述 | |---|---|---| | `ANIS_PORT` | `8090` | HTTP 监听端口 | | `ANIS_DB_PATH` | `/data/anis.db` | SQLite 数据库路径 | | `ANIS_ADMIN_KEY` | — | **必填。** 管理 API 密钥(`X-ANIS-Admin-Key` 请求头) | | `ANIS_ADMIN_USERNAME` | `admin` | 控制面板登录用户名 | | `ANIS_ADMIN_PASSWORD` | — | **必填。** 控制面板登录密码 | | `ANIS_MODE` | `hub` | 运行模式 (`hub`) | | `ANIS_ENABLE_FEEDS` | `true` | 启用精选情报源下载 | | `ANIS_COMMUNITY_ENABLED` | `true` | 接受社区报告 | | `ANIS_MAX_INSTANCES` | `1000` | 最大可注册的 ARGUS 实例数 | | `ANIS_LOG_LEVEL` | `info` | 日志详细程度 (`info` 或 `silent`) | ## ARGUS 如何连接到 ANIS 在你的 ARGUS 实例中,将 ANIS 配置为情报上游: ``` ANIS_URL=https://anis.yourdomain.com ANIS_LICENSE_KEY=ANIS-COMM-XXXX-XXXX-XXXX # from ANIS Licenses page ANIS_INSTANCE_HASH= ``` ARGUS 将会: 1. 在启动时向 ANIS 注册(`POST /api/v1/instances/register`) 2. 向 ANIS 报告被封禁的 IP(`POST /api/v1/intelligence/report`) 3. 每 5 分钟拉取一次决策增量(`GET /api/v1/intelligence/decisions/delta`) 4. 根据置信度阈值自动应用社区封禁 ## API 参考 完整文档请参见 [API.md](API.md)。 **公共端点(供 ARGUS 实例使用):** | 方法 | 路径 | 描述 | |---|---|---| | `POST` | `/api/v1/instances/register` | 注册一个 ARGUS 实例 | | `POST` | `/api/v1/license/validate` | 验证许可证密钥 | | `POST` | `/api/v1/intelligence/report` | 报告攻击者 IP | | `GET` | `/api/v1/intelligence/decisions` | 获取所有有效的决策 | | `GET` | `/api/v1/intelligence/decisions/delta?since=` | 获取自指定时间戳以来的决策 | | `GET` | `/api/v1/intelligence/check/:ip` | 检查 IP 信誉 | | `GET` | `/api/v1/intelligence/stats` | 获取全局统计信息 | | `GET` | `/api/v1/feeds/status` | 获取情报源健康状态 | | `GET` | `/health` | 健康检查 | ## 许可证等级 | 等级 | 价格 | 情报源 | 速率限制 | 实例数 | |---|---|---|---|---| | Community | 免费 | 25 个社区情报源 | 1,000 请求/分钟 | 1 | | Pro | 联系我们 | 所有 35+ 个情报源(VPN、地理位置、数据中心) | 10,000 请求/分钟 | 5 | | Enterprise | 联系我们 | 所有情报源 + 优先支持 | 不限 | 不限 | 从 ANIS 控制面板 → 许可证 (Licenses) → 创建许可证 (Create License) 生成一个社区密钥。 ## 情报源分类 完整的 35+ 个精选情报源列表请参见 [FEEDS.md](FEEDS.md)。 **分类:** 攻击者 · 僵尸网络 · 恶意软件 · Tor 出口节点 · VPN · 代理 · 扫描器 · 垃圾信息 · 地理位置风险 · Web 攻击 · 匿名基础设施 ## 隐私 请参见 [PRIVACY.md](PRIVACY.md)。摘要: - 仅存储和共享攻击者的 IP 地址 - 不包含受害者域名、用户数据或私有 IP - 实例身份为单向哈希处理(不可逆) - 可通过管理 API 根据请求删除所有数据 - 符合 GDPR 规定 — 不处理任何个人数据 ## 许可证 MIT — 请参见 [LICENSE](LICENSE)
标签:Awesome, Docker, IP信誉, 威胁情报, 安全防御评估, 开发者工具, 版权保护, 系统管理, 网络安全, 自动化攻击, 请求拦截, 隐私保护