安全研究所 | 逃得过病毒查杀,逃不过云枢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

相关文章

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可