0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为安全大咖谈 | 华为终端检测与响应EDR 第06期:斩杀幽灵-高级威胁之三十六计

华为数据通信 来源:未知 2023-11-18 15:50 次阅读



本期讲解嘉宾



华为数据通信产品线安全产品领域自2023年9月份以来,围绕华为终端防护与响应EDR新品推出的EDR“大安全,新思路”系列文章已经接近尾声,感谢各位华为安全爱好者的持续关注,希望这些文章能帮助您更好地了解新品利器。本期是2023年EDR期刊的收官之作,我们将带您深入了解高级威胁的常用伎俩,以及华为终端检测与响应EDR的应对方案。




高级威胁近年趋势



近年来,无文件攻击和基于内存的攻击变得越来越火热。根据研究机构的统计,2022年的无文件攻击相较于2021年,其增长速度超过了900%。需要注意的是,无文件攻击并不代表真的没有文件,而是一种攻击策略,旨在避免将真正的恶意代码放在磁盘上以避免被安全检测发现。所说的无文件,也未必是攻击全程无文件,而是其中的一部分采用了基于内存的攻击。


无文件攻击给传统安全软件的检测带来了极大的挑战,特别是对静态检测引擎来讲,在整个攻击过程中,能用于扫描的文件恶意代码成分比较少,真正的恶意部分都直接在内存中执行,所以对抗类似的现代威胁需要新的思路和产品。


华为终端检测与响应EDR团队在实际运营过程中发现,远控类无文件木马已经成为现网中最大的安全威胁。这种木马数量庞大,花样繁多,部分高级样本甚至借鉴了”三十六计”的军事思想,想方设法地隐蔽自己,对抗文件和内存检测。下面选取有代表性的样本进行分析,以飨读者。



三十六计之“李代桃僵”



白加黑远控木马是一种由黑产组织利用技术漏洞绕过终端安全软件的攻击手段,他们替换正常软件安装包并释放白加黑远控木马,从而控制用户的电脑。这种攻击手段犹如“三十六计之李代桃僵”的实现,已经由来已久,但由于其绕过终端安全软件的概率很高,所以仍然被广泛使用。最近,黑产组织“银狐”和“金眼狗”在国内用户中变得越来越活跃,他们的攻击行为对用户的网络安全构成了巨大威胁。


白加黑实际上是民间对一种DLL劫持技术(DLL Hijacking)的通俗称呼。所谓的“白加黑”,其实来说是“可信EXE”加“恶意DLL”。可信EXE一般是带有数字签名的正常EXE文件,那么“恶意DLL”当然是指与EXE在同一个目录下的恶意DLL文件。病毒借助那些带数字签名的知名程序去加载自己带有恶意代码的DLL文件,便绕过杀毒软件的主动防御,从而达到正常加载运行的目的。如果第三方软件在编写时未对调用的DLL文件进行校验,那就很容易被木马利用产生DLL劫持。


那么,为什么会发生DLL劫持呢?当一个Windows可执行文件运行时,PE Loader负责将DLL加载到进程的地址空间中。加载器会分析可执行文件的输入表,并找出其需要的DLL文件,并随后将它们一一加载。由于输入表中只包含DLL的名称而没有其完整路径,因此加载程序首先会在磁盘上搜索DLL文件。它会从当前程序所在的目录开始搜索,如果未找到,则会在Windows系统目录中查找,最后会在环境变量中列出的各个目录下查找。恶意程序利用这个特点,先伪造一个与正常DLL文件同名的DLL,并提供相同的导出函数。这样,当程序试图加载DLL文件时,它将优先调用当前目录下伪造的DLL,并执行黑客提供的导出函数。这个过程用个形象的词来描述就是,DLL文件被劫持了。


下文以华为终端检测与响应EDR团队在现网中发现的白加黑远控木马为例,分析木马的主要流程。该木马冒充正常的Telegram软件安装包,并通过搜索引擎打广告的方式提升网站排名,引诱用户到恶意网站下载假安装包。一旦安装包执行,就会将白加黑木马释放到User目录下,如图1-1所示。


图1-1白加黑木马释放的位置


在这个目录中,存在一个被签名的正常程序see.exe和一个名为libcurl.dll的文件,其中libcurl.dll包含少量恶意代码。该代码的作用是将加密文件readme.dat解密后反射加载到内存中执行。这意味着杀毒软件的静态检测很难发挥作用,而行为防御也只能检测到白名单程序的行为,因此这给检测带来了巨大的挑战。


如图1-2所示,see.exe被执行后,恶意libcurl.dll会被加载,该恶意DLL内导出函数会执行shellcode解密readme.dat文件。


图1-2白加黑木马执行流程


readme.dat实际是一个DLL文件,使用简单的异或加密。shellcode解密后会直接跳到DLL的反射加载Loader函数。该函数负责修复DLL的导入表和重定位表,然后再跳到入口点执行,如图1-3所示。


图1-3shellcode流程


反射加载器会从进程PEB结构中找到LDR_DATA成员,该成员包含三个双向链表,用于记录进程加载的模块信息。然后,加载器会从中获取kernel32.dll的基址,并遍历其导出函数,找到GetProcAddress和VirtualAlloc的地址。接着,加载器会分配内存,并将DLL文件主体代码复制到该内存中。最后,加载器会修复DLL的导入和重定位表,如图1-4所示。


图1-4反射加载器执行流程


修复完成后,反射加载器的使命已经结束,随后会将控制权交给已经在内存中加载的DLL。到这一步,用户的电脑已经被远程控制,其数据和财产都即将面临重大损失。



三十六计之“瞒天过海”



如今大多数终端防护软件都实现了用户态API HOOK。Hook英文翻译过来就是钩子的意思,在Windows操作系统中,它维护着自己的一套事件流程机制,该机制由大量的系统API函数支撑。应用程序实现某个具体功能,也是调用系统API函数根据事件流程一步步地向下执行。而钩子的作用就是在事件传送到终点前截获API函数并监控事件的传输,就像一个钩子钩上事件一样,并且能够在钩上事件时处理一些自己特定的逻辑。


HOOK的这个本领使终端安全软件能够将自身的代码融入到被钩住(Hook)的程序的进程中,成为目标进程的一个部分,并重定向Windows API(例如NtWriteVirtualMemory,这是恶意程序惯用函数,可将指定代码到其他的进程。)到自身的代码。这样,安全软件就能够检查函数参数及其上下文,判断是否需要阻止或允许该函数继续执行自身流程。


API HOOK技术上可以细分为不同类型,包括内联API挂钩、导入地址表(IAT)挂钩、导出地址表(EAT)挂钩、SSDT挂钩等。在微软引入内核补丁保护(KPP,又名Patch Guard)之前,防病毒产品一般使用SSDT挂钩。出于操作系统稳定性的考虑,微软通过Patch Guard阻止了对SSDT表的修改,导致安全产品纷纷转战用户态HOOK。


图1-5展示了NtWriteVirtualMemory是如何被安全软件HOOK后重定向到其自身逻辑的。安全软件修改了函数的前几个字节,利用JMP指令跳到自身处理流程,处理完成后再跳回原始函数执行。为了避开安全软件的HOOK,恶意程序采用了“三十六计之瞒天过海”策略,并利用各种高级技术手段,纷纷涌现出了可以绕过终端安全软件HOOK的恶意程序。其中,直接使用系统调用来绕过HOOK的恶意软件尤为突出。


图1-5NtWriteVirtualMemory
被安全软件HOOK后的结果


在现代Windows操作系统中,代码的运行级别被分为两个特权级:RING 0和RING 3。通常我们把RING 3称为用户层,RING 0称为内核层。应用程序运行于用户层,并通过操作系统提供的应用程序接口(API)获得各种运行的支持。用户层与内核层的数据是隔离的,用户层无法直接访问内核层的数据。


如图1-6所示,在Windows系统上,实际上使用了其中的两个环。应用程序运行在用户模式,相当于Ring 3;关键系统组件(如内核和设备驱动程序)运行在内核模式,对应Ring 0,操作系统通过系统调用实现用户层和内核层代码的切换,具体来讲是由ntdll库文件封装了系统调用序号,并负责切换到内核模式。


图1-6特权级别


从图1-7中,我们可以看到ntdll中的大多数系统API的实现非常简单,只需要进行参数赋值后,就直接将系统调用号保存到寄存器中,然后调用syscall指令切换到内核模式。然而,这种简单的实现方式也为恶意程序提供了机会,它们可以轻松地按照这个模板获取函数的系统调用号,并直接调用syscall指令来完成指定功能,从而绕过了安全软件对函数头字节的修改和重定向。


图1-7系统调用序号


图1-8展示了华为终端检测与响应EDR团队在现网发现的一个CobaltStrike远控木马运用直接系统调用绕过安全软件的检测。


图1-8CobaltStrike
远控木马运用直接系统调用


木马启动后,首先读取PEB->LDR_DATA结构,找到ntdll.dll的基地址。接着,在ntdll的导出表内循环比较预置的API HASH,该hash使用djb2算法生成。木马查找的函数主要包含一些内存操作API,如NtAllocateVirtualMemory、 NtProtectVirtualMemory等。当找到目标函数后,在函数体内比较机器码(0x8B、0xD1、0xB8),这三个码恰好对应了上述函数体内的mov r10、rcx指令。匹配成功后,下一条指令中正好保存了函数的系统调用号,从而可以被木马获取。此技术也被业内称为Hell's Gate (地狱之门)。


但是现实环境往往比较复杂,木马仍有可能遇到一些挑战,例如安全软件已经HOOK了需要调用的函数,导致函数的前5字节已经被破坏,这使得木马无法通过搜索机器码的方式获取系统调用号。在这种情况下,该样本还应用了其他技术。


如图1-9所示,Ntdll导出的函数中,有个规律是对应的函数系统调用号是根据函数地址从上到下逐渐递增分配的。


图1-9递增的系统调用号


木马在判断函数被HOOK后,会搜寻周围没有被HOOK的函数,并根据上下文关系计算出所需函数的系统调用号,如图1-10所示。


图1-10木马搜寻系统调用号的过程


此技术在业内也被称为Halo's Gate (光环之门)。



三十六计之“借刀杀人”



随着终端安全软件对内存空间检查的深入,一些比较流行的内存执行手段已经被防守方注意到并加以拦截,比如在内存中突兀的RWX内存块。在此背景下,高级攻击者开始部署越来越复杂的方法来将恶意代码隐藏在正在运行的系统上。其中一种技术就是华为终端检测与响应EDR团队在现网远控样本上观察到的Module Stomping“模块踩踏”技术,它会用恶意代码覆盖已加载的动态库模块,从而掩饰自己在内存中的痕迹。


传统的进程注入或者内存加载技术一般会涉及到多个敏感API调用,比如CreateRemoteThread 、WriteProcessMemory 、VirtualAlloc 、VirtualProtect等。这会带来两个问题,首先是这些敏感API容易被安全软件拦截,另外一个是内存中往往会有新增的带有可疑权限的模块。而模块踩踏技术不会主动进行内存分配,也没有异常的反射加载事件,因此想依靠一些简单的IOC来检测会非常困难。


为了实现模块踩踏,木马会先加载一些它不需要的合法模块。接着,它会在模块代码段中寻找空闲区域,并将该区域的权限更改为可写。最后,木马会将恶意代码复制到该区域,并将权限修改为可读可执行。这样,恶意代码就能隐藏在合法模块内存中,而且不会增加新的内存区域,权限也是合法的。这种策略类似于《三十六计》中的“借刀杀人”,让安全软件难以检测和防御。安全软件的内存扫描需要对照合法模块的硬盘文件与内存范围来检测,这对于实时扫描器来说是一项巨大的性能挑战。


如图1-11所示,恶意模块会加载user32.dll,并搜寻代码段上的空闲区域。


图1-11恶意模块搜索空闲区域


搜索到空闲区域后,修改内存权限,将恶意代码写入并跳转执行,如图1-12所示。


图1-12恶意模块搜索到空闲区域后的行为


至此,恶意代码已经被执行,但是从内存中看来不会有什么异常区块,给安全软件带来相当大的检测难度。



结束语



华为终端检测与响应EDR在与后门的对抗中,逐步形成了独特的思路和打法。通过轻量级的终端Agent截获终端的API、进程、网络、文件等系统行为,并结合独创的内存威胁溯源图,对全攻击链路进行行为分析,实现对后门木马的精准检测与关联,最终将整个攻击链路展示在图上,方便用户进行溯源、事件响应等。


针对上述流行的高级威胁攻击方式,华为终端检测与响应EDR选择迎难而上,制定了多层防护体系。首先,记录恶意程序的关键行为序列,结合独创的AI序列识别算法,精准识别白加黑威胁。其次,在进入内存的关键路径上,华为终端检测与响应EDR能智能将无文件高级威胁扼杀于攻击起始点。最后,即使有万分之一的概率木马绕过了前述检测,华为终端检测与响应EDR的深度系统监测模块还可以对进程做全面分析,高效识别模块挖空、反射注入、远程线程、系统关键白进程利用等高级内存攻击场景。此外,华为终端检测与响应EDR不仅能检测高级威胁,还能从恶意样本中提取攻击组织关键基础设施信息,方便用户取证和定位,从而在复杂的网络世界里保护企业的数字资产安全。


往期精彩推荐




华为安全大咖谈 | 华为终端检测与响应EDR 第05期:挖矿木马防御新视角:从攻击链检测到深度处置


华为安全大咖谈 | 华为终端检测与响应EDR 第04期:如何对高级勒索攻击说“不”


华为安全大咖谈 | 华为终端检测与响应EDR 第03期:全栈数据采集如何使威胁“被看到”


华为安全大咖谈 | 华为终端检测与响应EDR 第02期:什么利器让病毒无所遁形


华为安全大咖谈 | 华为终端检测与响应EDR 第01期:小身材如何撬动安全大乾坤

点击“阅读原文”,了解更多华为数据通信资讯!


原文标题:华为安全大咖谈 | 华为终端检测与响应EDR 第06期:斩杀幽灵-高级威胁之三十六计

文章出处:【微信公众号:华为数据通信】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    215

    文章

    33619

    浏览量

    247156

原文标题:华为安全大咖谈 | 华为终端检测与响应EDR 第06期:斩杀幽灵-高级威胁之三十六计

文章出处:【微信号:Huawei_Fixed,微信公众号:华为数据通信】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    edr系统软件有什么用 EDR系统与传统杀毒软件有什么区别

    能够实时监测和检测终端设备上的恶意活动,包括恶意软件的启动、数据泄露和异常行为等。通过全面分析终端设备的活动记录、网络流量和系统日志等数据,EDR系统软件可以实时发现和应对
    的头像 发表于 01-19 10:15 1776次阅读

    华为鸿蒙凉了?谣言止于智者

    7月,华为开发者大会上正式宣布。华为发布了备受期待的鸿蒙4.0版本,并引入了鸿蒙OSNext的开发者预览版。 10月30日,华为常务董事、终端BG余承东发文称,HarmonyOS 4的
    发表于 01-11 22:29

    华为鸿蒙系统

    华为鸿蒙系统(HUAWEI Harmony OS),是华为公司在2019年8月9日于东莞举行的华为开发者大会(HDC.2019)上正式发布的操作系统。 华为鸿蒙系统是一款全新的面向全场
    发表于 11-02 19:39

    华为安全大咖谈 | 华为终端检测响应EDR 第05期:挖矿木马防御新视角:从攻击链检测到深度处置

    。 在本文中,我们将介绍几种不同类型的检测引擎如何通过EDR应对当下更加复杂的挖矿木马攻击,包括基于加密通信的挖矿行为,采用进程注入等更加隐蔽和高级的无文件攻击技术来规避检测等。 挖矿
    的头像 发表于 10-24 16:05 670次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>安全</b>大咖谈 | <b class='flag-5'>华为</b><b class='flag-5'>终端</b><b class='flag-5'>检测</b>与<b class='flag-5'>响应</b><b class='flag-5'>EDR</b> 第05期:挖矿木马防御新视角:从攻击链<b class='flag-5'>检测</b>到深度处置

    华为安全大咖谈 | 华为终端检测响应EDR 第04期:如何对高级勒索攻击说“不”

    即服务(RaaS)、匿名化加密货币支付、大模型加持下的高级勒索样本生成和敲诈勒索带来的暴利的助力下, 勒索软件攻击已经成为最成功的网络犯罪商业模式之一。 2022年至今,根据华为安全智能中心监测,全网每周收集捕获的勒索软件攻击样
    的头像 发表于 09-19 18:45 479次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>安全</b>大咖谈 | <b class='flag-5'>华为</b><b class='flag-5'>终端</b><b class='flag-5'>检测</b>与<b class='flag-5'>响应</b><b class='flag-5'>EDR</b> 第04期:如何对<b class='flag-5'>高级</b>勒索攻击说“不”

    聚焦网安周 | 华为终端检测响应系统(EDR)新品发布,勒索全进程回滚等黑科技引爆全场

    [中国,福州,2023年9月12日],在福州举办的2023年国家网络安全宣传周网络安全博览会期间,华为重磅发布了全新安全产品——终端
    的头像 发表于 09-14 18:15 411次阅读
    聚焦网安周 | <b class='flag-5'>华为</b><b class='flag-5'>终端</b><b class='flag-5'>检测</b>与<b class='flag-5'>响应</b>系统(<b class='flag-5'>EDR</b>)新品发布,勒索全进程回滚等黑科技引爆全场

    华为安全大咖谈 | 华为终端检测响应EDR 第03期:全栈数据采集如何使威胁“被看到”

    本期讲解嘉宾 EDR终端检测响应是一种新型的智能化、迅捷的主动防御概念,以给企业带来攻击全路径的可视、防御、检测、溯源和
    的头像 发表于 09-07 18:20 480次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>安全</b>大咖谈 | <b class='flag-5'>华为</b><b class='flag-5'>终端</b><b class='flag-5'>检测</b>与<b class='flag-5'>响应</b><b class='flag-5'>EDR</b> 第03期:全栈数据采集如何使<b class='flag-5'>威胁</b>“被看到”

    华为安全大咖谈 | 华为终端检测响应EDR 第01期:小身材如何撬动安全大乾坤

    宣传周期间发布 华为终端防护与响应EDR新品 。为了让广大华为安全爱好者更好地了解新品武器,
    的头像 发表于 08-31 12:50 446次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>安全</b>大咖谈 | <b class='flag-5'>华为</b><b class='flag-5'>终端</b><b class='flag-5'>检测</b>与<b class='flag-5'>响应</b><b class='flag-5'>EDR</b> 第01期:小身材如何撬动<b class='flag-5'>安全</b>大乾坤

    华为安全大咖谈 | 论道攻防第4期:内网穿透之“借刀伤人”

    本期讲解嘉宾 卷首语 “恩相明日奏仲淹为环庆路经略招讨使,以平元昊,这所谓借刀杀人。” ——明·汪廷讷《三祝记·造陷》 本文以三十六计胜战计“借刀杀人”为切入点,深入剖析攻击者在攻入内网后,以受感染
    的头像 发表于 08-22 19:30 482次阅读

    华为安全大咖谈 | 论道攻防第3期:远程控制之暗度陈仓

    本期讲解嘉宾 卷首语 示之以动,利其静而有主,益动而巽。 ——《三十六计·敌战计·暗度陈仓》 本文以楚汉名帅韩信“暗度陈仓”之计为切入点,深入剖析攻防演练中攻击者“以奇隐正,以迂蔽直”的远控攻击
    的头像 发表于 08-11 18:15 551次阅读

    华为安全大咖谈 | 论道攻防第2期:边界突破之瞒天过海

    ·薛仁贵征辽事略》 本文以三十六计胜战计中的第一计“瞒天过海”为切入点,深入剖析了攻击者在现网环境和攻防演练中,如何运用出奇制胜的伪装攻击手段突破Web边界。 攻击之势 “兵无常势,水无常形,能因敌变化而取胜者,谓之神”
    的头像 发表于 08-08 18:25 633次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>安全</b>大咖谈 | 论道攻防第2期:边界突破之瞒天过海

    华为安全大咖谈 | 论道攻防第1期:攻防演练之三十六计——开篇

    本期讲解嘉宾 凡战者,以正合,以奇胜 国家级网络攻防演练已经进行了七年,攻防双方的对抗日益激烈,技战术水平也得到了极大的提升。 除了“正”面常规技战术对抗之外,攻击队还采用了各种新颖的变形绕过攻击手段,包括利用0day漏洞和免杀工具等,不断尝试突破防御,出“奇”不穷。 当前,攻防演练正朝着系统化、规范化的方向发展。从早期针对门户和信息系统的对抗,到现在针对网络基础设施和供应链环境的对抗,范围不断扩大,演练规则
    的头像 发表于 08-04 20:20 561次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>安全</b>大咖谈 | 论道攻防第1期:攻防演练<b class='flag-5'>之三十六计</b>——开篇

    华为 mate 50Pro 不开机

    华为
    YS YYDS
    发布于 :2023年06月23日 00:38:34

    虹科分享丨终端安全最佳实践:使用AMTD阻止NGAV、EPP和EDR漏掉的未知和不可检测的攻击

    自动移动目标防御——AMTD终端安全最佳实践在Gartner发布的《新兴技术:自动化移动目标防御的安全浮现周期》报告中,摩菲斯被公认为是一个样本供应商。该报告涵盖了突破性的安全技术,据
    的头像 发表于 06-21 10:09 918次阅读
    虹科分享丨<b class='flag-5'>终端</b><b class='flag-5'>安全</b>最佳实践:使用AMTD阻止NGAV、EPP和<b class='flag-5'>EDR</b>漏掉的未知和不可<b class='flag-5'>检测</b>的攻击

    PN7150作为卡模拟功能时,华为手机无法读取卡模拟怎么解决?

    参考AN11690-Android Porting Guidelines。 附件“HuaWeiReader_pn1750cardemu0531.log”抓取PN7150终端卡模拟。华为手机读取卡模拟失败
    发表于 06-05 08:00