Flor1an-B/sentinelone-soc-analyzer
GitHub: Flor1an-B/sentinelone-soc-analyzer
SentinelOne Deep Visibility 自动化取证分析工具,通过 22+ 分析器与归一化威胁评分,为 SOC 提供一站式 CSV 事件核查与 HTML 仪表盘。
Stars: 2 | Forks: 1
# S1 Analyzer
**SentinelOne Deep Visibility Forensic Analyzer** — 针对 SentinelOne CSV 导出文件的自动化 SOC 分诊工具。
通过 22+ 个专业分析器和 4 个关联引擎分析 Deep Visibility (DV) 和 Scalable Data Lake (SDL) CSV 导出文件,生成威胁评分、判定结论以及一个自包含的 HTML 仪表板,供 SOC L1/L2 分析员使用。



## 功能
| 类别 | 能力 |
|----------|-------------|
| **进程分析** | 根进程识别,增强的执行链(子进程、网络、带 SHA1 的文件),父/子树,Electron 检测 |
| **行为指标** | 60+ 种指标模式,具备上下文误报检测 |
| **网络与 C2** | 外部连接,DNS 关联,C2 信标检测,C2 基础设施关联,可疑用户代理,HTTP 请求 |
| **脚本与 Payload** | PowerShell/CMD/VBS 内容分析,混淆检测,带 URL/路径提取的十六进制/base64 payload 解码 |
| **MITRE ATT&CK** | 战术/技术映射,热力图,杀伤链可视化,通过组织与缓解措施进行丰富化 |
| **Sigma 规则** | 2600+ 条经过质量过滤的 Core+ 规则针对 S1 事件进行评估 |
| **YARA** | 4900+ 条 YARA Forge Core 规则(来自 45+ 个仓库)针对命令行和脚本进行扫描 |
| **统计分析** | IsolationForest 异常检测,非工作时间活动,熵分析 |
| **威胁情报** | VirusTotal, MalwareBazaar, AlienVault OTX, Shodan 查询 |
| **判定引擎** | 归一化的威胁评分 (0-20),校准的阈值,基于证据的判定结论,分析员备注 |
| **交互式 HTML** | 全局搜索 (Ctrl+K),表格排序,IOC 批量导出,TI 外部链接,仪表盘色区,移动端响应式适配 |
## 威胁评分
分析器会生成一个**0-20 刻度范围内的归一化评分**,并带有校准的阈值:
```
0 - 3 : FALSE POSITIVE / Benign — No malicious indicators
4 - 7 : LIKELY FALSE POSITIVE — Low risk, mostly benign context
8 - 11 : UNDETERMINED — Needs analyst investigation
12 - 15 : SUSPICIOUS — Likely malicious, investigate urgently
16 - 20 : TRUE POSITIVE / Malicious — Confirmed threat, requires action
```
该评分结合了行为指标、攻击链关联、脚本分析、MITRE 技术覆盖率和上下文误报缓解措施,为 SOC 分析员提供可操作的评估。
## 从 SentinelOne 获取 CSV
1. 在 **SentinelOne Management Console** 中,导航到您要调查的警报
2. 点击 **Threat Actions** > **Event Search**(或转到 **Visibility > Deep Visibility**)
3. 查看为所选警报显示的事件
4. 点击 **Export** > **Download as CSV**
5. 将 CSV 文件保存到本地
## 快速开始
```
# 1. Clone the repository
git clone https://github.com/Flor1an-B/s1-analyzer.git
cd s1-analyzer
# 2. Install optional dependencies (for full analysis capabilities)
pip install -r requirements.txt
# 注意:推荐使用 Python 3.10-3.13 (yara-python 有预构建的 wheels)
# 3. Download/update rules (essential first step) (ATT&CK, Sigma, YARA) — 必要的第一步
python s1_update.py --rules
# 或者:python s1_analyzer.py --update
# 4. Analyze your SentinelOne CSV export
python s1_analyzer.py alert.csv
```
这将创建一个包含 `report.json` 和 `report.html` 的文件夹。HTML 仪表板是自包含的,可以在任何浏览器中打开。
## 用法
```
python s1_analyzer.py [OPTIONS]
```
### 选项
| 标志 | 描述 |
|------|-------------|
| `--update` | 下载/更新 ATT&CK 包、Sigma 规则、YARA 特征库 |
| `--vt-key KEY` | VirusTotal v3 API 密钥([免费](https://virustotal.com)) |
| `--mb` | 启用 MalwareBazaar 哈希查询(无需密钥) |
| `--otx-key KEY` | AlienVault OTX API 密钥([免费](https://otx.alienvault.com)) |
| `--shodan-key KEY` | Shodan API 密钥([shodan.io](https://shodan.io)) |
| `--enrich-ips` | 通过 ip-api.com 丰富化外部 IP(地理/ASN) |
| `--json` | 将原始 JSON 打印到 stdout |
| `--html` | 将 HTML 打印到 stdout(或与 `-o` 一起使用) |
| `-o FILE` | 将文本/HTML/JSON 保存到文件 |
| `--no-sigma` | 禁用 Sigma 规则评估 |
| `--no-yara` | 禁用 YARA 扫描 |
| `--no-graph` | 禁用 NetworkX 进程图分析 |
| `--no-stats` | 禁用统计异常检测 |
| `--no-attack` | 禁用 ATT&CK 丰富化 |
| `--no-color` | 禁用 ANSI 颜色 |
### 示例
```
# Download/update rules (必要的第一个步骤)
python s1_analyzer.py --update
# Basic analysis — 自动生成 JSON + HTML dashboard
python s1_analyzer.py alert.csv
# Full threat intelligence enrichment (VirusTotal + MalwareBazaar + IP geolocation)
python s1_analyzer.py alert.csv --vt-key YOUR_VT_API_KEY --mb --enrich-ips
# Save text report to file
python s1_analyzer.py alert.csv -o report.txt
# Skip heavy analysis for faster results
python s1_analyzer.py alert.csv --no-sigma --no-yara
```
### 分析输出
分析器会显示详细的进度,包括每个阶段的加载动画、进度条和耗时:
```
S1 Analyzer v3.2.0 - SentinelOne Deep Visibility Forensic Analyzer
Author: Florian Bertaux
Input : alert.csv (807.4 KB)
Modules: Sigma, YARA, Graph, Stats, ATT&CK
=== Analysis ==========================================
[OK] 223 events loaded from alert.csv (560ms)
Phase 1/4 - Core analysis
[---------------] 4% Processes (1ms)
[#--------------] 8% Behavioral indicators (0ms)
[#--------------] 12% Network activity (0ms)
[##-------------] 16% File activity (0ms)
...
[#########------] 62% IOC extraction (2.8s)
Phase 2/4 - Detection engines
[OK] 2643 Sigma rules loaded (3.5s)
[OK] Process graph built (3ms)
[OK] Statistical analysis done (77ms)
[OK] 4922 YARA rules loaded (18.8s)
[OK] ATT&CK enrichment loaded (2.9s)
Phase 3/4 - Verdict computation
[OK] Verdict computed (3.8s)
Phase 4/4 - Report generation
[OK] Report generated (5.1s)
=== Analysis Complete =================================
[OK] 223 events analyzed in 20.9s
10 behavioral indicators | 2643 Sigma rules evaluated | 4922 YARA rules scanned
=== Output ============================================
[OK] report.json (144.9 KB)
[OK] report.html (214.3 KB)
[+] Report folder: alert_20260311_121200
[+] Total time: 21.2s
```
## HTML 仪表板
自包含的 HTML 报告包括:
- **判定结果主视觉区** — 带有分色区仪表盘(绿/黄/橙/红)、评分和置信水平
- **可点击的指标卡片** — 直接跳转到任何部分
- **交互式部分** — 可折叠,带有徽章计数和可排序的表格
- **MITRE ATT&CK 热力图** — 战术/技术覆盖率
- **杀伤链流程** — 带有战术色卡片的可视化 ATT&CK 阶段进展
- **C2 基础设施** — 带有 DNS 和连接证据的关联域名/IP 视图
- **进程树**可视化
- **全局搜索** — `Ctrl+K` 跨所有部分的全文搜索
- **IOC 导出** — 一键“复制所有 IOC”按钮
- **TI 链接** — IOC 项目上可点击的 VirusTotal、AbuseIPDB、URLhaus 链接
- **深色/浅色主题** — 按 `T` 键切换
- **打印友好** — `Ctrl+P` 输出整洁的打印内容
- **可复制的值** — 点击任何哈希、IP 或命令行即可复制
- **移动端响应式** — 针对平板电脑和手机优化的布局
## CSV 格式
### Deep Visibility (DV)
列:`event.time`, `agent.uuid`, `src.process.user`, `event.type`, `src.process.storyline.id`, `event.details`
### Scalable Data Lake (SDL)
列:`dataSource.name`, `event.time`, `event.type`, `updated_at`, `event.source`, `event.target`, `event.details`, `primary_description`
## 架构
```
CSV file
|
+-- CsvParser ------------ Normalize DV/SDL -> unified event list
|
+-- ProcessAnalyzer ------ Root identification, parent chain, children
+-- BehaviorAnalyzer ----- 60+ behavioral indicator patterns
+-- NetworkAnalyzer ------ Connections, DNS, beacons, user agents
+-- FileAnalyzer --------- File operations, suspicious paths
+-- RegistryAnalyzer ----- Persistence keys, run keys
+-- ScriptAnalyzer ------- Script content, obfuscation, encodings
+-- ModuleAnalyzer ------- DLL loads, suspicious modules
+-- TaskAnalyzer --------- Scheduled tasks
+-- LsassAnalyzer -------- LSASS access detection
+-- CmdlineAnalyzer ------ Command line heuristics, entropy
+-- TemporalCorrelation -- Attack sequence timing
+-- SigmaEvaluator ------- Sigma community rules
+-- YaraAnalyzer --------- YARA signature matching
+-- ProcessGraphAnalyzer - NetworkX graph analysis
+-- StatisticalAnalyzer -- IsolationForest outlier detection
+-- MitreAttackEnricher -- ATT&CK groups & mitigations
+-- IocExtractAnalyzer --- IOC extraction (URLs, IPs, hashes)
|
+-- CorrelationEngine ---- Attack chain detection
+-- FPContextualizer ----- False positive contextual analysis
+-- VerdictEngine -------- Score normalization & verdict
|
+-- ReportGenerator ------ JSON output (30 sections)
+-- s1_report.py --------- HTML dashboard generation
s1_update.py --------------- Unified updater: app files + detection rules (no git required)
```
## 输出结构
每次分析都会创建一个带有时间戳的文件夹:
```
alert_20260310_143000/
+-- report.json # Full structured data (30 sections)
+-- report.html # Self-contained interactive dashboard
```
### JSON 部分 (30)
`meta` - `identification` - `verdict` - `metrics` - `timeline` - `behavioral_indicators` - `severity_distribution` - `attack_chains` - `mitre_attack` - `scripts` - `modules` - `network` - `process_tree` - `files` - `registry` - `tasks` - `lsass` - `cmdline_analysis` - `temporal_sequences` - `sigma_matches` - `process_graph` - `statistical_analysis` - `yara_matches` - `mitre_enrichment` - `ioc_extraction` - `virustotal` - `threat_intelligence` - `c2_infrastructure` - `kill_chain` - `analyst_notes`
## 依赖项
基础分析**零依赖**。可选包可启用高级功能:
| 包 | 功能 | 必需 |
|---------|---------|----------|
| `pyyaml` | Sigma 规则加载 | 否 |
| `networkx` | 进程图分析 | 否 |
| `pyod` | 统计异常检测 | 否 |
| `yara-python` | YARA 模式匹配 | 否 |
| `iocextract` | IOC 提取 | 否 |
| `mitreattack-python` | ATT&CK 丰富化 | 否 |
```
pip install -r requirements.txt
```
### 关于 yara-python 的说明 (Windows)
提供适用于 **Python 3.10 到 3.13** 的预构建 wheels。在 Python 3.14+ 环境下,`yara-python` 必须从源代码编译,这需要 **Microsoft Visual C++ Build Tools**。
如果您不想安装生成工具,分析器在没有 YARA 的情况下也能工作 —— 所有其他功能仍然完全可用。使用 `--no-yara` 可抑制警告。
## 保持更新
### 统一更新工具 (`s1_update.py`)
一个用于更新所有内容的工具 —— **无需 git**。
```
python s1_update.py # Update everything (app + rules)
python s1_update.py --app # Update application files only
python s1_update.py --rules # Update detection rules only
python s1_update.py --check # Dry run (show what would change)
python s1_update.py --force # Force re-download everything
```
不带参数运行时,`s1_update.py` 会执行**完整更新**:一次操作完成应用程序文件和检测规则的更新。
**应用程序更新** — 通过 SHA1 哈希值将您的本地文件与 GitHub 仓库进行比较,并仅增量下载已更改或缺失的内容:
```
S1 Update v2.0.0 - S1 Analyzer Sync & Update Tool
Author : Florian Bertaux
=== Application Update ================================
[OK] Version check complete
Local version : 3.1.0
Remote version : 3.2.0
Status : Update available!
[OK] Found 8 tracked file(s) (120ms)
[OK] Compared 8 file(s)
[OK] 5 file(s) already up to date
[UPD] 2 file(s) modified, to update:
~ s1_analyzer.py
~ s1_report.py
[NEW] 1 new file(s) to download:
+ CHANGELOG.md
[~] [###########----] 73% s1_analyzer.py (230.5 KB)
[~] [##############-] 93% s1_report.py (45.2 KB)
[+] [###############] 100% CHANGELOG.md (1.2 KB)
[OK] 3/3 file(s) synchronized (276.9 KB in 1.2s)
[OK] Version updated: 3.1.0 -> 3.2.0
```
**检测规则更新** — 从上游来源下载最新的社区规则:
```
=== Detection Rules Update ============================
[*] Current detection rules:
ATT&CK : Installed (48.4 MB)
Sigma : 2643 rule(s)
YARA : 4964 rule(s)
[*] Downloading detection rules...
OK MITRE ATT&CK Enterprise bundle (STIX 2.1): 48.4 MB
OK SigmaHQ Core+ (r2026-01-01): 2.4 MB
OK Extracted 2643 Sigma rules
OK YARA Forge Core (20260308): 1.6 MB
OK Extracted 4964 YARA rules
[OK] All rules updated successfully (4.1s)
ATT&CK : updated (48.4 MB)
Sigma : 2643 rules (unchanged)
YARA : 4964 rules (unchanged)
```
| 命令 | 描述 |
|---------|-------------|
| `python s1_update.py` | 完整更新:应用程序文件 + 检测规则 |
| `python s1_update.py --app` | 仅应用程序文件(增量 SHA1 比较) |
| `python s1_update.py --rules` | 仅检测规则(ATT&CK、Sigma、YARA) |
| `python s1_update.py --check` | 演练运行 —— 查看将要发生的更改而不进行下载 |
| `python s1_update.py --force` | 强制重新从头开始下载所有内容 |
| `python s1_update.py --version` | 显示版本 |
工作原理:
- 查询 GitHub API 以动态发现所有项目文件
- 比较本地和远程文件之间的 SHA1 哈希值
- 仅下载不同或缺失的文件
- 检测规则从上游来源下载(MITRE ATT&CK STIX 2.1、SigmaHQ Core+、YARA Forge Core)
- 每个操作都有进度条、加载动画和详细输出
- 零依赖(仅使用 Python 标准库)
### 通过 `s1_analyzer.py` 更新检测规则(替代方案)
`s1_analyzer.py` 中的 `--update` 选项仍然可用,并下载相同的规则:
```
python s1_analyzer.py --update
```
### 检测规则来源
规则从以下上游来源下载:
| 规则集 | 来源 | 仓库 | 描述 |
|----------|--------|------------|-------------|
| **MITRE ATT&CK** | Enterprise STIX 2.1 包 | [mitre-attack/attack-stix-data](https://github.com/mitre-attack/attack-stix-data) | STIX 2.1 格式的官方 ATT&CK 知识库。提供技术定义、组织、缓解措施和关系。 |
| **Sigma** | Core+ 发布包 | [SigmaHQ/sigma](https://github.com/SigmaHQ/sigma) | 来自 SigmaHQ 社区的经过质量过滤的检测规则。Core+ 包括状态为 `stable` 和 `test` 的规则,由 SigmaHQ 项目精心挑选。 |
| **YARA** | Forge Core 包 | [YARAHQ/yara-forge](https://github.com/YARAHQ/yara-forge) | 从 45+ 个公共仓库(包括 Neo23x0/signature-base、ReversingLabs、Elastic 等)聚合并经过质量评分的 YARA 规则。Core 层级包含高质量、低误报率的规则。 |
本地存储:
```
data/
+-- attack/
| +-- enterprise-attack.json # ATT&CK STIX 2.1 bundle (~48 MB)
+-- sigma/
| +-- rules/ # Sigma Core+ rules (~2600 .yml files)
| +-- windows/
| +-- linux/
| +-- ...
+-- yara/
+-- rules/ # YARA Forge Core (~4900 rules)
+-- yara-rules-core.yar # Single monolithic rule file
```
## 许可证
[MIT](LICENSE) — Florian Bertaux
为 Python 3.14+ 安装 Visual C++ Build Tools
1. 下载 [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) 2. 运行安装程序并选择 **“使用 C++ 的桌面开发”** 3. 在右侧面板中,确保选中以下内容: - **MSVC v143 - VS 2022 C++ x64/x86 生成工具**(或最新版本) - **Windows 11 SDK**(或 Windows 10 SDK) - **适用于 Windows 的 C++ CMake 工具** 4. 点击 **安装**(大约需要 2-4 GB) 5. 安装完成后,**重启您的终端**,然后运行: ``` pip install yara-python ```标签:AMSI绕过, DNS 反向解析, EDR, IP 地址批量处理, Python, SOC工具, 威胁情报, 威胁检测, 安全运营, 开发者工具, 扫描框架, 无后门, 漏洞发现, 网络信息收集, 脆弱性评估, 自动化分析, 跨站脚本