jeffersoncesarantunes/SYNTROPY

GitHub: jeffersoncesarantunes/SYNTROPY

SYNTROPY 是一个统一的Linux取证生态系统,通过审计内核加固、采集内存和分析RWX进程,为蓝队事件响应提供端到端解决方案。

Stars: 0 | Forks: 0

# 🐧 SYNTROPY 统一Linux事件响应工具包 — 审计、采集、分析。 [![平台-Linux](https://img.shields.io/badge/Platform-Linux-1793D1?style=flat-square&logo=linux&logoColor=white)](https://kernel.org) [![语言-C99](https://img.shields.io/badge/Core-C99-A8B9CC?style=flat-square&logo=c&logoColor=white)](https://gcc.gnu.org/) [![语言-Bash](https://img.shields.io/badge/Acquisition-Bash-4EAA25?style=flat-square&logo=gnu-bash&logoColor=white)](https://www.gnu.org/software/bash/) [![许可证-MIT](https://img.shields.io/badge/License-MIT-EE0000?style=flat-square&logo=license&logoColor=white)](LICENSE) [![状态](https://img.shields.io/badge/Status-Active-00FF41?style=flat-square)](#-路线图) [![测试环境](https://img.shields.io/badge/Tested%20on-Arch%20Linux-1793D1?style=flat-square&logo=arch-linux)](https://security.archlinux.org/) [![领域](https://img.shields.io/badge/Domain-Blue%20Team%20%7C%20DFIR-8A2BE2?style=flat-square)](#-概述) ## ● 概述 **SYNTROPY** 是一个由三个专用工具组成的开源取证生态系统,它们协同工作,以**审计、采集和分析**正在调查的Linux系统上的易失性证据。 该工具包专为**蓝队/数字取证与事件响应(DFIR)** 专业人员设计,涵盖了完整的内存事件响应生命周期: | 阶段 | 工具 | 目标 | |-------|------|------| | **1. 分诊** | LinSpec | 审计内核强化态势并识别漏洞 | | **2. 采集** | S.I.R.E.N | 在感知活动安全配置文件的情况下提取内存转储 | | **3. 分析** | K-Scanner | 实时检测具有可疑RWX内存区域的进程 | **关键区别:** * **只读操作** — 无进程注入,无内核修改 * **审计感知采集** — 根据活动的内核保护调整策略 * **加密完整性** — 对每个取证产物使用SHA256校验 * **纯C99** (LinSpec, K-Scanner) 和 **Bash** (S.I.R.E.N) — 除系统库外无任何外部依赖 ## ● 组件 ### 1. LinSpec — 内核强化审计 实时审计关键的Linux内核安全参数,将每项分类为**通过 / 警告 / 漏洞**。 **审计领域:** | 类别 | 参数 | |------|------| | 内存 | ASLR, devmem_restrict | | 内核 | kptr_restrict, dmesg_restrict, kexec_load_disabled | | CPU | Spectre v2, Meltdown | | 网络 | BPF JIT加固, TCP syncookies, IP转发 | | 系统 | Ptrace作用域, 用户命名空间, 受保护的符号链接/硬链接 | **输出:** 结构化的 `report.json` + `report.csv`,供S.I.R.E.N用于自适应采集决策。 ``` sudo ./linspec # 示例输出: # [ 01 ] 内存 > ASLR [+] [ 通过 ] # [ 02 ] 内核 > 内核指针限制 [-] [ 存在漏洞 ] # [ 12 ] 内存 > DMA 限制 [+] [ 通过 ] # [ 15 ] CPU > Meltdown 缓解措施 [+] [ 通过 ] ``` ### 2. S.I.R.E.N — Shell交互运行时实体通知器 具有上下文感知能力的易失性内存采集工具。它读取LinSpec的 `report.json` 以自动确定最佳提取策略。 **操作模式:** | 选项 | 功能 | 来源 | 风险 | |------|------|------|------| | 1 | 映射物理RAM | `/proc/iomem` | 无 | | 2 | 验证管道 | `/proc/version` | 无 | | 3 | 实时提取 | `/dev/mem` | 中等 | | 4 | 取证旁路 | `/proc/kcore` | 低 | **审计感知行为:** - 若 `kptr_restrict > 0` → 自动切换到 `/proc/kcore` - 若 `spectre_v2 = 0` 或 `meltdown = 0` → 提取期间警告侧信道泄漏 - 若 `devmem_restrict = 1` → 优先使用 `/proc/kcore` ``` sudo ./src/siren.sh ``` ### 3. K-Scanner — 实时进程取证 通过 `/proc/[PID]/maps` 扫描所有活动进程,查找具有**RWX(可读-可写-可执行)** 权限的内存区域 — 这直接违反了**W^X(可写异或可执行)** 原则。 **检测的模式包括:** - `ANON_BLOB` — 匿名可执行区域(shellcode,无文件恶意软件) - `JIT_ENGINE` — JIT编译(Firefox, Python, Node.js, Discord) - `VOLATILE_FS` — `/tmp` 或 `/dev/shm` 中的RWX - `PROC_STACK` — 可执行栈(漏洞利用或不安全配置) ``` sudo ./kscanner --json > alerts.json ``` **交互式TUI:** 导航进程,查看实时警报,按 `ENTER` 提取可疑区域并自动生成SHA256、字符串和十六进制转储。 ## ● 特性 * 完整的内存事件响应生命周期(分诊 → 采集 → 分析) * 适应内核强化级别的审计感知采集策略 * 实时RWX内存违规检测 * 基于ncurses的交互式取证TUI * 对每个产物自动构建SHA256完整性链 * JSON/CSV结构化取证报告 * 模块化架构 — 每个工具可独立运行或集成使用 * 零外部依赖(C99 + 系统库) ## ● 示例输出 ``` PHASE 1 — LinSpec Audit: [ 01 ] MEMORY > Address Space Layout Randomization [+] [ PASS ] [ 02 ] KERNEL > Kernel Pointer Restriction [-] [ VULN ] [ 05 ] NETWORK > BPF JIT Compiler Hardening [!] [ WARN ] PHASE 2 — S.I.R.E.N Acquisition: --> Address: 00001000-0009efff : System RAM [VALID] --> Address: 00100000-5aaeafff : System RAM [VALID] [+] Extraction via /proc/kcore — 32 GB acquired [+] SHA256: a1b2c3d4e5f6... PHASE 3 — K-Scanner Analysis: PID PROCESS STATUS MAP_ADDR 53220 suspicious-process RWX ALERT 3ed35854000 1132 python3 RWX ALERT 7fc163862000 1426 Xorg SAFE n/a ``` ## ● 工作原理 SYNTROPY集成了三个通过共享取证协议(`report.json`)通信的工具: ``` ┌─────────────────────────────────────────────────────────────────┐ │ SYNTROPY │ ├─────────────┬───────────────────┬───────────────────────────────┤ │ LinSpec │ S.I.R.E.N │ K-Scanner │ │ (Auditor) │ (Acquisitor) │ (Analyzer) │ ├─────────────┼───────────────────┼───────────────────────────────┤ │ /proc/sys │ /dev/mem │ /proc/[PID]/maps │ │ /sys/devices│ /proc/kcore │ /proc/[PID]/mem │ │ │ /proc/iomem │ │ ├─────────────┼───────────────────┼───────────────────────────────┤ │ report.json ──────► audit-aware decision │ │ │ │ │ │ │ dumps/*.bin ◄───┘ RWX dump pipeline │ │ │ dumps/*.sha256 │ │ │ │ dumps/report_*.json │ │ └─────────────┴───────────────────┴───────────────────────────────┘ ``` **数据流:** 1. **LinSpec** 审计内核并生成 `report.json` 2. **S.I.R.E.N** 读取 `report.json` → 决定使用哪个内存接口 → 转储内存 3. **K-Scanner** 实时扫描进程 → 标记RWX区域 → 根据需要提取证据 ## ● 快速安装 ``` # 克隆统一工具包 git clone https://github.com/jeffersoncesarantunes/SYNTROPY.git cd SYNTROPY # ---- LinSpec ---- cd LinSpec && make clean && make && cd .. # ---- K-Scanner ---- cd K-Scanner && make clean && make && cd .. # ---- SIREN ---- chmod +x SIREN/src/siren.sh # 就绪。请以 root 权限运行: sudo ./LinSpec/linspec sudo ./SIREN/src/siren.sh sudo ./K-Scanner/kscanner --help ``` **前置条件:** `gcc`, `make`, `ncurses`, `binutils`, `coreutils`, `bash 4.x+`,root权限。 ## ● 事件响应工作流 ``` INCIDENT DETECTED │ ▼ ┌──────────────────┐ │ PHASE 1: TRIAGE │ │ LinSpec │ < 1 second │ "Is the kernel │ │ hardened?" │ └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ PHASE 2: ACQUIRE │ │ S.I.R.E.N │ < 5 minutes │ dump memory with │ │ integrity chain │ └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ PHASE 3: ANALYZE │ │ K-Scanner │ < 30 seconds │ "Who has RWX?" │ │ + strings + hex │ └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ REPORT │ │ Evidence with │ │ cryptographic │ │ chain of custody │ └──────────────────┘ ``` ## ● 详细用法 ### 阶段1:使用LinSpec进行审计 ``` cd LinSpec sudo ./linspec ``` 在 `reports/report.json` 中生成的报告将被S.I.R.E.N在下一阶段自动使用。 **需关注的标志:** - `kptr_restrict = 0` → 内核指针可见(信息泄露) - `devmem_restrict = 0` → `/dev/mem` 无限制(提取风险) - `spectre_v2 = 0` → CPU易受Spectre攻击 - `bpf_jit_harden = 0` → BPF JIT未加固 ### 阶段2:使用S.I.R.E.N进行采集 ``` cd SIREN sudo ./src/siren.sh ``` 交互式菜单: ``` 1) Map Physical Memory (iomem) → Lists valid RAM regions 2) Verify Extraction Pipeline → Tests pipeline without extraction 3) Live Memory Extraction (/dev/mem) → Extracts 100 MB via /dev/mem 4) Advanced Forensic Bypass (kcore) → Extracts full RAM via /proc/kcore 5) Exit ``` **生产环境建议:** 选项 **4 (kcore)** — 更稳定,无冻结风险。 **选项 3 (/dev/mem):** 仅当kcore不可用时使用。 ### 阶段3:使用K-Scanner进行分析 ``` cd K-Scanner sudo ./kscanner # Interactive TUI mode sudo ./kscanner --json # JSON export (headless) sudo ./kscanner --csv # CSV export (headless) ``` **TUI控件:** - 使用方向键导航进程 - **红色**行 = `RWX警报` - **绿色**行 = `安全` - 在可疑进程上按 **ENTER** → 提取RWX区域 - 按 **Q** 退出 **跨进程内存的实时正则搜索:** ``` sudo ./kscanner --live "" ``` ## ● 为什么 Linux上的事件响应缺乏统一的、审计感知的取证管道。大多数工具是孤立运行的 — 内核审计器无法与内存采集器通信,RWX检测器也没有系统保护状态的上下文。 SYNTROPY通过以下方式解决此问题: * 将内核审计数据直接连接到采集决策 * 提供可重复的三阶段取证工作流 * 确保每个阶段的加密完整性 * 零系统修改运行 * 实现生产环境安全的证据收集而无需停机 它将原始的内核遥测数据转化为结构化的、法庭准备就绪的取证链。 ## ● 项目实践 ![概述](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/0b023fd43f104158.png) *1 - 实时取证模式,识别活动进程中的RWX内存区域。* ![采集](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9627140ac9104203.png) *2 - 完整内存采集,带完整性验证和结构化报告。* ![验证](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ebc2f08455104208.png) *3 - 内核审计结果与实时系统状态的交叉验证。* ## ● 操作完整性 SYNTROPY专为安全的实时响应环境设计: * 所有组件只读操作 * 无进程注入或内核修改 * 内存接口间审计感知的故障转移 * 对每个取证产物进行加密完整性校验 * 访问受限时优雅失败 * 生产环境中零停机证据采集 ## ● 部署 ### 要求 * Linux内核 5.x 或更新版本 * gcc, make * ncurses (K-Scanner) * binutils, coreutils * Bash 4.x+ * Root权限 * 兼容UTF-8的终端 ## ● 仓库结构 ``` SYNTROPY/ │ ├── K-Scanner/ ← RWX process analysis │ ├── src/ ├── core/ (kscanner.c, mem_analyzer, process_hunter) │ │ ├── modules/ (tui_engine, export_engine, regex_engine) │ │ └── utils/ (logger, memory_utils) │ ├── include/ ├── public headers │ ├── scripts/ ├── build, test, diagnostic │ ├── docs/ ├── architecture, threat model, methodology │ └── Makefile │ ├── LinSpec/ ← Kernel hardening audit │ ├── src/ ├── main.c, memory_audit.c, system_audit.c │ ├── include/ ├── headers │ ├── docs/ ├── technical documentation │ └── Makefile │ ├── SIREN/ ← Memory acquisition │ ├── src/ ├── siren.sh │ ├── dumps/ ├── extracted artifacts (.bin, .sha256, manifest.csv) │ ├── docs/ ├── acquisition model, safety model │ └── .gitignore │ ├── README.md ← This file └── LICENSE ``` 每个子目录维护自己的文档和独立的Makefile。该工具包既可作为集成套件使用,也可作为独立工具使用。 ## ● 技术栈 * **核心语言:** C99 (LinSpec, K-Scanner) * **采集层:** Bash 4.x+ (S.I.R.E.N) * **数据源:** `/proc`, `/sys`, `/dev/mem` * **界面:** ncurses TUI (K-Scanner) * **哈希:** SHA256 * **取证报告:** JSON / CSV * **构建系统:** GNU Make * **目标:** Linux内核 5.x / 6.x ## ● 路线图 * [x] 内核强化审计引擎 (LinSpec) * [x] 审计感知自适应内存采集 (S.I.R.E.N) * [x] 带ncurses TUI的实时RWX检测 (K-Scanner) * [x] 加密完整性链 (SHA256) * [x] JSON/CSV结构化取证报告 * [x] 通过 `report.json` 协议实现跨工具集成 * [ ] 实时正则内存搜索 (K-Scanner) * [ ] eBPF遥测集成 * [ ] 自动化修复建议 ## ● 文档 [![文档-LinSpec](https://img.shields.io/badge/LinSpec-Architecture-002B36?style=flat-square\&logo=linux\&logoColor=white)](./LinSpec/docs/architecture.md) [![文档-SIREN](https://img.shields.io/badge/SIREN-Acquisition-00599C?style=flat-square\&logo=linux\&logoColor=white)](./S.I.R.E.N/docs/ACQUISITION_MODEL.md) [![文档-KScanner](https://img.shields.io/badge/K--Scanner-Methodology-003366?style=flat-square\&logo=linux\&logoColor=white)](./K-Scanner/docs/forensic_methodology.md) [![文档-威胁模型](https://img.shields.io/badge/Threat-Model-CC0000?style=flat-square\&logo=dependabot\&logoColor=white)](./K-Scanner/docs/threat_model.md) ## ● 词源与起源 名称 **SYNTROPY** 源自 **syntropy**(协同)的概念 — 熵的反义词。 熵代表走向无序和混乱的趋势,而协同则代表复杂系统中走向有序、组织和结构的趋势。这一原则直接反映了事件响应工具包的目的:当系统受到攻击 — 处于取证混乱状态时 — SYNTROPY提供了恢复秩序、建立清晰证据链并为调查带来结构的方法论和工具。 这个名称反映了项目背后的哲学:**通过一个有纪律的、审计感知的、经过密码学验证的取证管道,为安全事件的混乱带来秩序**。 ## ● 许可证 [![许可证-MIT](https://img.shields.io/badge/License-MIT-EE0000?style=flat-square\&logo=opensourceinitiative\&logoColor=white)](./LICENSE) *本项目采用MIT许可证。每个子项目(K-Scanner, LinSpec, S.I.R.E.N)也根据相同条款维护自己的许可证。*
标签:Bash, C99, Homebrew安装, HTTP请求, Linux取证, Ruby on Rails, RWX内存检测, SecList, 二进制发布, 内存取证, 内存获取, 内存转储, 内核加固, 内核审计, 加密完整性, 取证工具, 只读操作, 实时分析, 实时检测, 客户端加密, 应用安全, 开源工具, 数字取证, 漏洞识别, 统一工具包, 自动化脚本, 进程分析