2023年4月24日,RSAC2023 在美国旧金山召开,MITRE组织在RSAC召开第二天(北京时间:2023年4月25日22:30-23:30)也准时发布了ATT&CK v13版本。
正如ATT&CK 2023 Roadmap所述,该版本更新了企业、移动和 ICS 的技术、攻击组织、攻击活动和软件。ATT&CK v13 中最大的变化是为 ATT&CK for Enterprise、移动数据源中的一些技术添加了详细的检测指南,以及两种新类型的变更日志,以帮助更准确地识别 ATT&CK 中发生的变化。随附的博客文章描述了这些变化以及 ATT&CK 各个领域和平台的改进。
#RSAC2023 ATT&CK 官方贴纸(来自ATT&CK官方社交账号)
ATT&CK v13版本增加了一个新的人类可读的详细变更日志,更具体地描述了更新的 ATT&CK 对象中发生的变化,另外还有一个新的机器可读的 JSON格式的变更日志,其格式在ATT&CK的Github中进行了详细的描述。这些发行说明中使用的术语也发生了更新,以更好地描述对各种 ATT&CK 对象的更改:
•新对象:仅在新版本中出现的 ATT&CK 对象。
•大版本更改:具有主要版本更改的 ATT&CK 对象。(例如,1.0 → 2.0)
•小版本更改:具有次要版本更改的 ATT&CK 对象。(例如,1.0 → 1.1)
•修正(Patch):ATT&CK对象做修正,版本不变。(例如,1.0 → 1.0 但拼写错误、URL 或某些元数据等内容已修复)
•对象撤销:被不同对象撤销的 ATT&CK 对象。
•对象弃用:已弃用且不再使用且未被替换的 ATT&CK 对象。
•对象删除:不再在 STIX 数据中找到的 ATT&CK 对象。
ATT&CK 新增了两种类型变更日志,可以看出MITRE组织在对于其框架使用的便利性上一直在做不断的投入,该日志记录对于基于ATT&CK进行安全运营的组织或安全公司带来了便利,可以通过访问和解析变更日志,快速识别和集成ATT&CK的更新。 |
同步更新的还有ATT&CK 浏览器:https://mitre-attack.github.io/attack-navigator/
详细更新说明
此版本(v13)的 ATT&CK for Enterprise 包含 14 个战术、196 个技术、411 个子技术、138 个组、22 个攻击活动和 740 个软件。
而在v12的 ATT&CK for Enterprise 中包含 14 个战术、193 个技术、401 个子技术、135 个组、14 个攻击活动和 718 个软件。
相比v13版本,v13版本做了以下更新:
•企业矩阵新增技术:13个(父技术3个,子技术10个)
•企业矩阵大版本更新:1个
•企业矩阵小版本更新:136个
•企业矩阵修正:82个
•新组织:3个
•组织大版本更新:3个
•组织小版本更新:31个
•组织修正:10个
•新攻击活动:8个(企业:7个,ICS:2个,其中的2016乌克兰电力攻击已经包含在企业矩阵中)
•攻击活动小版本更新:3个
•新增软件:22个(企业:15个,移动:7个,ICS:1个,其中的Industroyer2已经包含在企业矩阵中)
对于企业矩阵,从ATT&CK的更新中可以看出,ATT&CK矩阵不仅包括纯技术手法的描述,也包括了初始访问中买卖受害者系统权限的行为手法,比如:买卖webshell、买卖内网代理,还增加了通过购买广告位的方式投放恶意站点和恶意软件行为手法。除此之外,在本次更新中还特别新增了针对安全运营的攻击:欺骗安全告警的行为手法,以及近几年常用的基于云上Agent和云API的攻击手法。 |
企业矩阵13个新增技术解读
【T1650】获取访问权限
英文名
Acquire Access
技术描述
攻击者可以购买或以其他方式获得对目标系统或网络的现有访问权限。通过各种在线服务和代理网络出售的对已被攻击系统的访问权限。在某些情况下,敌对团体可能会结成伙伴关系,彼此共享受害者系统的访问权限。
受感染系统的立足点可能有多种形式,例如访问植入的后门(例如Web Shell )或通过外部远程服务建立访问。在某些情况下,访问代理会植入带有“loader”的受感染系统,该“loader”可用于为付费客户安装额外的恶意软件。
通过利用现有的访问代理网络而不是开发或获得自己的初始访问功能,对手可以潜在地减少在目标网络上立足所需的资源,并将他们的精力集中在后期的攻击阶段。攻击者可能会优先获取对已确定缺乏安全监控或具有高权限的系统或属于特定部门组织的系统的访问权限。
在某些情况下,购买对 IT 承包、软件开发或电信等部门的组织的访问权限可能允许对手通过信任关系、多因素身份验证拦截甚至供应链妥协来危害更多受害者。
注意:虽然此技术不同于其他行为,例如购买技术数据和凭证,但它们通常可以结合使用(尤其是在获得的立足点需要有效帐户的情况下)。
缓解措施
ID | 缓解 | 描述 |
M1056 | Pre-compromise | 这种技术无法通过预防性控制轻易缓解,因为它基于在企业防御和控制范围之外执行的行为。 |
检测
其中大部分发生在目标组织的可见性之外,使防御者难以发现。
检测工作可能集中在对手生命周期的相关阶段,例如在初始访问期间。
【T1583.008】获取基础设施:恶意广告
英文名
Acquire Infrastructure: Malvertising
技术描述
攻击者可能会购买可被滥用以向受害者分发恶意软件的在线广告服务。可以购买广告以在网上的特定位置种植和有利地放置人工制品,例如放置在搜索引擎结果中的显著位置。这些广告可能会使用户更难区分实际搜索结果和广告。购买的广告还可以使用广告网络的功能针对特定受众,从而可能进一步利用对搜索引擎和热门网站固有的信任。
攻击者可能会购买广告和其他资源,来辅助向受害者分发包含恶意代码的软件。购买的广告可能会试图冒充或欺骗知名品牌。例如,这些欺骗性广告可能会诱骗受害者点击广告,然后将他们跳转到恶意域,该域可能是包含广告软件木马化版本的官方网站的克隆。攻击者可以通过自动化伸缩的方式创建恶意域名和购买广告,以更好地对抗清理工作。
恶意广告可用于支持被动攻击(Drive-by Target和Drive-by Compromise),如果广告包含感染目标系统网络浏览器的代码/漏洞,则可能需要用户进行有限的交互。
对手还可以使用多种技术来逃避广告网络的检测。例如,攻击者可能会有选择的将自动爬虫的监控流量发送到良性网站,而在发现潜在目标时,然后将受害者从真实广告点击中转发到恶意页面。因此,这种感染方式可能对广告网络以及任何未通过点击广告的有效标识符到达恶意站点的访问者保持隐藏。还有其他一些躲避技巧,例如利用故意的拼写错误躲避品牌声誉监控,也可用于躲避自动检测。
缓解措施
ID | 缓解 | 描述 |
M1056 | 预先妥协 | 这种技术无法通过预防性控制轻易缓解,因为它基于在企业防御和控制范围之外执行的行为。应将精力集中在初始访问活动上,例如:使用广告拦截器可以帮助防止恶意代码的执行。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0035 | 网络扫描 | 站点响应内容 | 如果先前已识别出与恶意广告相关的恶意网络内容中的基础设施或模式,则互联网扫描可能会发现对手何时上演了恶意网络内容。大部分此类活动将发生在目标组织的可见性之外,因此很难检测到此行为。检测工作可能集中在攻击者生命周期的其他阶段,例如在网站上注入恶意代码或利用客户端执行的过程。 |
【T1651】云管理命令
英文名
Cloud Administration Command
技术描述
攻击者可能会滥用云管理服务在虚拟机或混合连接的设备中执行命令。如:AWS Systems Manager、Azure RunCommand 和 Runbooks 等允许用户利用已安装的虚拟机Agent在虚拟机中远程运行脚本。同样,在 Azure AD 环境中,Microsoft Endpoint Manager 允许全局或 Intune 管理员在加入 Azure AD 的本地设备上以 SYSTEM 身份运行脚本。
如果对手获得对云环境的管理访问权限,他们可能会滥用云管理服务在环境的虚拟机或本地混合连接设备中执行命令。此外,破坏服务提供商或委派管理员帐户的对手可能同样能够利用信任关系在连接的虚拟机中执行命令。
攻击过程示例
ID | 名称 | 描述 |
S0677 | AADInternals | AADInternals可以使用 VM 代理在 Azure 虚拟机上执行命令。 |
G0016 | APT29 | APT29使用 Azure Run Command 和 Azure Admin-on-Behalf-of (AOBO) 在虚拟机上执行代码。 |
缓解措施
ID | 缓解 | 描述 |
M1026 | 特权账户管理 | 限制有在虚拟机上远程执行命令的云帐户数量,并确保这些帐户不用于日常操作。在 Azure 中,限制具有Azure Virtual Machine Contributer及以上角色的帐户数量,并考虑使用临时角色(Just-in-Time,简称JIT) 以避免永久分配对虚拟机的特权访问。在 Azure AD 中,将全局和 Intune 管理员的数量限制为仅需要的数量。在 AWS 中,限制具有执行ssm:SendCommand操作权限的用户,并使用标签来限制可以在机器上执行命令的用户机器数量。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监控在虚拟机上执行的命令和脚本。在 Azure 中,可以通过 Azure 活动日志识别 Azure RunCommand 的使用情况,并且在 Windows 虚拟机上的C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows目录中提供有关执行作业结果的其他详细信息。 |
DS0009 | 进程 | 进程创建 | 监控虚拟机以创建与云虚拟机代理关联的进程。在基于 Windows 的 Azure 计算机中,监视 WindowsAzureGuestAgent.exe 进程。 |
DS0012 | 脚本 | 脚本执行 | 监控在虚拟机上执行的命令和脚本。在 Azure 中,可以通过 Azure 活动日志识别 Azure RunCommand 的使用情况,并且在 Windows 虚拟机上的C:\\Packages\\Plugins\\Microsoft.CPlat.Core.RunCommandWindows目录中提供有关执行作业结果的其他详细信息。 |
【T1059.009】命令和脚本解释器:Cloud API
英文名
Command and Scripting Interpreter: Cloud API
技术描述
对手可能会滥用云 API 来执行恶意命令。云环境中可用的 API 提供各种功能,并且是一种功能丰富的方法,用于以编程方式访问租户的几乎所有方面。这些 API 可以通过各种方法使用,例如命令行解释器 (CLI)、浏览器内 Cloud Shell、PowerShell模块(如 Azure for PowerShell ([1]))或可用于Python等语言的软件开发工具包 (SDK) 。
云 API 功能可能允许对租户中的所有主要服务进行管理访问,例如计算、存储、身份和访问管理 (IAM)、网络和安全策略。
有了适当的权限(通常通过使用应用程序访问令牌和Web 会话 Cookie 等凭证),对手可能会滥用云 API 来调用执行恶意操作的各种功能。例如,可以通过安装在云托管或本地主机上的二进制文件访问 CLI 和 PowerShell 功能,或者通过许多云平台(例如 AWS、Azure 和 GCP)提供的基于浏览器的云外壳访问。这些云 shell 通常是一个打包的统一环境,用于使用 CLI 和/或作为云环境中的容器托管的脚本模块。
攻击过程示例
ID | 名称 | 描述 |
G0016 | APT29 | APT29利用 Microsoft Graph API 在 Azure 和 M365 环境中执行各种操作。他们还利用 AADInternals PowerShell 模块访问 API |
G0139 | TNT战队 | TeamTNT已利用 AWS CLI 枚举具有受害者凭证的云环境。 |
缓解措施
ID | 缓解 | 描述 |
M1038 | 执行预防 | 在适当的地方使用应用程序控制来阻止使用 PowerShell CmdLets 或其他基于主机的资源来访问云 API 资源。 |
M1026 | 特权账户管理 | 使用适当的身份和访问管理 (IAM) 以及基于角色的访问控制 (RBAC) 策略来限制管理员可以执行的操作,并提供管理操作的历史记录,从而能够检测未经授权的使用和滥用。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 考虑查看主机或云审计日志中的命令历史记录,以确定是否执行了未经授权或可疑的命令。 Cloud API 活动日志记录通常默认启用,并且可以在 Microsoft Unified Audit Log、AWS CloudTrail 和 GCP Admin Acitivty 日志等来源中查看。查看这些来源以了解执行的 API 命令的历史记录。还可以查看主机日志以捕获 CLI 命令或 PowerShell 模块使用情况以调用云 API 函数。 |
【T1652】设备驱动程序发现
英文名
Device Driver Discovery
技术描述
攻击者可能会尝试枚举受害主机上的本地设备驱动程序。有关设备驱动程序的信息可能会突显出影响后续行为的各种见解,例如主机的功能/目的、当前的安全工具(即安全软件发现)或其他防御措施(例如虚拟化/沙盒规避),以及潜在的可利用的漏洞(例如,利用特权升级)。
许多操作系统实用程序可能会提供有关本地设备驱动程序的信息,例如driverquery.exeWindowsEnumDeviceDrivers()上的 API 函数。有关设备驱动程序的信息(以及相关服务,即系统服务发现)也可能在注册表中可用。
在 Linux/macOS 上,设备驱动程序(内核模块)可能在/dev中,或者通过执行命令,如lsmod和modinfo进行查看。
攻击过程示例
ID | 名称 | 描述 |
S0376 | HOPLIGHT | HOPLIGHT可以枚举位于注册表HKLM\\Software\\WBEM\\WDM中的设备驱动程序。 |
S0125 | Remsec | Remsec有一个插件可以检测某些安全产品的活动驱动程序。 |
缓解措施
这种类型的攻击技术无法通过预防性控制轻易缓解,因为它基于对系统功能的滥用。
检测
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监视已执行的命令(如lsmod、driverquery等),其参数突出显示枚举设备驱动程序的潜在恶意尝试。 |
DS0009 | 进程 | 操作系统 API 执行 | 监视可能试图收集有关本地设备驱动程序信息的API 调用(例如EnumDeviceDrivers())。 |
进程创建 | 监视进程(如lsmod、driverquery.exe等)以查找可能突出潜在恶意尝试枚举设备驱动程序的事件。 | ||
DS0024 | Windows 注册表 | Windows 注册表项访问 | 监视是否有尝试访问注册表中存储的有关设备及其相关驱动程序的信息,例如HKLM\\SYSTEM\\CurrentControlSet\\Services和下的值HKLM\\SYSTEM\\CurrentControlSet\\HardwareProfiles。 |
【T1567.003】通过 Web 服务泄露数据:渗出数据到文本存储站点
英文名
Exfiltration Over Web Service: Exfiltration to Text Storage Sites
技术描述
对手可能会将数据泄露到文本存储站点,而不是他们的主要命令和控制渠道。文本存储站点(例如pastebin[.]com)通常被开发人员用来共享代码和其他信息。
文本存储站点通常用于托管用于 C2 通信的恶意代码(例如,Stage Capabilities),但对手也可能使用这些站点来泄露收集到的数据。此外,付费功能和加密选项可能会让对手更安全地隐藏和存储数据。
注意:这与Exfiltration to Code Repository不同,后者强调通过 API 访问代码存储库。
缓解措施
ID | 缓解 | 描述 |
M1021 | 限制基于 Web 的内容 | Web 代理可用于实施外部网络通信策略,以防止使用未经授权的外部服务。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0029 | 网络流量 | 网络流量内容 | 监视和分析网络流量,以发现通过使用文本存储站点渗出数据的尝试,如:对文本存储站点的 POST 请求。 |
网络流量 | 监控网络数据中不常见的数据流,特别是文本存储站点,例如Pastebin[.]com、Paste[.]ee和Pastebin[.]pl。 |
【T1562.011】削弱防御:欺骗安全警报
英文名
Impair Defenses: Spoof Security Alerting
技术描述
对手可能会欺骗来自工具的安全警报,提供虚假证据来削弱防御者对恶意活动的认识。防御工具产生的消息包含有关潜在安全事件以及安全软件和系统的运行状态的信息。安全报告消息对于监视系统的正常运行和识别可能预示发生入侵的重要事件很重要。
与直接阻止传感器不同或除了阻止传感器之外,攻击者还可以欺骗安全软件,即让安全工具虽然已经被禁用,但其功能(例如:禁用或修改工具)还看起来能正确运行。即使在感染后,也可以呈现“健康”的系统状态。这样就可以通过增加防御者响应的延迟来进行进一步的恶意活动。
例如,在禁用 Windows Defender 和其他系统工具后,攻击者可能会显示虚假的 Windows 安全界面和托盘图标以显示“健康”的系统状态。
缓解措施
ID | 缓解 | 描述 |
M1038 | 执行预防 | 使用应用程序控制来减少可能用于欺骗安全警报的payload的安装和使用。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0009 | 进程 | 进程创建 | 考虑监视可能欺骗安全工具和监视消息的可疑进程。 |
DS0013 | 传感器健康状态 | 主机状态 | 监控日志记录、消息传递和其他突出显示主机传感器健康状况的工件(例如,指标、错误和/或来自日志记录应用程序的异常),尤其是将集中式遥测与单个系统上出现的潜在可疑通知进行关联和比较。 |
【T1036.008】伪装:伪装文件类型
英文名
Masquerading: Masquerade File Type
技术描述
攻击者可能通过更改payload的格式(包括文件的特征、扩展名和内容)将恶意payload伪装成合法文件。各种文件类型都有一个典型的标准格式,包括它们的编码和结构。例如,文件的特征(也称为标头或魔术字节)是文件的开始字节,通常用于识别文件的类型。例如,JPEG 文件的标题是, 0xFF 0xD8文件扩展名是.JPE,.JPEG或.JPG。
攻击者可能会编辑标头的十六进制代码和/或恶意payload文件扩展名,以绕过文件验证检查和/或输入清理。这种行为通常在传输payload文件(例如Ingress Tool Transfer)和存储(例如Upload Malware)时使用,以便对手可以在不触发检测的情况下移动他们的恶意软件。
常见的不可执行文件类型和扩展名,如文本文件 ( .txt) 和图像文件 ( .jpg,.gif等) 通常被视为良性文件。基于此,攻击者可能会使用文件扩展名来伪装恶意软件,例如将 PHP 后门代码命名为文件名为test.gif。由于良性外观和文件扩展名,用户可能不知道文件是恶意的。
Polygot 文件是具有多种不同文件类型并且根据执行它们的应用程序功能不同的文件,也可用于伪装恶意软件和功能。
攻击过程示例
ID | 名称 | 描述 |
C0025 | 2016年乌克兰电力攻击 | 在2016 年乌克兰电力攻击期间,Sandworm 团队将可执行文件伪装成.txt文件。 |
S1053 | AvosLocker | AvosLocker已伪装成 .jpg 文件。 |
S1063 | Brute Ratel C4 | Brute Ratel C4使用 Microsoft Word 图标来隐藏恶意 LNK 文件。 |
C0022 | Operation Dream Job | 在Operation Dream Job期间,Lazarus Group将恶意模板文件伪装成 JPEG 文件以避免被发现。 |
S0650 | QakBot | QakBot有效负载已伪装成 PNG 文件,并使用 Microsoft 文件资源管理器图标隐藏在 LNK 文件中。 |
缓解措施
ID | 缓解 | 描述 |
M1049 | 防病毒/反恶意软件 | 防病毒可用于自动隔离可疑文件。 |
M1040 | 终端行为防御 | 在终端上实施安全控制,例如主机入侵防御系统 (HIPS),以识别和防止执行具有不匹配文件特征的文件。 |
M1038 | 执行防御 | 确保执行输入清理并在执行前正确验证文件;此外,实施严格的允许列表以确保只处理授权的文件类型。限制和/或阻止执行文件头和扩展名不匹配的文件。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监视来自其他不可执行文件类型(例如.txt和.jpg)的异常命令执行。 |
DS0022 | 文件 | 文件修改 | 使用魔术字节检测和/或文件签名验证检查并确保文件头/签名和扩展名匹配。在 Linux中,file命令可用于检查文件签名。 |
【T1556.008】修改身份验证过程:网络提供程序 DLL
英文名
Modify Authentication Process: Network Provider DLL
技术描述
攻击者可能会注册恶意网络提供商动态链接库 (DLL) 以在身份验证过程中捕获明文用户凭据。网络提供程序 DLL 允许 Windows 与特定网络协议进行交互,还可以支持附加凭据管理功能。在登录过程中,Winlogon(交互式登录模块)mpnotify.exe通过 RPC 将凭据发送到本地进程。然后,该mpnotify.exe过程在通知登录事件正在发生时,以明文形式与已注册的凭据管理器共享凭据。
攻击者可以配置恶意网络提供程序 DLL 以从mpnotify.exe中获取认证凭据。一旦作为凭据管理器安装(通过注册表),恶意 DLL 可以在用户每次通过NPLogonNotify()功能登录到 Windows 工作站或域时接收并保存凭据。
攻击者可能会在已知具有较大量的登录活动和/或管理员登录活动的系统(例如服务器和域控制器)上植入恶意网络提供程序 DLL。
缓解措施
ID | 缓解 | 描述 |
M1047 | 审计 | 定期检查注册表 ( HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\ \\NetworkProvider\\ProviderPath ) 中新的和未知的网络提供商 DLL。 确保仅注册有效的网络提供程序 DLL。这些名称可以在 的注册表项中找到HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\NetworkProvider\\Order,并有相应的服务子项指向 的 DLL HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentC ontrolSet\\Services\\ \\NetworkProvider 。 |
M1028 | 操作系统配置 | 从 Windows 11 22H2 开始,EnableMPRNotifications可以通过组策略或配置服务提供商禁用该策略,以防止 Winlogon 向网络提供商发送凭据。 |
M1024 | 限制注册表权限 | 限制注册表权限以禁止修改敏感的注册表项,例如HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\NetworkProvider\\Order。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0022 | 文件 | 文件创建 | 监视可能用于注册恶意网络提供商动态链接库 (DLL) 的新创建的文件。 |
DS0009 | 进程 | 操作系统 API 执行 | 监控对NPLogonNotify()的调用。 |
DS0024 | Windows 注册表 | Windows 注册表项创建 | 监控网络提供商注册表项(例如HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\ \\NetworkProvider )的添加。 |
Windows 注册表项修改 | 监视网络提供商注册表条目的更改(例如,HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\NetworkProvider\\Order)并关联,然后调查这些值引用的 DLL 文件。 |
【T1027.010】混淆文件或信息:命令混淆
英文名
Obfuscated Files or Information: Command Obfuscation
技术描述
攻击者可能会在命令执行期间混淆内容以阻碍检测。命令行混淆是一种使基于命令和脚本中的字符串和正则表达式更难识别和分析的方法。这种类型的混淆可以包含在由投递payload执行的命令中(例如,网络钓鱼和被动攻击Drive-by Compromise)或通过命令和脚本解释器交互。
例如,对手可能会滥用使用各种符号和转义字符(例如空格、 ^. 、 +.$和%)的语法,使命令难以分析,同时保持相同的预期功能。许多语言支持 base64 或 URL 编码形式的内置混淆。攻击者还可以通过字符串拆分 ("Wor"+"d.Application")、字符的顺序和大小写 ( rev <<<"dwssap/cte/ tac")、全局 ( mkdir -p "/tmp/:&$NiA") 以及涉及通过标记/环境变量/输入流传递字符串的各种技巧来手动实施命令混淆。
攻击者还可能使用诸如目录遍历之类的技巧来混淆对命令 ( C:\\voi\\pcw\\..\\..\\Windows\\tei\\qs\\k\\..\\..\\..\\system32\\erool\\..\\wbem\\wg\\je\\..\\..\\wmic.exe shadowcopy delete) 调用的二进制文件的引用。
诸如Invoke-Obfuscation和 之类的工具Invoke-DOSfucation也被用来混淆命令。
攻击过程示例
ID | 名称 | 描述 |
G0073 | APT19 | APT19使用Base64 来混淆执行的命令。 |
G0050 | APT32 | APT32使用该Invoke-Obfuscation框架来混淆他们的 PowerShell |
G0143 | Aquatic Panda | Aquatic Panda在Base64中编码了PowerShell 命令。 |
S0373 | Astaroth | Astaroth对其启动的 JScript代码进行了混淆和随机化处理。 |
S0475 | BackConfig | BackConfig使用了压缩和十进制编码的 VBS脚本。 |
C0018 | C0018 | 在C0018期间,威胁参与者使用 Base64 对其PowerShell 脚本进行编码。 |
C0021 | C0021 | 在C0021期间,威胁参与者使用了编码的PowerShell 命令。 |
S0462 | CARROTBAT | CARROTBAT能够在受感染主机上执行混淆命令。 |
G0114 | Chimera | Chimera对 PowerShell 命令进行了编码。 |
G0080 | Cobalt Group | Cobalt Group混淆了受害者机器上使用的几个小脚本和代码,包括通过使用 XOR 和 RC4。 |
S0126 | ComRAT | ComRAT使用加密和 base64 来混淆其在注册表中的协调器代码。ComRAT还使用了编码的 PowerShell 脚本 |
S0492 | CookieMiner | CookieMiner使用 base64编码来混淆系统上的脚本。 |
S0673 | DarkWatchman | DarkWatchman使用Base64对PowerShell 命令进行编码 |
S0354 | Denis | Denis已将其 PowerShell 命令编码为 Base64。 |
G1003 | Ember Bear | Ember Bear混淆了恶意脚本以帮助避免检测。 |
S0367 | Emotet | Emotet在恶意文档中混淆了宏,以隐藏托管恶意软件的URL、CMD.exe 参数和 PowerShell 脚本。 |
S0363 | Empire | Empire有能力使用Invoke-Obfuscation。 |
G0037 | FIN6 | FIN6使用了编码的 PowerShell 命令。 |
G0046 | FIN7 | FIN7使用碎片字符串、环境变量、标准输入(stdin) 和本机字符替换功能来混淆命令。 |
G0061 | FIN8 | FIN8使用环境变量和标准输入 (stdin) 来混淆命令行参数。FIN8还混淆了作为有效负载传递的恶意宏。 |
G0117 | Fox Kitten | Fox Kitten有 base64编码的脚本来避免检测。 |
C0001 | Frankenstein | 在弗兰肯斯坦期间,威胁参与者从命令行运行编码命令。 |
S0277 | FruitFly | FruitFly执行并存储混淆的 Perl 脚本。 |
G0047 | Gamaredon Group | Gamaredon Group使用了混淆或加密的脚本。 |
G0115 | GOLD SOUTHFIELD | GOLD SOUTHFIELD在受感染的主机上执行了 base64 编码的 PowerShell 脚本。 |
G1001 | HEXANE | HEXANE使用了 Base64 编码的脚本。 |
S1022 | IceApple | IceApple可以使用 Base64 和“垃圾”JavaScript 代码来混淆信息。 |
S0669 | KOCTOPUS | KOCTOPUS使用 BatchEncryption 工具混淆了脚本。 |
G0140 | LazyScripter | LazyScripter利用 BatchEncryption 工具执行高级批处理脚本混淆和编码技术。 |
G0077 | Leafminer | Leafminer混淆了受害者机器上使用的脚本。 |
S0451 | LoudMiner | LoudMiner混淆了各种脚本。 |
S0409 | Machete | Machete使用 pyobfuscate、zlib 压缩和 base64 编码进行混淆。Machete还使用了一些视觉混淆技术,通过将变量命名为字母组合来阻碍分析。 |
G0059 | Magic Hound | Magic Hound使用了 base64 编码的命令。 |
G0069 | MuddyWater | MuddyWater使用了 Daniel Bohannon 的 Invoke-Obfuscation 框架和混淆的 PowerShell 脚本。该组织还使用了其他混淆方法,包括对 VBScript 和 PowerShell 命令进行 Base64 混淆。 |
S0457 | Netwalker | Netwalker的 PowerShell 脚本已被多层混淆,包括 base64 和十六进制编码和 XOR 加密,以及混淆的 PowerShell 函数和变量。 |
C0012 | Operation CuckooBees | 在CuckooBees 行动期间,威胁参与者执行了一个编码的 VBScript 文件。 |
C0014 | Operation Wocao | 在窝草行动期间,威胁参与者执行了使用 Base64、zlib 和 XOR 编码或压缩的 PowerShell 命令。 |
G0040 | Patchwork | Patchwork使用 Crypto Obfuscator 混淆了一个脚本。 |
S0428 | PoetRAT | PoetRAT必须pyminifier混淆脚本。 |
S0685 | PowerPunch | PowerPunch可以使用 Base64 编码的脚本。 |
S0194 | PowerSploit | PowerSploit包含一组 ScriptModification 模块,用于压缩和编码脚本和有效负载。 |
S0223 | POWERSTATS | POWERSTATS使用字符替换、PowerShell环境变量和XOR 编码来混淆代码。POWERSTATS的后门代码是一个多层混淆、编码和压缩的 blob。POWERSTATS将 PowerShell 代码与自定义字符串混淆 |
S0650 | QakBot | QakBot可以使用经过混淆和编码的脚本。 |
S0269 | QUADAGENT | QUADAGENT可能使用Invoke-Obfuscation. |
S0270 | RogueRobin | 带有RogueRobin负载的 PowerShell 脚本使用Invoke-Obfuscation. |
G0034 | Sandworm Team | Sandworm Team已将 ROT13 编码、AES 加密和压缩与 zlib 库一起用于其基于 Python 的后门程序。 |
S0450 | SHARPSTATS | SHARPSTATS使用 base64 编码和 XOR 来混淆 PowerShell 脚本。 |
S0589 | Sibot | Sibot在执行过程中使用了混淆脚本。 |
G0121 | Sidewinder | Sidewinder对脚本使用 base64 编码。 |
G0091 | Silence | Silence使用环境变量字符串替换进行混淆。 |
S0390 | SQLRat | SQLRat使用了字符插入混淆技术,使脚本看起来包含中文字符。 |
G0092 | TA505 | TA505使用了 base64 编码的 PowerShell 命令。 |
G0127 | TA551 | TA551在 JavaScript 配置文件中使用了混淆的变量名。 |
G0010 | Turla | Turla使用加密(包括通过PowerSploit的加盐 3DES Out-EncryptedScript.ps1)、随机变量名称和 base64 编码来混淆 PowerShell 命令和有效负载。 |
S0386 | Ursnif | Ursnif droppers 执行 base64 编码的PowerShell命令。 |
G0102 | Wizard Spider | Wizard Spider使用 Base64 编码来混淆Empire服务和 PowerShell 命令。 |
S0330 | Zeus Panda | Zeus Panda混淆了其初始有效负载中的宏命令。 |
缓解措施
ID | 缓解 | 描述 |
M1049 | 防病毒/反恶意软件 | 考虑在 Windows 10+ 上使用反恶意软件扫描接口 (AMSI) 来分析处理/解释后的命令。 |
M1040 | 终端行为防御 | 在 Windows 10+ 上,启用攻击面减少 (ASR) 规则以阻止执行可能混淆的脚本。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监视执行的命令和参数是否存在混淆和潜在可疑语法,例如未解释的转义字符(例如,^)。 还要监视命令行是否存在特定于语法的混淆迹象,例如与编码相关的参数变体。 |
DS0022 | 文件 | 文件元数据 | 包含混淆内容的脚本可能具有更高的字符/字符串熵。 |
DS0012 | 脚本 | 脚本执行 | 监视执行的脚本是否存在混淆和可能可疑的命令语法,例如未解释的转义字符(例如,^)。 还要监视脚本中的命令以查找特定于语法的混淆迹象,例如编码的或其他不可读的字符块。 |
【T1027.011】混淆文件或信息:无文件存储
英文名
Obfuscated Files or Information: Fileless Storage
技术描述
对手可能会以“无文件”格式存储数据,以达到在防御系统下隐藏恶意活动的目的。无文件存储可以广义地定义为文件以外的任何格式。非易失性无文件存储的常见示例包括 Windows 注册表、事件日志或 WMI 存储库。
与反射代码加载和进程注入等无文件内存行为类似,无文件数据存储可能不会被防病毒和其他只能从磁盘存储中访问和识别特定文件格式的终端安全工具检测到。
攻击者可以使用无文件存储来隐藏各种类型的存储数据,包括payloads/shellcode(这些也可能用作持久化)和尚未从受害者那里泄露的收集数据(例如,本地数据暂存)。攻击者还经常在存储时加密、编码、拼接或以其他方式混淆这些无文件数据。
某些形式的无文件存储活动可能会间接地在文件系统中创建一些无文件对象,但是很难以检查的格式,例如 WMI(例如%SystemRoot%\\System32\\Wbem\\Repository)或注册表(例如%SystemRoot%\\System32\\Config)物理文件。
攻击过程示例
ID | 名称 | 描述 |
G0050 | APT32 | APT32的后门已将其配置存储在注册表项中。 |
S0631 | Chaes | Chaes的某些版本将其指令(或者在instructions.ini文件中)存储在注册表中。 |
S0023 | CHOPSTICK | CHOPSTICK可能会在 Windows 注册表中存储 RC4 加密的配置信息。 |
S0126 | ComRAT | ComRAT在注册表中存储了加密的协调程序代码和有效负载。 |
S0673 | DarkWatchman | DarkWatchman可以在注册表中存储配置字符串、键盘记录器和组件输出。 |
S0343 | Exaramel for Windows | Exaramel for Windows以 XML 格式将后门的配置存储在注册表中。 |
S0666 | Gelsemium | Gelsemium可以将其组件存储在注册表中。 |
S0531 | Grandoreiro | Grandoreiro可以在注册表中HKCU\\Software\\以经常更改的名称(包括%USERNAME%和 )存储其配置ToolTech-RM。 |
S0256 | Mosquito | Mosquito将配置值存储在注册表项HKCU\\Software\\Microsoft[dllname]下。 |
S0198 | NETWIRE | NETWIRE可以将其配置信息存储在HKCU:\\Software\\Netwire. |
C0012 | Operation CuckooBees | 在CuckooBees 行动期间,威胁参与者在 Windows CLFS(通用日志文件系统)事务日志中扫描有效负载。 |
S0517 | Pillowmint | Pillowmint在注册表项中存储了压缩的有效负载HKLM\\SOFTWARE\\Microsoft\\DRM。 |
S0501 | PipeMon | PipeMon已将其加密的payload存储在注册表中的HKLM\\SOFTWARE\\Microsoft\\Print\\Components\\下. |
S0518 | PolyglotDuke | PolyglotDuke可以在 Registry 中存储加密的 JSON 配置文件。 |
S0650 | QakBot | QakBot可以将其配置信息存储在一个随机命名的子项中HKCU\\Software\\Microsoft。 |
S0269 | QUADAGENT | QUADAGENT在配置单元的注册表项(例如 HKCU\\Office365DCOMCheck)中存储受感染系统唯一的会话标识符以及用于加密和解密 C2 通信的预共享密钥HKCU。 |
S0662 | RCSession | RCSession可以将其混淆后的配置文件存储在HKLM\\SOFTWARE\\Plus或HKCU\\SOFTWARE\\Plus下的注册表中。 |
S0511 | RegDuke | RegDuke可以将其加密密钥存储在注册表中。 |
S0496 | REvil | REvil可以在注册表中保存加密参数和系统信息。 |
S0596 | ShadowPad | ShadowPad在注册表中维护一个配置块和虚拟文件系统。 |
S0589 | Sibot | Sibot已在注册表项中安装了第二阶段脚本HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\sibot。 |
S0663 | SysUpdate | SysUpdate可以将其编码的配置文件存储在HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER下的Software\\Classes\\scConfig中。 |
S0665 | ThreatNeedle | ThreatNeedle可以将其配置数据保存为HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GameCon. |
S0668 | TinyTurla | TinyTurla可以将其配置参数保存在注册表中。 |
G0010 | Turla | Turla使用注册表来存储加密和编码的有效负载。 |
S0263 | TYPEFRAME | TYPEFRAME可以在注册表项HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ShellCompatibility\\Applications\\laxhost.dll和HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\PrintConfig中存储其加密的配置数据。 |
S0476 | Valak | Valak能够在注册表项HKCU\\Software\\ApplicationContainer\\Appsw64中存储有关 C2 服务器和下载的信息。 |
S0180 | Volgmer | Volgmer将编码的配置文件存储在HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\WMI\\Security. |
缓解措施
ID | 缓解 | 描述 |
M1047 | 审计 | 考虑定期审查常见的无文件存储位置(例如注册表或 WMI 存储库),以潜在地识别异常和恶意数据。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0024 | Windows注册表 | Windows注册表Key创建 | 监视注册表值的创建,这些值可能会突出显示恶意数据(例如命令或payload)的存储。 |
DS0005 | WMI | WMI创建 | 监视 WMI 对象和值的创建,这些对象和值可能会突出显示恶意数据(例如命令或payload)的存储。 |
【T1021.007】远程服务:云服务
英文名
Remote Services: Cloud Services
技术描述
攻击者可能会使用与本地用户身份同步或联合的有效帐户,在受感染的环境中登录可访问的云服务。然后,攻击者可能会以登录用户的身份执行管理操作或访问云托管资源。
许多企业将集中管理的用户身份联合到云服务,允许用户使用他们的域凭据登录以访问云控制平面。类似地,攻击者可以通过 Web 控制台或云命令行界面 (CLI)(例如Cloud API )连接服务,使用命令比如:Azure PowerShell的Connect-AZAccount 、Microsoft Graph PowerShell的Connect-MgGraph , 和Google Cloud CLI的 gcloud auth login 命令。
在某些情况下,对手可能能够通过应用程序访问令牌而不是用户名和密码对这些服务进行身份验证。
攻击过程示例
ID | 名称 | 描述 |
G0016 | APT29 | APT29利用同步到 Office 365 的受损高特权本地帐户横向移动到云环境,包括通过使用 Azure AD PowerShell。 |
缓解措施
ID | 缓解 | 描述 |
M1032 | 多重身份认证 | 尽可能在云服务上使用多重身份验证。 |
M1026 | 特权账户管理 | 限制高权限域和云帐户的数量,并确保它们不用于日常操作。确保本地帐户没有特权云权限,并且使用隔离的仅限云的帐户来管理云环境。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0028 | 登录会话 | 登录会话创建 | 监视新的云服务登录行为。例如,在 Azure AD 中,考虑使用身份保护来监视对云资源的可疑登录行为。 |
【T1552.008】不安全的凭据:聊天消息
英文名
Unsecured Credentials: Chat Messages
技术描述
攻击者可能会直接收集通过用户通信服务存储或传递的不安全凭证。凭据可以发送和存储在用户聊天通信应用程序中,例如电子邮件、聊天服务(例如 Slack 或 Teams)、协作工具(例如 Jira 或 Trello)以及支持用户通信的任何其他服务。用户可以在私人或公共公司内部通信渠道上共享各种形式的凭据(例如用户名和密码、API 密钥或身份验证令牌)。
攻击者可以通过托管服务的服务器或云托管服务的管理员门户,直接访问用户端点上这些服务中的凭据,而不是访问存储的聊天日志(即文件中的凭据)。攻击者还可能会破坏 Slack Workflows 等集成工具,以自动搜索消息以提取用户凭据。然后可能会滥用这些凭据来执行后续活动,例如横向移动或特权升级。
攻击过程示例
ID | 名称 | 描述 |
G1004 | LAPSUS$ | LAPSUS$瞄准了各种协作工具,如 Slack、Teams、JIRA、Confluence 等,以寻找暴露的凭据以支持特权升级和横向移动。 |
缓解措施
ID | 缓解 | 描述 |
M1047 | 审计 | 抢先搜索通信服务以查找共享的不安全凭据。搜索“ password is ”、“ password=”等常见字符串,并在发现时采取措施减少泄露。 |
M1017 | 用户培训 | 确保开发人员和系统管理员了解与跨通信服务共享不安全密码相关的风险。 |
检测
ID | 数据源 | 数据组件 | 检测 |
DS0015 | 应用日志 | 应用程序日志内容 | 监控应用程序日志中可能突出显示访问应用程序数据的恶意尝试的活动,尤其是针对密码和其他与凭据相关的工件的异常搜索活动。 |
新组织
•CURIUM
•LuminousMoth
•Metador
新攻击活动
•2016 Ukraine Electric Power Attack
•C0017
•C0018
•C0021
•Operation Dream Job
•Operation Ghost
•SolarWinds Compromise
总结
在本次的ATT&CK更新中,新增了两种类型变更日志,分别是人类可读的更新日志和机器可读的更新日志,可以看出MITRE组织在对于其框架使用的便利性上一直在做不断的投入,该日志记录对于基于ATT&CK进行安全运营的组织或企业带来了极大的便利,可以通过访问和解析变更日志,快速识别和集成ATT&CK的更新。
对于企业矩阵,从ATT&CK的更新中可以看出,其不仅包括纯技术手法的描述,也包括了初始访问中买卖受害者系统权限的行为手法,比如:买卖webshell、买卖内网代理,还增加了通过购买广告位的方式投放恶意站点和恶意软件行为手法。除此之外,在本次更新中还特别新增了针对安全运营过程的攻击:通过欺骗安全告警削弱防御能力,来增加防御者的响应时间,以便进行更多的恶意活动,以及近几年常用的基于云上Agent和云API的攻击手法等。
参考链接
1.https://attack.mitre.org/resources/updates/updates-april-2023/
2.https://medium.com/mitre-attack/attack-v13-enters-the-room-5cef174c32ff
3.https://attack.mitre.org/docs/changelogs/v12.1-v13.0/changelog.json
4.https://attack.mitre.org/docs/changelogs/v12.1-v13.0/changelog-detailed.html
5.https://github.com/mitre-attack/mitreattack-python/blob/master/mitreattack/diffStix/README.md
6.https://mitre-attack.github.io/attack-navigator/
7.https://medium.com/mitre-attack/2023-attack-roadmap-452fab541673
声明:本文来自知其安科技,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。