Aman-Sajid/Cyber-Threat-Intelligence-Pipeline-CPP-
GitHub: Aman-Sajid/Cyber-Threat-Intelligence-Pipeline-CPP-
基于 Kafka 微服务架构的网络威胁情报流水线,实现从公开情报源自动采集、富化评分到实时可视化展示的全链路处理。
Stars: 0 | Forks: 0
# 网络威胁情报 Pipeline (CCP)



## 📋 项目信息
* **课程:** 软件构建与开发
* **讲师:** Nabeel Ahmad Awan 博士
* **院系:** IT & CS 学科(软件工程)
* **院校:** PAF-IAST
* **提交日期:** 2026 年 5 月 1 日
## 👥 团队成员
| 姓名 | 学号 |
| :--- | :--- |
| **Hamza Badshah** | B23F0352SE016 |
| **Hammad Tahir** | B23F0649SE087 |
| **Hafsa Khan** | B23F0580SE009 |
| **Aman Sajid** | B23F0107SE081 |
| **Esha Chatta** | B23F0403SE077 |
## 🚀 简介
**Cyber Threat Intelligence Pipeline (CCP)** 是一个高度可扩展、事件驱动的微服务系统,旨在实时获取、分析和可视化网络威胁指标。现代安全运营中心 (SOCs) 面临着海量的数据;本 Pipeline 自动化聚合来自 **AbuseIPDB** 和 **AlienVault OTX** 等全球数据库的原始失陷指标,并在将其推送到实时仪表板之前,为其丰富严重性评分。
## 🏗️ 系统架构
该系统采用解耦的微服务架构,以 **Apache Kafka** 作为中央消息代理。
```
graph TD
A[AbuseIPDB / AlienVault] -->|REST API| B[Ingestion Service :8080]
B -->|Publish Raw JSON| C[Kafka: raw-iocs]
C -->|Consume| D[Extraction Service :8082]
D -->|Enrichment| E[Ranking Service]
E -->|Persistence| F[(MySQL DB)]
F --> G[Threat API Service :8083]
G -->|Fetch Data| H[SOC Web Dashboard]
```
### 主要优势:
* **可扩展性:** 服务可以独立进行扩展。
* **容错性:** 如果数据库或消费者服务离线,Kafka 会缓冲数据。
* **多语言支持:** 未来的模块(例如 Python ML)可以轻松集成。
## 🛠️ 技术规格
### 1. 获取服务 (端口 8080)
* **角色:** 数据生产者。
* **实现:** 通过 `RestTemplate` 从外部源获取数据。
* **数据源:** AbuseIPDB (v2 黑名单) 和 AlienVault OTX (v1 脉冲)。
* **输出:** 将原始 payload 发布到 `raw-iocs` Kafka topic。
### 2. 提取与处理服务 (端口 8082)
* **角色:** 数据消费者与富化处理。
* **逻辑:** 使用 `@KafkaListener` 获取数据,通过 Jackson 验证 JSON,并过滤掉格式错误的指标。
* **评分服务:** 为每个威胁生成确定性的“富化严重性评分”(0-100)。
* **持久化:** 通过 Hibernate/JPA 将对象保存到 MySQL。
## 📊 数据建模
MySQL 数据库将威胁数据存储在 `iocs` 表中:
* `id`:主键 (自动递增)
* `ioc_value`:恶意 IP/Domain
* `ioc_type`:分类(例如,"IP")
* `severity_score`:整数 (0-100)
* **Source:** 来源 API (AbuseIPDB 或 AlienVault)
* **Created At:** 由数据库处理的自动时间戳。
## 💻 展示层:SOC 仪表板
一个原生的**深色主题终端**仪表板,构建基于:
* **Vanilla JavaScript:** 针对速度和低开销进行了优化。
* **Async/Await Fetch:** 持续轮询以获取实时更新。
* **KPI 引擎:** 实时计算“关键卷”和“来源分布”。
* **动态 UI:** 对高严重性威胁(分数 > 80)进行霓虹红高亮显示。
## ⚙️ 部署与操作指南
请按照以下严格的启动顺序在本地执行:
1. **基础设施:**
* 启动 **WAMP Server** (MySQL 端口为 3306)。
* 启动 **Apache Kafka** (`kafka-server-start.bat`)。
2. **消费者:**
* 运行 **Extraction Service** (端口 8082)。
* 运行 **Threat API Service** (端口 8083)。
3. **前端:**
* 在 Web 浏览器中打开 `index.html`。
4. **生产者:**
* 运行 **Ingestion Service** (端口 8080)。
* 触发 `/ingest` endpoint 以启动数据流。
## 🔮 未来展望
* **容器化:** 全面的 Docker 和 Kubernetes 编排。
* **ELK Stack:** 与 Elasticsearch/Kibana 集成以进行历史分析。
* **ML 集成:** 使用基于 Python 的 Kafka 消费者进行异常检测模型构建。
© 2026 CCP 团队 - 软件工程系,PAF-IAST。
标签:AbuseIPDB, DNS 反向解析, IoC, JS文件枚举, Kafka, REST API, scalable system, SonarQube插件, Spring Boot, 事件驱动架构, 仪表盘, 域名枚举, 失陷指标, 威胁情报管道, 威胁评分, 安全运营中心, 实时数据分析, 密码管理, 微服务架构, 数据可视化, 数据管道, 数据聚合, 无线安全, 毕业设计, 消息队列, 网络威胁情报, 网络安全, 网络映射, 软件工程, 软件成分分析, 隐私保护