基于 Python 的网络威胁防御分析系统设计与实现
这篇文章介绍一个基于 Python 的网络威胁防御分析系统,从流量采集、威胁检测到事件关联和防御建议输出,尽量把“检测闭环”真正做完整。
原文链接:https://blog.csdn.net/xyc_yyds/article/details/159247592
GitHub:https://github.com/xiao-zi-chen/network-threat-defense-suite.git
期末作业也开源出来了,后面如果还有类似需求可以直接参考,现在也做成了 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. 流量采集与输入
项目支持两种输入方式:
- 离线分析
直接导入.pcap文件,读取抓包结果后统一分析。 - 实时抓包
指定网卡接口后,实时抓取一定数量的数据包并进行分析。
这种设计让项目既适合实验环境下的样本分析,也适合模拟真实网络环境中的实时检测。
2. 协议解析与流量建模
系统会先将原始数据包转换为统一的数据记录结构,并在此基础上生成流级别的通信摘要,包括:
- 源地址与目的地址
- 协议类型
- 端口信息
- 时间窗口
- 载荷大小
- 熵值特征
- 数据包间隔特征
这些特征会作为后续威胁检测和异常判断的基础数据。
3. 规则检测模块
系统内置了多种常见规则型检测器,主要包括:
- 端口扫描检测
- 暴力破解检测
- DNS 异常检测
- ARP 攻击检测
这一模块能够较快定位具有明显攻击特征的流量,是系统最直接的告警来源。
4. 统计异常检测模块
除了规则检测,系统还提供统计型异常检测能力,主要包括:
- 流量突发异常检测
- 周期性心跳异常检测
这类检测对发现未知攻击或低特征流量更有帮助,可以弥补纯规则检测的不足。
5. 语义研判模块
对于无法仅依靠规则判断的异常流量,系统还设计了语义研判能力:
- 支持启发式判断模式
- 支持 OpenAI 兼容接口模式
- 能对可疑流进行进一步分类、解释和风险补充
这使得项目不再局限于“命中规则才报警”,而是可以对未知威胁候选流量给出更有解释性的分析结果。
6. 告警关联与事件重建
实际安全分析中,多个低层告警往往属于同一条攻击链。项目在检测结果之上增加了事件关联机制,能够:
- 聚合多条告警形成 incident
- 构建攻击路径和关系图
- 提炼攻击叙事和影响资产
- 输出更高层次的安全事件摘要
7. 响应剧本与防御建议生成
项目不仅检测威胁,还会基于检测结果自动生成:
- 防御态势评分
- 覆盖能力总结
- 覆盖缺口说明
- 加固优先级方案
- 事件响应剧本
例如系统会根据告警推荐封禁源地址、检查目标暴露面、开启 MFA、启用 ARP 检测、审查 DNS 请求等操作。
六、系统架构设计
整体流程如下:
1 | 流量输入(PCAP / 实时抓包) |
项目内部还采用了类似多智能体的流水线编排思路,将分析过程拆分为多个职责明确的分析角色:
Sensor Agent:发现活跃实体和可疑流量候选Rule Hunter:进行规则型威胁检测Baseline Agent:执行统计异常分析Semantic Agent:完成语义研判Correlation Agent:负责事件关联和攻击链构建Response Agent:生成处置剧本与响应建议
七、项目目录结构
1 | network-threat-defense-suite |
各目录职责如下:
network_threat_defense:核心业务代码,包含检测、分析、编排、报告生成等模块。scripts:运行脚本,用于启动分析任务、API 服务和 MCP 服务。skills:面向智能代理工具的技能封装。.claude-plugin:插件相关内容。README.md:项目说明文档。requirements.txt:依赖文件。
八、核心实现思路
1. 检测机制设计
项目将威胁检测分成两类:
- 规则检测
对具有明确行为特征的攻击进行快速识别,精度高、可解释性强。 - 统计检测
针对流量突变、低频心跳、未知模式进行补充发现。
这种“双通道”设计既保证了常见威胁的识别能力,也提高了系统面对未知异常流量时的适应性。
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 | set THREAT_AI_MODE=auto |
十、项目特色与创新点
这个项目的亮点主要体现在:
- 不仅支持流量检测,还能输出防御态势和加固方案。
- 同时支持离线分析与实时抓包,应用场景更灵活。
- 结合规则检测、统计异常检测和语义研判,分析层次更完整。
- 能完成事件关联与攻击链构建,提升检测结果的实战价值。
- 提供 CLI、HTTP API、MCP 等多种调用方式,便于集成。
- 模块化程度较高,后续可以继续扩展更多协议解析与检测规则。
十一、不足与可改进方向
虽然项目已经具备较完整的分析流程,但仍有一些可以继续优化的地方:
- 当前检测类型仍以常见网络威胁为主,后续可以继续增加 Web 攻击、隧道流量、横向移动等能力。
- 统计分析方法相对基础,可以进一步引入机器学习或更复杂的时序异常检测方法。
- 当前更适合实验或中小规模分析场景,在高吞吐生产环境下仍需要继续优化性能。
- 可以补齐前端可视化界面,将攻击图谱、告警分布、态势评分更直观地展示出来。
- 可以进一步完善测试集与样本库,提高项目的可验证性和演示效果。
十二、总结
总体来看,Network Threat Defense Suite 是一个比较完整的网络威胁防御分析项目。
它以网络流量为分析对象,融合了抓包、协议解析、威胁检测、异常分析、事件关联和防御建议输出等多个环节,形成了一个面向安全运营和防御分析的闭环系统。
相较于单纯的抓包工具或单规则检测项目,这个系统更关注“分析结果如何服务防御决策”,因此在课程设计、毕业设计和项目展示场景中都有比较强的完整性与可展示性。

