ATTCK v12版本战术介绍——防御规避(三)

news2024/12/24 10:18:51

一、引言

在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术、防御规避部分理论知识及实战研究,本期我们为大家介绍ATT&CK 14项战术中防御规避战术技术第13-18种技术,后续会介绍防御规避其他子技术,敬请关注。

二、ATT&CK v12简介

MITRE ATT&CK 是一个全球可访问的基于现实世界观察的攻防战术和技术知识库。ATT&CK知识库被用作在私营部门、政府以及网络安全产品和服务社区中开发特定威胁模型和方法的基础。

2022年10月25日发布的ATT&CK v12版本更新了适用于企业、移动设备和 ICS(工业控制系统)框架的技术、组和软件。v12最大的变化是在ATT&CK中增加了ICS的检测,描述了检测各种ICS技术的方法,每种方法都与特定的数据源和数据组件相关联,检测功能既利用了传统的主机和基于网络的采集,也利用了ICS特定的来源,如资产和运营数据库等。

ATT&CK v12 for Enterprise包含14个战术、193个技术、401个子技术、135个组织、718个软件。

ATT&CK战术全景图(红框为防御规避战术)

三、防御规避战术

3.1 概述

防御逃避包括攻击者在攻击过程中用来避免被发现的技术,包括禁用安全软件、加密数据和脚本、利用可信进程来隐藏或伪装恶意软件。

防御规避战术包括42种技术,本期介绍第13-18种技术,逐一介绍如下:

3.2 隐藏行为(T1564)

操作系统具有隐藏行为的功能,例如重要的系统文件和管理任务执行,以避免中断用户工作环境并防止用户更改系统上的文件或功能。攻击者利用这些功能来隐藏文件、目录、用户帐户或其他系统活动,以逃避检测。

攻击者还可能试图通过创建与常见安全检测相隔离的计算区域(例如通过使用虚拟化技术)来隐藏恶意行为。

隐藏行为技术包含10项子技术,介绍如下:

3.2.1 隐藏文件和目录(T1564.001)

攻击者可能会将文件和目录设置为隐藏,以逃避检测机制。为了防止普通用户意外更改系统上的特殊文件,大多数操作系统都有"隐藏"文件的概念。当用户使用GUI浏览文件系统或在命令行上使用正常命令时,这些文件不会显示。用户必须通过一系列图形用户界面提示或命令行开关(Windows的dir/a和linux和macOS的ls–a)明确要求显示隐藏文件。

攻击者可以利用这一点来隐藏系统上任何位置的文件和文件夹,并逃避调查分析。

3.2.2 隐藏用户(T1564.002)

攻击者可隐藏他们创建或修改的用户帐户。

隐藏Windows中的用户帐户:攻击者可以为特定用户将HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList注册表项值设置为0,以防止该用户在登录屏幕上列出。

Linux系统上隐藏用户帐户:例如,在使用GNOME显示管理器(GDM)的Ubuntu系统上,可以使用gsettings命令(ex:sudo-u gdm gsettings set org)隐藏帐户。

3.2.3 隐藏窗口(T1564.003)

攻击者可能会使用隐藏的窗口来隐藏恶意活动。在应用程序执行操作时显示的窗口可以隐藏。系统管理员可以利用这一点来避免在执行管理任务时中断用户的工作环境。

在Windows上,例如PowerShell,Jscript和Visual Basic等可以隐藏窗口。

3.2.4 NTFS文件属性(T1564.004)

攻击者可以使用NTFS文件属性来隐藏其恶意数据以逃避检测。每个文件系统(NTFS)格式化的分区都包含一个主文件表(MFT),该表维护分区上每个文件或目录的记录。

攻击者可能会将恶意数据或二进制文件存储在文件属性元数据中,而不是直接存储在文件中,为了逃避一些防御措施,例如静态指标扫描工具和防病毒。

3.2.5 隐藏文件系统(T1564.005)

攻击者可能会使用隐藏的文件系统来隐藏恶意活动。标准文件系统包括FAT、NTFS、ext4和APFS。

攻击者可以使用他们自己的抽象文件系统,与受感染系统上存在的标准文件系统分开。隐藏文件系统,也称为虚拟文件系统,可以通过多种方式实现。一种实现是将文件系统存储在标准文件系统分区未使用的磁盘空间中。另一种实现方式是让攻击者将自己的可移植分区镜像作为文件放在标准文件系统之上。攻击者也可能以非标准方式在现有文件系统结构中分割文件。

3.2.6 运行虚拟实例(T1564.006)

攻击者可能使用虚拟实例进行恶意操作以避免被检测。通过在虚拟实例内部运行恶意代码,攻击者可以从无法监控虚拟实例内部活动的安全工具中隐藏与其行为。此外,虚拟实例生成的网络流量可能难以追溯到受损主机,因为IP地址和主机名可能与已知值不匹配。

运行虚拟实例后,攻击者创建一个共享文件夹,其权限使虚拟实例能够与主机文件系统交互。

3.2.7 VBA stomping(T1564.007)

VBA stomping 是指破坏 Microsoft Office 文档中的 VBA 源代码,只在文档文件中留下称为 p-code 的宏代码的编译版本。攻击者可以通过良性代码或随机字节,覆盖VBA源代码位置,同时通过保留先前编译的恶意p-code,隐藏恶意VBA代码。

3.2.8 邮件隐藏规则(T1564.008)

许多电子邮件客户端允许用户为各种电子邮件功能创建收件箱规则,包括将电子邮件移动到其他文件夹,将电子邮件标记为已读或删除电子邮件。

攻击者可能会利用受损用户邮箱中的电子邮件规则来删除或将电子邮件移动到不太明显的文件夹中。恶意规则通常会根据邮件正文和主题行中的关键词(如恶意软件、可疑、网络钓鱼和黑客)过滤电子邮件。

3.2.9 资源分支(T1564.009)

资源分支为应用程序提供了一种结构化的方式来存储资源,如缩略图图像、菜单定义、图标、对话框和代码。攻击者可能会利用资源分支来隐藏恶意代码或可执行文件,以逃避检测并绕过安全应用程序。攻击者可以在指定的偏移量处使用附加的资源分支执行内容,资源分支内容也可能被混淆或加密,移动到可执行位置,然后调用执行。

3.2.10 进程参数欺骗(T1564.010)

攻击者可能会尝试通过覆盖进程内存来隐藏进程命令行参数。进程命令行参数存储在进程环境块(PEB)中,该数据结构由Windows用于存储进程使用的各种信息。

攻击者可能会重写PEB以修改命令行参数,然后使用恶意参数恢复进程执行。

3.2.11 检测

ID

数据源

数据组件

检测

DS0015

应用日志

应用日志内容

监控第三方应用程序日志记录。

DS0017

命令

命令执行

监控执行的命令和参数。

DS0022

文件

文件创建

监控新创建的异常文件。

文件元数据

监控文件的上下文数据,包括名称、内容、所有者、权限等信息。

文件修改

监控对文件做的异常修改。

DS0001

固件

固件修改

监控对防火墙规则所做的异常更改。

DS0009

进程

OS API执行

监控异常的API调用。

进程创建

监控新创建的异常进程。

DS0012

脚本

脚本执行

监控非常见或不常用的脚本执行行为。

DS0019

服务

服务创建

监控新创建的服务。

DS0002

用户账户

用户账户创建

监控新创建的用户帐户。

用户账户元数据

监控有关帐户的上下文数据,包括用户名,用户ID等数据。

DS0024

Windows注册表

Windows注册表项修改

监控对windows注册表项所做的更改。

3.3 执行流程劫持(T1574)

攻击者可通过劫持操作系统运行程序的方式来执行自己的恶意代码。攻击者可利用这些机制来提升特权或逃避防御,例如应用程序控制或其他执行限制。

攻击者可以通过多种方式劫持执行流程,包括操纵操作系统定位要执行的程序。操作系统定位程序要使用的库也可以被拦截,文件目录或注册表等都可以被恶意篡改。

执行流程劫持技术包含12项子技术,介绍如下:

3.3.1 DLL搜索顺序劫持(T1574.001)

攻击者可通过劫持加载Dll的搜索顺序来执行恶意代码,以建立持久性或提升权限。

攻击者可通过多种方式劫持DLL加载。攻击者可能会在程序将要请求的合法库的位置之前搜索的目录中放置特洛伊木马动态链接库文件,导致windows在受害者程序调用时加载其恶意库。攻击者还可以执行DLL预加载,也称为二进制植入攻击,将一个恶意DLL放在Windows在合法DLL之前搜索的位置,通常这个位置是程序的当前工作目录。当程序在加载DLL之前将其当前目录设置为远程位置时,就会发生远程DLL预加载攻击。攻击者也可通过DLL重定向直接修改搜索顺序。

3.3.2 DLL侧加载(T1574.002)

攻击者可以通过侧加载Dll来执行恶意代码。侧加载利用加载程序使用的DLL搜索顺序,将受害应用程序和恶意载荷彼此定位。攻击者可能使用侧加载掩盖他们在合法、可信的系统或软件进程下执行的动作。用于侧加载载荷的良性可执行文件在执行期间可能不会被标记。攻击者载荷也可以被加密或以其他方式混淆,直到加载到可信进程的内存中为止。

3.3.3 Dylib劫持(T1574.004)

攻击者可以通过在应用程序运行时搜索的路径中放置恶意动态库(dylib)来攻击。动态加载器将尝试根据搜索路径的顺序查找Dylibs。Dylibs的路径可以以@rpath作为前缀,@RPath允许开发人员使用相对路径根据可执行文件的位置指定运行时使用的搜索路径数组。

攻击者可通过在识别的路径中插入带有缺失dylib名称的恶意dylib来执行。Dylib被加载到应用程序的地址空间中,允许恶意dylib继承应用程序的特权级别和资源。

3.3.4 可执行安装程序文件权限弱点(T1574.005)

攻击者可以通过劫持安装程序使用的二进制文件来执行恶意代码。如果二进制文件本身或上级目录权限设置不正确,则可能会被另一个二进制文件覆盖,并由原始进程执行。

在安装过程中,安装程序通常使用%TEMP%目录中的子目录来解压缩Dll、EXEs或其他有效负载等二进制文件。当安装程序创建子目录和文件时,通常不会设置适当的权限来限制写访问,攻击者可以使用此技术将合法二进制文件替换为恶意二进制文件,作为在更高权限级别执行代码的手段。

3.3.5 动态链接器劫持(T1574.006)

攻击者可通过劫持动态链接器加载共享库的环境变量来执行恶意代码。在程序的执行准备阶段,动态链接器从环境变量和文件加载共享库的指定绝对路径,首先加载环境变量中指定的库,优先于具有相同函数名的系统库。这些变量经常被开发人员用来调试二进制文件,而无需重新编译,并在不改变原始库的情况下实现自定义函数。

3.3.6 PATH环境变量的路径拦截(T1574.007)

攻击者可以通过劫持用于加载库的环境变量来执行恶意代码。攻击者可能会将程序放在PATH环境变量存储的目录列表中的历史条目中,然后在Windows通过该路径列表中顺序搜索时将执行该程序,以搜索从脚本或命令行调用的二进制文件。

3.3.7 搜索顺序劫持的路径拦截(T1574.008)

攻击者可通过劫持用于加载其他程序的搜索顺序来执行恶意代码。由于某些程序不使用完整路径调用其他程序,对手可能会将自己的文件放在调用程序所在的目录中,导致操作系统由于调用程序的请求启动其恶意软件。

当攻击者利用Windows搜索未给定路径的程序的顺序时,就会发生搜索顺序劫持。

3.3.8 未引用路径的路径拦截(T1574.009)

攻击者可通过劫持易受攻击的文件路径引用来执行恶意代码。方法是将可执行文件放在路径内的较高级别的目录中,以便Windows选择要启动的恶意可执行文件。

如果定期调用可执行文件,此技术可用于持久性,如果拦截的可执行文件由较高特权进程启动,则可用于特权升级。

3.3.9 服务文件权限弱点(T1574.010)

攻击者可以通过劫持服务使用的二进制文件来执行恶意代码。攻击者可能会利用Windows服务权限中的弱点来替换在服务启动时执行的二进制文件。这些服务进程可以自动执行特定的二进制文件,攻击者可以使用此技术将合法二进制文件替换为恶意二进制文件,作为在更高权限级别执行代码的手段。

3.3.10 服务注册权限弱点(T1574.011)

攻击者可以通过劫持服务使用的注册表项来执行恶意代码,利用服务相关的注册表项的权限中的弱点,从最初指定的可执行文件重定向到他们控制的可执行文件,以便在服务启动时执行恶意代码。Windows将本地服务配置信息存储在HKLM\SYSTEM\CurrentControlSet\Services下的注册表中。存储在服务注册表项下的信息可以通过服务控制器sc等工具来操作以修改服务的执行参数。

如果未正确设置用户和组的权限并允许访问服务的注册表项,则攻击者可能会更改服务的binPath/ImagePath以指向恶意可执行文件。攻击者还可以为其恶意服务添加Parameters键或其他自定义子键,以建立持久性。

3.3.11 COR_PROFILER环境变量劫持(T1574.012)

攻击者可以利用COR_PROFILER环境变量劫持加载.NET CLR的程序的执行流。COR_PROFILER是一个.NET Framework功能,允许开发人员指定要加载到CLR的每个.NET进程中的分析DLL。

攻击者可利用COR_PROFILER来建立持久性,以便在每次调用CLR时在所有.NET进程的上下文中执行恶意DLL。

3.3.12 内核回调注入(T1574.013)

攻击者可能会使用kernelcallbacktable通过将原始回调函数替换为恶意代码来劫持进程的执行流,例如反射代码加载或进程注入到另一个进程中。

被篡改的函数通常使用Windows消息调用。在进程被劫持并执行恶意代码后,kernelcallbacktable也可能被恶意代码的其余部分恢复到原始状态。

3.3.13 缓解措施

ID

缓解措施

描述

M1013

应用开发者指南

在清单文件中包含哈希值,以帮助防止恶意库的侧加载

M1047

审计

通过审计工具检查侧加载漏洞、程序配置文件、脚本、PATH环境变量、服务和快捷方式中的路径拦截弱点,使用绝对路径指定搜索顺序。

卸载软件时清理旧的Windows注册表项,以避免没有关联的合法二进制文件的密钥。

M1040

端点行为防御

通过端点防御来阻止与进程注入或内存篡改相关的某些类型的行为。

M1038

执行预防

通过应用程序控制解决方案,识别并阻止通过劫持执行的潜在恶意软件。

M1022

限制文件和目录权限

设置目录访问控制,以防止在运行应用程序的文件夹和标准库文件夹中的应用程序的搜索路径中写入文件。

M1044

限制库加载

不允许加载远程Dll,启用安全DLL搜索模式

M1024

限制注册表权限

注册表权限控制

M1051

更新软件

定期更新软件以修复DLL侧加载漏洞的补丁。

M1052

用户账户控制

关闭UAC对标准用户的权限提升

M1018

用户账户管理

限制用户帐户和组的权限,以便只有授权管理员才能与服务更改和服务二进制目标路径位置进行交互。

3.3.14 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控执行的命令和参数,这些命令和参数可能通过劫持操作系统运行程序的方式来执行恶意代码。

DS0022

文件

文件创建

监控新创建的文件。

文件修改

监控用于移动,重命名,更换或修改DLL的文件系统。监控与已知软件,补丁等不相关的过程加载的可疑DLL的变化。

DS0011

模块

模块加载

监控加载到一个进程中的DLL并检测具有相同文件名但异常路径的DLL。

DS0009

进程

进程创建

监控新创建的进程

DS0019

服务

服务元数据

监控在软件更新期间发生的二进制文件和服务可执行文件的更改。

DS0024

Windows注册表

Windows注册表修改

监控对windows注册表项所做的更改。

3.4 削弱防御机制(T1562)

攻击者可能会恶意修改受害者环境的组件,以禁用防御机制,涉及破坏防火墙和防病毒、恶意行为审计等安全防御。

削弱防御机制技术包含9项子技术,介绍如下:

3.4.1 禁用或修改工具(T1562.001)

攻击者可以修改或禁用安全工具,以绕过检测,例如杀死安全软件进程或服务,修改或删除注册表项或配置文件以使工具无法正常运行,干扰安全工具扫描,禁用更新,以防止最新的安全补丁到达受害者系统上的工具。攻击者会利用合法rootkit删除工具包等工具来禁用这些安全防御工具,利用防病毒软件中的合法驱动程序来访问内核空间(即利用特权升级),以绕过防篡改功能。

3.4.2 禁用Windows事件日志记录(T1562.002)

Windows事件日志记录用户和系统活动,如登录尝试、进程创建等。这些数据被安全工具和分析师用来生成检测。攻击者可能会禁用Windows事件日志记录,以限制可用于检测和审核的数据。

攻击者可使用以下PowerShell行禁用EventLog服务:Stop-Service-Name EventLog,可以在命令提示符中使用auditpol及其子命令来禁用审计或清除审计策略。

3.4.3 破坏命令历史记录记录(T1562.003)

攻击者可能会破坏命令历史记录以隐藏他们在受损系统上运行的命令。各种命令解释器跟踪用户在其终端中键入的命令,以便用户可以追溯他们所做的事情。

攻击者可以清除历史记录环境变量或将命令历史记录大小设置为零,以防止记录命令。攻击者还可以利用网络设备上的CLI来禁用历史命令日志记录。

3.4.4 禁用或修改系统防火墙(T1562.004)

攻击者可以通过命令行、编辑Windows注册表项和Windows控制面板禁用或修改系统防火墙特定规则,以绕过限制网络使用的控制。

3.4.5 指标阻塞(T1562.006)

攻击者可能通过恶意重定向或禁用基于主机的传感器来阻止由传感器捕获的指标或事件被收集和分析。

实现方式包括修改注册表、阻断流量、禁用或重新配置syslog或nxlog等日志处理工具,以抑制检测和监控功能。

3.4.6 禁用或修改云防火墙(T1562.007)

攻击者可以禁用或修改云环境中的防火墙,以绕过限制对云资源访问的控制。

云环境通常使用限制性安全组和防火墙规则,这些规则仅允许通过特定端口和协议从受信任的IP地址通讯。攻击者可能会引入新的防火墙规则或策略,以允许访问目标云环境。例如,攻击者可以使用脚本或程序在现有安全组中创建新的入口规则,以允许任何TCP/IP连接。

3.4.7 禁用云日志(T1562.008)

云环境允许收集和分析审计和应用程序日志,从而深入了解用户在环境中执行的活动。攻击者可能会禁用云日志记录功能,以防止被收集数据和检测。

3.4.8 安全模式启动(T1562.009)

攻击者可能会利用Windows安全模式来禁用端点防御。EDR工具等第三方安全软件在以安全模式引导Windows后可能无法启动。

攻击者还可以通过修改相关注册表值将其恶意应用程序添加到以安全模式启动的最小服务列表中,恶意组件对象模型也可以在安全模式下注册和加载。

3.4.9 降级攻击(T1562.010)

攻击者可能会降级使用易受攻击或不支持更新的系统功能版本。例如,PowerShell版本5+包含脚本块日志记录(SBL),可记录执行的脚本内容。但是攻击者可能会尝试执行不支持SBL的早期版本的PowerShell,以绕过检测。

3.4.10 缓解措施

ID

缓解措施

描述

M1038

执行预防

确保仅在企业系统上使用和运行经批准的安全应用程序。

M1022

限制文件和目录权限

限制进程和文件权限,以防止攻击者禁用日志记录服务。

M1024

限制注册表权限

限制注册表权限,以防止攻击者禁用日志记录服务。

M1018

用户账户管理

确保适当的用户权限,以防止攻击者禁用日志记录服务。

3.4.11 检测

ID

数据源

数据组件

检测

DS0025

云服务

云服务禁用

监控API调用的日志以及禁用日志记录。

云服务修改

监控对云服务所做的更改。

DS0017

命令

命令执行

监控执行的命令和参数。

DS0027

驱动

驱动负载

监控异常的驱动程序活动。

DS0018

防火墙

防火墙禁用

监控系统防火墙状态的更改,例如Windows安全审核事件5025(Windows防火墙服务已停止)和5034(Windows防火墙驱动程序已停止)。

防火墙规则修改

监控对防火墙规则所做的更改。

DS0009

进程

进程创建

监控新执行的进程。

进程终止

监控正在运行的进程(例如:Sysmon EID5或Windows EID4689)的意外终止。

DS0012

脚本

脚本执行

监控试图启用在系统上运行的非常用脚本。

DS0013

传感器健康

主机状态

监控日志记录、消息传递和其他主机传感器运行状况的指标,缺少日志事件是可疑的。

DS0019

服务

服务元数据

监控有关服务或守护进程的上下文数据,包括名称、服务可执行文件、启动类型等信息。

DS0024

Windows注册表

Windows注册表项删除

监控windows注册表项的意外删除。

Windows注册表项修改

监控注册表编辑修改行为。

3.5 删除主机中的信标(T1070)

攻击者可以删除与监控事件相关的防御指标,例如来自下载文件的字符串,从用户操作生成的日志以及防御者分析的其他数据,从而干扰事件收集、报告及检测。

删除主机中的信标技术包含9项子技术,介绍如下:

3.5.1 清除Windows事件日志(T1070.001)

攻击者可以清除Windows事件日志以隐藏入侵的活动。Windows事件日志是计算机警报和通知的记录。有三个系统定义的事件源:系统、应用程序和安全性,有五种事件类型:错误、警告、信息、成功审核和失败审核。

可通过程序命令、事件查看器GUI或PowerShell清除Windows事件日志。

3.5.2 清除Linux或Mac系统日志(T1070.002)

攻击者可以清除系统日志以隐藏入侵的证据。macOS和Linux都通过系统日志跟踪系统或用户启动的操作。大多数本机系统日志记录存储在/var/log/目录下。

3.5.3 清除命令历史记录(T1070.003)

除了清除系统日志之外,攻击者还可以清除被入侵帐户的命令历史记录,以隐藏在入侵期间所采取的行动。

3.5.4 文件删除(T1070.004)

攻击者可能会删除因其入侵活动的操作而留下的文件。恶意软件、工具或其他由攻击者丢弃或在系统上创建的非本机文件可能会留下痕迹,删除这些文件防止被检测分析。

3.5.5 网络共享连接删除(T1070.005)

攻击者可能会删除不再有用的共享连接,以便清理其操作痕迹。Windows共享驱动器和SMB/Windows管理员共享连接可以在不再需要时删除。

3.5.6 时间戳(T1070.006)

攻击自合可以修改文件时间属性以隐藏对现有文件的更改。时间戳可以与文件名伪装一起使用,以隐藏恶意软件和工具。

3.5.7 清除网络连接历史记录和配置(T1070.007)

攻击者可以清除或删除恶意网络连接的证据,以清理其操作痕迹。

网络连接历史可以存储在系统上的各个位置。例如,RDP连接历史记录可能存储在Windows注册表值中。恶意网络连接还可能需要更改网络配置设置,例如禁用或修改系统防火墙或篡改以启用代理。

3.5.8 清除邮箱数据(T1070.008)

攻击者可以修改邮件应用程序数据以删除其活动证据。电子邮件应用程序允许用户和其他程序通过命令行工具或使用Api导出和删除邮箱数据。邮件应用程序数据可以是应用程序或操作系统生成的电子邮件或日志。

3.5.9 清除持久性(T1070.009)

攻击者可以清除与主机系统上先前建立的持久性相关的内容,以删除其活动证据。例如删除服务,删除可执行文件,修改注册表,Plist文件修改或其他清理方法,以防止防御者收集其持久化证据。

3.5.10 缓解措施

ID

缓解措施

描述

M1041

加密敏感信息

在本地和传输过程中加密事件文件。

M1029

远程数据存储

自动实时将事件转发到日志服务器或数据存储库,以防止攻击者可以在本地系统上定位和操作数据。

M1022

限制文件和目录权限

按照最小化授权原则限制文件和目录权限。

3.5.11 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控执行的命令和参数。

DS0022

文件

文件删除

监控异常文件删除行为。

文件元数据

监控文件元数据,包括日志或捕获的文件(如隔离的恶意软件)。

文件修改

监控对文件所做的更改。

DS0018

防火墙

防火墙规则修改

监控对防火墙规则所做的更改。

DS0029

网络流量

网络流量内容

监控异常流量,异常进程,异常行为。

DS0009

进程

OS API执行

监控异常API调用,包括日志或捕获的文件,如隔离的恶意软件。

进程创建

监控新创建的进程。

DS0003

计划任务

计划任务修改

监控对计划任务的修改。

DS0002

用户账户

用户账户认证

监控异常的用户账户认证。

DS0024

Windows注册表

Windows注册表项删除

监控windows注册表项的删除。

Windows注册表项修改

监控对windows注册表项的修改。

3.6 间接执行命令(T1202)

攻击者可利用允许执行命令的程序来绕过限制命令行解释器的安全策略。各种Windows程序可用于执行命令,可能无需调用cmd。攻击者可利用这些功能进行防御规避,特别是执行任意执行,这些控制阻止cmd或文件扩展名的使用通常与恶意有效载荷关联。

3.6.1 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

检测异常进程调用行为。

DS0009

进程

进程创建

监控新创建的进程。

3.7 仿冒(T1036)

当一个合法或恶意的对象名称或位置被操纵用以逃避防御时,就会发生仿冒。这可能包括操纵文件元数据,欺骗用户错误识别文件类型,以及提供合法的任务或服务名称。

仿冒技术包含7项子技术,介绍如下:

3.7.1 无效代码签名(T1036.001)

攻击者可能会尝试模仿有效代码签名的功能,以增加欺骗用户机会。攻击者可以从已签名程序复制元数据和签名信息,然后将其用作未签名程序的模板。具有无效代码签名的文件将无法通过数字签名验证检查,但它们对用户来说可能看起来更合法,安全工具可能会不正确地处理这些文件。

3.7.2 RTLO文件名反转(T1036.002)

攻击者可利用从RTLO字符Unicode码202E来伪装字符串或文件名,使其看起来合法。RTLO是一个非打印Unicode字符,它会导致后面的文本反向显示。这种技术的一个常见用途是使用钓鱼邮件附件,因为它可以欺骗最终用户和防御者如何显示和呈现RTLO字符。

3.7.3 重命名系统程序(T1036.003)

攻击者可以重命名合法的系统程序,以试图逃避安全机制。通过在使用之前重命名程序(例如:重命名rundll32),或者是将合法程序复制或移动到不同的目录并重命名,以避免检测。

3.7.4 伪装任务或服务(T1036.004)

攻击者可能试图操纵任务或服务的名称,使其看起来合法。由任务调度器或systemd执行的任务或服务将被赋予名称或描述。

3.7.5 匹配合法名称或位置(T1036.005)

为了规避防御,在命名或放置合法文件时,攻击者可能与合法文件的名称或位置高度接近。可通过将可执行文件放在通常受信任的目录(例如:在System32下)或给它一个合法的,受信任的程序的名称。攻击者也会用试图模仿文件的相同图标。

3.7.6 文件名后的空格(T1036.006)

攻击者可以通过更改文件的扩展名来隐藏程序的真实文件类型。对于某些文件类型,在文件名的末尾追加一个空格将改变操作系统对文件的处理方式。

攻击者可以使用此功能诱骗用户双击任何格式的文件,并最终执行恶意操作。

3.7.7 双文件扩展名(T1036.007)

攻击者可能会利用文件名中的双重扩展名来伪装真正的文件类型。第二个扩展名是真正的文件类型,它决定了文件的打开和执行方式。

3.7.8 缓解措施

ID

缓解措施

描述

M1045

代码签名

需要签名的二进制文件。

M1038

执行预防

通过工具限制文件名以外的属性执行程序。

M1022

限制文件和目录权限

使用文件系统访问控制来保护文件夹。

3.7.9 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控执行的命令和参数。

DS0022

文件

文件元数据

收集文件哈希值,与预期哈希值不匹配的文件名是可疑的。 执行文件监控,具有已知名称但在不寻常位置的文件是可疑的。查找异常字符,例如作为文件名最后一个字符的空格或从右到左的复盖字符"\u202E"、"[U+202E]"和"%E2%80%AE"。

文件修改

监控更新或修复程序之外的文件所做的修改。

DS0007

图片

图片元数据

收集二进制文件的磁盘和资源文件名。

DS0009

进程

进程元数据

监控磁盘上的文件名与二进制PE元数据的文件名不匹配的文件名,这可能是二进制文件编译后重命名的指标。

DS0003

计划任务

计划任务元数据

监控有关计划任务的上下文数据,其中可能包括名称、时间、命令等信息。

计划任务修改

监控对计划任务所做的修改。

DS0019

服务

服务创建

监控新创建的服务或守护进程。

服务元数据

监控有关服务或守护进程的上下文数据,这些数据可能包括名称、服务可执行文件、启动类型等信息。

四、总结

本期主要介绍了防御规避战术(三)及技术/子技术原理,下期将给大家介绍防御规避战术(四)涉及的技术原理。敬请关注。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨网摆渡系统如何实现数据安全传输,从而驱动业务流转?

在这个数据驱动的时代,一次数据泄露就可能影响到数亿甚至数十亿人。数字化转型进一步推动了数据的移动,而随着攻击者加速利用日常生活中的数据依赖性,数据泄露也正随之扩大。一旦边界的防线被攻破或绕过,攻击者就可以在数据中心内…

python数据清洗

数据清洗包括:空值,异常值,重复值,类型转换和数据整合 这里数据清洗需要用到的库是pandas库,下载方式还是在终端运行 : pip install pandas. 首先我们需要对数据进行读取 import pandas as pddata pd.read…

MySQL的索引和锁

MySQL的索引和锁 一.存储引擎1.1 MySQL体系结构1). 连接层2). 服务层3).存储引擎层4). 存储层 1.2 存储引擎介绍1). 建表时指定存储引擎2). 查询当前数据库支持的存储引擎 1.3 存储引擎特点1.3.1 InnoDB1.3.2 MyISAM 1.4 存储引擎选择 二 索引2.1 索引概述2.1.1 介绍2.2.2 B-Tr…

【数据库开发】国产数据库之涛思TDengine

文章目录 1、简介2、安装2.1 安装TDengine服务2.2 运行TDengine服务(taosd)2.3 执行TDengine命令行(taos) 3、测试3.1 新建数据库(命令行命令)3.2 新建数据库(脚本文件)3.3 命令行参…

KlayGE-004-InputCaps 例子分析

InputCaps处理外部输入的事件 该例子主要由两部分内容: 外部输入事件获取 ​ 可以处理keyboard、mouse、joystick、touch、sensor的输入事件 显示一个ui图标按钮 Input 定义监听事件类型: KlayGE::InputActionDefine actions[] {InputActionDefin…

【opencv】图像数字化——认识OpenCV中的Mat类(4 访问单通道Mat对象中的值)

4 访问单通道Mat对象中的值 4.1使用成员函数at() 格式&#xff1a;m.at(r,c)&#xff0c;访问第r行c列 #include <opencv2/core/core.hpp> #include<iostream> using namespace std; using namespace cv; int main() {//构造矩阵Mat m (Mat_<int>(3,…

浅浅了解一下JWT

JWT 介绍 JWT 是 JSON Web Token 的缩写&#xff0c;JWT 本身没有定义任何技术实现&#xff0c;它只是定义了一种基于 Token 的会话管理的规则&#xff0c;涵盖 Token 需要包含的标准内容和 Token 的生成过程。 首先&#xff0c;俺们先来看看一个 JWT Token 长这样。 eyJhbGci…

burpsuite 插件编写入门

文章目录 一、什么是扩展 / 插件&#xff1f;实现一个简单的 插件/扩展 系统 二、burp 的扩展三、开发步骤总结 一、什么是扩展 / 插件&#xff1f; 关于这个话题&#xff0c;知乎有一个回答题不错&#xff0c;主要也是引用了wikipedia 插件/扩展&#xff0c;是向现有的计算机…

Go的Gin框架拦截器实现登录认证结合JWT实现会话记录

JWT jwt全称 Json web token&#xff0c;是一种认证和信息交流的工具。 授权&#xff1a;这是使用JWT最常见的场景。一旦用户登录&#xff0c;每个后续请求都将包含JWT&#xff0c;允许用户访问该令牌允许的路由、服务和资源。 信息交流&#xff1a;JSON Web令牌是在各方之间…

3.redis-事务

01-Redis事务概述 概述 Redis事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化放到一个队列中按顺序地执行。事务 在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 不支持ACID ①atomicity, 原子性, redis事务中的指令执行失败, 不影响后…

记一次 腾讯会议 的意外崩溃分析

一&#xff1a;背景 1. 讲故事 前段时间在用 腾讯会议 直播的时候&#xff0c;居然意外崩溃了&#xff0c;还好不是在训练营上课&#xff0c;不然又得重录了&#xff0c;崩完之后发现 腾讯会议 的 bugreport 组件会自动生成一个 minidump&#xff0c;截图如下&#xff1a; 作…

tcpdump 抓包

一、Tcpdump抓包 抓取端口为2008的数据包 抓包文件内容 抓取到的内容保存在文件中&#xff0c;可以通过wireshark分析 二、tcpdump的一些命令 tcpdump和ethereal可以用来获取和分析网络通讯活动&#xff0c;他们都是使用libpcap库来捕获网络封包的。 ​在混杂模式下他们可以监…

Oracle-主备切换问题(BUG-31747989)

背景: 用户在Oracle Rac 19.6版本通过switchover方式进行主备切换&#xff0c;在备切主完成之后&#xff0c;进行open的过程中&#xff0c;状态长时间无法完成疑似hang住。 问题: ​ Oracle Rac 19.6版本通过switchover方式进行主备切换,切换完成之后进行open&#xf…

100个开源手写人工智能算法(持续更新中)

你是否曾经对开源框架中算法的运行原理感到好奇&#xff1f;又是否曾经想过使用自己写的算法来进行机器学习&#xff1f; 现在&#xff0c;向您推荐一款基于 Python 语言的开源手写机器学习算法项目&#xff01; https://github.com/yuluxingchen/AI/ 这个项目中预计将包含了…

【10 浅学jsp】

浅学 jsp 一、jsp1. jsp介绍2. JSP执行流程3. JSP的本质还是Servlet4. JSP语法4.1 注释4.2 代码块4.3JSP表达式4.4JSP声明 5. JSP指令page 指令include 包含指令包含 其他页面taglib 引入外部标签库 6. JSP细节6.1 pageContext 页面域对象 7. Servlet四大域对象小结8. MVC模型 …

利用MFC实现一个托盘功能

文章目录 1.将主窗口隐藏起来&#xff0c;并移除任务栏图标显示2. 制作系统托盘3. 右键托盘得到信息4. 选择信息栏触发事件5. 添加开机自启动与关闭开机自启动OnSetPowerBoot与OnCancelPowerBoot 右键点击托盘&#xff0c;弹出如下的图标 1.将主窗口隐藏起来&#xff0c;并移除…

Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/130264470 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子网络科技博…

怎么批量把heic格式转化jpg,3招快速解决

怎么批量把heic格式转化jpg&#xff1f;heic是一种新型的图像文件格式&#xff0c;是苹果独家搞出来的一个图片格式&#xff0c;它小巧玲珑&#xff0c;而且图像质量超好&#xff0c;专门给iOS11系统用户用的。这种格式比老JPEG更厉害&#xff0c;不仅图片质量好&#xff0c;而…

如何减少电脑内存占用或优化内存?

内存(Memory)是计算机一个重要的组成部件&#xff0c;也称为内存储器或主存储器。它可以暂时存放CPU中运算的数据&#xff0c;以及与硬盘等外部存储器交换的数据&#xff0c;是CPU和硬盘之间的桥梁。若电脑内存占用过高&#xff0c;这会影响到电脑运行的速度&#xff0c;那该如…

Redis的哈希槽分区

目录 1. 一致性算法分区的缺点2. 哈希槽分区3. Redis为什么是16384个槽 1. 一致性算法分区的缺点 可以参考一致性哈希算法分区这篇文章 2. 哈希槽分区 Redis集群中内置了16384个哈希槽。redis会根据服务器节点数量大致均等的将哈希槽映射到不同的节点 当写入一条数据&#x…