reynaldiarya/Security-Log-Analytics
GitHub: reynaldiarya/Security-Log-Analytics
一款基于 Streamlit 的轻量级安全日志分析工具,通过机器学习异常检测帮助安全团队从 Web 服务器访问日志中快速发现潜在威胁。
Stars: 0 | Forks: 0
# 安全 Log Analytics
一个专业级的 Streamlit 应用程序,用于服务器访问日志分析和基于机器学习的异常检测。
## 描述
Security Log Analytics 为安全工程师和系统管理员提供了一个强大的解决方案,用于分析来自 Apache、Nginx、cPanel 和 DirectAdmin 等平台的服务器访问日志。通过利用机器学习算法,它能够识别传统基于规则的系统可能遗漏的可疑流量模式和潜在安全威胁。该平台将原始、复杂的日志数据转化为可操作的情报,帮助团队主动保护其 Web 基础设施免受分布式攻击、扫描器和未经授权访问的尝试。
## 功能
- **高级日志解析** - 通过高性能的正则表达式解析,无缝处理标准的组合日志格式
- **基于 ML 的异常检测** - 使用 Scikit-learn 的 Isolation Forest 算法识别复杂的攻击模式
- **CDN 智能识别** - 内置对主要提供商的检测支持,包括 Cloudflare、Bunny CDN、AWS CloudFront 等
- **Bot 与 Crawler 识别** - 自动区分合法的搜索引擎机器人和潜在的恶意行为者
- **交互式安全仪表板** - 通过动态的 Plotly 图表可视化流量趋势、HTTP 状态分布和请求量
- **精细化的 IP 信誉** - 对单个 IP 进行深度的行为分析,包括请求率、4xx/5xx 比例和方法分布
- **可配置的威胁评分** - 可调整的污染参数,以针对不同环境微调检测灵敏度
- **白名单支持** - 原生基于 CIDR 的白名单功能,可从安全警报中排除受信任的内部网络
## 技术栈
- **核心引擎**: Python 3.9+
- **前端框架**: Streamlit 1.54+
- **机器学习**: Scikit-learn (Isolation Forest, StandardScaler)
- **数据工程**: Pandas, NumPy
- **可视化**: Plotly Express
- **网络**: ipaddress (CIDR 验证)
## 安装指南
### 前置条件
- Python 3.9 或更高版本
- pip (Python 包管理器)
- 虚拟环境 (推荐)
### 步骤
1. 将仓库克隆到本地机器
```
git clone https://github.com/reynaldiarya/Security-Log-Analytics.git
cd Security-Log-Analytics
```
2. 创建并激活虚拟环境
```
python -m venv venv
# 在 Windows 上:
venv\Scripts\activate
# 在 Linux/macOS 上:
source venv/bin/activate
```
3. 安装所需的依赖项
```
pip install -r requirements.txt
```
4. 启动应用程序
```
streamlit run app.py
```
应用程序将在您的浏览器中通过 `http://localhost:8501` 访问。
## 配置
该应用程序设计为即插即用,但可以在 `app.py` 中调整几个内部配置以适应高级用例。
### 检测参数
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `ANOMALY_CONTAMINATION` | 数据中预期的异常值比例 | `0.05` |
| `RANDOM_STATE` | 用于生成可重复 ML 结果的随机种子 | `42` |
| `LOG_PATTERN` | 用于日志解析的正则表达式模式 | 组合日志格式 |
### 白名单
用户可以在运行时直接在侧边栏中输入 IP 地址或 CIDR 范围列表,以将其从异常检测引擎中排除。
## 用法
### 分析日志
1. **上传**:将您的 `.log` 或 `.txt` 文件拖放到侧边栏的上传区域。
2. **参数**:根据您的流量大小配置“异常检测灵敏度”(污染因子)。
3. **白名单**:添加已知安全的 IP(例如您的办公 IP 或监控服务),以防止误报。
4. **分析**:
- 查看 **Security Metrics** 卡片以获取即时的高层级状态。
- 检查 **Traffic Trend** 以发现容量的突然激增。
- 检查 **Anomaly Alerts** 部分,了解被标记为高、中或低风险的特定 IP。
5. **信誉**:从下拉菜单中选择一个可疑 IP,以查看其特定的行为签名和信誉评分。
### 支持的日志格式
解析器需要 Nginx/Apache 组合日志格式:
`127.0.0.1 - - [01/Jan/2026:00:00:01 +0000] "GET /api/v1/resource HTTP/1.1" 200 1234 "https://referer.com" "Mozilla/5.0..."`
## 项目结构
```
/
├── app.py # Main application logic and Streamlit UI
├── requirements.txt # Project dependencies and version constraints
├── LICENSE # MIT License terms
└── README.md # Project documentation
```
## 脚本 / 命令
| 命令 | 描述 |
|---------|-------------|
| `streamlit run app.py` | 在本地启动生产就绪的仪表板 |
| `pip install -r requirements.txt` | 安装所有必要的 Python 库 |
| `python -m pytest` | 运行自动化测试 (如果已配置) |
## 许可证
该项目在 MIT 许可证下授权。有关详细的条款和条件,请参阅 [LICENSE](LICENSE) 文件。
## 作者
Reynaldi Arya
标签:AMSI绕过, Apache, Apex, Bot检测, CDN识别, CISA项目, Cloudflare, cPanel, DirectAdmin, DNS查询, IP信誉, Isolation Forest, Kubernetes, MITRE ATT&CK, Nginx, PB级数据处理, PFX证书, Plotly, Python, Scikit-learn, SecOps, Streamlit, Web安全, Web服务器, 云安全架构, 威胁检测, 安全仪表盘, 安全运维, 密码管理, 异常检测, 攻击检测, 无后门, 日志解析, 服务器日志, 机器学习, 爬虫识别, 网络安全, 蓝队分析, 访问控制, 访问日志, 证书伪造, 逆向工具, 隐私保护