浅谈无文件攻击

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 无文件攻击是高级持续性威胁的一种,不依赖硬盘上的文件,而是利用内存、注册表或硬件固件实施。这些攻击难以被传统防病毒软件检测到,包括通过文件漏洞、网络通信、硬件后门(如BIOS、CPU、USB)等方式进行。检测方法涉及监控内存、系统行为、日志和配置。防护措施包括限制系统工具执行、打补丁、使用安全软件及应用白名单策略。了解其手法对于提升网络安全至关重要。

浅谈无文件攻击
简介
与大多数恶意软件不同,“无文件”攻击并不会在目标计算机的硬盘中留下蛛丝马迹,而是直接将恶意代码写入内存或注册表中。由于没有病毒文件,传统基于文件扫描的防病毒软件很难侦测到它们的存在。然而,“无文件”攻击的定义已经逐渐扩大化,那些需要依靠文件系统的某些功能来实现激活或驻留的恶意软件也已经包括在了“无文件”攻击的范畴中。

无文件攻击属于高级持续性威胁(APT)的一种。APT在无文件攻击之外,还包括0day漏洞利用、缓冲区溢出攻击、傀儡进程等基于内存的攻击,同时还包括内存webshell等攻击,这些攻击可以轻松绕过现有的安全防护体系,将恶意代码悄无声息地植入内存中。

根据受感染计算机上的指纹数量来收集三种主要类型的无文件威胁。
需要操作文件进行活动
比较容易能理解的意思是恶意代码变成了数据,利用文件相关的程序漏洞或功能特性将恶意数据转换为恶意代码执行。

通过文件间接活动
即没有磁盘落地文件,但通过文件间接活动。恶意代码一般通过白文件间接加载到内存中执行。这类攻击恶意代码的载体大多数都是脚本,通过程序命令执行,也有通过磁盘引导记录等特定机制的执行。

没有任何的文件活动
简单说就是攻击活动都不需要磁盘上的文件即可运行,一般这种攻击的实施都脱离了操作系统,是由更上层的硬件固件和软件层发起的,可能隐藏在例如设备固件(BIOS)、USB外围设备(Bad USB攻击)或网卡固件中。这种类型的感染特别难以检测,因为大多数防病毒产品都没有检查固件的能力。

按感染主机对无文件威胁进行分类
在介绍了广泛的类别后,我们现在可以深入了解详细信息,并提供感染宿主的细目。 此综合分类涵盖通常称为无文件恶意软件的全景。 它推动我们努力研究和开发新的保护功能,以消除攻击的类,并确保恶意软件不会占上风。
利用
基于文件的(类型III:可执行文件、Flash、Java、文档):初始文件可以利用操作系统、浏览器、Java引擎、Flash引擎等执行shellcode并在内存中传递有效负载。虽然有效负载是无文件的,但初始条目向量是一个文件。

基于网络的(类型I):利用目标计算机中的漏洞的网络通信可以在应用程序或内核上下文中实现代码执行。例如WannaCry,它利用SMB协议中以前修复的漏洞在内核内存中传递后门。

硬件
基于设备的(类型I:网卡、硬盘):硬盘和网卡等设备需要芯片集和专用软件才能正常运行。在设备的芯片集中驻留在和运行的软件称为固件。虽然任务很复杂,但固件可能受到恶意软件的感染,就像公式间谍组织被抓到一样。

基于CPU的(类型I):新式CPU很复杂,可能包括用于管理目的运行固件的子系统。此类固件可能容易被劫持,并允许执行从CPU内部运行的恶意代码。2017年12月,两位研究人员报告了一个漏洞,该漏洞允许攻击者执行管理引擎内的代码(ME)存在于Intel的任何新式CPU中。同时,观察到攻击者组PLATINUM能够使用Intel的Active Management Technology(AMT)绕过安装的操作系统执行不可见的网络通信。ME和AMT本质上是位于CPU内部且在极低级别运行的自主微计算机。由于这些技术的目的是提供远程可管理性,因此它们可以直接访问硬件,独立于操作系统,即使计算机已关闭,也可以运行。

除了在固件级别易受攻击外,CPU还可以使用直接插入硬件线路的后门进行制造。这种攻击在过去已经研究并证明是可能的。据报道,x86处理器的某些模型包含一个类似于RISC的辅助嵌入式CPU核心,可以有效地提供后门,通过该后门,常规应用程序可以获得特权执行。

基于USB的(类型I):可以使用恶意固件重新编程各种USB设备,这些固件能够以邪恶的方式与操作系统交互。例如,BadUSB技术允许重新编程的USB摇杆充当键盘,通过击键将命令发送到计算机,或作为网络卡,可以随时重定向流量。

基于BIOS的(类型I):BIOS是在芯片集中运行的固件。它在计算机上启用电源、初始化硬件,然后将控制权传输到启动扇区时执行。BIOS是一个重要组件,在低级别运行并在启动扇区之前执行。可以使用恶意代码重新编程BIOS固件,就像过去使用Mebromi rootkit一样。

基于虚拟机监控程序的(类型I):新式CPU提供硬件虚拟机监控程序支持,使操作系统能够创建可靠的虚拟机。虚拟机在封闭的模拟环境中运行,理论上不知道仿真。接管计算机的恶意软件可能会实现小型虚拟机监控程序,以隐藏在正在运行的操作系统领域之外。此类恶意软件过去已被理论化,最终观察到真正的虚拟机监控程序根基,尽管迄今鲜为人知。

执行和注入

基于文件的(类型III:可执行文件、DLL、LNK文件、计划任务):这是标准执行向量。可以将简单的可执行文件作为第一阶段恶意软件启动,以在内存中运行额外的有效负载,或注入其他合法运行的进程。

基于宏的(类型III:Office文档):VBA语言是一种灵活而强大的工具,旨在自动编辑任务并向文档添加动态功能。因此,攻击者可能会滥用它来执行恶意操作,例如解码、运行或注入可执行有效负载,甚至实现整个勒索软件,如qkG。宏在Office进程的上下文中执行(,例如,Winword.exe)并使用脚本语言实现。防病毒无法检查任何二进制可执行文件。虽然Office应用需要用户的明确同意才能从文档中执行宏,但攻击者使用社交工程技术来欺骗用户允许执行宏。

基于脚本的(类型II:文件、服务、注册表、WMI存储库、shell):默认情况下,Windows平台上提供JavaScript、VBScript和PowerShell脚本语言。脚本与宏具有相同的优势,它们是文本文件(不是二进制可执行文件)并在解释器的上下文中运行(如wscript.exe、powershell.exe),这是一个干净而合法的组件。脚本是通用的,可以通过双击)或直接在解释器的命令行上执行,从文件(运行脚本。在命令行上运行允许恶意软件将恶意脚本编码为自动启动注册表项内的服务,作为WMI存储库中的WMI事件订阅。此外,获得受感染计算机访问权限的攻击者可能会在命令提示符上输入脚本。

基于磁盘的(类型II:启动记录):启动记录是磁盘或卷的第一个扇区,包含启动操作系统启动过程所需的可执行代码。Petya等威胁可以通过使用恶意代码覆盖启动记录来感染该记录。启动计算机时,恶意软件会立即获得控制。启动记录位于文件系统外部,但操作系统可访问它。新式防病毒产品能够对其进行扫描和还原。
发展历史
利用缓冲区漏洞
2001年7月19日,红色代码病毒曝光,当天全球超过359000台计算机受到了感染。红色代码是一种网络蠕虫病毒,利用微软IIS的缓冲区溢出漏洞进行病毒的感染和传播。
2003年1月,另一个蠕虫病毒SQL Slammer出现,它利用SQL Server2000和数据桌面引擎的缓冲区溢出漏洞来感染服务器内存。
利用注册表
利用缓冲区漏洞的无文件攻击有一个弊端就是一旦进程或系统关闭,恶意攻击也就不复存在。为了实现攻击的持久化,攻击者们将恶意代码写入注册表的RUN键值,调用合法的rundll32.exe程序执行JavaScript代码,使自己在重启后自动继续运行,并使用Powershell工具执行恶意脚本。最早使用该技术的是2014年被发现的点击欺诈软件Powelikes。类似的恶意软件还有Phasebot、Kovter。
利用Microsoft Word宏
2016年,“无文件”恶意软件的发展又出现了新的特点。PowerSniff、PowerWare、August等利用Microsoft Word宏来进行钓鱼传播的“无文件”恶意软件陆续出现。
利用WMI
2017年,名叫“POSHSPY”的“无文件”恶意软件出现,它利用系统提供的WMI(Windowa Management Instrumentation)功能来实现定时自启动,并利用PowerShell工具执行恶意脚本。

检测难点
无文件攻击由系统或软件漏洞侵入系统,利用受信任的软件或系统工具来躲避检测,通过注册表实现永久驻留,或者使用 WMI 功能定时自启,同时不断渗透进入其他计算机,利用操作系统特性来达到数据隐身,让基于文件监测的查杀手段失效。

检测方法
监控进程内存,利用已知的远控、Shellcode、无文件攻击框架等特征,匹配正在运行进程的内存数据,查找恶意代码。
监控系统行为,利用行为检测技术,分析系统进程的启动、注入、网络通信等异常行为,发现可疑的攻击活动。
监控系统日志,利用日志分析技术,收集和分析系统的事件日志、安全日志、应用日志等,发现可疑的攻击痕迹。
监控系统配置,利用配置管理技术,检查系统的计划任务、注册表、服务等,发现可疑的自启动项或恶意修改。
防护手段
禁用或限制系统内置的工具或脚本,如关闭Office文档的宏功能,禁用或限制Rundll32、Powershell、Mshta等程序的执行。
安装和更新系统的补丁,修复已知的缓冲区溢出漏洞,防止恶意代码的注入。
安装和更新系统的杀毒软件,利用杀毒软件的实时防护、行为防护、内存防护等功能,阻止恶意代码的执行。
安装和更新系统的EDR软件,利用EDR软件的行为检测、日志分析、配置管理等功能,检测和清除无文件攻击;使用最新的安全软件,及时更新系统的补丁和防护规则,提高系统的安全性能和抵抗能力。
应用白名单策略,限制可信程序或工具的执行权限,防止恶意代码的注入或执行。
启用系统的安全设置,禁用不必要的服务或功能,如PowerShell、宏、WMI等,减少攻击的攻击面。
使用行为分析技术,监测系统的异常行为,如进程注入、注册表修改、网络连接等,及时发现和阻止攻击。
使用内存取证技术,分析内存中的恶意代码,提取攻击的特征和证据,追踪攻击的来源和目的。

无文件攻击是一种隐蔽而危险的攻击方式,需要我们提高警惕,加强防护,及时应对。

相关文章
|
存储 安全 JavaScript
渗透攻击实例-xss跨站脚本攻击
渗透攻击实例-xss跨站脚本攻击
|
安全 网络安全 PHP
网络安全-RCE(远程命令执行)漏洞原理、攻击与防御
网络安全-RCE(远程命令执行)漏洞原理、攻击与防御
1187 0
网络安全-RCE(远程命令执行)漏洞原理、攻击与防御
|
23天前
|
安全 数据安全/隐私保护
恶意攻击
黑客攻击:黑客使用计算机作为攻击主体,发送请求,被攻击主机成为攻击对象的远程系统,进而被窃取信息。 特洛伊木马:特洛伊木马通过电子邮件或注入免费游戏一类的软件进行传播,当软件或电子邮件附件被执行后,特洛伊木马被激活。特洛伊密码释放他的有效负载,监视计算机活动,安装后门程序,或者向黑客传输信息。
24 4
|
3月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
569 1
|
7月前
|
存储 监控 安全
应对跨站脚本攻击(XSS)和社会工程学攻击
应对跨站脚本攻击(XSS)和社会工程学攻击
|
7月前
|
存储 安全 JavaScript
HW常见攻击方式 --XSS跨站脚本攻击
HW常见攻击方式 --XSS跨站脚本攻击
96 0
|
开发框架 安全 JavaScript
网络安全-文件上传漏洞的原理、攻击与防御
网络安全-文件上传漏洞的原理、攻击与防御
693 0
网络安全-文件上传漏洞的原理、攻击与防御
|
安全 前端开发 网络安全
网络安全-文件包含漏洞原理、攻击及防御
网络安全-文件包含漏洞原理、攻击及防御
410 0
网络安全-文件包含漏洞原理、攻击及防御
|
SQL 安全 Shell
文件包含漏洞渗透攻击_3 | 学习笔记
快速学习 文件包含漏洞渗透攻击_3
179 0
文件包含漏洞渗透攻击_3 | 学习笔记
|
安全 网络安全 PHP
文件包含漏洞渗透攻击_2 | 学习笔记
快速学习 文件包含漏洞渗透攻击_2
161 0
文件包含漏洞渗透攻击_2 | 学习笔记