marcos-liao/LogSight
GitHub: marcos-liao/LogSight
LogSight 是一个零部署的浏览器端日志分析沙盒,结合引导式安全学习场景与真实日志检测引擎,帮助用户实践基于日志的威胁狩猎。
Stars: 0 | Forks: 0
# LogSight — 日志分析沙盒
一个独立、基于浏览器的日志分析实验室,用于学习和实践网络安全
调查。无需服务器,无需构建步骤,无需网络连接 —— 只需打开 `index.html`。

## 功能简介
LogSight 具有两种模式:
### 学习模式 (Learn Mode)
带有预置日志数据的引导式场景,用于动手实践。每个场景都会带您
了解真实的攻击链:
1. **选择场景** —— SSH 暴力破解、Web Shell 上传、DNS 数据外泄等
2. **调查** —— 阅读日志,使用正则表达式过滤器和交互式时间轴来发现异常
3. **作答** —— 填写调查问题
4. **学习** —— 解锁情报报告:入侵指标、攻击步骤
(kill chain)、缓解措施以及框架映射 (MITRE ATT&CK, NIST CSF, OWASP, CVSS)
### 分析模式 (Analyze Mode)
加载您自己的日志文件,进行真实环境下的调查:
1. **加载文件** —— 拖放文件、选择文件夹或选择单个 `.log` 文件
(接受 `.log` 和无扩展名的文本文件,最高可达可配置的大小限制)
2. **审查** —— 加载后的摘要会显示日期覆盖范围、行数和缺失的间隔
3. **分析** —— 检测引擎自动运行并显示按优先级排序的告警
4. **调查** —— 缩放时间轴(这会过滤日志查看器)并使用正则表达式深入挖掘
5. **报告** —— 导出您的调查结果
## 检测引擎
分为三层,前两层完全离线运行:
| 层级 | 类型 | 标签 | 功能说明 |
|-------|------|-----|--------------|
| 1 | 基于规则 | `RULE` | 正则表达式签名:SQLi、XSS、路径遍历、暴力破解、Web Shell 等 |
| 2 | 统计学 | `STAT` | 基线 + 异常评分:频率激增、非工作时间活动、事件链 |
| 3 | AI | `AI` | *可选,需要提供商密钥。* 自然语言查询、自动摘要、事件报告和行为分析 (信标 / 序列异常) |
## AI 增强(可选)
第 3 层连接到 Claude 或 OpenAI。在任何数据离开您的浏览器之前,它都会被
**伪匿名化** —— IP 地址、主机名、用户名、电子邮件和文件路径会被
替换为一致的虚拟值 (真实 IP → RFC 5737 范围等)。映射
表保留在本地;您可以在设置中预览它。“仅本地”模式仅发送
汇总统计数据,绝不发送日志内容。
API 密钥永远不会持久化保存到磁盘。
## 技术
纯 HTML5 + CSS3 + 原生 JavaScript。仅有的捆绑依赖项 (全部为本地文件,位于 `lib/` 中):
- **Chart.js** + **chartjs-adapter-date-fns** —— 交互式时间轴
- **chartjs-plugin-zoom** + **Hammer.js** —— 滚动/拖动/捏合缩放
无需框架,无需打包工具,无需 `npm install`。
## 环境要求
正常使用无需安装任何程序。LogSight 是一个静态浏览器应用:
- 现代浏览器
- (可选) 本地静态 HTTP 服务器 (用于支持文件夹选择功能)
- (可选) Claude/OpenAI API 密钥 (仅在启用第 3 层 AI 功能时需要)
有关机器可读的依赖项说明,请参阅 `requirements.txt`。
## 项目结构
```
log-analysis-lab/
├── index.html
├── css/style.css
├── js/
│ ├── app.js — orchestration / UI wiring
│ ├── scenarios.js — Learn-mode scenario data
│ ├── frameworks.js — MITRE / NIST / OWASP reference data
│ ├── log-parser.js — format detection + timestamp extraction
│ ├── detection.js — rule-based + statistical detection
│ ├── pseudonymizer.js — consistent data pseudonymization
│ ├── timeline.js — Chart.js timeline wrapper
│ ├── log-viewer.js — virtual-scrolling log viewer
│ └── worker.js — background parsing/detection (optional)
├── lib/ — vendored libraries
└── examples/ — sample .log files
```
## 运行方式
只需在浏览器中打开 `index.html`。为了获得完整的功能体验 (文件夹选择器和
本地文件读取在 HTTP 环境下表现最佳),您可以选择为其提供服务:
```
python -m http.server 8070
```
然后访问 `http://localhost:8070`。
## 支持的日志格式
Syslog (BSD)、Apache 访问/错误日志、Palo Alto PAN-OS CSV syslog、
通用事件格式 (CEF)、Oracle Net listener 日志、BIND DNS 查询日志、
JSON 日志以及带有 ISO 8601 时间戳的日志行。格式会按行自动检测。
## 示例
`examples/` 文件夹是项目的一部分,在发布
仓库时应包含在内。它包含单源场景以及 `examples/corebanking-killchain/`,
后者将 Palo Alto 防火墙/威胁日志、F5 LTM/ASM、Apache 访问日志、
Oracle listener 日志和 Oracle 审计日志进行了关联。
## 许可证
MIT 许可证。请参阅 `LICENSE`。
## 贡献者
请参阅 `CONTRIBUTORS.md`。
标签:PFX证书, 安全靶场, 攻击检测, 数据可视化, 漏洞修复, 纯前端工具, 网络安全培训, 自定义脚本