CodeByArunyadav/threatintel
GitHub: CodeByArunyadav/threatintel
基于 Spring Boot 构建的企业级网络威胁情报与 SIEM 后端平台,提供 IOC 管理、威胁评分、威胁富化和多租户安全运营能力。
Stars: 0 | Forks: 0
# HOXCLOUD 威胁情报平台
企业级网络威胁情报与 SIEM 平台,采用 Spring Boot、PostgreSQL、Redis、JWT 身份验证、WebSockets 以及现代 SaaS 架构构建。
# 🚀 项目概述
HOXCLOUD 威胁情报平台是一个可扩展的企业级网络安全平台,专为以下目的设计:
* 威胁情报管理
* IOC(入侵指标)追踪
* 威胁关联
* SIEM 式监控
* 威胁富化
* 实时告警
* 仪表盘分析
* 多租户安全运营
* 基于 JWT 的身份验证
* 基于角色的访问控制 (RBAC)
此后端为前端 SaaS 仪表盘和未来的终端代理提供安全的 REST API。
# 🏗️ 技术栈
## 后端
* Java 21
* Spring Boot 3.x
* Spring Security
* JWT 身份验证
* Spring Data JPA
* Hibernate
* Maven
* PostgreSQL
* Redis
* WebSocket/STOMP
* Swagger/OpenAPI
## 安全
* JWT HS256
* BCrypt 密码哈希
* RBAC 授权
* CORS 保护
* 安全 API 过滤器
## 数据库
* PostgreSQL
## 实时
* Spring WebSocket
# 📁 项目结构
```
/threatintel
│
├── src/main/java
│ └── com/hoxcloud/threatintel
│
│ ├── ThreatIntelApplication.java
│
│ ├── config
│ │ └── SwaggerConfig.java
│
│ ├── controller
│ │ ├── AuditCorrelationController.java
│ │ ├── AuthController.java
│ │ ├── IOCImportBatchController.java
│ │ ├── IOCRecordController.java
│ │ ├── IOCTypeController.java
│ │ ├── TenantController.java
│ │ ├── ThreatEnrichmentController.java
│ │ ├── ThreatFeedSourceController.java
│ │ ├── ThreatScoreController.java
│ │ └── ThreatTagController.java
│
│ ├── dto
│ │ ├── request
│ │ └── response
│
│ ├── entity
│ │ ├── AuditFindingLink.java
│ │ ├── IOCImportBatch.java
│ │ ├── IOCRecord.java
│ │ ├── IOCType.java
│ │ ├── Tenant.java
│ │ ├── ThreatEnrichment.java
│ │ ├── ThreatFeedSource.java
│ │ ├── ThreatScore.java
│ │ └── ThreatTag.java
│
│ ├── exception
│ │ └── ResourceNotFoundException.java
│
│ ├── repository
│ │ ├── AuditFindingLinkRepository.java
│ │ ├── IOCImportBatchRepository.java
│ │ ├── IOCRecordRepository.java
│ │ ├── IOCTypeRepository.java
│ │ ├── TenantRepository.java
│ │ ├── ThreatEnrichmentRepository.java
│ │ ├── ThreatFeedSourceRepository.java
│ │ ├── ThreatScoreRepository.java
│ │ ├── ThreatTagRepository.java
│ │ └── UserRepository.java
│
│ ├── security
│ │ ├── CustomUserDetailsService.java
│ │ ├── JwtFilter.java
│ │ ├── JwtUtil.java
│ │ ├── LoginRequest.java
│ │ ├── RegisterRequest.java
│ │ ├── SecurityConfig.java
│ │ └── User.java
│
│ └── service
│ └── impl
│
├── src/main/resources
├── src/test/java
├── target
├── pom.xml
├── mvnw
├── mvnw.cmd
└── HELP.md
```
# 🔐 身份验证流程
应用程序使用 JWT 身份验证。
## 身份验证端点
### 注册用户
```
POST /api/v1/auth/register
```
### 登录
```
POST /api/v1/auth/login
```
### 登录请求示例
```
{
"username": "admin",
"password": "admin123"
}
```
### 登录响应示例
```
{
"token": "JWT_TOKEN_HERE"
}
```
# 🔑 JWT 身份验证使用方法
在所有受保护的 API 中传递 JWT token。
## Header 格式
```
Authorization: Bearer YOUR_TOKEN
```
# 🌐 API 基础 URL
```
http://localhost:8085/api/v1
```
# 📡 主要 API 模块
## 身份验证 API
| 方法 | Endpoint |
| ------ | ---------------- |
| POST | `/auth/register` |
| POST | `/auth/login` |
## IOC API
| 方法 | Endpoint |
| ------ | ------------ |
| GET | `/iocs` |
| GET | `/iocs/{id}` |
| POST | `/iocs` |
| PUT | `/iocs/{id}` |
| DELETE | `/iocs/{id}` |
## IOC 类型 API
| 方法 | Endpoint |
| ------ | ------------ |
| GET | `/ioc-types` |
| POST | `/ioc-types` |
## 威胁标签 API
| 方法 | Endpoint |
| ------ | -------- |
| GET | `/tags` |
| POST | `/tags` |
## 威胁评分 API
| 方法 | Endpoint |
| ------ | --------------------------------- |
| GET | `/threat-score` |
| POST | `/threat-score/calculate/{iocId}` |
## 威胁情报源 API
| 方法 | Endpoint |
| ------ | --------------- |
| GET | `/feed-sources` |
| POST | `/feed-sources` |
## 威胁富化 API
| 方法 | Endpoint |
| ------ | -------------------- |
| GET | `/threat-enrichment` |
| POST | `/threat-enrichment` |
# 🧠 核心功能
## IOC 管理
* IP 指标
* 域名指标
* 文件哈希指标
* URL 指标
* IOC 分类
* IOC 关联
## 威胁评分
* 严重性分析
* 置信度评分
* IOC 风险评级
* 威胁关联
## 威胁富化
* 外部情报源
* 信誉分析
* 元数据富化
## 多租户架构
* 租户隔离
* 特定于租户的 IOC 管理
* 基于角色的访问
## 安全功能
* JWT 身份验证
* BCrypt 密码加密
* 角色授权
* 请求验证
* 异常处理
* 受保护的 API
# ⚙️ 配置
## application.yml
位于:
```
src/main/resources/application.yml
```
示例:
```
server:
port: 8085
servlet:
context-path: /api
spring:
datasource:
url: jdbc:postgresql://localhost:5432/threatintel
username: postgres
password: postgres
jpa:
hibernate:
ddl-auto: update
show-sql: true
jwt:
secret: YOUR_SECRET_KEY
```
# 🐘 PostgreSQL 设置
## 创建数据库
```
CREATE DATABASE threatintel;
```
# ▶️ 运行应用程序
## 使用 Maven Wrapper
### Linux/Mac
```
./mvnw spring-boot:run
```
### Windows
```
mvnw.cmd spring-boot:run
```
# 📦 构建项目
```
mvn clean install
```
# 🧪 Swagger API 文档
Swagger UI:
```
http://localhost:8085/api/swagger-ui/index.html
```
OpenAPI 文档:
```
http://localhost:8085/api/v3/api-docs
```
# 🔌 WebSocket 支持
计划支持的功能:
* 实时告警
* 实时威胁情报源
* SIEM 事件流
* 仪表盘刷新
# 🛡️ 安全架构
```
Client Request
│
▼
JWT Filter
│
▼
Spring Security
│
▼
Controller Layer
│
▼
Service Layer
│
▼
Repository Layer
│
▼
PostgreSQL
```
# 📊 未来增强计划
* SIEM 仪表盘
* Redis 缓存
* Kafka 流处理
* ElasticSearch 集成
* 终端检测代理
* 威胁狩猎引擎
* MITRE ATT&CK 映射
* WebSocket 实时告警
* AI 威胁检测
* 地理攻击地图
* SOC 仪表盘
# 🧰 开发工具
推荐:
* Spring Tool Suite
* IntelliJ IDEA
* Postman
* Docker Desktop
* pgAdmin
# 👨💻 作者
HOXCLOUD 安全工程团队
企业级网络安全研究与威胁情报平台
# 📜 许可证
本项目仅用于教育、企业架构和网络安全研究目的。
# ⭐ 推荐的后续步骤
1. 添加 Redis 缓存
2. 添加 WebSocket 实时告警
3. 构建 React 前端
4. 添加 Docker 部署
5. 添加 SIEM 关联引擎
6. 集成外部威胁情报源
7. 添加 AI 驱动的分析
8. 添加 SOC 仪表盘 UI
标签:域名枚举, 搜索引擎查询, 时间线生成, 测试用例