返回 Skill 列表
extension
分类: 效率与办公无需 API Key

EXE安全分析

Comprehensive EXE/DLL/PE security analysis including static/dynamic analysis, reverse engineering, and threat assessment. Invoke when analyzing unknown executable files for malware detection, zero-day threat discovery, or in-depth security evaluation.

person作者: LiangchenGehubModelScope

EXE Security Analysis - 可执行程序安全性分析

概述

本技能提供一套系统化、标准化的可执行程序(exe/DLL/PE)安全性分析专业流程,用于对未知文件进行全面、深入、可重复的安全评估。涵盖预处理、静态分析、动态行为监控、代码逆向工程、威胁模式识别五大阶段,并包含多维度量化评估模型与误判率控制机制。

目标量化指标:

  • 已知威胁识别率 ≥99.5%
  • 未知威胁识别率 ≥85%
  • 误判率 ≤0.5%
  • 平均分析时间 ≤4小时/样本

使用场景

Invoke this skill when:

  • 收到可疑exe文件需要进行安全评估
  • 需要对恶意软件样本进行深度逆向分析
  • 需要生成专业的exe文件安全分析报告
  • 需要进行零日漏洞/未知威胁发现
  • 需要对程序行为进行全面的动态+静态分析

分析流程

Phase 1: 预处理 (Preprocessing)

输入: 原始exe文件 输出: 样本标识信息

  1. 文件哈希计算:并行计算 MD5、SHA1、SHA256
  2. 文件类型验证:Magic Bytes检测 (MZ头 + PE\0\0) + MIME类型
  3. 基本属性提取:文件大小、时间戳、熵值、编译器信息
  4. 反病毒初筛:VirusTotal API预扫描(如联网可用)

质量门禁:

  • 文件熵值 > 7.0 → 触发加壳/加密预警
  • 时间戳为未来时间或1970年前 → 标记可疑

Phase 2: 静态分析 (Static Analysis)

输入: 预处理后的exe 输出: PE结构映射、签名验证、字符串/函数分析

  1. PE结构解析:DOS头 → NT头 → 节表 → 数据目录表
  2. 数字签名验证:WinVerifyTrust + PKCS#7解析 + 证书链(CRL/OCSP)
  3. 字符串分析:URL/IP/注册表路径/文件路径/Base64编码 自动分类
  4. 导入函数分析(IAT):按DLL分组统计,敏感API加权标记
  5. 导出函数分析(EAT):DLL类型exe的导出函数分析
  6. 静态特征提取:PE特征向量化(200+维度)

危险信号:

  • EntryPoint位于非.text节区
  • 节区权限异常(.text带写权限)
  • 导入表中只有kernel32.dll + 动态解析API

Phase 3: 动态行为监控 (Dynamic Analysis)

输入: exe文件 输出: 运行时行为日志

  1. 沙箱环境配置:Windows 10/11 x64 + 裸金属级/虚拟机级双环境
  2. 监控工具链:ProcMon + API Monitor + WinDbg + Frida
  3. 行为捕获维度:

| 维度 | 关键监控项 | |------|-----------| | 进程行为 | 进程创建/终止、远程线程、进程注入、权限提升 | | 文件行为 | 文件创建/删除/修改、目录遍历、属性变更 | | 注册表行为 | 自启动项、系统设置、SAM操作、安全策略降级 | | 网络行为 | TCP/UDP连接、DNS查询、HTTP/HTTPS、原始套接字 | | 内存行为 | 内存分配模式、保护修改、堆喷射、Shellcode执行 | | 服务/驱动行为 | 服务创建/启动/停止、驱动加载、计划任务、WMI |

  1. 关键行为指标(KBI):

| KBI | 指标 | 触发条件 | 权重 | |-----|------|----------|------| | KBI-001 | 敏感进程创建 | cmd/powershell/wscript创建 | 35 | | KBI-002 | 远程线程创建 | CreateRemoteThread调用 | 40 | | KBI-003 | 内存写入其他进程 | WriteProcessMemory非自身 | 40 | | KBI-004 | 自启动注册 | Run/RunOnce写入 | 25 | | KBI-005 | 外联通信 | 出站TCP连接 | 20 | | KBI-006 | 文件系统渗透 | >50个目录遍历 | 15 | | KBI-007 | 反调试行为 | 检测反调试API调用 | 30 | | KBI-008 | 代码自修改 | 写入.text + 可执行权限 | 35 | | KBI-009 | 数据窃取模式 | 浏览器数据访问 | 30 | | KBI-010 | 持久化机制 | 服务/WMI/计划任务注册 | 25 |

Phase 4: 代码逆向工程 (Reverse Engineering)

输入: 原始或脱壳后的exe 输出: 反编译伪代码 / 反汇编分析 / 恶意逻辑还原

反编译策略选择

| 编译类型 | 首选工具 | 备选工具 | |----------|----------|----------| | MSVC C/C++ | IDA Pro + Hex-Rays | Ghidra | | MinGW/GCC | Ghidra | Binary Ninja | | .NET | dnSpyEx + ILSpy | dotPeek | | Delphi | IDA Pro + IDR | Ghidra | | Go | IDA Pro + GoReSym | Ghidra | | Rust | IDA Pro + Rust插件 | Ghidra | | 加壳程序 | x64dbg脱壳 → 再反编译 | UnpacMe |

恶意逻辑识别

危险系统调用组合模式:

// 进程注入链
VirtualAllocEx → WriteProcessMemory → CreateRemoteThread

// 进程镂空(Process Hollowing)
CreateProcess(CREATE_SUSPENDED)
→ NtUnmapViewOfSection
→ VirtualAllocEx → WriteProcessMemory
→ SetThreadContext → ResumeThread

Phase 5: 威胁模式识别 (Threat Pattern Recognition)

输入: 静态分析+动态分析+逆向工程结果 输出: 风险等级判定 + 威胁点清单

四层识别引擎

| 引擎层 | 方法 | 用途 | |--------|------|------| | 层1:精确签名 | YARA规则、imphash/PE哈希 | 已知恶意软件家族 | | 层2:启发式规则 | API序列模式、代码结构异常 | 恶意行为模式 | | 层3:机器学习 | Random Forest/XGBoost/LSTM | 特征向量分类 | | 层4:异常检测 | Isolation Forest、基线偏离 | 零日威胁 |

风险等级划分

| 等级 | 评分 | 判定条件 | 处置 | |------|------|----------|------| | 严重(Critical) | 85-100 | 确认恶意行为 + 代码注入/C2/勒索 | 立即隔离+应急响应 | | 高(High) | 65-84 | 高度可疑 + 混淆/反调试 + 多引擎确认 | 隔离+禁止执行 | | 中(Medium) | 35-64 | 部分可疑 + 行为不明确 | 限制执行+监控 | | 低(Low) | 10-34 | 轻微异常 + 可能PUP/PUA | 记录+用户知情 | | 安全(Safe) | 0-9 | 通过检查 + 有效签名 + 行为正常 | 放行 |

多维度威胁评估模型

10维评估体系

| 维度 | 权重 | 评估内容 | |------|------|----------| | D1 文件结构完整性 | 0.10 | PE头校验、节区分析、异常检测、重叠区域 | | D2 数字签名与证书链 | 0.12 | 签名验证、CA可信度、吊销状态、时间戳 | | D3 字符串与资源分析 | 0.08 | 敏感字符串、加密/编码检测、异常资源 | | D4 导入/导出函数分析 | 0.15 | 敏感API统计、异常组合、导入表混淆 | | D5 代码混淆与加壳检测 | 0.10 | 加壳类型、混淆程度、反调试技术 | | D6 系统敏感API调用 | 0.15 | 进程/文件/网络/注册表/内存API监控 | | D7 网络行为分析 | 0.10 | C2连接、DNS隧道、通信协议、数据上传 | | D8 文件系统操作 | 0.05 | 敏感目录、文件操作、隐藏文件 | | D9 注册表行为分析 | 0.05 | 自启动、浏览器劫持、IFEO、防火墙 | | D10 进程创建与注入 | 0.10 | 进程镂空、DLL注入、PowerShell、子进程链 |

综合评分公式

Risk_Score = Σ(Di_Score × Di_Weight) × Behavior_Amplifier

行为放大系数(Behavior_Amplifier):
- 无恶行行为: 1.0
- 1项高危行为: 1.2
- 2-3项高危行为: 1.5
- ≥4项高危行为: 2.0

误判率控制机制

多引擎交叉验证

使用≥5种不同原理的检测引擎进行加权投票融合决策:

| 引擎 | 原理 | 独特性 | |------|------|--------| | 静态签名引擎 | YARA规则精确匹配 | 已知威胁高精度 | | 静态ML引擎 | LightGBM/XGBoost分类 | 泛化未知威胁 | | 动态行为引擎 | API序列规则匹配 | 行为模式检测 | | 动态ML引擎 | LSTM/Transformer分类 | 时序行为模式 | | 异常检测引擎 | Isolation Forest/LOF | 零日威胁发现 |

白名单体系

  • 可信厂商签名库(Microsoft/Adobe/Google等证书指纹)
  • 操作系统组件PE哈希金库(NSRL子集)
  • 常用合法程序特征库
  • 正常行为模式基线库

误判反馈闭环

分析样本 → 输出判定 → 用户反馈/事件复核
    ↑                          ↓
    |                   误判分析(FP/FN根因)
    |                          ↓
    |                   规则/模型优化
    └──────────────────────────┘

季度评估指标: 误报率(FP)≤0.5%,漏报率(FN)≤1.0%,准确率≥98.5%

分析报告结构

一份完整的分析报告包含以下10个章节:

  1. 执行摘要:总体风险评级 + 关键发现(≤3条) + 建议处置动作
  2. 样本基本信息:哈希/大小/类型/编译信息/多引擎预扫描
  3. 静态分析结果:PE结构/签名/字符串/函数/加壳检测
  4. 动态行为监控结果:进程/文件/注册表/网络/内存行为
  5. 逆向工程分析:关键函数分析/恶意逻辑还原/C2协议分析
  6. 多维度风险评估:各维度评分明细/综合评分/多引擎验证
  7. 威胁点详情:位置/风险描述/技术原理/证据
  8. 攻击向量评估:攻击路径/复杂度/影响范围
  9. 处置建议:建议动作/IOC清单/YARA规则/MITRE ATT&CK映射
  10. 误判风险评估:不确定性分析/需验证项/分析局限性

工具链

| 类别 | 工具 | 用途 | |------|------|------| | 反编译器 | IDA Pro ≥8.3 / Ghidra ≥11.0 / Binary Ninja ≥4.0 | 静态分析+反编译 | | 调试器 | x64dbg / WinDbg | 动态调试 | | .NET分析 | dnSpyEx | .NET反编译 | | PE分析 | PE-bear / CFF Explorer | PE结构可视化 | | 加壳检测 | Detect It Easy (DIE) ≥3.0 | 编译器+壳识别 | | 脱壳 | Scylla / UnpacMe | 导入表重建+自动化脱壳 | | 网络监控 | Wireshark | 流量分析 | | 行为监控 | ProcMon / API Monitor / Frida | 系统+API监控 | | 符号执行 | angr ≥9.2 | 路径探索+约束求解 | | 集成环境 | FLARE VM | 统一分析环境 |

示例

当用户说:"帮我分析这个可疑的exe文件" 或 "对这个未知程序进行安全评估" 或 "我需要一份exe的深度分析报告" 时,应执行本技能中的完整分析流程。