作者前言:在网络安全领域,“免杀”(Anti-AV/Anti-EDR)一直是攻防双方博弈的核心。作为防御者,不了解攻击者的“画笔”,就无法画出正确的“防线”。本文将从历史演变、技术原理及防御视角,带你重新审视免杀技术。
一、什么是“免杀”?
免杀(Evasion),全称“免杀技术”,狭义上指绕过杀毒软件(AV)的查杀;广义上则涵盖了绕过端点检测与响应系统(EDR)、防火墙、甚至人工分析的所有技术手段。
对于红队(Red Team),它是投递载荷(Payload)的必要前置;
对于蓝队(Blue Team),它是构建检测规则的核心依据。
二、历史演变:从“特征码”到“行为对抗”
为了更好地理解现状,我们需要回顾攻防对抗的三个时代:
|
时代 |
核心对抗点 |
攻击侧技术 |
防御侧技术 |
|---|---|---|---|
|
1.0 特征时代 |
文件静态特征 |
修改木马字节、加壳、花指令 |
病毒库签名、MD5黑名单 |
|
2.0 启发时代 |
文件结构与行为 |
内存加载、加密Shellcode、多态变形 |
启发式扫描、虚拟执行(沙箱) |
|
3.0 对抗时代 |
内存与内核 |
无文件攻击、Direct Syscalls、驱动级对抗 |
EDR行为监控、内核回调、内存扫描 |
现状:单纯的文件查杀早已失效,现代对抗的主战场已经转移到了内存(Memory)和行为(Behavior)。
三、杀软是如何工作的?AV vs EDR
作为网安工程师,你必须清楚你的对手(杀软)是如何看到你的。
1. 传统 AV(静态为主)
-
机制:基于签名(Signature)。就像警察拿着通缉犯的画像(Hash值)抓人。
-
弱点:只要改变文件的一点点特征(如加壳、异或加密),就能轻易绕过。
2. 现代 EDR(动态为主)
-
机制:基于 telemetry(遥测数据)。它不关心文件长什么样,而是关心你在做什么。
-
关键技术:
-
Hooking(钩子):EDR会注入DLL到你的进程中,监控
CreateRemoteThread,VirtualAllocEx等敏感 API 调用。 -
ETW(Event Tracing for Windows):内核层面的事件追踪,记录进程创建、网络连接等行为。
-
防御者笔记:如果你在分析一个样本,发现它频繁调用
NtProtectVirtualMemory将内存属性改为RWX(可读可写可执行),这就是一个高危信号。
四、MITRE ATT&CK 中的免杀技术映射
在实际工作中,我们不使用“免杀”这个词,而是使用 MITRE ATT&CK 框架中的标准术语。
以下是常见的免杀技术对应的 ATT&CK ID:
|
技术名称 |
ATT&CK ID |
描述 |
|---|---|---|
|
Obfuscated Files or Information |
T1027 |
对文件和信息进行混淆(加密、编码)。 |
|
Masquerading |
T1036 |
伪装成系统文件或合法进程(如 svchost.exe)。 |
|
Process Injection |
T1055 |
将代码注入到其他进程中以躲避监控。 |
|
Reflective Code Injection |
T1620 |
将代码反射加载到内存中,不在磁盘落档。 |
|
Indicator Removal |
T1070 |
清除日志、篡改时间戳。 |
五、实验环境搭建(防御者沙盘)
在开始研究之前,请务必搭建隔离的实验室环境。切勿在生产环境或互联网上进行测试。
1. 硬件与虚拟化
-
宿主机:建议使用 Linux(Kali/Ubuntu)或 Windows 10/11。
-
虚拟机:VMware Workstation 或 VirtualBox。
-
网络:Host-Only 模式(严禁桥接或 NAT,防止样本外溢)。
2. 靶机配置
-
Windows 10/11:关闭 Windows Defender 实时保护(用于测试其他EDR)。
-
服务器:Windows Server 2019(模拟域环境)。
3. 必备工具清单(防御视角)
|
类别 |
工具名称 |
用途 |
|---|---|---|
|
静态分析 |
IDA Pro / Ghidra |
逆向工程,查看汇编逻辑。 |
|
动态调试 |
x64dbg / WinDbg |
动态跟踪程序执行流程。 |
|
行为监控 |
Process Monitor (ProcMon) |
监控文件、注册表、网络、进程活动。 |
|
API监控 |
API Monitor |
查看程序调用的具体 Windows API。 |
|
沙箱 |
Any.Run / Hybrid Analysis |
在线分析样本行为(上传前脱敏)。 |
|
日志 |
Sysmon + Elastic Stack |
收集和分析 Windows 事件日志。 |
六、总结与下期预告
本期我们梳理了免杀的基本概念和防御者的观察视角。记住:所有的免杀技术,本质上都是在试图打破“文件-内存-行为”这条链路上的某个监控环节。
-
如果防御者只看文件,我就搞内存;
-
如果防御者看内存,我就搞行为伪装;
-
如果防御者看行为,我就搞环境逃逸。
下期预告:
我们将深入探讨 《第二期:静态特征的识别与对抗》。我将教你如何编写 YARA 规则 来捕捉那些试图通过简单加密和混淆来隐藏自己的恶意代码,并解析字符串加密的原理。
💡 思考题(供读者留言讨论)
在你的企业环境中,如果一台主机的 PowerShell 突然执行了一段 Base64 编码的命令,你会如何区分这是管理员的运维操作,还是攻击者的免杀行为
1662

被折叠的 条评论
为什么被折叠?



