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 分析员使用。 ![Python](https://img.shields.io/badge/python-3.10--3.13-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Version](https://img.shields.io/badge/version-3.3.2-orange) ## 功能 | 类别 | 能力 | |----------|-------------| | **进程分析** | 根进程识别,增强的执行链(子进程、网络、带 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**。
为 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 ```
如果您不想安装生成工具,分析器在没有 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
标签:AMSI绕过, DNS 反向解析, EDR, IP 地址批量处理, Python, SOC工具, 威胁情报, 威胁检测, 安全运营, 开发者工具, 扫描框架, 无后门, 漏洞发现, 网络信息收集, 脆弱性评估, 自动化分析, 跨站脚本