prasannashrestha24/soc-threat-detection-system

GitHub: prasannashrestha24/soc-threat-detection-system

基于 Python/Django 构建的 SOC 威胁检测系统,通过解析多种安全日志并运行检测规则,在仪表盘上实时展示和管理安全告警。

Stars: 0 | Forks: 0

# 🛡 SOC 威胁检测系统 一个基于 Python/Django 的安全日志监控系统,用于摄取、解析和分析 auth、firewall 及 web server 日志,以检测可疑活动并生成安全警报。 本项目作为作品集构建,旨在展示核心 SOC/SIEM 概念。 ## 仪表盘截图 ![SOC 威胁检测系统仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3bc0cfd7e3220430.png) ## 功能 - **日志摄取** — 解析 Linux auth 日志、firewall 日志以及 Apache/Nginx web 日志 - **检测规则引擎** — 包含 4 条涵盖真实攻击模式的规则: - 暴力破解攻击检测(SSH 登录失败) - 非工作时间登录检测 - 端口扫描检测 - 撞库攻击检测 - **安全仪表盘** — 带有严重程度分类的实时告警展示 - **告警管理** — Open/investigating/resolved/false positive 状态跟踪 - **分析师备注** — 记录针对每个告警的事件响应操作 - **告警过滤** — 按严重程度、状态和规则类型进行过滤 - **统计图表** — 用于严重程度、规则和状态细分可视化的柱状图和环形图 - **CSV 导出** — 使用自动生成的时间戳文件名下载所有告警 - **逼真的日志生成器** — 模拟 4000+ 条包含真实攻击场景日志行的 Python 脚本 ## 技术栈 - Python 3, Django, SQLite - Chart.js(统计可视化) - 自定义日志解析器(基于 regex) - 用于日志摄取的 Django management commands - HTML/CSS 仪表盘(暗色 SOC 主题) ## 快速开始 ``` git clone https://github.com/prasannashrestha24/soc-threat-detection-system cd soc-threat-detection-system pip install django python manage.py migrate python generate_logs.py python manage.py ingest_logs sample_logs/generated_auth.log python manage.py ingest_logs sample_logs/generated_firewall.log python manage.py ingest_logs sample_logs/generated_web.log python manage.py runserver ``` 访问 http://127.0.0.1:8000 查看仪表盘。 ## 检测规则 | 规则 | 触发条件 | 严重程度 | |------|---------|----------| | 暴力破解 | 同一 IP 在 5 分钟内出现 5 次以上登录失败 | Critical | | 非工作时间登录 | 在 08:00–18:00 之外成功登录 | Medium | | 端口扫描 | 同一 IP 在 2 分钟内有 10 次以上被阻止的连接 | High | | 撞库 | 同一用户名在 1 小时内在 3 个以上 IP 登录失败 | High | ## 项目结构 ``` soc-threat-detection-system/ ├── logs/ │ ├── models.py # LogEntry model │ ├── parsers.py # Auth/firewall/web log parsers │ └── management/commands/ingest_logs.py ├── alerts/ │ ├── models.py # Alert model │ ├── rules.py # Detection rules engine │ └── views.py # Dashboard + all views ├── templates/dashboard/ # Dashboard UI with Chart.js ├── sample_logs/ # Test log files └── generate_logs.py # Realistic log generator script ``` ## 开发日志 ### 第 1-2 周 — 项目搭建与初始部署 构建了核心 Django 项目结构,包含两个应用 — `logs` 用于摄取和解析安全日志文件,`alerts` 用于存储和显示安全告警。使用 regex 实现自定义日志解析器,处理三种日志格式:Linux auth 日志、firewall 日志和 Apache/Nginx web server 日志。创建了四条自动化检测规则,涵盖暴力破解攻击、端口扫描、撞库和非工作时间登录。构建了一个暗色主题的 SOC 仪表盘,用于展示带有严重程度分类的实时告警。 ### 第 3-4 周 — 告警管理与报告 在 SOC 仪表盘中添加了分析师工作流。安全告警现在可以通过四个阶段进行状态更新 — Open、Investigating、Resolved 和 False Positive — 映射真实的 SOC 分流流程。添加了一键 CSV 导出功能,可使用自动生成的时间戳文件名下载所有当前告警,从而实现事件报告和审计跟踪记录。 ### 第 5-6 周 — 逼真的数据集与日志生成器 构建了一个 Python 日志生成器脚本(`generate_logs.py`),用于模拟逼真的安全攻击场景。该脚本可生成跨越三种日志类型的 4000+ 条日志行。模拟了五种攻击场景:SSH 暴力破解攻击、来自多个 IP 的撞库、非工作时间登录、端口扫描侦察以及 Web 应用程序探测。其中混入了 60-75% 的正常合法流量,以使数据集更加逼真。 ### 第 7-8 周 — 优化与作品集准备 在 README 中添加了仪表盘截图。使用规范的 `.gitignore` 清理了代码库。项目已完全准备好作为作品集展示,具有清晰的提交记录和详尽的文档。 ### 扩展功能 — 分析师工具与可视化 添加了三项额外功能:用于记录每个告警事件响应操作的分析师备注、按严重程度/状态/规则类型进行告警过滤,以及使用 Chart.js 实现的统计图表(严重程度柱状图、规则柱状图、状态环形图)。 ## 作者 Prasanna Shrestha — ICT 安全专家候选人 | CIHE 堪培拉 GitHub: github.com/prasannashrestha24
标签:Django, Python, 安全告警, 插件系统, 无后门, 调试辅助