jeffersoncesarantunes/LinX

GitHub: jeffersoncesarantunes/LinX

LinX 是一款 Linux 取证关联引擎,将 LinSpec 内核加固审计结果与 K-Scanner 内存分析结果进行交叉比对以识别复合安全风险。

Stars: 0 | Forks: 0

# LinX 轻量级取证关联引擎,将 LinSpec 审计结果与 K-Scanner 内存分析结果进行交叉比对 —— 将内核加固缺陷与活跃的内存威胁联系起来。 [![Platform-Linux](https://img.shields.io/badge/Platform-Linux-1793D1?style=flat-square&logo=linux&logoColor=white)](https://kernel.org) [![Language-C99](https://img.shields.io/badge/Language-C99-00599C?style=flat-square&logo=c&logoColor=white)](https://gcc.gnu.org/) [![License-MIT](https://img.shields.io/badge/License-MIT-EE0000?style=flat-square&logo=license&logoColor=white)](LICENSE) [![Status](https://img.shields.io/badge/Status-Active-00A86B?style=flat-square)](#-roadmap) [![Docker](https://img.shields.io/badge/Docker-Multi--stage-2496ED?style=flat-square&logo=docker)](Dockerfile) [![Tested-on](https://img.shields.io/badge/Tested%20on-Arch%20Linux-1793D1?style=flat-square&logo=arch-linux)](https://security.archlinux.org/) [![Domain](https://img.shields.io/badge/Domain-Digital%20Forensics-8A2BE2?style=flat-square)](./docs/architecture.md) ## 词源 **LinX** = **Linux** + **X** —— 加固审计与内存分析的交叉点。 它是姿态审计(LinSpec)与实时内存分析(K-Scanner)之间缺失的环节 —— 不仅要回答*“什么是易受攻击的?”*,还要回答*“组合风险是什么?”* ## 概述 LinSpec 会告诉你哪些内核加固参数配置不当。K-Scanner 会告诉你哪些进程拥有 RWX 内存区域。LinX 将这些信号联系起来 —— 识别危险的组合,例如*“kptr_restrict=0 且 ASLR=0”*(KASLR 绕过成功)或*“ptrace_scope=0,同时 K-Scanner 检测到 RWX 区域”*(存在注入路径)。 涵盖 3 个类别的**关联规则**: | 类别 | 规则 | 来源 | |----------|-------|--------| | 单项检查 | kptr_restrict, ptrace_scope, ASLR, dmesg, BPF, kexec, perf_event, userns | LinSpec | | 交叉检查 | KASLR 绕过链,内核地址泄露链 | LinSpec + LinSpec | | 内存 | RWX 区域检测及严重性分类 | K-Scanner | ## 功能 - 自动交叉比对 LinSpec 和 K-Scanner 的输出 - 8 条具有 CVSS 对齐严重性的单项检查关联规则 - 2 条多项检查复合规则(KASLR 绕过、地址泄露) - 按置信度分类的 K-Scanner RWX 发现 - 纯 C99 编写,除 POSIX 外零依赖 - 用于 pipeline 集成的 JSON 导出 - 启用了 PIE + RELRO + FORTIFY 加固的二进制文件 - 原生兼容 SYNTROPY 生态系统 ## 快速开始 ``` git clone https://github.com/jeffersoncesarantunes/LinX.git cd LinX # 构建项目 make # 仅运行 LinSpec 报告 sudo ./linx --linspec /path/to/report.json # 同时运行 LinSpec 和 K-Scanner sudo ./linx -l report.json -k kscan_results.json -j ``` ## 用法 ``` LinX v1.0.0 - Forensic Correlation Engine Usage: linx [options] Options: -l, --linspec FILE LinSpec report.json path -k, --kscanner FILE K-Scanner results.json path -j, --json Export JSON correlation report -o, --output-dir DIR Output directory (default: reports/) -V, --version Show version -h, --help Show this help ``` ### 示例 ``` # 仅与 LinSpec 进行关联 ./linx -l reports/report.json # 使用两个工具进行全面关联 ./linx -l reports/report.json -k /tmp/kscan_results.json # 导出 JSON 以进行流水线处理 ./linx -l report.json -k kscan.json -j -o /tmp/correlation # 快速评估 ./linx -l report.json ``` ## 关联规则 | 规则 | 严重性 | 条件 | 复合 | |------|----------|-----------|-----------| | 内核指针限制 | HIGH | kptr_restrict < 2 | 否 | | Ptrace 范围 | HIGH | ptrace_scope < 1 | 否 | | ASLR 薄弱 | HIGH | ASLR < 2 | 否 | | dmesg 受限 | MEDIUM | dmesg_restrict < 1 | 否 | | 非特权 BPF | HIGH | unpriv_bpf != 1 | 否 | | Kexec 已启用 | MEDIUM | kexec_disabled != 1 | 否 | | Perf 不受限 | MEDIUM | perf_event_paranoid < 2 | 否 | | 用户命名空间 | MEDIUM | userns_clone != 0 | 否 | | KASLR 绕过链 | CRITICAL | kptr_restrict < 2 且 ASLR < 2 | 是 | | 地址泄露链 | HIGH | dmesg_restrict < 1 且 kptr_restrict < 2 | 是 | | 多项内核失败 | HIGH | 3 个以上的内核类别 VULN | 是 | | 检测到 RWX 内存 | HIGH/CRITICAL | K-Scanner 置信度 >= MEDIUM | 否 | ## 报告 | 格式 | 文件 | 内容 | |--------|------|---------| | JSON | `correlation_report.json` | 机器可读,包含发现、严重性、来源、PID、建议 | ## 取证生态系统 LinX 是 SYNTROPY 取证 pipeline 中的关联层: ``` Phase 0: LinX (Correlate) --> correlation_report.json Phase 1: LinSpec (Audit) --> report.json Phase 2: S.I.R.E.N (Acquire) --> memory dump + SHA256 Phase 3: K-Scanner (Analyze) --> RWX detection + YARA ``` ## 路线图 - [x] 高性能 C99 核心引擎 - [x] LinSpec JSON 报告解析器 - [x] K-Scanner JSON 结果解析器 - [x] 单项检查关联规则(8 条规则) - [x] 复合交叉检查规则(2 条规则) - [x] K-Scanner 内存告警集成 - [x] 带严重性分类的 JSON 导出 - [x] 极简 JSON 解析器(零依赖) - [x] Docker 容器镜像 ## 构建 ``` make # production build (stripped, hardened) make debug # debug build with symbols make test # run test suite make lint # static analysis (cppcheck + clang) make docker # build Docker image make install # install to /usr/local/bin ``` ## 仓库结构 ``` ├── docs/ │ ├── architecture.md │ ├── correlation_rules.md │ └── threat_model.md ├── include/ │ └── correlate.h ├── man/ │ └── linx.1 ├── scripts/ │ └── install.sh ├── src/ │ ├── main.c │ ├── correlate.c │ └── report.c ├── tests/ │ └── run_tests.sh ├── Dockerfile ├── LICENSE ├── Makefile ├── SECURITY.md ├── Images/ └── README.md ``` ## 安全性 - 输入解析拒绝格式错误的 JSON - 无 `system()` 或 `popen()` 调用 - 只读分析 —— 不修改系统状态 - 二进制文件采用 PIE, RELRO, NOW, 不可执行栈, `_FORTIFY_SOURCE=2` 以及栈保护机制构建 [![Docs-Security](https://img.shields.io/badge/Security-Policy-CC0000?style=flat-square&logo=opensourceinitiative&logoColor=white)](SECURITY.md) ## 文档 [![Docs-Architecture](https://img.shields.io/badge/Architecture-Design-00599C?style=flat-square&logo=linux&logoColor=white)](docs/architecture.md) [![Docs-Rules](https://img.shields.io/badge/Correlation-Rules-8A2BE2?style=flat-square)](docs/correlation_rules.md) [![Docs-ThreatModel](https://img.shields.io/badge/Threat-Model-CC0000?style=flat-square&logo=opensourceinitiative&logoColor=white)](docs/threat_model.md)
标签:Bing搜索, C99, Docker, JARM, 内存分析, 安全防御评估, 客户端加密, 数字取证, 自动化脚本, 请求拦截