Halino/Wazuh-ThreatIntel
GitHub: Halino/Wazuh-ThreatIntel
一个轻量级的 Wazuh 威胁情报更新脚本,通过聚合多个公开恶意 IP 和恶意软件哈希数据源并写入 Wazuh 内置 CDB 列表,免自定义规则即可激活 IOC 检测。
Stars: 0 | Forks: 0
# Wazuh threat-intel 更新工具
这是一个轻量级、低依赖的更新工具,用于为 Wazuh 的**内置** threat-intel 检测提供数据支持。它会下载多个公开的 **IP 信誉**和**恶意软件哈希**数据源,验证每一条记录,并写入 Wazuh 内置 `malicious-ioc` 规则集已经监控的两个 **CDB 列表**。**无需自定义规则。**
## 包含内容
| 文件 | 用途 |
|------|---------|
| `threatintel-update.sh` | 下载 + 验证数据源,写入两个 CDB 列表,并重载 manager |
| `wazuh/ossec-threatintel.conf.snippet` | `
- ` 声明 + `cron.d` 示例 |
| `tests/README.md`, `tests/sample-cdb-format.txt` | 验证方法 + 生成的 CDB 确切格式 |
## 什么是 CDB 列表?
**CDB 列表**(constant database,常量数据库)是 Wazuh manager 上的一个快速键值对查询文件。规则通过 `
- path
- ` 条目)。
- 运行脚本的主机上具备 `curl` 和对外的 HTTPS 访问能力。
- 对于 Docker 模式:需要 `docker` 以及在 manager 容器中执行 `docker exec`/`docker cp` 的权限。
## 部署
### 配置(环境变量)
| 变量 | 默认值 | 含义 |
|----------|---------|---------|
| `WAZUH_MANAGER_CONTAINER` | *(空)* | 容器名称 -> **Docker 模式**。留空 -> **软件包模式**(本地路径)。 |
| `WAZUH_LIST_DIR` | `/var/ossec/etc/lists/malicious-ioc` | 列表存放路径(在 manager 内部) |
| `WAZUH_CONTROL` | `/var/ossec/bin/wazuh-control` | Manager 控制程序 |
| `WAZUH_RELOAD_ACTION` | `reload` | `reload`(平滑重载)或 `restart`(适用于旧版 Wazuh) |
| `WAZUH_LIST_OWNER` | `wazuh:wazuh` | 应用于列表文件的归属者(尽最大努力设置) |
| `THREATINTEL_MIN_IPS` | `500` | 如果合法 IP 数量少于此值,则中止运行 |
| `THREATINTEL_CURL_TIMEOUT` | `45` | 单个数据源的 curl 超时时间(秒) |
### 模式 A - Docker 单节点(manager 在容器中)
```
sudo install -m 0755 threatintel-update.sh /usr/local/bin/threatintel-update.sh
# 查找您的 manager container 名称:
docker ps --format '{{.Names}}' | grep manager
WAZUH_MANAGER_CONTAINER=single-node-wazuh.manager-1 \
/usr/local/bin/threatintel-update.sh
```
### 模式 B - 软件包安装(manager 在当前主机上)
```
sudo install -m 0755 threatintel-update.sh /usr/local/bin/threatintel-update.sh
sudo /usr/local/bin/threatintel-update.sh
```
### 定时任务(每日)
安装 `/etc/cron.d/wazuh-threatintel`(完整示例见代码段):
```
# Docker 模式
17 4 * * * root WAZUH_MANAGER_CONTAINER=single-node-wazuh.manager-1 /usr/local/bin/threatintel-update.sh >> /var/log/wazuh-threatintel.log 2>&1
# Package 模式
17 4 * * * root /usr/local/bin/threatintel-update.sh >> /var/log/wazuh-threatintel.log 2>&1
```
脚本会将获取失败的数据源信息输出到 stderr,并在完全失败时(数据源不可达 / IP 数量低于下限 / manager 重载失败)以**非零状态**退出,这样 cron 邮件或 CI 就可以根据退出代码进行报警。脚本本身未内置任何通知功能。
## 验证
1. 确认列表已写入并查看条目数量:
# 软件包模式
wc -l /var/ossec/etc/lists/malicious-ioc/malicious-ip
wc -l /var/ossec/etc/lists/malicious-ioc/malware-hashes
# docker 模式
docker exec single-node-wazuh.manager-1 wc -l /var/ossec/etc/lists/malicious-ioc/malicious-ip
2. 验证规则是否触发。从列表中任选一个 IP,并将匹配该 IP 的事件输入到 `wazuh-logtest`(在 manager 上运行,或执行 `docker exec -it
标签:Wazuh, 威胁情报, 安全运营, 开发者工具, 恶意IOC, 扫描框架, 数字取证, 自动化脚本, 请求拦截