hamzabadshah10/cyber-threat-intelligence-pipeline-cpp

GitHub: hamzabadshah10/cyber-threat-intelligence-pipeline-cpp

一个基于 Kafka 微服务架构的网络威胁情报管线,从外部情报源自动采集、评分并以实时仪表板展示失陷指标。

Stars: 0 | Forks: 0

# 网络威胁情报管道 (CCP) ![项目状态](https://img.shields.io/badge/Status-Completed-success) ![版本](https://img.shields.io/badge/Version-1.0.0-blue) ![架构](https://img.shields.io/badge/Architecture-Microservices-orange) ## 📋 项目信息 * **课程:** 软件构建与开发 * **讲师:** 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 | ## 🚀 简介 **网络威胁情报管道 (CCP)** 是一个高度可扩展、事件驱动的微服务系统,旨在实时获取、分析和可视化网络威胁指标。现代安全运营中心 (SOC) 面临着海量数据的冲击;本管道自动化了从 **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/域名 * `ioc_type`:分类(例如,"IP") * `severity_score`:整数 (0-100) * **来源:** 来源 API (AbuseIPDB 或 AlienVault) * **创建时间:** 由数据库处理的自动时间戳。 ## 💻 展示层:SOC 仪表板 一个原生的**深色主题终端**仪表板,构建基于: * **原生 JavaScript:** 针对速度和低开销进行了优化。 * **Async/Await Fetch:** 持续轮询以获取实时更新。 * **KPI 引擎:** 实时计算“严重容量”和“来源分布”。 * **动态 UI:** 针对高严重性威胁(分数 > 80)进行霓虹红色高亮显示。 ## ⚙️ 部署与运维指南 请遵循以下严格的启动顺序进行本地执行: 1. **基础设施:** * 启动 **WAMP Server** (MySQL 端口 3306)。 * 启动 **Apache Kafka** (`kafka-server-start.bat`)。 2. **消费者:** * 运行 **提取服务** (端口 8082)。 * 运行 **威胁 API 服务** (端口 8083)。 3. **前端:** * 在 Web 浏览器中打开 `index.html`。 4. **生产者:** * 运行 **获取服务** (端口 8080)。 * 触发 `/ingest` endpoint 以启动数据流。 ## 🔮 未来范围 * **容器化:** 完整的 Docker 和 Kubernetes 编排。 * **ELK Stack:** 与 Elasticsearch/Kibana 集成以进行历史分析。 * **ML 集成:** 使用基于 Python 的 Kafka 消费者进行异常检测模型。 *© 2026 CCP 团队 - 软件工程系,作为计算科学学院 Pak-Austria Fachhochschule (PAF-IAST) 的一部分开发*
标签:AbuseIPDB, AES-256, AMSI绕过, Apache Kafka, Apex, IoC, JS文件枚举, Kafka, Python, REST API, SonarQube插件, Spring Boot, 事件驱动架构, 可扩展架构, 可视化面板, 域名枚举, 失陷指标, 威胁情报, 威胁检测, 安全运营中心, 实时数据处理, 开发者工具, 数据可视化, 数据处理管道, 数据富化, 数据摄取, 数据管道, 无后门, 机器学习, 消息队列, 漏洞评估, 网络安全, 网络映射, 软件工程, 软件成分分析, 隐私保护