ReethikaGogireddy/ServerLogSOC

GitHub: ReethikaGogireddy/ServerLogSOC

一个安全日志分析仪表板,通过解析、可视化与基于规则的威胁检测,帮助分析师快速理解事件并定位异常。

Stars: 0 | Forks: 0

# ServerLogSOC **ServerLogSOC** 是一个安全日志分析仪表板,使分析师能够上传访问日志、检测可疑活动,并通过摘要、时间线和安全中心洞察来了解事件。 ## 目录 - [项目结构](#-project-structure) - [异常检测方法](#anomaly-detection-approach) - [置信度分数](#confidence-score) - [快速开始](#quick-start) - [API 密钥](#api-keys) - [使用 Docker 运行](#run-with-docker) - [不使用 Docker 运行](#run-without-docker) - [用法](#usage) - [核心功能](#core-functionality) - [常见问题(macOS 5000 端口冲突)](#common-issue-macos-port-5000-conflict) ## 📁 项目结构 ``` Frontend/ ├── Dockerfile ├── clerk-react/ # Clerk authentication setup ├── src/ │ ├── pages/ │ │ ├── Dashboard.tsx │ │ ├── Dashboard.css │ │ ├── Analytics.tsx │ │ └── Analytics.css │ ├── App.tsx │ └── App.css └── package.json Backend/ ├── Dockerfile ├── uploaded_logs/ # Temporary log storage ├── parser.py # Raw → structured logs ├── analytics.py # Insight generation ├── app.py # Flask API └── requirements.txt logs_samples/ # Logs are from: http://www.secrepo.com/self.logs/ ( ‼️ ⚠️ if not using provided sample logs then after downloading it, extract and rename it to .log to .txt.) docker-compose.yml # Runs frontend + backend ``` ## 异常检测方法(基于规则) 系统通过 5 个简单检查来检测可疑活动: - **目录扫描** — 某个 IP 尝试访问大量不同 URL 并返回大量 404 错误 - **速率滥用** — 某个 IP 反复触发速率限制(429 错误) - **突发活动** — 某个 IP 在短时间(60 秒)内发起过多请求 - **敏感文件访问** — 尝试访问重要路径,如 `/admin` 或 `/etc/passwd` - **数据外泄** — 从异常或高风险路径下载大量数据 ### 置信度分数 每个可疑 IP 会根据其风险程度获得一个分数。 分数会根据以下因素增加: - 触发了多少种不同的检查。 - 发起了多少可疑请求。 - 活动发生的速度有多快。 ### 示例 - 一种类型的可疑活动 → 分数约为 **0.28** - 三种不同类型活动在 5 分钟内 → 分数约为 **0.95** 分数越高,IP 越可能是恶意的。 ## 快速开始 * **在线链接**: https://serverlogsoc.web.app/ (部署在 GCP) (‼️ ⚠️ 如果未使用提供的示例日志,请在下载后解压并重命名为 `.log` → `.txt`。) ## API 密钥 ## 使用 Docker 运行 1. 克隆仓库: ``` git clone https://github.com/ReethikaGogireddy/ServerLogSOC.git cd ServerLogSOC ``` 2. 设置后端密钥和前端密钥:参考 `.env.example` 或填写并重命名为 `.env` ``` # .env echo "VIRUSTOTAL_API_KEY=your_key_here" > .env echo "VITE_CLERK_PUBLISHABLE_KEY=your_key_here" > .env echo "VITE_API_URL=http://localhost:5000" >> .env ``` 3. 运行: ``` docker compose up --build ``` 4. 打开 [http://localhost:5173](http://localhost:5173) ## 不使用 Docker 运行 1. 安装后端依赖: ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` 2. 安装前端依赖: ``` cd frontend npm install ``` 3. 设置后端密钥和前端 API 密钥:从项目根目录参考 `.env.example` 或填写并重命名为 `.env` ``` echo "VIRUSTOTAL_API_KEY=your_key_here" > .env echo "VITE_CLERK_PUBLISHABLE_KEY=your_key_here" > .env echo "VITE_API_URL=http://localhost:5000" >> .env ``` 4. 运行前端和后端服务: ``` cd backend python app.py #python3 app.py # for mac ``` ``` cd frontend npm run dev ``` 打开 [http://localhost:5173](http://localhost:5173) ### 访问 以下地址需要登录才能访问: * 前端:[http://localhost:5173](http://localhost:5173) * 后端:[http://localhost:5000](http://localhost:5000) ## 核心功能 ### 日志解析 将原始服务器日志转换为结构化、可分析的数据。 - **`parse_log_line`** — 将每条原始日志条目转换为结构化字段(IP、路径、状态等) - **`parse_request`** — 提取 HTTP 方法、端点和协议 - **`parse_timestamp`** — 将时间戳标准化为 ISO 格式 - **`parse_log_file`** — 逐行处理整个日志文件 - **`parse_uploaded_logs`** — 聚合并解析所有上传的日志 ### 流量分析 生成关于使用模式和系统行为的洞察。 - **`get_most_accessed_pages` / `get_least_accessed_pages`** — 识别热门和未充分利用的端点 - **`get_top_ips` / `get_most_active_ip`** — 突出高流量来源 - **`get_status_breakdown`** — 对响应进行分类(允许、阻止、错误) - **`get_device_breakdown`** — 分类流量(机器人、移动、桌面) - **`get_top_referrers`** — 跟踪流量来源 - **`get_timeline`** — 可视化随时间变化的请求量 ### 威胁检测引擎 使用基于规则的启发式方法检测可疑活动。 - **`detect_404_scanning`** — 识别目录扫描尝试 - **`detect_429_abuse`** — 标记速率限制滥用和暴力破解行为 - **`detect_burst_activity`** — 检测请求量的突然激增 - **`detect_sensitive_access`** — 标记对敏感端点的访问 - **`detect_data_exfiltration`** — 检测大型可疑数据传输 ### 风险评分与情报 根据严重程度和行为模式对威胁进行优先级排序。 - **`compute_ip_confidence`** — 为每个 IP 分配风险分数 - **`build_event_feed`** — 将所有检测到的威胁聚合为统一的警报流,随后以告警形式展示 - **`classify_attack`** — 将告警分组为攻击类别 - **`get_attack_distribution`** — 为可视化总结攻击模式 - **`enrich_referrers_with_virustotal`** — 添加外部威胁情报 ### 端到端分析 - **`analyze_logs`** — 运行完整管道(解析 → 分析 → 检测 → 评分)并返回仪表板就绪的洞察。 ### API 端点 - **`/upload`** — 上传并存储日志文件 - **`/parse`** — 获取结构化日志数据 - **`/analyze`** — 获取完整分析与威胁洞察 - **`/health`** — 检查后端状态 ## 用法 1. 注册 / 登录,打开:[http://localhost:5173](http://localhost:5173) 2. 通过 **上传** 功能上传日志文件 3. 导航至 **分析** 页面查看: - 解析后的日志 - 可疑活动 - 可视化洞察 ## 常见问题(macOS 5000 端口冲突) 如果端口 **5000** 正在使用: * 进入:**系统设置 → 通用 → AirDrop 与接力** * 关闭 **AirPlay 接收器**
标签:API密钥, API服务, Clerk认证, Docker容器化, Docker运行, Flask API, macOS端口冲突, OISF, Python后端, React前端, SOC风格, Web日志分析, 上传日志, 临时日志存储, 事件摘要, 事件时间线, 事件消息, 事件消息API, 事件消息生成, 云计算, 前端结构, 可疑行为检测, 后端框架, 后端结构, 基于规则的检测, 大数据, 安全仪表盘, 安全日志, 安全日志分析, 安全运营中心, 开发环境, 异常检测, 异常检测API, 快速事件理解, 快速启动, 摘要API, 摘要生成, 敏感文件访问, 无Docker运行, 日志上传, 日志上传接口, 日志事件, 日志仪表盘, 日志分析器, 日志分析工具, 日志分析平台, 日志取证, 日志可视化, 日志告警, 日志处理, 日志存储, 日志存储路径, 日志异常, 日志异常检测, 日志报告, 日志搜索, 日志摘要, 日志数据, 日志样本, 日志样本下载, 日志样本存储, 日志样本路径, 日志检测, 日志管理, 日志结构化, 日志解析, 日志解析API, 日志解析器, 日志过滤, 时间线, 时间线API, 测试用例, 生产环境, 目录扫描, 突发活动, 端口5000冲突, 网络映射, 规则引擎, 规则检测, 访问日志分析, 证书伪造, 请求拦截, 逆向工具, 速率滥用, 速率限制, 项目组织, 项目结构