Builder
一、项目背景与目标(立项原因)
随着Web业务和互联网服务的快速发展,传统仅依赖静态规则的防火墙难以及时发现 未知攻击、变种攻击和低频扫描行为 ,同时安全运维人员缺乏一套集“监控、分析、配置、审计”于一体的可视化平台。
本项目以“智能防火墙实验系统”为目标,结合网络空间安全专业教学与实战需求,旨在构建一个 集规则过滤、入侵检测、AI 异常检测和安全态势可视化 于一体的综合实验平台,实现:
- 对常见 Web 与网络攻击的有效拦截;
- 对未知异常行为的智能发现与预警;
- 对安全策略与运维操作的可视化管理与可审计追踪;
- 为教学和科研提供完整的安全系统实践样例。
二、软件整体功能与核心功能模块
从功能上看,系统主要包含以下几个模块:
1. 用户认证与权限控制模块
- 基于 JWT 的登录认证,支持管理员账号登录;
- 区分不同角色权限,对规则管理、系统设置等敏感操作进行访问控制。
2. 实时仪表盘与态势感知模块
- 展示总流量、允许/拦截数量、威胁告警数量等关键指标;
- 显示协议分布、按类型分类的流量统计和趋势图;
- 提供系统运行状态(服务是否正常、CPU/内存等)概览。
3. 流量分析与告警模块
- 实时展示安全告警列表:时间、源/目的 IP、端口、协议、攻击类型、告警等级;
- 支持按时间、IP、类型等条件筛选告警,查看详细信息;
- 标记 AI 异常检测告警,区分规则命中与模型判断来源。
4. 规则管理模块
- 可视化维护防火墙规则:协议、源/目的 IP、端口范围、动作(允许/拒绝/记录)、优先级等;
- 支持规则的新增、修改、删除、启用/禁用;
- 优先级管理影响匹配顺序,实现精细化访问控制。
5. 核心安全引擎与 AI 检测模块
- 基于五元组的包过滤与规则匹配;
- 特征规则识别常见攻击(SQL 注入、XSS、路径遍历等);
- 使用孤立森林、LOF 等无监督算法,对流量行为进行异常评分,识别未知威胁与异常模式。
6. 日志审计与运维记录模块
- 记录登录、规则变更、告警触发等关键操作;
- 支持日志查询与导出,为合规审计与溯源提供依据。
三、核心业务流程与功能路径描述
从“用户登录”到“威胁发现与处置”,系统整体业务流程可以概括为:
1. 登录与认证路径
- 用户访问登录页面 → 输入账号密码 → 后端验证凭证 → 生成 JWT 令牌 → 前端携带令牌访问各类管理接口。
- 功能路径示例:
登录页面 → 输入凭证 → /api/login → 返回 Token → 访问仪表盘及其他模块
2. 流量处理与检测路径
整体架构与设计思路
- 分层架构:前端表示层 → 应用接口层 → 核心安全引擎层 → 数据与审计层,采用前后端分离、模块化耦合的思路,保证可扩展与易维护
- 设计原则:规则检测与AI异常并行;认证与审计前置;数据统一结构化;指标与态势可视化、可解释
- 关键全局状态:在 server.py 中维护 TRAFFIC_DATA、ALERTS、IDS_STATS、STATS,统一支撑接口与前端展示
功能模块与技术栈
- 应用接口层
- Flask REST API 与路由: server.py ,提供页面与 /api/* 系列接口
- JWT 无状态认证: jwt_manager.py ,配合 authentication.py
- 访问限流与安全钩子:RateLimiter + before_request 钩子, server.py
- 核心安全引擎层
- 规则管理:五元组匹配与CRUD, rule_manager.py ,规则存储 rules.json
- 流量处理流水线:规则匹配、检测回调、状态更新, packet_processor.py
- 签名检测:常见攻击(SQLi/XSS/Path Traversal)特征识别, threat_detector.py
- AI 异常检测:IsolationForest + LOF,特征抽取与评分, ai_threat_detector.py
- 数据与审计层
- 审计日志统一入口: audit_logger.py ,日志查询接口 server.py
- 用户与角色:users.json 持久化与密码哈希, authentication.py
- 前端表示层
- 仪表盘与导航: index.html
- 流量分析与态势图:协议分布、类型统计、拓扑与告警, traffic_analysis.html
- 规则管理与编辑: rules.html
- 登录与认证界面: login.html
- 依赖与栈
- 后端:Flask、flask-cors、pyjwt、requests、scikit-learn、numpy、pandas(见 requirements.txt )
- 前端:HTML5/CSS3/JavaScript + Bootstrap;AJAX/Fetch 轮询(1–5s)
关键数据流与接口路径
- 登录认证:前端登录 → /api/login → 下发JWT → 前端请求头携带Token访问管理接口
- 流量处理:接收请求 → PacketProcessor 抽取五元组 → 规则匹配 + 签名检测 + AI评分 → 生成结果,更新 STATS/ALERTS → 触发审计日志
- 态势展示:前端定时轮询 /api/stats 、 /api/tra