安全研究所 | 逃得过病毒查杀,逃不过云枢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内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

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攻击防御)