1.简介在上一篇文章中,我们介绍了ATT&CK执行战术的前6个技术内容。本期为大家介绍执行战术的最后7个技术内容。后续会介绍ATT&CK其他方面的战术内容,敬请期待。2.ATT&CKv10简介MITREATT&CK是一个全球可访问的基于真实世界观察的对手战术和技术的知识库。ATT&CK知识库被用作在私营部门、政府以及网络安全产品和服务社区中开发特定威胁模型和方法的基础。ATT&CKv10为企业、移动设备和ICS(工业控制系统)框架更新技术、组和软件。最大的变化是在EnterpriseATT&CK中增加了一组新的数据源和数据组件对象,它补充了ATT&CKv9中发布的ATT&CK数据源名称更改。ATT&CKv10中更新的内容聚合了有关数据源的这些信息,并将它们构建到新的ATT&CK数据源对象中。ATT&CKv10forEnterprise包括14个战术、188个技术、379个子技术、129个组织、638个软件,共计38种数据源。数据源对象具有数据源的名称以及关键详细信息和元数据,包括ID、定义、可以收集的位置(收集层)、可以在哪个平台上找到它,突出显示构成相关值的组件/数据源的属性。ATT&CKv10中的数据组件分析每个亮点映射到可以使用该特定数据检测到的各种(子)技术。在单个(子)技术上,数据源和组件已从页面顶部的元数据框中重新定位,以与检测内容并列。这些数据源可在EnterpriseATT&CK的所有平台上使用,包括最新添加的与映射到PRE平台技术的开源情报(OSINT)相关的数据源。ATT&CK战术全景图(红框为执行战术)3.执行战术3.1概述执行战术是指攻击者控制的恶意代码在本地或远程系统上运行的技术,通常与其他技术相结合,如扫描网络或窃取数据、使用远程访问工具运行PowerShell脚本等等。实施包括13项技术。上一期我们介绍了前6项技术,后面的7项技术将一一介绍。3.2使用计划任务/作业(T1053)攻击者可以使用任务计划功能来执行恶意代码。所有主要操作系统都有在指定日期和时间执行的程序或脚本。如果满足适当的身份验证(例如:RPC以及Windows环境中的文件和打印机共享),也可以在远程系统上安排任务,这需要远程系统上的管理员或其他特权组的成员身份。攻击者可以利用任务调度在系统启动时或周期性地执行程序来实现持久化。还可以利用这些机制在特权帐户下运行进程。与系统二进制代理执行类似,攻击者还利用任务调度来掩盖受信任系统进程下的一次性执行。定时任务/作业的使用包括5个子技术,如下:3.2.1At程序(T1053.002)攻击者可以利用at程序执行恶意代码任务调度。at程序是Windows、Linux、macOS中的一个可执行文件,可以执行定时任务。尽管计划任务的schtasks在Windows环境中已被弃用,但使用at需要运行TaskScheduler服务并且用户以本地Administrators组成员的身份登录。在Linux和macOS上,超级用户和添加到at.allow文件的任何用户都可以调用at。如果at.allow文件不存在,则允许不在at.deny中的用户名调用at。如果at.deny存在且为空,则全局允许at。如果两个文件都不存在,则只允许超级用户使用at。攻击者可以使用at在系统启动时或周期性地执行程序来实现持久化。作为横向移动的一部分,也可以利用at进行远程执行,或在指定帐户下运行进程。在Linux环境下,攻击者还可能使用at程序通过shell或系统命令突破受限环境。如果允许二进制文件通过sudo以超级用户身份运行,at也可用于特权升级。3.2.2cron程序(T1053.003)攻击者可以使用cron程序定时执行恶意代码。cron程序是用于类Unix操作系统的计划任务调度程序。crontab文件包含要运行的计划任务的时间安排和执行时间,并存储在操作系统特定的文件路径中。攻击者可以在Linux或Unix环境下使用cron在系统启动时或周期性地执行程序,从而实现持久化。3.2.3计划任务(T1053.005)攻击者可能利用Windows任务计划程序实现恶意代码的初始或重复执行。有多种方法可以访问Windows中的任务计划程序。schtasks程序可以直接在命令行运行,也可以通过控制面板的GUI打开任务调度器。攻击者还可以使用Windows任务计划程序的.NET包装器或Windowsnetapi32库来创建计划任务。攻击者可以使用WindowsTaskScheduler在系统启动时执行或在计划的基础上执行持久性。WindowsTaskScheduler可以作为横向移动的一部分远程执行或在指定帐户下运行进程。与系统二进制代理执行类似,攻击者还利用Windows任务计划程序来掩盖已签名/受信任系统进程下的一次性执行。攻击者还可以创建隐藏的计划任务、枚举任务的工具和手动查询。攻击者可以通过删除关联的安全描述符(SD)注册表值来隐藏SCHTASKS查询和任务计划程序中的任务。隐藏任务的替代方法也是可能的,例如更改相关注册表项中的元数据(例如索引值)。3.2.4Systemd定时器(T1053.006)攻击者可能利用systemd定时器来执行恶意代码。Systemd计时器是文件扩展名为.timer的单元文件,用于控制服务。计时器可以定期运行。它们可以用作Linux环境中Cron的替代品。Systemd计时器可以通过systemctl命令行远程激活,通过SSH运行。每个.timer文件必须有一个对应的同名.service文件,例如example.timer和example.service。.service文件是由systemd系统和服务管理器管理的Systemd服务单元文件。特权计时器写入/etc/systemd/system/和/usr/lib/systemd/system,而用户级别写入~/.config/systemd/user/。攻击者可能会使用systemd计时器在系统启动时或定期执行恶意代码以实现持久性。使用特权路径安装的定时器可用于维护根级持久性,而安装用户级定时器用于用户级持久性。3.2.5容器编排任务(T1053.007)攻击者可能利用容器编排工具(如Kubernetes)提供的任务调度功能部署执行恶意代码的容器。容器编排任务定时执行自动化任务,类似于Linux系统上的cron程序。这种类型的部署也可以配置为弹性扩展的容器,自动持久化在集群中。在Kubernetes中,CronJob可用于调度一个或多个容器运行以执行特定任务。因此,攻击者可能会利用CronJob在集群内的各个节点执行恶意代码。3.2.6缓解措施ID缓解措施说明M1047AuditPowerSploit框架等工具包含PowerUp模块,可以在计划任务中发现存在权限弱点的系统,可以通过权限提升。M1028OSConfiguration配置计划任务被强制在经过身份验证的帐户下运行,而不是允许它们以SYSTEM帐户运行。关联的注册表项位于HKLM\SYSTEM\CurrentControlSet\Control\Lsa\SubmitControl中。可以通过GPO配置此设置:计算机配置>[策略]>Windows设置>安全设置>本地策略>安全选项:域控制器:允许服务器操作员安排任务,设置为禁用。M1026特权账户管理配置“增加调度优先级”选项只允许管理员组拥有调度优先级的权利。这可以通过GPO配置:计算机配置>[策略]>Windows设置>安全设置>本地策略>用户权限分配:增加调度优先级。M1018用户账户管理限制了用户账户的权限,只有经过授权的管理员才能在远程系统上创建计划任务。3.2.7检测ID数据源数据组件检测DS0017命令commandexecution监控执行的命令和参数,这些命令和参数可能利用定时任务执行恶意代码。DS0032Container容器创建监控可能使用计划任务执行恶意代码的新创建容器。DS0022文件创建监视新创建的文件,这些文件可能使用计划任务来执行恶意代码。文件修改监控可能利用计划任务执行恶意代码的修改文件。DS0009processprocesscreation监控新创建的进程,这些进程可能使用计划任务执行恶意代码。DS0003计划任务创建计划任务监控新创建的计划任务,这些任务可能会执行恶意代码。3.3无服务器执行(T1648)攻击者可能利用无服务器计算、集成和自动化服务在云环境中执行任意代码。许多云提供商提供各种无服务器资源,包括计算引擎、应用程序集成服务和Web服务器。攻击者利用这些资源作为执行任意命令的手段。例如,攻击者使用无服务器功能来执行恶意代码(例如加密挖掘恶意软件)。攻击者还可以创建特权帐户来执行原始用户无法执行的操作。攻击者可以调用无服务器函数来执行云事件,并随着时间的推移将它们持久化。例如,在AWS环境中,攻击者可能会创建一个Lambda函数,自动向用户添加额外的云凭证,以及相应的CloudWatch事件规则,在创建新用户时调用该函数。同样,攻击者可以在Office365环境中创建PowerAutomate工作流,转发用户收到的所有电子邮件,或者在授予用户访问SharePoint中的文档时创建匿名共享链接。3.3.1缓解ID缓解描述M1018用户帐户管理删除从未明确请求过无服务器资源的用户的创建、修改或运行无服务器资源的权限。3.3.2DetectIDDataSourceDataComponentDetectDS0015ApplicationLogApplicationLogContent监控无服务器执行产生的日志,查看异常活动。例如,在Exchange环境中,PowerAutomate通过Outlook365连接器发送的电子邮件在SMTP标头“x-ms-mail-application”中包含短语“PowerApp”或“PowerAutomate”。DS0025CloudServiceCloudServiceModification监控无服务器资源的创建和修改。3.4使用共享模块执行(T1129)攻击者可以通过加载共享模块来执行恶意负载,并通过Windows模块加载器从任意本地路径和网络路径加载DLL。此功能在NTDLL.dll中,它是Windows本机API的一部分,来自Win32API的CreateProcess、LoadLibrary等函数调用。模块加载器可以通过以下方式加载DLL:通过在导入目录中指定DLL路径名;通过导出转发到另一个DLL,指定路径名;通过NTFS或Symlinkprogram.exe.Local,包括在DLL路径名中指定的导入和导出;通过在嵌入式或外部应用程序清单中。文件名是指导入或导出目录中的条目。攻击者可能会使用此功能在受害系统上执行任意负载。例如,恶意软件可能会执行共享模块以加载其他组件或功能。3.4.1缓解措施ID缓解措施描述M1038执行预防防止通过应用程序控制工具加载未知DLL,识别并阻止恶意软件。3.4.2检测ID数据源数据组件检测DS0011模块模块加载限制DLL模块加载到%SystemRoot%和%ProgramFiles%目录将防止从不安全路径加载模块。DS0009进程操作系统API执行监控可能会通过加载共享模块来执行恶意负载API调用。3.5利用第三方软件部署工具(T1072)攻击者可以访问和使用安装在企业网络中的第三方软件,如管理、监控和部署系统,在网络中横向移动。攻击者可以利用第三方软件远程执行代码,这些代码可以横向移动到其他系统、收集信息或产生特定效果,例如擦除所有端点上的硬盘驱动器。此操作所需的权限因系统配置而异,本地凭据提供对第三方系统的直接访问,或需要特定域凭据,系统可能需要管理帐户才能登录或执行。3.5.1缓解ID缓解说明M1015ActiveDirectory配置通过使用组策略确保关键网络系统访问隔离。M1032多因素认证通过多因素认证保证关键网络系统访问的隔离。M1030网络分段通过使用防火墙确保关键网络系统的系统隔离。M1027密码策略验证可用于访问已部署系统的帐户凭据是唯一的,并且不会在整个企业网络中使用。M1026特权帐户管理仅向有限数量的管理员授予对应用程序部署系统的访问权限。M1029远程数据存储如果可以将应用程序部署系统配置为仅部署签名的二进制文件,请确保受信任的签名证书不与应用程序部署系统位于同一位置,而是位于无法远程访问或受到严格控制的系统上。M1051更新软件会定期更新补丁,以防止远程访问利用特权。M1018用户账户管理,确保接入系统的第三方提供商账户可追溯,不会被全网使用或共享。确保定期审查提供给这些系统的帐户,并确保有回收访问权限的机制。通过使用帐户权限分离确保隔离对关键网络系统的访问。M1017用户培训对已部署系统的使用有严格的审批政策。3.5.2ID数据源数据组件检测DS0015应用日志应用日志内容通过对第三方应用日志的审计,发现可疑的未授权行为和异常的账号登录行为。DS0009processprocesscreation监视新创建的进程的行为。3.6利用系统服务(T1569)攻击者可能利用系统服务或守护进程来执行命令或程序。攻击者可以通过在本地或远程与服务交互来执行恶意代码。许多服务设置为在启动时运行,这有助于持久性,但攻击者也可以利用服务进行一次性执行。使用系统服务技术包括2个子技术,如下:3.6.1Launchctl(T1569.001)攻击者可以使用launchctl来执行命令或程序。Launchctl与launchd交互,launchd是macOS的服务管理框架。Launchctl支持交互式访问命令行上的子命令,甚至从标准输入重定向。攻击者使用launchctl作为启动代理或守护进程来执行命令和程序。常见的子命令包括:??launchctlload、launchctlunload和launchctlstart。攻击者可以使用脚本或手动运行命令launchctlload-w"%s/Library/LaunchAgents/%s"或/bin/launchctlload来执行启动代理或启动守护进程。3.6.2服务执行(T1569.002)攻击者可能利用Windows服务控制管理器执行恶意负载。WindowsServiceControlManager是管理和运行服务的界面,用户可以通过GUI组件和sc.exe、Net等系统程序访问ServiceControlManager。PsExec用于针对由服务控制管理器API创建的临时Windows服务执行命令或有效负载。PsExec、sc.exe等工具可用于远程执行。攻击者可能会结合使用新服务和特权升级等技术来执行恶意负载。3.6.3缓解措施ID缓解措施描述M1040端点行为防御在Windows10上,启用攻击面减少(ASR)规则以防止PsExec创建的进程运行。M1026特权帐户管理确保权限不允许具有较低特权级别的用户创建或与在较高特权级别运行的服务交互。M1022限制文件和目录权限确保具有较低权限级别的用户无法替换或修改具有较高权限级别的服务二进制文件。M1018用户帐户管理阻止用户安装他们自己的引导代理或引导守护程序。3.6.4ID数据源数据组件检测DS0017命令命令执行监控异常命令行调用,包括修改不符合正常使用模式的软件、补丁或服务。DS0022文件文件修改监控ChangesmadetofilesDS0009Process进程创建监控NewcreatedprocessesDS0019ServiceservicecreationmonitoringNewcreatedservicesDS0024WindowsregistryWindowsregistryentrymodificationmonitoring3.7诱导用户执行(T1204)攻击者可能依赖特定的用户操作来获得执行力。用户可能会受到社会工程的影响,例如打开恶意文件或链接以执行恶意代码,这被视为网络钓鱼的后续行动。攻击者还可以诱使用户采取诸如启用远程访问软件、允许攻击者直接控制系统或下载和执行恶意软件等操作。诱导用户执行的技术包括3个子技术,具体如下:3.7.1恶意链接(T1204.001)攻击者可能依赖用户点击恶意链接获得执行。可以对用户进行社交工程,让用户单击链接,这将导致代码执行。单击该链接还可能导致其他执行技术,例如利用浏览器或应用程序漏洞,并且该链接还可能导致用户下载与恶意代码执行相关的文件。3.7.2恶意文件(T1204.002)攻击者可能依赖用户打开恶意文件执行。用户可能会受到社会工程的影响,使他们打开会导致代码执行的文件。攻击者可以使用多种需要用户执行的文件类型,包括.doc、.pdf、.xls、.rtf、.scr、.exe、.lnk、.pif和.cpl。攻击者可能会使用各种形式的伪装和混淆文件来增加用户打开并成功执行恶意文件的可能性。这些方法可能包括使用熟悉的命名约定或密码保护文件,以及向用户提供有关如何打开文件的说明。3.7.3恶意图形(T1204.003)攻击者可能依赖用户运行恶意图形以获得执行。后门可以安装在主流的云平台和容器运行时。后门镜像可以上传到带有恶意软件的公共存储库,用户可以从镜像中下载并部署一个实例或容器,而没有意识到镜像是恶意的,这可能导致在实例或容器中执行恶意代码,例如执行加密货币挖掘代码。攻击者还可能以某种方式命名镜像(例如:匹配合法名称或位置)以混淆用户,增加用户错误地从镜像部署实例或容器的机会。3.7.4缓解ID缓解描述M1040端点行为预防在Windows10上,启用攻击面减少(ASR)规则以防止可执行文件运行并通过阻止恶意代码写入磁盘内容来防止Office应用程序创建恶意可执行文件。M1038执行保护通过应用程序控制防止运行伪装的可执行文件。M1031网络入侵防御如果用户正在访问该链接,则可以使用网络入侵防御系统。M1021限制基于Web的内容如果用户正在访问链接,默认情况下阻止传输中不应下载的未知或未使用文件,例如.scr、.exe、.pif、.cpl等。一些下载扫描设备可以打开并分析可能用于隐藏恶意文件的压缩和加密格式,例如zip和rar。M1017用户培训通过用户培训提高用户对常见钓鱼技术的认识,增强安全意识。3.7.5ID数据源数据组件检测DS0015应用日志applicationlog内容监测第三方应用日志记录,发现异常用户执行行为。DS0017命令命令执行监视应用程序的执行和命令行参数。DS0032ContainerContainerCreation监控新创建的容器,这些容器可能会使用现有的合法外部Web服务而不是其主要命令和控制通道来泄露数据。容器启动监视容器的激活或调用。DS0022文件文件创建防病毒软件可能会检测到在用户计算机上下载和执行的恶意文档和文件。端点防御系统可能会在文件打开后检测到恶意事件。DS0007ImageImagecreation监控新创建的图像,这些图像可能使用现有的合法外部Web服务而不是其主要命令和控制通道来泄露数据。DS0030实例创建对新创建实例的实例监控可能会使用现有的合法外部Web服务而不是其主要命令和控制通道来泄露数据。InstanceLaunch监控实例的激活或调用。DS0029NetworkTrafficNetworkConnectionCreation监控发送到恶意或可疑目的地的新创建的基于Web的网络连接。检测异常进程执行和命令行参数(例如,监视由regsvr32.exe、rundll.exe、.SCF、HTA、MSI、DLL或msiexec.exe不正确启动或启动的网络连接)。.网络流量内容监控和分析与基于Web的网络连接相关的流量包,检测异常进程执行和命令行参数。DS0009ProcessProcessCreation监视新执行的进程,攻击者可能使用这些进程来获得需要用户交互的初始访问权限。3.8使用WindowsManagementInstrumentation(WMI)(T1047)攻击者可能使用WindowsManagementInstrumentation(WMI)来执行恶意负载。WMI是一种管理功能,它提供了一个统一的环境来访问Windows系统组件。WMI服务支持本地和远程访问,常用端口:135和5985。攻击者可以使用WMI与本地和远程系统交互,远程执行文件进行信息收集、横向移动等。3.8.1缓解ID缓解说明M1040端点行为预防在Windows10上,启用攻击面减少(ASR)规则以防止运行WMI命令创建的进程。注意:许多合法工具和应用程序使用WMI来执行命令。M1038执行预防如果给定系统或网络不需要执行wmic.exe,请使用配置为阻止wmic.exe执行的应用程序控件,以防止被对手潜在利用。例如,在Windows10和WindowsServer2016及更高版本中,可以应用WindowsDefender应用程序控制(WDAC)策略规则来阻止wmic.exe应用程序并防止利用。M1026特权账户管理防止管理员和特权账户系统之间的凭据重叠。M1018用户帐户管理默认情况下,只允许管理员使用WMI进行远程连接。限制允许哪些其他用户连接,或禁止所有用户远程连接到WMI。3.8.2检测ID数据源数据组件DetectDS0017CommandCommandExecutionMonitoring用于执行远程行为操作的命令和参数。DS0029NetworkTrafficNetworkConnectionCreation监控WMI连接的网络流量,在不正常使用WMI的环境中使用WMI被认为是异常的。DS0009processprocesscreation监控新创建的wmic进程或命令行