paridhi260407/LogLens-Security-Log-Analysis

GitHub: paridhi260407/LogLens-Security-Log-Analysis

一个全栈轻量级 SIEM 应用,专注于解析 Apache/Nginx 日志并通过正则签名检测 Web 攻击及可视化安全分析。

Stars: 0 | Forks: 1

# 🛡️ LogLens - 简化的安全日志分析与威胁情报 LogLens 是一个全栈、达到实习要求的网络安全应用程序,专为实时和批量分析 Apache 和 Nginx Web 服务器日志(通用日志格式和组合日志格式)而设计。它融合了内存高效的流式日志解析、基于签名的 OWASP 威胁检测、滑动窗口暴力破解追踪、GeoIP 可视化映射、动态风险评分、上下文建议以及多格式报告导出(PDF、CSV、JSON)。 ## 📸 概览与仪表板功能 - **执行风险摘要卡片**:显示总日志数、总威胁数、最高严重性、最危险 IP 地址、受攻击最多的 Endpoint 以及总体风险评分(`Critical`、`High`、`Medium`、`Low`)。 - **已解析日志检查器选项卡**:完全可搜索和可过滤的日志浏览器,显示行号、时间戳 (ISO)、IP 地址、HTTP 方法、请求路径、状态码徽章、User Agent、国家/地区,以及可展开的 **原始日志行** 代码检查器。 - **增强型威胁详情表**:显示行号、严重性徽章、IP 及位置、HTTP 方法、攻击向量、目标 Endpoint、匹配的正则表达式模式以及特定的安全建议。 - **上下文安全加固部分**:针对每个检测到的攻击向量(SQLi、XSS、目录遍历、暴力破解、命令注入、探测扫描)提供可操作的修复建议。 - **多条件高级过滤**:按攻击类型、严重性、IP 地址、HTTP 方法、状态码、国家/地区和全局搜索字符串过滤威胁和日志。 - **多格式报告导出**:下载执行安全审计 PDF 报告、原始 CSV 数据集和完整的 JSON 分析转储。 - **4 阶段处理进度条**:动态进度更新(*上传文件* → *解析日志* → *检测威胁* → *构建仪表板*)。 ## 🏗️ 系统架构 ``` +-----------------------------------------------------------------------------------+ | REACT FRONTEND | | +-------------------+ +---------------------+ +---------------------------+ | | | Landing & Upload | | Executive Risk Card | | Leaflet GeoIP World Map | | | +-------------------+ +---------------------+ +---------------------------+ | | +-------------------+ +---------------------+ +---------------------------+ | | | Recharts Visuals | | Parsed Logs Table | | Threats & Regex Details | | | +-------------------+ +---------------------+ +---------------------------+ | | +-------------------+ +---------------------+ +---------------------------+ | | | Global Search Bar | | Security Hardening | | PDF / CSV / JSON Exports | | | +-------------------+ +---------------------+ +---------------------------+ | +-----------------------------------------------------------------------------------+ | HTTP REST API / JSON v +-----------------------------------------------------------------------------------+ | FLASK BACKEND | | +-------------------+ +---------------------+ +---------------------------+ | | | File Upload API | | 4-Stage Job Worker | | Streaming Regex Parser | | | +-------------------+ +---------------------+ +---------------------------+ | | +-------------------+ +---------------------+ +---------------------------+ | | | Threat Engine | | GeoIP Resolver | | Risk Score Calculator | | | +-------------------+ +---------------------+ +---------------------------+ | +-----------------------------------------------------------------------------------+ | v [ SQLite Database ] ``` ## 🧠 技术深入解析 ### 1. 流式生成器正则表达式解析器 LogLens 使用 Python 生成器(`yield`)逐行读取 `.log` 和 `.txt` 文件,避免将数 GB 的日志文件全部加载到内存 RAM 中。 ``` LOG_REGEX = re.compile( r'^(?P[0-9a-fA-F:.]+)\s+' # Remote Host IP r'\S+\s+\S+\s+' # Identity & User ID r'\[(?P[^\]]+)\]\s+' # Timestamp [dd/MMM/yyyy:HH:mm:ss +zzzz] r'"(?P[^"]*)"\s+' # Request line "METHOD /path HTTP/x.x" r'(?P\d{3})\s+' # HTTP Status Code r'(?P\d+|-)' # Response Bytes r'(?:\s+"(?P[^"]*)"\s+"(?P[^"]*)")?' # Optional Referrer & User-Agent ) ``` ### 2. 威胁检测与滑动窗口暴力破解 威胁检测引擎使用 `signatures.json` 中编译的正则表达式进行签名匹配,并结合滑动时间窗口队列进行暴力破解检测: $$\text{Brute Force Trigger} = \text{Count}\left(\{ \text{Status} \in (401, 403) \mid t_{\text{entry}} - t_{\text{cutoff}} \le 600\text{s} \}\right) \ge 5$$ ### 3. 总体风险评分计算 总体风险评分使用加权严重性指数公式: $$\text{Risk Index} = (N_{\text{Critical}} \times 4) + (N_{\text{High}} \times 3) + (N_{\text{Medium}} \times 2) + (N_{\text{Low}} \times 1)$$ - **Critical**:风险指数 $\ge 25$ 或 Critical 数量 $\ge 3$ - **High**:风险指数 $\ge 12$ 或 High 数量 $\ge 3$ - **Medium**:风险指数 $\ge 4$ 或 Medium 数量 $\ge 2$ - **Low**:风险指数 $< 4$ ## 🔌 API 参考 | Endpoint | Method | 描述 | | :--- | :--- | :--- | | `/api/health` | `GET` | API 健康检查 | | `/api/upload` | `POST` | 上传自定义 `.log` 文件 | | `/api/demo` | `POST` | 运行即时演示分析(`demo.log`) | | `/api/jobs//status` | `GET` | 任务进度百分比与状态 | | `/api/jobs//results` | `GET` | 摘要、时间线、主要攻击者、建议、地图坐标 | | `/api/jobs//threats` | `GET` | 已过滤的威胁及其匹配的正则表达式与建议 | | `/api/jobs//logs` | `GET` | 已过滤的解析日志及原始日志行视图 | | `/api/jobs//export/pdf` | `GET` | 下载 PDF 安全审计报告 | | `/api/jobs//export/csv` | `GET` | 下载 CSV 数据集(`?type=threats` 或 `?type=logs`) | | `/api/jobs//export/json` | `GET` | 下载完整的 JSON 报告转储 | ## ⚙️ 设置与运行 ``` # Backend Server 设置 cd backend pip install -r requirements.txt python test_app.py # Run unit tests python app.py # Runs Flask API on http://127.0.0.1:5000 # Frontend React 设置 cd frontend npm install npm run dev # Runs Vite Dev Server on http://localhost:3000 ```
标签:AMSI绕过, CISA项目, React, Syscalls, Web安全, 威胁检测, 安全仪表盘, 网页分析工具, 自定义脚本, 蓝队分析, 逆向工具