dahan6/siming

GitHub: dahan6/siming

Siming 是一个基于微型语言模型先验与二阶时序分析的主机入侵检测引擎,通过学习系统行为的「语法」结构来检测自适应恶意软件。

Stars: 0 | Forks: 0

# Siming — 行为语法检测引擎 **行为语法:通过微型语言模型先验和二阶时序分析检测自适应恶意软件** [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.9%2B-blue.svg)]() [![Model](https://img.shields.io/badge/model-0.88M%20params%20%2F%203.6%20MB-green.svg)]() [![Paper](https://img.shields.io/badge/arXiv-cs.CR-b31b1b.svg)]()

Zhiyan Security Lab

## 什么是 Siming? Siming 是一个基于主机的入侵检测系统,它将运行时行为视为一种**结构化语言**,并使用一个具有 0.88M 参数的紧凑因果 Transformer(TinyGPT)来学习其“语法”。 每个系统事件都被离散化为一个 **8 token 表示**: ``` ET:EXEC PROC:bash ARGV:N1P PC:NONE PARENT:sshd UID:1000 DST:NONE DT3 ``` 该模型以纯自监督的方式学习正常行为的条件分布。异常分数源自每个 slot 的负对数似然(NLL)统计信息,并且每个警报都会指出违反语法的确切 slot —— 从而恢复了单体序列模型所牺牲的可审计性。

Siming architecture

## 架构:五层融合 | 层级 | 功能 | 优先级 | |-------|----------|----------| | **P0** | 自适应高风险模式(形态转换、伪装 C2、SUID 提权) | 关键 | | **P1** | ATT&CK 模式匹配 + 原型网络(96.2% 留一法) | 高 | | **P2** | 上下文异常(PARENT/DST/DT 的 NLL > τ) | 中 | | **P3** | token 稀有度 + 未知 token 检测 | 中 | | **P4** | **二阶时序分析**(CV < 1.5 = 机器节奏) | **最强信号** | | **P5** | 自适应低风险模式(睡眠步进、侦察一致性) | 低 | ## 关键结果 | 指标 | 数值 | |--------|-------| | 针对自适应 agent 的检测率 | **93%** | | 引入 FPR (p99.5) | **3.84%** | | 跨主机 FPR(7 个 VM 平均) | **3.4%** | | 时序 CV 分离度 | **0.31 vs 9.79** (30倍) | | 覆盖的 ATT&CK 技术 | 14(正扩展至 50+) | | 模型大小 | 0.88M 参数 (3.6 MB) | | 推理 | CPU 实时(每个事件 <1 ms) | ## 快速开始 ``` # 1. 安装依赖 pip install torch numpy scikit-learn pyyaml # 2. 检查环境和文件 python3 detector/deploy_siming.py install # 3. 初始化:从 tracee JSONL 日志中提取 token 并校准 slot τ # (20 分钟的良性遥测数据即可) python3 detector/deploy_siming.py init /path/to/tracee.jsonl # (替代方案:在您自己的 baseline 上校准内置的 universal model) python3 detector/onboard_v2.py models/vm-universal data/onboard_benign.jsonl # 4. 针对实时的 tracee 数据流启动检测 daemon python3 detector/deploy_siming.py start --src /path/to/tracee.jsonl # 5. 检查状态和告警 python3 detector/deploy_siming.py status ``` `models/vm-universal/` 中预训练的 7-VM 通用模型会被自动发现 —— 无需配置路径。 ## 项目结构 ``` siming/ ├── detector/ # Core detection code │ ├── train_prior.py # TinyGPT training (0.88M params) │ ├── deploy_scorer.py # Five-layer fusion scoring daemon │ ├── temporal_analyzer.py # Second-order temporal CV analysis │ ├── adaptive_detector.py # Adaptive behavior patterns │ ├── pattern_db.py # Pattern matching engine │ ├── proto_head.py # Prototype learning (contrastive) │ ├── auto_pattern.py # Self-learning pattern extraction │ ├── parse_events.py # Token discretization (8-token) │ ├── parse_raw_tracee.py # Tracee JSONL → tokens │ ├── onboard_v2.py # Auto-calibration (p95→p99 fallback) │ ├── deploy_siming.py # One-click deployment CLI │ ├── collect_atomic.py # Atomic Red Team collection │ ├── calibrate_vm_tau.py # Cross-host τ calibration │ ├── patterns.jsonl # Pattern library (99 entries) │ ├── prototypes.jsonl # Prototype codebook (14 techniques × 3 prototypes, ~150 KB) │ └── ... # Tests, eval scripts, utilities ├── models/ │ └── vm-universal/ # Pre-trained 7-VM universal model │ ├── prior.pt # 3.6 MB TinyGPT weights │ ├── slot_tau_local.json # Calibrated thresholds (p99.5) │ └── slot_tau_vm.json # VM baseline thresholds ├── data/ │ ├── experiment_results.json # Evaluation results │ └── experiment_data_summary.md # Full experiment data summary └── docs/ ├── paper_behavioral_grammar_detection.md # Full paper └── fig*.png/pdf # Paper figures (8 figures) ``` ## 训练您自己的模型 ``` # 收集您主机的良性遥测数据 # 格式:{"tokens": ["ET:EXEC","PROC:bash",...8 tokens...]} 每行 # 训练 TinyGPT(在 H800 GPU 上约 3 分钟,在 CPU 上约 11 分钟) python3 detector/train_prior.py data/your_benign.jsonl models/your-model # 校准阈值 python3 detector/onboard_v2.py models/your-model data/your_benign.jsonl # 评估 python3 detector/test_e2e_v3.py ``` ## 自学习流水线 ``` # 从标记序列中自动发现攻击模式 python3 detector/auto_pattern.py models/vm-universal --from-patterns # 输出:data/auto_patterns_candidates.jsonl(等待人工审核) # 审核 → 批准 → 追加到 detector/patterns.jsonl → 重新训练 prototypes ``` ## Atomic Red Team 评测集 ``` # 安装 Atomic Red Team 框架 sudo python3 detector/collect_atomic.py # Full collection (~600 techniques) sudo python3 detector/collect_atomic.py --technique T1053.003 # Single technique python3 detector/collect_atomic.py --list-only # List available tests ``` ## 复现论文实验 所有实验数据均记录在 [`data/experiment_data_summary.md`](data/experiment_data_summary.md) 中: ``` # Ablation + τ sweep + synthetic + cross-host python3 detector/supplementary_experiments.py # End-to-end pipeline 测试(11 个 ATT&CK 攻击/清理/验证三元组) python3 detector/test_e2e_v3.py ``` ## 引用 ``` @misc{siming2026, title={Behavioral Grammar: Detecting Adaptive Malware via Tiny Language Model Priors and Second-Order Temporal Analysis}, author={Zhiyan Security Lab}, year={2026}, note={arXiv preprint, cs.CR} } ``` ## 许可证 Apache License 2.0 — 详见 [LICENSE](LICENSE)。 ## 威胁模型 本系统旨在检测**自适应对抗性 agent** —— 即从防御反馈中学习生存策略的恶意软件。威胁模型仅在抽象层面进行描述。此版本不包含具体的攻击性实现细节。 ## 致谢 - MITRE ATT&CK 框架(用于技术分类体系) - Aqua Security Tracee(用于基于 eBPF 的遥测) - CNCF Falco(用于运行时安全规则) - Atomic Red Team(用于标准化攻击模拟)
标签:CSV导出, IP 地址批量处理, 主机入侵检测, 凭据扫描, 小语言模型, 异常检测, 系统行为分析, 逆向工具