尽管网络安全领域的业务投资不断增长,且突破性创新层出不穷,但一个有趣的现象却仍在发生:网络犯罪活动非但没有减缓,反而加速演进,它们不断创新并屡屡得手。
其中,基于运行时的内存攻击尤为注目。这类攻击与传统的依赖磁盘存储恶意可执行文件的攻击方式不同,它们是在应用程序运行时,直接在内存空间中展开行动。因此,这类攻击几乎不留下任何可供防御者追踪的蛛丝马迹,堪称网络犯罪的“完美作案手法”。
进程注入,便是基于运行时的内存攻击的一种典型代表。它在合法正在运行的进程内存空间内植入并执行恶意代码,利用PE注入、线程执行劫持、Atom Bombing等多种手段实现代码注入。而内存代码注入作为其子集,更是将恶意代码直接写入内存,使得恶意软件能够广泛分发,并反复注入到合法进程中,甚至包括那些对Windows正常运作至关重要的进程。
这些内存攻击技术的兴起,标志着威胁态势的根本性转变,给那些仅依靠传统基于检测的防御手段的组织带来了前所未有的挑战。由于攻击者利用这些技术屡获成功,它们非但不会销声匿迹,反而可能愈发猖獗。
据Google调查的数据显示,2024年在野外检测到的零日漏洞中,有三分之二都利用了内存破坏漏洞,这一数据凸显了攻击者对这类技术的持续青睐和利用。
下面我们将更深入地探讨,为何这些内存攻击会对当今的安全团队造成如此严峻的威胁。
在不久的过去,大多数网络攻击都依赖于存储在磁盘上的可执行文件,这些文件如同罪犯在现场留下的明确证据。例如,攻击者会将恶意软件安装到受害者的设备上。然而,端点保护平台(EPP)、端点检测和响应(EDR/XDR)以及防病毒(AV)解决方案则像警惕的守卫,不断扫描已知的攻击模式、可疑行为和可识别的签名,以识别并消除这些威胁。在传统恶意软件横行的时代,这种防御策略还算奏效。
但是当面对利用运行时的内存攻击时,传统的防御体系却显得力不从心。内存攻击不会在系统上留下任何永久性的文件痕迹。这就好比让夏洛克·福尔摩斯用他的放大镜在犯罪现场去寻找根本不存在的指纹和其他线索。
这种新时代的恶意软件变种,如Emotet、Jupyter和Cobalt Strike,它们直接在内存中执行,如同潜伏在暗处的刺客。这些恶意软件能够操控合法进程、提升权限或在受害者环境中横向移动,同时巧妙地逃避基于签名的检测工具。对于安全团队而言,这无疑是一场前所未有的挑战,需要他们不断更新防御策略,以应对这种狡猾和隐蔽的攻击手段。
内存攻击之所以难以检测和防范,其核心原因之一在于数据的临时性和不断变化的特点。更为棘手的是,这些数据仅在系统运行时存在,这使得在任何特定时刻捕获并保护具有代表性的内存快照成为了一项艰巨的任务。更为糟糕的是,一旦系统断电或重启,所有关键证据都将瞬间消失,无迹可寻。
那么,面对如此困境,防御者又有哪些选择呢?企业亟需一种解决方案,该方案需要具备以下能力:
1.能够持续扫描庞大的内存区域,以搜寻可疑活动;
2.在复杂且动态的运行时环境中,能够准确识别出恶意模式;
3.不能对应用程序的性能产生负面影响。
考虑到我们所讨论的规模,这一任务的艰巨性不言而喻。在典型的运行时环境中,单个应用程序可能会占用4GB甚至更多的虚拟内存。定期扫描如此庞大的内存空间,以搜寻潜在的恶意活动,并实时执行这一任务,其难度之大可想而知。
事实上,即便采用当前最先进的技术,也只能扫描到大约3-4%的内存,这为攻击者提供了广阔的潜伏空间,让他们得以在阴影中肆意妄为。
更为雪上加霜的是,企业日常使用的应用程序数量庞大,数以百计。而如今的威胁日益复杂,它们利用多态性技术,在运行时动态改变其结构,同时保持功能不变,以此逃避检测。这种混淆手段使得恶意代码每次运行扫描时都能发生变化,从而轻松绕过基于签名的检测机制。
此外,攻击者还能篡改或绕过内存挂钩,这是防御者用来监控运行时活动的重要手段。一旦内存挂钩被损坏或避开,团队检查内存进程的能力将大打折扣,防御体系也将面临严峻考验。
内存攻击并非新生事物,其雏形可追溯至2010年代中期,Angler Exploit Kit便是其中的佼佼者。自那时起,内存技术如雨后春笋般迅猛发展。时至今日,内存攻击已不再局限于单个端点,而是将矛头指向了关键基础设施,包括服务器和虚拟化环境,其目标直指敏感数据的泄露、勒索软件的部署以及运营的中断。
鉴于内存攻击的极高隐蔽性和强大适应性,仅仅依靠检测和响应机制已远远不够。那些旨在识别入侵后活动的传统工具,往往无法在威胁造成重大损害之前将其捕获。因此,组织必须将主动防御措施置于首要位置,以有效防止运行时内存泄露。
其中,创建一种动态防御环境不失为一种有效方法。通过在运行时随机化内存结构、API以及系统资源,可以大大增加攻击者定位和利用漏洞的难度。这种策略超越了传统方法的局限,它迫使攻击者不得不面对一个不可预测且不断变化的环境,从而大大降低了其攻击成功的可能性。
然而,随机化本身只是防御策略的一部分。组织还应构建多层次、先发制人的网络防御体系,将高级端点保护、行为分析、威胁情报以及自动移动目标防御技术等多种手段相结合,以在威胁造成损害之前主动将其阻止。
此外,定期修补和强化系统,特别是那些运行内存密集型应用程序的系统,也是保持良好安全卫生状况的关键。同时,全面的员工培训以及强大的访问控制机制,可以进一步降低漏洞被利用的风险,为组织筑起一道坚不可摧的安全防线。
内存运行时攻击已成为现代网络环境中最为复杂且极具破坏力的威胁之一。它们巧妙地利用应用程序内存的动态特性,轻松绕过传统防御措施,并深挖运行时环境中的潜在漏洞进行攻击。
面对这一严峻挑战,企业必须迅速采取行动,加强内存防御体系,以确保敏感数据的安全、维护运营的连续性,并全力保障组织免受声誉和财务上的双重损害。
在这个威胁环境日新月异的时代,对于任何致力于在对抗中抢占先机的组织而言,采用先发制人的网络防御策略,构建具备高度弹性的防御体系,都显得至关重要。只有如此,企业才能在激烈的网络安全较量中立于不败之地。
文章来源:https://www.infosecurity-magazine.com/opinions/threat-in-memory-cyber-attacks/,本文由网安加社区编译。