MemScan-EDR/README.md

8.4 KiB
Raw Permalink Blame History

English

MemScan-EDR v2.0

AI 驱动的内存威胁检测引擎 — 三级联动检测管线

License: MIT .NET 8 Platform: Windows

MemScan-EDR v2.0 全面重构了病毒识别逻辑:40 维内存特征向量 + 无监督基线检测 + 监督分类器 + MITRE ATT&CK 规则引擎 三级联动,大幅降低误报并提升扫描速度。基于 C# WPF 构建,打包为单个 .exe,无需目标机器安装 .NET 运行时。


v2.0 核心改进

维度 v1.0 v2.0
扫描方式 逐区域逐签名匹配保护位 预过滤 → 特征提取 → 三级 AI 判定
特征维度 简单 (签名/保护/类型) 40 维 (元数据 + 权限 + 代码 + 熵 + 网络 + DLL)
无监督检测 4 类进程基线库 (Z-score + 重构误差)
误报处理 系统提示词约束 LLM JIT/安全软件/脚本引擎 白名单修正
速度 O(区域×签名) 80% 进程预过滤跳过,仅 20% 进 AI 管线

功能特性

核心能力

能力 描述
40 维特征提取 内存页权限分布、PE 完整性、Shannon 熵、可疑 API/字符串、网络行为、DLL 加载链
三级联动检测 第一层: 无监督基线异常 → 第二层: 监督分类器 → 第三层: MITRE ATT&CK 规则复核
Process Hollowing 检测 内存 PE 头与磁盘文件比对,识别进程掏空攻击
Shannon 熵分析 采样计算内存区域熵值,识别加密/压缩载荷 (高熵 > 7.0)
15 条 MITRE 规则 T1055 进程注入、T1055.012 进程掏空、T1003 凭据转储、T1496 挖矿、T1486 勒索等
15 条内置签名 NOP sled、CobaltStrike、Meterpreter、Mimikatz、ReflectiveLoader 等
智能误报修正 JIT 运行时 (.NET/Java/Node.js)、安全软件、脚本引擎 (PowerShell)、开发工具
扫描模式 快速 (元数据) / 平衡 (采样) / 深度 (全量) 三档可选
LLM 辅助研判 可选开启大模型对可疑进程二次确认
中英文界面 一键切换全部 UI 文本

三级联动检测流程

[快速预过滤] → 跳过 >80% 已签名安全进程
    ↓
[第一层: 基线异常检测] → 40 维特征 Z-score + 重构误差
    ↓  完全匹配基线 → 直接安全
[第二层: 监督分类器] → 加权线性模型 + 决策树规则
    ↓  良性 + 低基线异常 → 安全
[第三层: MITRE 规则复核] → 15 条内存攻击规则 + 误报修正
    ↓  AI + 基线 + 规则 三级交叉验证 → 最终判定

内置签名 (15 条)

签名 类别 严重性
SHELLCODE_NOP_SLED Shellcode
SHELLCODE_GETEIP Shellcode
SHELLCODE_ROR13 Shellcode
SHELLCODE_URLDOWNLOAD Shellcode
C2_COBALTSTRIKE C2
C2_METERPRETER C2
INJECTION_REFLECTIVE 注入
INJECTION_CRT 注入
INJECTION_VAE 注入
PROC_HOLLOW 注入
MALWARE_MIMIKATZ 恶意软件
CRYPTO_MINER 挖矿
RANSOM_NOTE 恶意软件
PS_DOWNLOAD 恶意软件
KEYLOGGER_API 恶意软件

架构

Models:
  MemoryFeatures    ── 40 维 AI 特征向量
  BaselineProfile   ── 正常程序基线 (4 类进程)
  ProcessInfo       ── 进程元数据 + 网络 + 内存区域

Services:
  FeatureExtractor  ── 从进程内存提取全维度特征
  EntropyAnalyzer   ── Shannon 熵计算 (采样优化)
  PEHeaderAnalyzer  ── PE 完整性验证 + Hollowing 检测
  BaselineEngine    ── 无监督基线异常检测 (Z-score + 重构误差)
  ClassificationEngine ── 监督分类器 (加权 + 决策树)
  RuleEngine        ── 15 条 MITRE ATT&CK 内存攻击规则
  DetectionPipeline ── 三级联动编排引擎
  AIAnalyzer        ── 集成管线 + LLM 辅助研判
  MemoryScanner     ── 实际字节匹配 + 按需扫描
  ProcessCollector  ── 进程枚举 + 模块列表采集

数据流:

[开始扫描] → ProcessCollector.CollectAll()
    → 快速预过滤 (不读内存, 跳过 >80% 进程)
    → FeatureExtractor.Extract() → MemoryFeatures (40 维向量)
    → 第一层: BaselineEngine.Analyze() → 基线异常分数
    → 第二层: ClassificationEngine.Classify() → 恶意/可疑/良性
    → 第三层: RuleEngine.Validate() → MITRE 规则 + 误报修正
    → ScanResult → IProgress<> 实时更新界面

快速开始

环境要求

  • Windows 10 / 11 (x64)
  • .NET 8 SDK
  • 管理员权限(用于内存扫描)

编译构建

git clone https://github.com/Huang-158/MemScan-EDR.git
cd MemScan-EDR\src-csharp

# Debug 编译
dotnet build MemScanEDR.sln

# 发布单文件 EXE
dotnet publish MemScanEDR\MemScanEDR.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish

# 运行
.\publish\MemScan-EDR.exe

或:

.\scripts\build_csharp.bat

CE-MCP 配置(可选)

  1. ce-mcp-server 放在项目同级目录
  2. 或在设置界面 → CE-MCP 服务器路径 配置
  3. 设为 disabled 可跳过 CE-MCP

AI 配置

  1. 选择提供商:启发式 / OpenAI 兼容 / Claude / 本地
  2. 填写 API 地址
  3. 填写 API Key本地存储
  4. 填写模型名称
  5. 点击保存

AI 分析机制

  1. 预过滤:无任何可疑特征的进程直接标记为安全,不调用 API
  2. 结构化 Prompt:每个进程生成含元数据、网络连接、内存签名、可疑区域的格式化报告
  3. 默认安全策略AI 被指示 >95% 的进程是良性的;需要多个并发指标才提升风险等级
  4. 启发式降级API 不可用时采用保守阈值≥0.50 可疑≥0.75 高危)

项目结构

MemScan-EDR-2.0/
├── src-csharp/
│   └── MemScanEDR/
│       ├── MemScanEDR.csproj
│       ├── App.xaml / App.xaml.cs
│       ├── MainWindow.xaml / MainWindow.xaml.cs
│       ├── Models/
│       │   ├── MemoryFeatures.cs      ★ 40 维 AI 特征向量
│       │   ├── BaselineProfile.cs     ★ 正常程序基线库
│       │   ├── ProcessInfo.cs
│       │   ├── AIConfig.cs
│       │   └── AppSettings.cs
│       └── Services/
│           ├── FeatureExtractor.cs    ★ 核心特征提取器
│           ├── EntropyAnalyzer.cs     ★ Shannon 熵分析
│           ├── PEHeaderAnalyzer.cs    ★ PE 完整性验证
│           ├── BaselineEngine.cs      ★ 无监督基线检测
│           ├── ClassificationEngine.cs★ 监督分类器
│           ├── RuleEngine.cs          ★ MITRE ATT&CK 规则
│           ├── DetectionPipeline.cs   ★ 三级联动管线
│           ├── AIAnalyzer.cs          (集成管线 + LLM)
│           ├── MemoryScanner.cs       (优化版字节匹配)
│           └── ProcessCollector.cs
├── rules/
│   ├── shellcode.yar
│   ├── injection.yar
│   └── malware_strings.yar
├── scripts/
│   └── build_csharp.bat
├── LICENSE
├── README.md
└── README_EN.md

快速开始

环境要求

  • Windows 10 / 11 (x64)
  • .NET 8 SDK
  • 管理员权限(用于内存扫描)

编译构建

git clone https://github.com/Huang-158/MemScan-EDR.git
cd MemScan-EDR

# 发布单文件 EXE
dotnet publish src-csharp/MemScanEDR/MemScanEDR.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish

# 运行
.\publish\MemScan-EDR.exe

声明

本工具仅用于合法的安全研究、教育及授权的安全评估。未经授权对非自有或未被许可的系统使用属违法行为。使用者须遵守当地法律法规并自行承担所有风险。


许可证

MIT License — 详见 LICENSE