什么是 SSlogs?
SSlogs 是一款专为安全事件应急响应与溯源分析设计的 Web 日志分析工具。它能够帮助安全工程师快速解析海量日志、精准检测攻击行为、深入分析威胁,并生成可视化报告,从而大幅提升安全事件调查的效率。
核心功能特性
- 智能日志解析:支持 Apache、Nginx 等主流 Web 服务器的日志格式,同时允许通过配置文件自定义解析规则,轻松应对各种日志格式。
- 精准攻击检测:内置基于 YAML 的规则库,能够有效识别 SQL 注入、XSS、路径遍历等 20 多种常见 Web 攻击模式,是进行网络安全分析的有力助手。
- AI 增强分析:集成了 DeepSeek 或本地 Ollama 大语言模型,可自动对日志事件进行分类、评估风险等级,并尝试预测潜在的攻击趋势。
- 地理位置追踪:结合 GeoIP 数据库,可快速定位攻击源的所属国家与地区,并生成直观的全球访问热力图。
- 多格式报告输出:支持导出为交互式 HTML 报告(含图表)、结构清晰的 Markdown 文档以及便于程序处理的 JSON 格式。
- 高性能大文件处理:针对 1GB 以上的大型日志文件进行了优化,处理百万级别的日志条目通常可在 3 分钟内完成。
- 灵活可配置:所有检测规则、分析参数均集中在
config.yaml 配置文件中,无需修改源代码即可适应不同的业务环境和分析需求。
快速上手指南
环境准备
确保系统已安装 Python 3.8 或更高版本,并保持网络通畅(用于下载依赖包和地理信息数据库)。
安装步骤
-
克隆项目
git clone https://github.com/wooluo/SSlogs.git
cd SSlogs
-
安装依赖
- 安装核心功能依赖:
pip install -r requirements.txt
- (可选)如需进行开发或测试,可额外安装:
pip install -r requirements-dev.txt
如果你对Python环境管理有更多需求,可以参考社区的相关实践。
-
配置地理数据库(可选)
# 下载 GeoLite2 国家数据库
wget https://github.com/mojolabs-id/GeoLite2-Database/raw/main/GeoLite2-Country.mmdb
# 将数据库文件移至配置目录
mv GeoLite2-Country.mmdb config/
-
配置 AI 密钥(如需使用 AI 分析)
编辑 config.yaml 文件,在 deepseek 部分填入你的 API 密钥:
deepseek:
api_key: “你的密钥”
基本使用
-
分析日志并生成默认 HTML 报告
python main.py --log-file /path/to/your/access.log
-
指定报告格式(如 Markdown)
python main.py --log-file /path/to/your/access.log --report-type markdown
-
查看报告
分析完成后,报告将保存在 output 目录下,文件名格式为 log_analysis_report_日期时间.扩展名。直接使用浏览器打开 HTML 文件即可查看交互式报告。
报告内容概览
- HTML 报告:包含数据概览仪表盘(事件总数、风险等级分布)、攻击类型 TOP10 排行榜、攻击源 IP 地理分布图以及事件时间线图表,兼容桌面和移动端查看。
- Markdown 报告:格式简洁,适用于文档归档与版本管理。
- JSON 报告:提供结构化的分析结果数据,便于与其它运维监控系统或自动化脚本集成,进行二次处理。
常见问题排查
- 日志解析失败:检查
config.yaml 中的日志格式配置是否与实际日志匹配。可尝试使用 --generate-rules 参数自动生成解析规则模板。
- AI 分析报错:确认 API 密钥是否正确且有效,检查网络连接。也可以考虑配置并使用本地部署的 Ollama 模型。
- 攻击规则未触发:检查规则文件中的正则表达式是否精确。运行时可添加
--verbose 参数输出详细处理日志,辅助定位问题。
|