diegoperezg7/TFG-SecNet

GitHub: diegoperezg7/TFG-SecNet

基于 Suricata 的容器化自动化网络入侵检测与响应平台,集成实时告警分析、自动 IP 封禁和取证可视化仪表板。

Stars: 0 | Forks: 0

# SecNet **自动化网络安全事件检测与响应系统** SecNet 是一个容器化的安全平台,它通过统一的 Web 仪表板,将实时网络威胁检测(Suricata IDS/IPS)、通过 IP 封禁实现的自动化事件响应,以及取证警报分析结合在一起。本项目为 ASIR(网络计算机系统管理)项目的期末毕业设计,获得 10/10 满分评价。 ## 系统架构 ``` flowchart LR NET[Network Traffic] --> SUR[Suricata IDS/IPS] SUR -->|EVE JSON Alerts| PYR[Python Responder] PYR -->|Classified Alerts| DB[(SQLite3)] PYR -->|Block Rules| IPT[iptables / nftables] IPT -.->|Packet Filtering| NET DB --> WEB[Web Dashboard] WEB -->|Manual Block/Unblock| PYR style SUR fill:#1a1a2e,stroke:#0f3460,color:#e94560 style PYR fill:#1a1a2e,stroke:#0f3460,color:#16c79a style WEB fill:#1a1a2e,stroke:#0f3460,color:#11999e style DB fill:#1a1a2e,stroke:#0f3460,color:#e2e2e2 style IPT fill:#1a1a2e,stroke:#0f3460,color:#f58840 ``` ## 核心功能 **威胁检测** -- 搭载 Suricata 7.0+ 引擎,内置 11 条自定义检测规则以实时监控网络流量。警报从 EVE JSON 日志中解析并按严重程度进行分类。 **自动化响应** -- 检测到的威胁会通过 iptables/nftables 触发自动 IP 封禁。对于严重和高危事件无需人工干预。同时仪表板提供手动干预选项。 **取证分析** -- 每个警报都会存储完整的数据包元数据:源/目标 IP、端口、协议、时间戳、规则签名以及严重程度。支持按警报查看详细的取证视图。 **仪表板与可视化** -- 深色主题的响应式 Web 界面,提供实时警报推送、严重程度过滤、被封禁 IP 管理,以及基于 Chart.js 的警报趋势和分布可视化图表。 ## 警报分类 | 严重程度 | 级别 | 示例 | |---|---|---| | 严重 | 1 | 主动 exploitation 尝试,已知 CVE 签名 | | 高危 | 2 | 暴力破解攻击,端口扫描 | | 中危 | 3 | 可疑协议使用,异常流量模式 | | 低危 | 4 | 策略违规,信息探测 | | 信息 | 5 | 针对标记域名的 DNS 查询,连接元数据 | ## 技术栈 | 组件 | 技术 | 作用 | |---|---|---| | IDS/IPS 引擎 | Suricata 7.0+ | 网络流量分析与基于规则的检测 | | API / 自动化 | Python 3.9, Flask | 警报处理、自动化响应、REST API | | 仪表板 | PHP, Apache | Web 界面、警报可视化 | | 数据库 | SQLite3 | 警报与被封禁 IP 存储 | | 可视化 | Chart.js | 警报趋势图与严重程度分布 | | 数据包过滤 | iptables / nftables | 自动与手动 IP 封禁 | | 基础设施 | Docker, Docker Compose | 容器化、编排、健康检查 | ## 系统截图 | 仪表板 | 警报详情 | |---|---| | | | | 实时警报 | 封禁 IP | |---|---| | | | ## 快速开始 ``` git clone https://github.com/diegoperezg7/TFG-SecNet.git cd TFG-SecNet docker compose up -d ``` 仪表板访问地址为 `http://localhost:8080`。Flask API 运行在 `5000` 端口。 如需监控特定的网络接口,请在启动容器前编辑 `suricata/suricata.yaml`。 ## 架构详情 SecNet 以由 Docker Compose 编排的三容器系统运行: **容器 1 -- Suricata** 以 IDS/IPS 模式运行,根据 11 条自定义规则及默认规则集对网络流量进行检查。警报将被写入 EVE JSON 日志,并通过 Docker 卷与 Python Responder 共享。 **容器 2 -- Python Responder** 运行 Flask API,持续解析 Suricata 的 EVE 日志,按严重程度对警报进行分类,将其存储在 SQLite 中,并对超过配置阈值的威胁执行自动 IP 封禁。 **容器 3 -- Web 界面** 在 Apache 上提供 PHP 仪表板,该仪表板调用 Flask API。提供实时警报监控、取证详情视图、严重程度过滤以及封禁 IP 管理功能。 这三个容器均通过内部 Docker 网络进行通信。健康检查机制确保了故障发生时的自动重启。 ## 自定义检测规则 11 条涵盖以下内容的自定义 Suricata 规则: - **端口扫描** -- SYN 扫描检测,顺序端口探测 - **暴力破解** -- SSH 和 HTTP 认证洪泛检测 - **可疑协议** -- IRC、Telnet 及非标准协议的使用 - **已知攻击模式** -- SQL 注入签名,目录遍历 - **数据渗漏指标** -- 大量出站传输,DNS 隧道模式 规则定义在 `suricata/rules/custom.rules` 中,无需重新构建容器即可进行扩展。 ## 仓库结构 ``` TFG-SecNet/ ├── docker-compose.yml ├── suricata/ │ ├── Dockerfile │ ├── suricata.yaml │ └── rules/ │ └── custom.rules ├── python-responder/ │ ├── Dockerfile │ ├── responder.py │ └── requirements.txt ├── web-interface/ │ ├── Dockerfile │ ├── index.php │ ├── api/ │ ├── css/ │ └── js/ └── README.md ``` ## 学术背景 本项目为 Tecnico Superior en Administracion de Sistemas Informaticos en Red (ASIR) 课程的期末毕业设计。获得 10/10 满分评价。 ## 许可证 版权所有 (c) 2024-2026 Diego Perez Garcia。保留所有权利。 本仓库仅出于**作品集与评估目的**发布。您可以查看和阅读其中的内容以评估作者的技术能力。未经明确书面许可,严禁出于任何目的复制、修改、分发或使用本代码库的任何部分。完整条款请参见 [LICENSE](LICENSE)。
标签:AMSI绕过, ASIR, Beacon Object File, Chart.js, CISA项目, EVE JSON, ffuf, iptables, IP 地址批量处理, IP封禁, Linux防火墙, Metaprompt, nftables, NIDS, PB级数据处理, Python, SecNet, SQLite3, Suricata, Web仪表盘, 入侵检测系统, 入侵防御系统, 威胁检测, 威胁猎捕, 安全数据湖, 安全运维, 容器化, 无后门, 毕业设计, 现代安全运营, 网络安全, 网络流量分析, 自动化响应, 请求拦截, 逆向工具, 隐私保护