安全研究所 | 逃得过病毒查杀,逃不过云枢EDR ——“内存马缉拿记”

本文主要是介绍安全研究所 | 逃得过病毒查杀,逃不过云枢EDR ——“内存马缉拿记”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近期,领先的SASE安全厂商亿格云进行了重要的EDR功能更新,其中包括高级威胁行为检测、内存扫描以及终端事件审计和溯源等功能。在最新的一次客户使用过程中发现了多起安全事件,于是我们随即配合客户进行了详尽的调查。

接下来,我们将回顾一个木马安全事件的全过程...


近日,某客户因攻防演习迫切需要保障公司的终端安全,于是紧急为员工办公终端部署了「亿格云枢EDR模块」。云枢产生了1条高危告警引起客户的高度关注,我们立即配合并协助客户进行深入的事件调查与解决!

首先,我们根据客户提供的控制台告警信息进行初步分析:

图片

管理控制台显示表明: “疑似有恶意进程正在运行!”

亿格云枢EDR具备对终端文件和系统内存实时扫描的能力,告警正由此触发。于是,我们立即对该告警的详细信息进行了检查:

图片

显然,客户似乎在网络上下载了一个安装包,而这个安装包的命名相当具有误导性,显示为"微云安装包",但却缺乏与腾讯相关的签名信息。身为多年的安全从业人员,我们敏锐地察觉到这一情况的不寻常。

紧接着,客户采用终端取证的方式,获取了该程序文件,协助我们进一步针对文件进行细致分析。   

图片

初步分析文件可以发现,钓鱼者“巧妙”地伪装木马的图标和详细信息几乎与正规安装包一模一样,这会导致员工在遇到时降低了警惕性,最终导致电脑遭受破坏。更甚的是,钓鱼者还“巧妙”地规避了杀毒引擎的检测,员工使用时未收到杀毒引擎的警示,使他们误以为这是一个安全文件,便毫不犹豫地打开了它。

于是,亿格云安全团队对样本进一步进行逆向调试分析。在用windbg调试工具分析这个样本的时候,利用~* k命令查看各个线程的堆栈:

图片

可以看到调用链不正常,windbg也给出了一条警告:

“WARNING: Frame IP not in any known module. Following frames may be wrong.”

意思就是返回地址不在任何一个模块内,无法解析!

此时就已经基本可以确定攻击者从网络上拉取了恶意代码,并且在内存中运行了。

图片

上图就是攻击者在内存中落地的部分代码(x64dbg调试器视图)。

之后更细致分析了这块内存,发现是一个DLL(Windows上的一种可执行文件格式):

图片

图片

通过反编译工具深入分析后:

图片

图片

从以上可以看出这个DLL的行为有记录使用者的按键信息,遍历进程寻找杀毒软件:

图片

还有破坏MBR引导的代码!

操作注册表做持久化

图片

综上所述,上述链路都是一个木马文件的典型行为!

图片

(样本执行原理大致如上)

从该事件来看,该样本采用了一些常见的免杀技巧,旨在绕过杀毒软件的检测。由于杀毒软件通常只对落地的文件进行分析,而使用类似无文件落地的方法,要么只会落地一个加载器(看似友好的文件),杀毒软件往往很难应对这种对抗场景!

显然,「亿格云枢EDR模块」利用内存扫描能力,成功抵御了这种方式的威胁。

从该事件拓展到该类攻击技巧在攻防中的运用来看,这类"shellcode不落地"的手法由于隐藏性好,免杀率高,样本编写容易快捷,灵活性高等特点在近几年的攻防演习中红队运用是非常广泛的。针对这类攻击手法的特征:"自身下载器样本的恶意特征不明显,结合 shellcode进行加密/混淆",传统的AV以文件特征进行查杀的方式很难在误漏报取舍中做到一个比较好的效果, 而已经非常普及的反沙箱技巧的广泛运用,也使得沙箱查杀的效果也不尽如人意。从攻击的最终产生的恶意行为来看,以"在内存中执行shellcode"这一行为为检测依据,是最理想的检测手法。当然内存扫描这件事情,落地也具有比较大的平衡性能和查杀能力间的阻力。接下来有机会会分享一些我们在这方面做的一些策略和优化。

亿格云枢基于SASE安全架构,拥有卓越零信任访问和数据防泄漏能力的同时,还具备强大的终端安全功能,真正实现了一体化办公安全平台。我们也将持续致力于让办公更高效,让安全更简单!

这篇关于安全研究所 | 逃得过病毒查杀,逃不过云枢EDR ——“内存马缉拿记”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/407905

相关文章

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2