jeffersoncesarantunes/SYNTROPY
GitHub: jeffersoncesarantunes/SYNTROPY
SYNTROPY 是一个统一的Linux取证生态系统,通过审计内核加固、采集内存和分析RWX进程,为蓝队事件响应提供端到端解决方案。
Stars: 0 | Forks: 0
# 🐧 SYNTROPY
统一Linux事件响应工具包 — 审计、采集、分析。
[](https://kernel.org)
[](https://gcc.gnu.org/)
[](https://www.gnu.org/software/bash/)
[](LICENSE)
[](#-路线图)
[](https://security.archlinux.org/)
[](#-概述)
## ● 概述
**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通过以下方式解决此问题:
* 将内核审计数据直接连接到采集决策
* 提供可重复的三阶段取证工作流
* 确保每个阶段的加密完整性
* 零系统修改运行
* 实现生产环境安全的证据收集而无需停机
它将原始的内核遥测数据转化为结构化的、法庭准备就绪的取证链。
## ● 项目实践

*1 - 实时取证模式,识别活动进程中的RWX内存区域。*

*2 - 完整内存采集,带完整性验证和结构化报告。*

*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/docs/architecture.md)
[](./S.I.R.E.N/docs/ACQUISITION_MODEL.md)
[](./K-Scanner/docs/forensic_methodology.md)
[](./K-Scanner/docs/threat_model.md)
## ● 词源与起源
名称 **SYNTROPY** 源自 **syntropy**(协同)的概念 — 熵的反义词。
熵代表走向无序和混乱的趋势,而协同则代表复杂系统中走向有序、组织和结构的趋势。这一原则直接反映了事件响应工具包的目的:当系统受到攻击 — 处于取证混乱状态时 — SYNTROPY提供了恢复秩序、建立清晰证据链并为调查带来结构的方法论和工具。
这个名称反映了项目背后的哲学:**通过一个有纪律的、审计感知的、经过密码学验证的取证管道,为安全事件的混乱带来秩序**。
## ● 许可证
[](./LICENSE)
*本项目采用MIT许可证。每个子项目(K-Scanner, LinSpec, S.I.R.E.N)也根据相同条款维护自己的许可证。*
标签:Bash, C99, Homebrew安装, HTTP请求, Linux取证, Ruby on Rails, RWX内存检测, SecList, 二进制发布, 内存取证, 内存获取, 内存转储, 内核加固, 内核审计, 加密完整性, 取证工具, 只读操作, 实时分析, 实时检测, 客户端加密, 应用安全, 开源工具, 数字取证, 漏洞识别, 统一工具包, 自动化脚本, 进程分析