liamthuynh/cybersec-log-analyzer

GitHub: liamthuynh/cybersec-log-analyzer

一款面向 SOC 的日志分析平台,通过规则与 Claude AI 结合实现异常检测与威胁简报。

Stars: 0 | Forks: 0

# CyberScope **浏览器中的 SOC 级日志分析。** CyberScope 允许安全分析师上传代理或 Web 服务器日志,自动检测异常,并生成 AI 威胁简报——所有操作无需离开 Web UI。 ![Python](https://img.shields.io/badge/Python-3.11+-3776AB?logo=python&logoColor=white) ![Next.js](https://img.shields.io/badge/Next.js-14-black?logo=next.js) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?logo=postgresql&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?logo=docker&logoColor=white) ![License](https://img.shields.io/badge/license-MIT-green) ## 概述 | | | |---|---| | **上传** | 拖放 `.txt`、`.log` 或 `.csv` 日志文件(最大 16 MB) | | **解析** | 自动检测 ZScaler 风格代理日志、Apache/Nginx 组合日志和通用 CSV | | **检测** | 八种基于规则的异常检测器,带置信度分数和人类可读解释 | | **摘要** | 可选的 Claude AI 层生成执行摘要、威胁级别、关键发现和 SOC 风格事件时间线 | | **审查** | 在可过滤的异常表格、每小时活动图表和完整 AI 分析面板中浏览结果 | | **历史** | 所有上传按用户持久化;点击任意历史上传可重新加载其完整结果 | ## 目录 - [功能](#features) - [架构](#architecture) - [快速启动 — Docker](#quick-start--docker) - [快速启动 — 本地](#quick-start--local) - [日志格式](#log-format) - [异常检测](#anomaly-detection) - [AI 分析](#ai-analysis) - [API 参考](#api-reference) - [项目结构](#project-structure) ## 功能 **检测** - 来自单个 IP 的高请求速率(>20 req / 60 秒窗口) - 非工作时间访问(UTC 时间 06:00 前或 22:00 后) - 大数据传输(>5× 会话中位数) - 被阻止或拒绝的流量 - 每个源 IP 的错误率峰值 - 可疑域名 — 高风险 TLD、已知恶意关键词、高风险类别 - 凭证填充模式(120 秒内 ≥5 次失败的 POST 登录) - 可能指示隧道或隐蔽外传的慢速请求 **仪表板** - 汇总指标:条目数、异常数、唯一 IP 数、数据量、用户数、阻止计数 - 包含总请求数、错误数和阻止流量的每小时时间线图表 - 顶级域名和源 IP 细分 - 按严重程度(关键 / 高 / 中 / 低)可过滤的异常表格,带可展开的详细行 - 每个异常上的置信度分数条 - 带有威胁级别徽章、关键发现卡片和建议操作的人工智能分析面板 **平台** - 带有用户注册和内置演示账户的基于 JWT 的认证 - 支持 PostgreSQL 的上传历史记录和每个用户的隔离 - 用于一键本地堆栈的 Docker Compose - Next.js API 重写 — 前端和后端在所有环境中均在同一源上 ## 架构 ``` Browser └── Next.js 14 (TypeScript + Tailwind + Recharts) └── /api/* rewrite proxy └── Flask REST API (Python 3.11) ├── parser.py — log format detection & normalization ├── analyzer.py — rule-based anomaly detection ├── ai_analyzer.py — Claude API integration └── PostgreSQL 16 — users & upload persistence ``` ## 快速启动 — Docker 最快的路径。需要 Docker Desktop。 **1. 克隆并配置** ``` git clone https://github.com/your-username/cybersec-log-analyzer.git cd cybersec-log-analyzer cp .env.example .env ``` 打开 `.env` 并设置以下两个值。其他内容使用默认配置即可。 | 变量 | 是否必需 | 说明 | |---|---|---| | `SECRET_KEY` | 是 | 签名 JWT 令牌。生成方式:`python3 -c "import secrets; print(secrets.token_hex(32))"` | | `ANTHROPIC_API_KEY` | 否 | 启用 AI 分析。在 [console.anthropic.com](https://console.anthropic.com) 获取 | **2. 启动堆栈** ``` docker compose up --build ``` 三个服务按依赖顺序启动:`postgres` → `backend` → `frontend`。 **3. 打开应用** - UI:`http://localhost:3000` - API:`http://localhost:8000` **演示凭据:** `demo` / `demo1234` **4. 上传示例日志** 仓库附带一个真实的测试日志: ``` sample_logs/sample_proxy_log.txt ``` 将其拖入上传区域以查看异常检测(如果设置了 API 密钥,还可查看 AI 分析面板)。 ## 快速启动 — 本地 需要 Python 3.11+、Node.js 20+ 和 PostgreSQL 15+。 **1. 创建数据库** ``` createdb cyberscope ``` **2. 配置后端** ``` export SECRET_KEY="$(python3 -c 'import secrets; print(secrets.token_hex(32))')" export FLASK_ENV=development export DATABASE_URL=postgresql://localhost/cyberscope export CORS_ORIGINS=http://localhost:3000 # 可选: export ANTHROPIC_API_KEY=sk-ant-... ``` **3. 启动后端** ``` cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python app.py ``` **4. 启动前端** ``` cd frontend npm install npm run dev ``` 打开 `http://localhost:3000`。 **冒烟测试** 堆栈运行后,完整验证端到端主流程: ``` ./scripts/smoke_test.sh ``` ## 日志格式 CyberScope 自动从第一行内容检测格式。默认支持三种格式: ### ZScaler 风格代理日志(主要) 以竖线分隔的字段,无需标题行: ``` timestamp | source_ip | user | method | url | status_code | bytes_sent | bytes_received | action | category | user_agent | duration_ms ``` 示例: ``` 2024-01-15T08:23:41Z | 10.0.1.100 | jsmith | GET | https://example.com/api/data | 200 | 1024 | 8192 | ALLOW | Business | Mozilla/5.0 | 234 ``` ### Apache / Nginx 组合日志 自动检测标准组合日志格式。 ### 通用 CSV 任何带有标题行的 CSV 文件都会被解析;字段会尽可能按列名映射。 ## 异常检测 实现在 [`backend/analyzer.py`](backend/analyzer.py) 中。 每个异常包含: | 字段 | 说明 | |---|---| | `rule` | 机器可读的规则标识符 | | `reason` | 为什么标记该条目的易读解释 | | `confidence` | 基于与基线偏差的 `0.0` – `1.0` 分数 | | `severity` | `critical` / `high` / `medium` / `low` | | `entry` | 被标记行的原始日志字段 | 规则在整个上传上单次运行,并通过行号去重——触发多条规则的行会合并为一个异常。 ## AI 分析 实现在 [`backend/ai_analyzer.py`](backend/ai_analyzer.py) 中。 当设置了 `ANTHROPIC_API_KEY` 且 AI 开关开启时,后端会: 1. 构建上下文数据包 — 汇总统计、顶级异常和最多 50 条日志条目的代表性样本(异常条目优先,剩余槽位均匀填充) 2. 通过 Anthropic API 将数据包发送至 **Claude**(`claude-sonnet-4-6`) 3. 返回包含以下字段的结构化 JSON | 字段 | 说明 | |---|---| | `executive_summary` | 一段式威胁概述 | | `threat_level` | `critical` / `high` / `medium` / `low` / `minimal` | | `key_findings` | 包含严重性、影响实体和建议的标题化发现数组 | | `timeline` | 按时间排序的事件序列,含重要性评分 | | `patterns_detected` | 识别出的行为模式短列表 | | `recommended_actions` | 分析师的优先响应操作 | 如果未配置 API 密钥,后端会返回基于规则的备用摘要,确保面板永不空白。 ## API 参考 ### 公共接口 | 方法 | 路径 | 说明 | |---|---|---| | `POST` | `/api/auth/register` | 创建新账户 | | `POST` | `/api/auth/login` | 认证并接收 JWT | | `GET` | `/api/health` | 健康检查 | ### 认证(需要 Bearer 令牌) | 方法 | 路径 | 说明 | |---|---|---| | `POST` | `/api/upload` | 上传日志文件以进行分析 | `GET` | `/api/uploads` | 列出当前用户的所有上传记录 | | `GET` | `/api/uploads/` | 获取特定上传的完整结果 | ## 项目结构 ``` cybersec-log-analyzer/ ├── backend/ │ ├── app.py # Flask app, routes, auth, DB │ ├── parser.py # Log format detection and normalization │ ├── analyzer.py # Rule-based anomaly detection engine │ ├── ai_analyzer.py # Claude API integration │ ├── config.py # Environment-based configuration │ ├── requirements.txt │ └── Dockerfile ├── frontend/ │ ├── src/ │ │ ├── app/ │ │ │ ├── dashboard/ # Main analysis UI │ │ │ ├── login/ # Auth page │ │ │ └── globals.css │ │ ├── components/ │ │ │ ├── AnomalyTable.tsx │ │ │ ├── AISummaryPanel.tsx │ │ │ ├── StatsCards.tsx │ │ │ ├── TimelineChart.tsx │ │ │ └── UploadHistory.tsx │ │ └── lib/ │ │ └── api.ts # Typed API client │ ├── Dockerfile │ ├── next.config.js │ └── package.json ├── sample_logs/ │ └── sample_proxy_log.txt ├── scripts/ │ └── smoke_test.sh ├── docker-compose.yml ├── .env.example └── README.md ``` ## 许可证 MIT
标签:AI安全, Anomaly Detection, Apache日志, Chat Copilot, Claude, CSV解析, CVE检测, Docker, MIT License, Nginx日志, PostgreSQL, Python, SEO:AI SOC工具, SEO:日志分析工具, SEO:浏览器安全分析, SEO:网络安全分析, TCP/UDP协议, Web服务器日志, ZScaler, 事件时间线, 云计算, 人工智能, 代理日志, 关键词:AI威胁简报, 关键词:异常检测, 关键词:规则引擎, 历史记录, 可过滤表格, 威胁简报, 安全运营中心, 安全防御评估, 异常检测, 拖拽上传, 无后门, 日志上传, 柱状图, 测试用例, 浏览器UI, 用户模式Hook绕过, 网络安全, 网络映射, 置信度评分, 规则引擎, 请求拦截, 逆向工具, 隐私保护