reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 沙箱工具特有坑与边界
|
||||
|
||||
## 网络隔离坑组
|
||||
|
||||
- **NAT 不等于断网**:VM 默认 NAT 允许出站外联——断网必须显式 Host-only/Internal(或 `--net=none`),并验证 `ping 8.8.8.8` 不通(SKILL.md 坑 2)
|
||||
- **fake DNS 只劫持解析**:样本用 IP 直连或硬编码 IP 时 fake DNS 无效——配合防火墙/INetSim 绑住目标端口,或观察连接落点
|
||||
- **INetSim 只模拟常用服务**:样本连的端口不在 INetSim 服务表里会连接失败(TCP RST)——先看样本要连什么端口(静态 [[re-netcap]]/动态抓包),按需补模拟服务;DNS 指向错误时样本静默等待超时,先验证 `curl` 落点再放样本
|
||||
- **systemd-resolved 与 `--dns` 冲突**:firejail man 页注明 `--dns` 在 systemd-resolved 环境不受支持——该环境改用 `--net=none` 或 VM 内独立 DNS
|
||||
|
||||
## 快照/回滚坑组
|
||||
|
||||
- **快照只建不恢复 = 环境污染**:样本持久化残留(进程/文件/注册表)污染下次分析——恢复命令提前写好、分析完立即执行、恢复后验证无残留(SKILL.md 坑 1)
|
||||
- **快照建在样本运行后**:忘了先建基线,样本已经改过系统才想起——基线快照必须早于任何样本运行;中途才建的快照含污染状态,别当干净基线
|
||||
- **VBoxManage 与 VirtualBox 版本行为**:`snapshot take/restore` 语法长期稳定,但新版本对 headless/guestcontrol 有改动——自动化脚本先 `VBoxManage --version` 确认版本;VMware 侧 `vmrun` 命令兼容性以官方文档为准
|
||||
|
||||
## 容器坑组
|
||||
|
||||
- **容器共享内核 ≠ 完全隔离**:Docker 与宿主机共享内核,内核漏洞利用/全局 sysctl 影响宿主——高威胁样本用 VM 快照,容器只用于低风险快速测试(SKILL.md 坑 3)
|
||||
- **`--network none` 后 docker cp 仍可用**:断网只影响容器网络栈,`docker cp`/`docker exec` 走守护进程通道不受影响——隔离与文件交互不冲突
|
||||
- **镜像带样本残留**:容器删了但 commit 出的镜像还留着样本痕迹——分析完 `docker rmi` 清理镜像;复用基线镜像前重新拉取干净层
|
||||
|
||||
## firejail 坑组
|
||||
|
||||
- **`--clean` 不存在**:0.9.80 实测报 `invalid --clean command line option`,官方 man 页(0.9.72 起)无此选项——清理用 `firejail --list` + `firejail --shutdown=<name|pid>`(SKILL.md 坑「清理选项被讹传」)
|
||||
- **用户态隔离不是安全边界**:firejail 是 namespace/seccomp 组合——不防内核漏洞利用与提权(`--net=none` 下用户态逃逸面仍在),高威胁样本用 VM;`--net=none` 在部分平台可致应用崩溃(man 页注明),备选 `--protocol=unix`
|
||||
- **`--private` 只隔离 home/root 路径**:`--private-etc` 之外的 /etc 全局可见(读)——敏感配置先 `--private-etc=hosts,resolv.conf` 等白名单
|
||||
- **firejail 检测面**:样本可查沙箱特征(firejail 环境变量/挂载特征)——与 VM 逃逸检测同理,识别后按 [[re-evasion]] 应对
|
||||
|
||||
## 环境指纹坑组(隔离 ≠ 伪装)
|
||||
|
||||
- **隔离与伪装是两个问题**:隔离防样本外联/污染宿主;伪装防样本因环境指纹不触发——时间(RDTSC/GetTickCount)、硬件(核数/内存)、交互(鼠标/窗口)检测都要单独应对(SKILL.md 坑 6-8)
|
||||
- **命名与资源阈值**:`sample.exe`/`malware` 目录名、CPU/内存/磁盘阈值、交互缺失都会触发 T1497.001 类检测——命名规范化、资源充足、交互按人类分布模拟
|
||||
- **统计级交互校验**:新样本对鼠标轨迹做统计判别(采样频率/欧氏距离/前台窗口数)——固定像素移动会被识破,按真实行为分布模拟并拉长观测窗(SKILL.md 坑 8)
|
||||
|
||||
## 版本差异
|
||||
|
||||
- **firejail**:0.9.72(Debian bookworm)与 0.9.80(Arch 实测)选项集稳定,`--clean` 均不存在;`--net=none` 的崩溃警告自老版本就有——发行版打包版本差异大(0.9.6x-0.9.8x),脚本化前 `firejail --version` 确认
|
||||
- **VirtualBox**:snapshot 命令语法跨 6.x/7.x 稳定;Guest Additions 版本需与主版本匹配(不匹配剪贴板/共享目录失效,且是 VM 逃逸检测特征之一)
|
||||
- **docker**:`--network none`、`docker cp` 行为长期稳定;commit 出的镜像不可复现依赖(分层含中间状态)——基线用 Dockerfile 重建而不是 commit 产物
|
||||
- **INetSim**:Debian 包 `inetsim`(bookworm 1.3.2);`--version`/`--session` 选项稳定;日志路径随发行版打包略有差异(以 `/etc/inetsim/inetsim.conf` 为准)
|
||||
|
||||
## 使用注意
|
||||
|
||||
- 动态分析一律先过本技能([[re-analyze/platform-tips]] 最高原则);样本/产物 sha256 双端存证([[re-triage]])
|
||||
- 分析结论与决策记录(隔离级别、网络方案、恢复验证)写 [[re-analyze/analysis-contract]]
|
||||
- 版本相关行为(firejail 选项、VM 工具、INetSim 服务表)以目标版本实际表现为准
|
||||
Reference in New Issue
Block a user