rnainiaa/CyberLogIQ

GitHub: rnainiaa/CyberLogIQ

一个基于Flask的安全日志分析平台,支持大文件导入、多格式解析、威胁检测和PDF报告生成。

Stars: 0 | Forks: 0

# CyberLogIQ - 高级日志分析平台 [![Python](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/) [![Flask](https://img.shields.io/badge/Flask-3.0.3-green.svg)](https://flask.palletsprojects.com/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) CyberLogIQ 是一个功能强大的基于 Web 的日志分析平台,专为安全专业人员和系统管理员设计。它提供全面的日志摄取、分析和报告功能,重点关注安全威胁检测和运营情报。 ## 🚀 核心功能 ### 📊 多格式日志摄取 - **支持的格式**:Apache, Nginx, Syslog, Windows Event Logs, SSH, Firewall logs, JSON, CSV - **大文件支持**:通过优化的内存管理处理最大 6GB 的文件 - **自动格式检测**:针对异构日志源的智能解析 ### 🔍 高级安全分析 - **威胁检测**:SQL injection, XSS, LFI/RFI, command injection, brute force attacks, DDoS 模式 - **实时分析**:实时监控和即时威胁识别 - **异常检测**:行为分析和离群值检测 - **IP 地理定位**:可疑活动的可视化映射 ### 📈 全面报告 - **交互式仪表板**:实时数据可视化和指标 - **自定义 SQL 查询**:支持分页的直接数据库访问 - **导出功能**:生成 CSV, JSON 和 PDF 报告 - **定期报告**:用于常规安全审计的自动化报告 ### 🛡️ 企业级安全 - **基于角色的访问控制**:Admin, Analyst, 和 Read-only 用户角色 - **安全认证**:CSRF 保护和会话管理 - **数据隔离**:独立的工作空间和访问控制 - **审计日志**:全面的活动跟踪 ## 🏗️ 架构概览 ### 技术栈 **后端**: - **框架**:Flask 3.0.3 与 Werkzeug - **数据库**:SQLite 配合 WAL journaling 以实现高并发 - **数据处理**:Pandas 用于高效的数据操作 - **并发**:Gevent 用于异步操作 - **报告**:ReportLab 用于 PDF 生成 **前端**: - **UI 框架**:Bootstrap 5.1.3 响应式设计 - **图表与可视化**:Chart.js 和自定义 D3.js 组件 - **数据表格**:DataTables 配合服务器端处理 - **地图**:Leaflet 用于地理定位可视化 - **图标**:Font Awesome 6.0.0 ### 应用结构 ``` CyberLogIQ/ ├── app/ # Application core │ ├── __init__.py # Flask app factory │ ├── config.py # Configuration management │ ├── routes.py # API and UI endpoints │ └── utils/ # Business logic │ ├── database_manager.py # Database operations │ ├── log_parser.py # Log parsing engine │ ├── report_generator.py # Report generation │ └── security_analyzer.py # Threat detection ├── databases/ # SQLite database files ├── static/ # Static assets │ ├── css/style.css # Custom styles │ └── js/script.js # Frontend logic ├── templates/ # Jinja2 templates │ ├── analysis/ # Analysis views │ ├── base.html # Main layout │ └── various pages # UI components ├── uploads/ # Uploaded log files └── tests/ # Test suite ``` ## 📦 安装 ### 前置条件 - Python 3.10 或更高版本 - 最少 4GB RAM(处理大文件建议 8GB) - 10GB+ 可用磁盘空间用于日志存储 - 网络访问(用于 CDN 资源) ### 快速开始 1. **克隆仓库** git clone cd CyberLogIQ 2. **创建虚拟环境** python -m venv .venv source .venv/bin/activate # Linux/Mac # 或者 .venv\Scripts\activate # Windows 3. **安装依赖** pip install -r requirements.txt 4. **配置应用** # 编辑 app/config.py 进行自定义设置 # 设置上传限制、数据库路径和安全设置 5. **运行应用** python app.py 6. **访问应用** 打开浏览器并访问 `http://localhost:5000` ### Docker 部署(可选) ``` docker build -t cyberlogiq . docker run -p 5000:5000 -v $(pwd)/databases:/app/databases cyberlogiq ``` ## 🎯 使用指南 ### 1. 上传日志文件 - 导航到上传界面 - 选择一个或多个日志文件 - 通过实时反馈监控上传进度 - 文件将自动解析并存储 ### 2. 分析数据 - 使用交互式仪表板查看概览指标 - 应用过滤器和搜索条件 - 在专用分析面板中查看安全威胁 - 在交互式地图上探索地理数据 ### 3. 生成报告 - 使用查询构建器创建自定义 SQL 查询 - 将结果导出为 CSV, JSON 或 PDF 格式 - 安排定期报告以进行持续监控 - 与团队成员共享发现 ### 4. 管理用户 - 管理员用户可以创建和管理账户 - 分配适当的角色和权限 - 通过审计日志监控用户活动 ## 🛡️ 用户管理 CyberLogIQ 具有强大的基于角色的访问控制 (RBAC) 系统,支持具有细粒度权限的安全用户管理。 ### 用户角色和权限 #### 🔧 管理员 - 具有**无限权限的完全系统访问** - **用户管理**:创建、编辑、禁用和删除用户账户 - **系统配置**:修改应用设置和安全参数 - **数据库操作**:清除日志、重置系统和管理存储 - **审计日志访问**:查看所有用户活动和系统事件 #### 🔍 安全分析师 - **日志分析**:完全访问分析工具和仪表板 - **文件操作**:上传、处理和分析日志文件 - **报告**:生成和导出安全报告 (PDF, CSV, JSON) - **威胁调查**:访问所有安全检测功能 - **实时监控**:实时日志分析和警报监控 #### 👀 只读用户 - 对仪表板和报告的**只读访问** - 对任何数据**无修改权限** - 用于日志探索的**搜索和过滤**功能 - **导出仅限于**预先批准的报告模板 ### 用户账户生命周期 #### 账户创建 1. **初始设置**:首次启动时创建默认管理员账户 2. **管理员创建**:管理员可以通过管理界面创建新用户 3. **角色分配**:每个用户被分配三个安全角色之一 4. **临时密码**:新用户收到临时凭据并强制更改密码 #### 账户管理 - **密码策略**:强制密码复杂性和过期规则 - **账户状态**:用户可以在不删除的情况下被启用/禁用 - **会话控制**:可配置的会话超时和并发登录限制 - **审计跟踪**:所有用户操作均被记录以供安全审查 ### 安全功能 #### 认证 - **安全登录**:CSRF 保护的认证系统 - **会话管理**:带有过期机制的安全基于 cookie 的会话 - **密码哈希**:基于 BCrypt 的密码存储 - **暴力破解保护**:失败尝试后自动锁定账户 #### 访问控制 - **路由保护**:所有端点强制执行基于角色的权限 - **API 安全**:REST 端点验证用户权限 - **数据隔离**:用户只能访问授权的数据和功能 - **审计日志**:跨所有操作的全面活动监控 ### 管理界面 管理员仪表板提供全面的用户管理功能: #### 用户管理面板 - **用户列表**:查看所有用户,支持过滤和搜索 - **账户创建**:创建新用户并分配角色 - **资料编辑**:修改用户详情、角色和状态 - **密码重置**:出于安全合规强制重置密码 - **账户停用**:暂时禁用账户而不删除 #### 安全设置 - **角色配置**:定义和修改权限集 - **密码策略**:设置复杂性要求和过期规则 - **会话设置**:配置超时持续时间和安全策略 - **审计审查**:访问全面的活动日志和报告 ### 最佳实践 1. **最小权限**:仅分配用户所需的权限 2. **定期审查**:定期审核用户账户和权限 3. **密码轮换**:对敏感角色强制定期更改密码 4. **监控**:定期查看审计日志以发现可疑活动 5. **备份**:维护用户配置和权限集的备份 ### API 访问 用户管理也可通过 REST API 端点使用(需要管理员角色): ``` # 列出所有用户 GET /api/users # 创建新用户 POST /api/users { "username": "newuser", "role": "analyst", "email": "user@example.com" } # 更新用户权限 PUT /api/users/{user_id} { "role": "readonly", "is_active": true } ``` ## ⚙️ 配置 ### 关键配置选项 编辑 `app/config.py` 进行自定义: ``` # 上传设置 UPLOAD_FOLDER = 'uploads/' MAX_CONTENT_LENGTH = 6 * 1024 * 1024 * 1024 # 6GB # Database 设置 DATABASE_PATH = 'databases/logs.db' # 安全设置 SESSION_TIMEOUT = 3600 # 1 hour CSRF_ENABLED = True # 分析设置 THREAT_DETECTION_RULES = { 'sql_injection': True, 'xss': True, 'brute_force': True } ``` ### 环境变量 为生产部署设置这些环境变量: ``` export FLASK_ENV=production export SECRET_KEY=your-secret-key export DATABASE_URL=sqlite:///databases/production.db ``` ## 🧪 测试 运行测试套件以确保一切正常: ``` python -m pytest test_database_manager.py python -m pytest test_log_parser.py python -m pytest test_security.py ``` ## 🚀 性能优化 ### 针对大日志文件 - 在 SQLite 中启用 WAL 模式以获得更好的并发性 - 使用适当的索引策略 - 实施分块处理以提高内存效率 - 考虑使用 SSD 存储数据库文件 ### 数据库优化 ``` -- Recommended indexes CREATE INDEX idx_log_timestamp ON log_entries(timestamp); CREATE INDEX idx_log_source_ip ON log_entries(source_ip); CREATE INDEX idx_log_severity ON log_entries(severity); ``` ## 🔒 安全注意事项 ### 最佳实践 - **始终**更改默认管理员凭据 - 在生产环境中使用 HTTPS - 定期更新依赖项以获取安全补丁 - 为应用程序实施适当的防火墙规则 - 定期监控和轮换审计日志 ### 数据保护 - 日志文件可能包含敏感信息 - 实施适当的访问控制 - 考虑对敏感数据存储进行加密 - 建议定期进行安全审计 ## 📊 监控与维护 ### 健康检查 - 监控数据库增长和性能 - 检查上传目录的磁盘空间 - 查看应用程序日志是否有错误 - 定期备份数据库文件 ### 性能指标 - 关键操作的响应时间 - 处理大文件时的内存使用情况 - 数据库查询性能 - 用户活动和系统负载 ## 📝 许可证 本项目根据 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 🆘 支持 如需支持和提问: - 查看本 README 中的文档 - 在 GitHub 上查看现有 issue - 针对 bug 或功能请求创建新 issue - 联系维护人员处理安全问题 ## 🔮 路线图 ### 计划功能 - [ ] 实时日志流支持 - [ ] 高级机器学习异常检测 - [ ] 与 SIEM 系统集成 - [ ] 自定义警报规则和通知 - [ ] 多租户支持 - [ ] 用于外部集成的 API - [ ] 增强的可视化选项 ### 已知限制 - 超大型操作的并发用户限制 - 内存使用量随日志文件大小增加 - 地理数据需要外部 GeoLite2 数据库 - 某些高级解析可能需要自定义规则 **CyberLogIQ** - 让全球安全专业人员都能轻松进行强大且高效的日志分析。 🛡️
标签:AMSI绕过, anomaly detection, Apache日志, CISA项目, DDoS检测, Flask, IP地理定位, Nginx日志, PDF报告生成, PE 加载器, Python, SIEM工具, SQLite, Syslog分析, Web安全, XSS检测, 仪表盘, 免杀技术, 后端开发, 后端开发, 大数据处理, 威胁检测, 安全运营, 开源安全工具, 异常检测, 扫描框架, 无后门, 暴力破解检测, 蓝队分析, 逆向工具, 逆向工程平台, 速率限制