这篇文章介绍一个基于 Python 的网络威胁防御分析系统,从流量采集、威胁检测到事件关联和防御建议输出,尽量把“检测闭环”真正做完整。

原文链接:https://blog.csdn.net/xyc_yyds/article/details/159247592

GitHub:https://github.com/xiao-zi-chen/network-threat-defense-suite.git

Network Threat Defense Suite 封面

期末作业也开源出来了,后面如果还有类似需求可以直接参考,现在也做成了 Claude 插件方向的形态。

一、项目简介

Network Threat Defense Suite 是一个基于 Python 实现的网络威胁防御分析项目,面向网络流量安全检测与防御研判场景。

项目支持对 PCAP 离线流量包实时抓包流量 进行分析,能够自动识别:

  • 端口扫描
  • 暴力破解
  • DNS 异常
  • ARP 欺骗

并进一步输出:

  • 告警结果
  • 事件关联分析
  • 防御态势评估
  • 覆盖缺口总结
  • 安全加固建议

和很多只做“抓包解析”或“规则告警”的小项目不同,这个系统更强调“防御闭环”设计,也就是从流量采集、协议解析、威胁检测,到事件关联、攻击链重建、响应剧本生成,最终形成可直接给安全分析人员参考的防御结果。

二、项目背景

在网络安全防护中,流量分析一直是威胁发现的重要手段。很多攻击行为在主机层面不容易第一时间暴露,但会在网络侧留下明显特征,例如:

  • 攻击者会在渗透前通过端口扫描收集目标暴露面。
  • 凭据攻击通常表现为短时间内重复的认证请求。
  • 木马或僵尸网络可能通过 DNS 隧道或异常心跳流量与外部通信。
  • 内网攻击中经常出现 ARP 欺骗和中间人攻击等二层威胁。

因此,真正有价值的不是只做流量解析,而是在解析基础上继续做威胁识别、告警关联和防御建议输出。

三、项目目标

本项目主要实现这些目标:

  • 支持离线和在线两种流量分析方式。
  • 基于规则和统计方法识别典型威胁行为。
  • 对未知异常流量进行启发式或 AI 语义研判。
  • 将分散告警聚合为更高层次的安全事件。
  • 输出防御态势、覆盖面分析和加固方案。
  • 提供 CLI、API、MCP 等多种调用方式,提升扩展性。

四、技术栈

项目主要使用以下技术:

  • Python 3.10+
  • Scapy
  • FastAPI
  • Uvicorn
  • MCP
  • Pytest

其中各自承担的角色如下:

  • Scapy:负责数据包读取、抓包和协议解析。
  • FastAPI:用于封装 HTTP 接口,方便系统化调用。
  • MCP:用于提供智能代理工具接口,增强扩展能力。
  • Pytest:用于后续测试与验证。

五、系统功能设计

1. 流量采集与输入

项目支持两种输入方式:

  1. 离线分析
    直接导入 .pcap 文件,读取抓包结果后统一分析。
  2. 实时抓包
    指定网卡接口后,实时抓取一定数量的数据包并进行分析。

这种设计让项目既适合实验环境下的样本分析,也适合模拟真实网络环境中的实时检测。

2. 协议解析与流量建模

系统会先将原始数据包转换为统一的数据记录结构,并在此基础上生成流级别的通信摘要,包括:

  • 源地址与目的地址
  • 协议类型
  • 端口信息
  • 时间窗口
  • 载荷大小
  • 熵值特征
  • 数据包间隔特征

这些特征会作为后续威胁检测和异常判断的基础数据。

3. 规则检测模块

系统内置了多种常见规则型检测器,主要包括:

  • 端口扫描检测
  • 暴力破解检测
  • DNS 异常检测
  • ARP 攻击检测

这一模块能够较快定位具有明显攻击特征的流量,是系统最直接的告警来源。

4. 统计异常检测模块

除了规则检测,系统还提供统计型异常检测能力,主要包括:

  • 流量突发异常检测
  • 周期性心跳异常检测

这类检测对发现未知攻击或低特征流量更有帮助,可以弥补纯规则检测的不足。

5. 语义研判模块

对于无法仅依靠规则判断的异常流量,系统还设计了语义研判能力:

  • 支持启发式判断模式
  • 支持 OpenAI 兼容接口模式
  • 能对可疑流进行进一步分类、解释和风险补充

这使得项目不再局限于“命中规则才报警”,而是可以对未知威胁候选流量给出更有解释性的分析结果。

6. 告警关联与事件重建

实际安全分析中,多个低层告警往往属于同一条攻击链。项目在检测结果之上增加了事件关联机制,能够:

  • 聚合多条告警形成 incident
  • 构建攻击路径和关系图
  • 提炼攻击叙事和影响资产
  • 输出更高层次的安全事件摘要

7. 响应剧本与防御建议生成

项目不仅检测威胁,还会基于检测结果自动生成:

  • 防御态势评分
  • 覆盖能力总结
  • 覆盖缺口说明
  • 加固优先级方案
  • 事件响应剧本

例如系统会根据告警推荐封禁源地址、检查目标暴露面、开启 MFA、启用 ARP 检测、审查 DNS 请求等操作。

六、系统架构设计

整体流程如下:

1
2
3
4
5
6
7
流量输入(PCAP / 实时抓包)
-> 协议解析与记录标准化
-> 流量聚合与特征提取
-> 规则检测 + 统计异常检测
-> 语义研判
-> 告警关联与事件重建
-> 防御态势 / 覆盖总结 / 加固建议 / 响应剧本输出

项目内部还采用了类似多智能体的流水线编排思路,将分析过程拆分为多个职责明确的分析角色:

  • Sensor Agent:发现活跃实体和可疑流量候选
  • Rule Hunter:进行规则型威胁检测
  • Baseline Agent:执行统计异常分析
  • Semantic Agent:完成语义研判
  • Correlation Agent:负责事件关联和攻击链构建
  • Response Agent:生成处置剧本与响应建议

七、项目目录结构

1
2
3
4
5
6
7
8
network-threat-defense-suite
├── network_threat_defense
├── scripts
├── skills
├── .claude-plugin
├── README.md
├── requirements.txt
└── LICENSE

各目录职责如下:

  • network_threat_defense:核心业务代码,包含检测、分析、编排、报告生成等模块。
  • scripts:运行脚本,用于启动分析任务、API 服务和 MCP 服务。
  • skills:面向智能代理工具的技能封装。
  • .claude-plugin:插件相关内容。
  • README.md:项目说明文档。
  • requirements.txt:依赖文件。

八、核心实现思路

1. 检测机制设计

项目将威胁检测分成两类:

  1. 规则检测
    对具有明确行为特征的攻击进行快速识别,精度高、可解释性强。
  2. 统计检测
    针对流量突变、低频心跳、未知模式进行补充发现。

这种“双通道”设计既保证了常见威胁的识别能力,也提高了系统面对未知异常流量时的适应性。

2. 防御导向输出

和很多只输出“是否异常”的项目不同,本系统最终输出的是一套防御导向结果,包括:

  • 风险级别
  • 事件摘要
  • 受影响资产
  • 推荐处置动作
  • 加固优先级

3. 扩展性设计

项目不仅支持命令行使用,还支持:

  • FastAPI 接口调用
  • MCP Server 工具调用
  • Claude / Codex 插件式接入

这说明项目在设计时已经考虑了平台化与智能化扩展,而不仅仅是单机脚本。

九、项目运行方式

1. 安装依赖

1
pip install -r requirements.txt

2. 分析 PCAP 文件

1
python scripts/run_defense_task.py analyze-pcap --pcap path/to/file.pcap --ai-mode heuristic

3. 查看最近一次防御态势结果

1
python scripts/run_defense_task.py latest-posture --section snapshot

4. 启动 API 服务

1
python scripts/run_defense_task.py start-api --host 127.0.0.1 --port 8000

5. 启动 MCP 服务

1
python scripts/run_defense_task.py start-mcp

如果需要启用 OpenAI 兼容的语义研判能力,可以配置这些环境变量:

1
2
3
4
set THREAT_AI_MODE=auto
set THREAT_AI_API_KEY=your_key_here
set THREAT_AI_BASE_URL=https://api.openai.com/v1
set THREAT_AI_MODEL=gpt-4.1-mini

十、项目特色与创新点

这个项目的亮点主要体现在:

  • 不仅支持流量检测,还能输出防御态势和加固方案。
  • 同时支持离线分析与实时抓包,应用场景更灵活。
  • 结合规则检测、统计异常检测和语义研判,分析层次更完整。
  • 能完成事件关联与攻击链构建,提升检测结果的实战价值。
  • 提供 CLI、HTTP API、MCP 等多种调用方式,便于集成。
  • 模块化程度较高,后续可以继续扩展更多协议解析与检测规则。

十一、不足与可改进方向

虽然项目已经具备较完整的分析流程,但仍有一些可以继续优化的地方:

  • 当前检测类型仍以常见网络威胁为主,后续可以继续增加 Web 攻击、隧道流量、横向移动等能力。
  • 统计分析方法相对基础,可以进一步引入机器学习或更复杂的时序异常检测方法。
  • 当前更适合实验或中小规模分析场景,在高吞吐生产环境下仍需要继续优化性能。
  • 可以补齐前端可视化界面,将攻击图谱、告警分布、态势评分更直观地展示出来。
  • 可以进一步完善测试集与样本库,提高项目的可验证性和演示效果。

十二、总结

总体来看,Network Threat Defense Suite 是一个比较完整的网络威胁防御分析项目。

它以网络流量为分析对象,融合了抓包、协议解析、威胁检测、异常分析、事件关联和防御建议输出等多个环节,形成了一个面向安全运营和防御分析的闭环系统。

相较于单纯的抓包工具或单规则检测项目,这个系统更关注“分析结果如何服务防御决策”,因此在课程设计、毕业设计和项目展示场景中都有比较强的完整性与可展示性。