Veggis96/local-log-analyzer

GitHub: Veggis96/local-log-analyzer

一个基于 Python 的轻量级本地日志分析学习工具,通过规则检测可疑模式并生成分析报告和可视化仪表板,帮助初学者模拟安全运营中心的日志调查流程。

Stars: 0 | Forks: 0

# 本地 Log Analyzer Local Log Analyzer 是一个专注于网络安全的实践学习项目,用于解析本地文本日志、检测常见的可疑模式,并生成分析员风格的报告。它最初只是对日志分析的一次小型探索,后来启发了更广泛的 [AI-Cyberdefense](https://github.com/Veggis96/AI-Cyberdefense) 项目。 该项目专为作品展示和学习而设计,非常适合 IT 支持、安全运营和初级网络安全岗位的从业者。 ## 项目演进 Local Log Analyzer 最初是一个小型项目,旨在学习日志解析、基础检测逻辑、风险评分和安全报告。 在完成初始版本后,我将这个想法扩展成了 [AI-Cyberdefense](https://github.com/Veggis96/AI-Cyberdefense),这是一个受 SIEM/SOC 启发的大型项目,包含了标准化事件、模块化规则包、事件工作流、MITRE ATT&CK 上下文、SQLite 持久化存储以及面向分析员的仪表板。 ## 在线演示 - [项目主页](https://veggis96.github.io/local-log-analyzer/) - [基于浏览器的学习演示](https://veggis96.github.io/local-log-analyzer/app.html) - [生成的仪表板](https://veggis96.github.io/local-log-analyzer/dashboard.html) ## 项目解决的问题 安全团队在开始调查时,通常会查看日志以寻找重复的登录失败、可疑的源 IP、账户锁定以及失败后的成功登录。本项目通过本地示例日志和易于理解的检测逻辑模拟了这一工作流。 ## 核心功能 - 在本地分析 `.txt` 和 `.log` 文件。 - 检测重复的登录失败、端口扫描、账户锁定、失败后的成功登录以及来自新 IP 的成功登录。 - 计算简单的严重程度和风险等级。 - 生成终端输出、`report.txt`、`alerts.csv`、`summary.json` 和 `dashboard.html`。 - 包含一个纯浏览器端的小型 SIEM 风格学习界面,用于处理粘贴或上传的日志。 - 提供暴力破解、端口扫描、账户接管和干净基准活动的演示场景。 - 包含针对常见警报类型的 MITRE ATT&CK 和 OWASP 学习笔记。 - 包含面试笔记、调查指南、示例报告和作品集文档。 ## 主截图 ### 仪表板 风险等级、警报数量、已分析文件和可疑指标的整体概览。 ![Local Log Analyzer 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/1c/1cc723a01177aa0b6214c370f4a7b3bd07488aba255646f850c6755c750036c7.png) ## 更多截图 ### 事件列表 小型 SIEM 风格的浏览器视图,包含演示场景、IOC 摘要和事件时间线。 ![浏览器应用中的事件列表](https://static.pigsec.cn/wp-content/uploads/repos/cas/17/17b0ae2302ea873d34316a465e16d524442ad3192e37f1775bee81ba539a9226.png) ### 检测详情 可疑登录活动的时间线和 IOC 详情。 ![检测详情和 IOC 摘要](https://static.pigsec.cn/wp-content/uploads/repos/cas/f0/f035d6c64e6bba2a55fbdb5476f57df3c5274cd68e724ec632f389719e0e5e46.png) ### 报告 来自浏览器应用的风险摘要和生成的报告风格输出。 ![报告摘要](https://static.pigsec.cn/wp-content/uploads/repos/cas/fa/fa9c9ce0a363bf15199478c9ae023bc8ed3be23b9ac29377254079ff88a070dd.png) ## 架构 ``` flowchart LR A["Sample or uploaded log file"] --> B["Parsing"] B --> C["Detection rules"] C --> D["Alert rows"] D --> E["Risk score"] D --> F["Terminal report"] D --> G["CSV and JSON output"] D --> H["HTML dashboard"] A --> I["Browser app parser"] I --> J["Mini SIEM view"] ``` ## 技术栈 - Python 3 - 标准库模块:`argparse`、`csv`、`json`、`ipaddress`、`datetime`、`os`、`html` - 用于浏览器应用的 HTML、CSS 和 JavaScript - CSV、JSON、TXT、LOG 和 HTML 输出 - 简单的 Python 测试脚本 - 使用 GitHub Pages 托管静态演示 ## 项目结构 ``` analyzer.py Python command-line analyzer app.html Browser-only learning demo index.html GitHub Pages landing page dashboard.html Generated demo dashboard demo_summary.html / .csv Generated demo scenario summary sample_log.txt Basic sample log suspicious_log.txt Suspicious sample log scenario_*.txt Focused demo scenarios test_analyzer.py Test script screenshots/ Original screenshots docs/images/ README-optimized screenshots *.md Portfolio, rules, guide, changelog and interview docs ``` `report.txt`、`alerts.csv`、`summary.json`、`dashboard.html` 和 `demo_summary.*` 是生成的演示产物。目前它们已被提交到仓库,以便展示示例输出和 GitHub Pages 内容,但未来的清理工作可能会将生成的产物移动到 `outputs/` 或 `docs/demo-output/` 文件夹中。 ## 前置条件 - 命令行分析器需要 Python 3.10 或更高版本 - 运行 `app.html` 需要现代浏览器 无需任何第三方 Python 包。 ## 快速开始 运行最实用的演示场景: ``` python analyzer.py --scenario account_takeover ``` 运行所有演示场景: ``` python run_demo.py ``` 在本地打开浏览器应用: ``` app.html ``` ## 使用示例 分析默认示例: ``` python analyzer.py ``` 分析特定文件: ``` python analyzer.py suspicious_log.txt ``` 列出可用场景: ``` python analyzer.py --list-scenarios ``` 分析文件夹中所有受支持的日志: ``` python analyzer.py --log-folder C:\Logs ``` 更改登录失败阈值: ``` python analyzer.py suspicious_log.txt --failed-login-limit 5 ``` 将输出文件保存到另一个文件夹: ``` python analyzer.py suspicious_log.txt --output-folder C:\Temp ``` 仅显示达到最低严重程度的警报: ``` python analyzer.py suspicious_log.txt --min-severity HIGH ``` ## 测试 ``` python test_analyzer.py ``` 预期输出: ``` All tests passed. ``` ## 安全与隐私注意事项 - 包含的日志均为虚拟的学习/演示数据。 - 切勿上传或提交真实的客户、雇主、用户、IP、主机名或事件数据。 - 真实日志可能包含敏感的用户名、源 IP、主机名、会话 ID 或身份验证详细信息。 - 本项目不会对数据进行加密、管理访问控制,也不会连接到实时的安全系统。 - 浏览器应用在本地运行,仅适用于演示数据。 ## 当前局限性 - 这不是一个生产级别的 SIEM。 - 检测逻辑是特意设计的简单且基于规则。 - 它不接入真实的 SIEM、EDR、防火墙或身份提供商的数据源。 - 它不验证真实的威胁情报。 - 它不封禁 IP、重置密码或修改安全控制策略。 ## 未来改进 - 将生成的输出文件移动到专门的演示输出文件夹中。 - 添加日期过滤和更丰富的时间线分组。 - 添加更多的事件类型和解析格式。 - 添加可配置的检测规则。 - 添加更多截图和简短的演示 GIF。 - 如果 Python 分析器进一步扩展,将添加小型的包结构。 ## 我的收获 - 使用 Python 读取和解析本地日志文件。 - 将原始事件转化为警报、风险评分和报告。 - 将基础检测逻辑与分析员的工作流相结合。 - 通过演示、截图、规则和面试笔记来展示一个技术项目。 ## AI 辅助开发 本项目是在 AI 辅助开发工具的支持下迭代开发的。我定义并完善了项目目标、需求、架构、技术选型和功能,同时对生成的实现进行审查、测试和改进。 ## 许可证 本项目基于 [MIT License](LICENSE) 发布。
标签:URL发现, 后端开发, 多模态安全, 安全检测, 安全运营, 扫描框架, 插件系统, 教学项目, 数据可视化, 风险评分