作者:深信服千里目实验室
APT,全称Advanced Persistent Threat,又名高级持续性威胁,往往有地区或政治背景,以情报搜集、破坏、或经济利益为目的,攻击环节可能使用各类社工、打点和内网渗透以及0day漏洞利用,作为一种非对称的攻击手段,往往能为攻击组织背后的政治或经济实体带来意想不到的地缘、情报、经济甚至军事利益或战术优势。
APT攻击的检测、溯源与反制,往往代表了一个国家、一个组织最高级的网络安全实战能力。而如何应对APT攻击,减少所在组织或国家的情报损失,并提升网络安全优势,就成为头部网络安全企业必须考虑的问题。
从西方APT组织的攻击历史及已经泄露的网络武器看,高隐藏、高持久化(Low&Slow)是其关键特征,而 Rootkit 则是达成此目的的重要技术之一。
Rootkit 系列文章将围绕 Rootkit 的技术栈和运用场景,从攻防两个视角对其危害性和检测思路展开分析。
《序章:悬顶的达摩克利斯之剑》将着重介绍 Rootkit 技术发展历程、Rootkit背后的影子以及 Rootkit 检测基本思想,开启 Rootkit 系列篇章。
Rootkit 不是最常见的恶意软件类型。
根据 Bitdefender White Paper Rootkit CREAT3432[1]报告所述,Rootkit 占检测到的恶意软件总数不到 1%。
由于 Rootkit 开发的复杂性,Rootkit 并不经常使用。尽管操作系统中引入了针对 Rootkit 保护机制,但 Rootkit 仍然可以长期隐藏设备上,进行恶意活动。
因此 Rootkit 被业内公认是最难检测的隐藏手段。
Rootkit 常常用于高质量的APT攻击。APT攻击具有较强的持续性特点,这需要建立在不被发现的基础之上,APT组织可以通过 Rootkit 在目标网络中潜伏几个月甚至几年之久,长期监控并窃取庞大的情报数据。
Rootkit 如同高悬在我们头顶的达摩克利斯之剑,平静祥和的背后,却是无尽的危险与杀机。
Rootkit 是一种特殊的程序(或一组程序),通常与木马、后门等其他恶意程序结合使用。
Rootkit 主要任务是隐藏并长期驻留在感染机器上的从事各类恶意活动,达到高隐藏高持久化目的。
Rootkit 一般具有多种功能,例如:
获得远程访问
Rootkit 提供对操作系统的远程访问权限并具备检测规避能力。
窃取数据
大多数情况下,攻击者使用 Rootkit 窃取数据。黑客以个人或公司为目标,获取敏感个人信息数据,以进行相关黑产活动。APT组织针对特定目标,以从事间谍活动或金融犯罪活动。
各类隐藏功能
Rootkit 实现隐藏文件、进程、端口、网络连接、驱动、内核模块等功能,将自身和其他类型的恶意软件隐藏在设备中,使删除它们变得更加困难。
创建“永久“的 root 权限后门
一些 Rootkit 可以在设备中创建一个 root 权限的后门,攻击者可以通过发送精心构造的数据包来触发后门连接并控制设备。
隐私监控
使用 Rootkit,攻击者可以拦截网络流量、监控键盘击键、控制用户操作。
劫持或关闭安全程序
某些 Rootkit 可以将自己隐藏在设备的安全检测程序中,或者将其完全关闭 ,从而难以检测和删除恶意软件。
根据 Rootkit 运行时权限级别划分分为:
(1)内核态Rootkit
内核态 Rootkit 具有与操作系统相同的权限,在内核级别运行,通常作为设备驱动程序或可加载模块加载到目标设备中。
内核态 Rootkit 很难开发,因为源代码中的任何错误都会影响目标系统的稳定性,这将是发现恶意程序的最直接表现。
(2)用户态 Rootkit
用户态 Rootkit 以与大多数应用程序具有相同的运行权限。它们可以拦截系统调用并替换 API 或劫持应用程序返回的值,以获得对设备的控制。
用户态 Rootkit 所需的前置知识和复杂度,与内核态Rootkit相比更简单,更容易开发,因此常用于大范围攻击。
90年代初期,Rootkit 用于攻击 Unix 系统以获得最大权限并以 root 用户身份执行命令,因此得名。直到 1999 年,Greg Hoglund在Phrack上首次发表了专门为Windows 操作系统设计的 NTRootkit[2]。后来,也出现了可用于攻击 macOS、Android 的 Rootkit。
Rootkit 技术由来已久,发展历久弥新,呈现从简单到复杂、高层向低层的演化趋势。
无论是哪种平台下的 Rootkit ,其技术演化的核心思想都是劫持。安全研究员围绕着劫持对象和劫持方式,产生出了非常多的底层Rootkit技术。
不同平台下的 Rootkit ,按照劫持对象和劫持技术复杂度的不同,可将 Rootkit 技术大致分为以下几种。
在Windows平台下:
劫持指令执行流程
直接修改内核对象
内存视图伪装
虚拟Rootkit
硬件Rootkit
在 Linux 平台下:
直接替换系统命令二进制程序
修改LD_PRELOAD劫持共享库
重定位目标文件注入
劫持VDSO
虚拟文件系统劫持
Kprobe
Netfillter Hook
篡改派遣例程劫持系统调用
设置函数蹦床劫持内核函数执行流程
创建新的命名空间
如图 1所示,近二十年 Rootkit 演化发展时间轴(Rootkit开源或热门实例)。
目前,技术是向更加底层的方向发展。然而,根据近十年已发现的 Rootkit 攻击事件,使用用户态Rootkit 却是一个趋势。例如,2010年以后,ZeroAccess Rootkit[3] 的开发人员已经转向使用用户态Rootkit。
近十年用户态 Rootkit 使用趋势上升可能由于以下几个原因:
内核态 Rootkit 需要针对不同系统内核版本进行开发和调试,因此大多数攻击者可能没有足够的技术能力,从而选择更简单的攻击方式。
开发和调试 Rootkit 需要花费大量时间成本,大多数攻击者希望低成本快速部署攻击。
内核态 Rootkit 存在不稳定性,源代码中的任何错误都可能导致操作系统BSOD或者Kernel Panic,这将直接暴露入侵行为。
幸存者偏差,用户态 Rootkit 更适合大范围的攻击,由于攻击范围扩大,其相较于内核态 Rootkit执行性时的痕迹更容易被检测,导致从结果上看,使用用户态 Rootkit 呈现上升趋势。
实际上,不仅是安全研究员研究对抗Rootkit,操作系统提供商也在积极与 Rootkit 作斗争。例如,Windows 10 操作系统提供了一系列驱动程序检测来对抗 Rootkit。
所谓道高一尺魔高一丈,攻击者也在开发绕过 Rootkit 防御机制的技术。例如,新的Moriya Rootkit[4]已经提供了绕过驱动程序检查和 PatchGuard 强制签名的功能。
甚至攻击者开始向硬件设备中注入 Rootkit 模块。
Amnpardaz的恶意软件分析团队首次在 HP iLO设备中发现 Rootkit —— iLOBleed [5]。
HP iLO 设备带有自己的处理器单元、存储空间、RAM 和网卡,并且独立于任何本地操作系统运行。
它们的主要作用是为系统管理员提供一种连接远程系统的方法,即使系统处于关闭状态下,也可以执行维护操作,例如更新固件、安装安全更新或重新安装系统等。
iLOBleed 向iLO设备固件中添加了一个名为Implant.ARM.iLOBleed.a的恶意模块,并进行隐藏恶意活动和持久化操作。
攻击者通过更改多个原始固件模块方式,实现劫持 iLO 和服务器之间的消息交换通道,绕过固件正常更新过程,劫持管理 Web 界面以显示无效的 iLO 软件版本信息,鸡翅服务器事件日志模块以防止记录恶意软件的操作,修改 iLO 操作系统的多线程内核等功能,达到高隐藏目的。
攻击者通过逆向分析提取 bootloader.bin、kernel.bin 和 ELF.bin 三个主要部分后,查找在引导加载程序和内核中执行签名验证操作的函数的地址,并将它们替换为 NOP 命令。最后,将修改后的文件组合在一起形成一个完整的 HP Image 文件,并作为新固件写入 SPI 闪存,达到高持久化目的。
iLOBleed 在伪装完成更新的同时,默默地阻止固件更新。它还提供对服务器硬件的访问,定期执行数据销毁操作。
Rootkit 技术在攻防两端的持续对抗下,不断发展。即使开发Rootkit需要对目标操作系统、逆向和编程有很高要求,其开发过程也是困难重重,但新的 Rootkit 还是会定期出现。
内核级别的Rootkit难以开发,那么谁还坚持使用它们?
答案很明确:即具有足够技术和财力支持的战略性组织,这些组织通常会不计成本地进行经济犯罪、破坏基础设施或窃取数据。
DirtyMoe 僵尸网络[6]、H2Miner 组织[7]利用Rootkit进行持久化并隐藏挖矿模块,掩盖挖矿行为和其他恶意活动,将 Rootkit 技术直接用于经济犯罪。
Rootkit 在攻击中的使用最著名的事件莫过于 2010 年震网攻击事件(Stuxnet),攻击者使用 Stuxnet 秘密收集数据并将恶意文件文件下载到受感染机器。攻击的主要目的是阻止伊朗核系统的发展并实际破坏其基础设施。
由于Rootkit 相关开发的各种困难性与其应用场景,它们最常被 APT 组织使用。这一级别的攻击者的主要动机是窃取数据和从事网络间谍活动。
例如,攻击者使用Flame Rootkit[8]跟踪受害者的网络流量、执行键盘记录功能并截取屏幕截图。
APT 组织Strider(也称为 ProjectSauron,或 G0041),其主要目标是俄罗斯、比利时、伊朗、瑞典和卢旺达等政府。在对政府机构的攻击中,使用了Remsec Rootkit[9],用于窃取加密密钥、配置文件,并收集加密密钥基础设施服务器的 IP 地址。
Kaspersky研究人员发现了TunnelSnake行动[10],这是一起高级持续性威胁(APT)攻击活动。TunnelSnake至少从 2018 年开始,利用Moriya Rootkit[11]有针对性的从事网络间谍活动。目标包括东南亚和非洲的两个外交组织。Moriya Rootkit 绕过Windows 系统驱动程序检查和 PatchGuard 模块的强制签名验证,为攻击者提供远程访问权限、拦截网络流量、下载和运行下攻击阶段的恶意代码、隐藏向受感染主机发出的恶意命令。这导致攻击者秘密控制了目标的网络长达数月之久。
根据Positive Technologies研究[12]发现,最常见的目标是政府和研究机构,77%的Rootkit被攻击者用于收集数据等间谍目的。
44%的攻击针对政府部门,38%的攻击针对科研单位。这些机构的数据对攻击者往往具有重要价值。除此之外,电信、制造业、金融机构也是名列前茅。而56%的攻击被犯罪分子用来针对个人,包括高级官员、外交官等。而在动机方面,31%是出于经济利益,只有15%的攻击,试图利用受害者的基础设施进行后续攻击。
Rootkit将继续被APT组织使用,这意味着它不再只是为了破坏数据和获取经济利益,而是为了隐藏复杂的有针对性的攻击,这些攻击可能会给组织带来不可估量的损失。
综上所述,Rootkit 是非常危险并且造成的损失难以评估,原因是:
Rootkit 为攻击者提供系统权限;
Rootkit 使检测恶意活动变得更加困难;
Rootkit 很难被发现和清除在某些情况下无法移除Rootkit,必须升级受感染的硬件;
Rootkit 窃取数据带来的经济损失难以评估;
目标设备存在内核态 Rootkit 通常表明,可能被一个准备充分的高水平组织发起的有针对性的攻击,这意味着虽然攻击未被检测到,但目标的基础设施可能处于攻击者的完全控制之下并潜伏多年。
罗卡交换定律:“凡两个物体接触,必会产生转移现象”。其定律原本用于犯罪现场调查中,行为人(犯罪嫌疑人)必然会带走一些东西,亦会留下一些东西。即现场必会留下微量迹证。
罗卡交换定律衍生到计算机取证调查领域来说就是——当攻击者试图进行检测规避时,也产生了其他可以被检测的新特征。
所以高隐藏高持久化 Rootkit 并不是不可检测的。
其 Rootkit 技术本身,就存在阿喀琉斯之踵——隐藏永远是相对用户而言。
攻击者使用Rootkit最关键的地方在于实现其所需功能的前提条件下,尽可能隐藏自身,实现所需功能意味着 Rootkit 必须要与系统进行交互,这说明Rootkit 运行过程中的数据,必然是符合操作系统需求的数据结构。
技术不分好坏,只是看被谁利用,在攻击方利用Rootkit谋坏事之际,防守方也可以利用 Rootkit 发现攻击方的蛛丝马迹。
发现 Rootkit 植入后的异常,往往实时地处置异常,不是第一考虑的要素,因为目标设备存在Rootkit ,通常表明可能正在被一个准备充分的高水平APT组织发起的有针对性的攻击。一旦成为 APT 的目标,“他们”会继续回来,达到最终目的。
此时,安全分析师介入调查并取证溯源是最为重要的,定位数据泄漏范围以及攻击者信息,保护重要业务数据不再泄漏。
悬顶的达摩克里斯之剑还未真正落下,在 Rootkit 领域的攻防对抗中,就是较量攻防双方谁更了解操作系统,谁掌握的更深,谁就更占据优势。相信未来 Rootkit 技术还会向更加深远的领域不断前进。
To be continued ……
[2] http://phrack.org/issues/55/5.html
[3] https://nakedsecurity.sophos.com/2012/06/06/zeroaccess-Rootkit-usermode/
[4] https://securelist.com/operation-tunnelsnake-and-moriya-Rootkit/101831/
[5] https://threats.amnpardaz.com/en/2021/12/28/implant-arm-ilobleed-a/
[6] https://securityintelligence.com/news/dirtymoe-botnet-returns-undetectable-threat-profile/
[7] https://attack.mitre.org/software/S0143/
[8] https://securelist.com/faq-the-projectsauron-apt/75533/
[10] https://securelist.com/operation-tunnelsnake-and-moriya-Rootkit/101831/
[11] https://www.ptsecurity.com/ww-en/analytics/rootkits-evolution-and-detection-methods/
[12] https://www.ptsecurity.com/ww-en/analytics/Rootkits-evolution-and-detection-methods/
[13] https://mp.weixin.qq.com/s/Rp-QIaLp_6gitUor2IIcAQ
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1867/