hasantetik/sgb-api-bridge
GitHub: hasantetik/sgb-api-bridge
这是一个将SGB威胁情报数据转换为防火墙和SIEM可消费格式的企业级集成服务。
Stars: 0 | Forks: 0
# SGB API 桥接(威胁情报服务)
该项目是一个企业级集成服务,能够自动抓取由网络安全总局(SGB / 前 USOM)提供的网络威胁情报数据(恶意域名、IP地址、URL),并将其转换为内部安全设备(防火墙、SIEM)可直接消费的标准格式。
## 🚀 项目目的
* **防火墙集成:** 为网络中的防火墙提供纯文本格式的动态列表,以拦截恶意连接。
* **SIEM集成:** 为 QRadar、Splunk 等 SIEM 设备提供符合国际 **STIX / TAXII 2.1** 标准的 API 端点,以便读取威胁情报。
## 🛠️ 技术栈与架构
* **语言与框架:** Java 17, Spring Boot 3
* **数据库:** PostgreSQL(采用 B-Tree 复合索引实现高性能)
* **数据抓取(同步):**
* **智能增量同步(每小时):** 一种智能同步策略,旨在减少 SGB API 负载。仅查询系统中尚未拥有的最新数据(通过 ID 判断),直到找到为止。
* **全量同步(凌晨 02:00):** 扫描整个 SGB 数据库,清理已下架(不再恶意)的链接。
* **性能优化:**
* **JDBC 批处理:** 将数千条数据以批量(batch)方式而非单条查询保存到数据库中(每秒级的 upsert 速度)。
* **数据库级分页:** 在 SQL 层面(LIMIT/OFFSET)直接对 STIX 对象进行分页,而非将所有数据加载到内存(RAM),从而避免 OutOfMemory 错误。
## ⚙️ 安装与运行(最简方法)
要在本地运行此项目,您只需安装 **Docker** 即可。(**无需**在您的电脑上安装 Java 或 Maven,系统会在 Docker 内自动编译)。
1. 进入项目目录(在终端中),然后运行以下命令:
```
docker-compose up -d
```
2. 此命令将创建 **PostgreSQL** 数据库,并编译 **Spring Boot** 应用程序,连接到数据库后使其在 `localhost:8080` 上准备就绪。
3. 如果您希望查看应用程序的后台日志:
```
docker-compose logs -f app
```
*(注意:如果您想在开发环境中通过 IDE 运行项目,可以使用 `docker-compose up db -d` 单独启动数据库,然后从 IDE 中运行应用程序。)*
## 📖 API 端点
系统启动后,您可以通过 Swagger 查看详细的 API 文档和测试界面:
👉 **Swagger UI:** `http://localhost:8080/swagger-ui.html`
### 1. 纯文本列表(用于防火墙)
返回以 `\n`(换行符)分隔的记录列表。
* 网络钓鱼与恶意域名列表:`GET http://localhost:8080/domain-list.txt`
* 恶意 IP 地址列表:`GET http://localhost:8080/ip-list.txt`
* 恶意 URL 列表:`GET http://localhost:8080/url-list.txt`
### 2. TAXII 2.1 订阅源(用于 SIEM)
返回符合国际标准的 STIX 对象。
* **发现:** `GET http://localhost:8080/taxii2/index.json`
* **API 根:** `GET http://localhost:8080/api/`
* **集合列表:** `GET http://localhost:8080/api/collections/`
* **数据获取(分页):** `GET http://localhost:8080/api/collections/sgb-phishing/objects/page-0001.json`
*(集合名称:`sgb-phishing`、`sgb-botnet-cc`、`sgb-apt-cc`、`sgb-exploit-kit`、`sgb-malware-download`、`sgb-mining`、`sgb-mobile-cc`、`sgb-other`、`sgb-all`)*
## ⚠️ 重要提示(性能相关)
- 请勿在 **Swagger UI 内部**测试包含数十万条记录的 `/domain-list.txt` 或 `page-0001.json` 端点。浏览器在尝试渲染如此大量的文本时可能会卡死。请直接在浏览器的地址栏或通过 `curl` 命令进行测试。
标签:API集成, Docker, JS文件枚举, PostgreSQL, RESTful API, SGB API桥接, SIEM集成, Spring Boot, STIX, TAXII, 全量同步, 可观测性, 域名枚举, 威胁情报, 威胁情报服务, 安全信息集成, 安全设备集成, 安全运营, 安全防御评估, 开发者工具, 性能优化, 情报共享, 扫描框架, 批处理, 提示词优化, 数据同步, 数据库分页, 智能同步, 标准格式转换, 检测绕过, 测试用例, 系统集成, 网络安全, 自动化威胁数据, 请求拦截, 防火墙集成, 隐私保护