ATT&CK矩阵战术&技术(TTP)逻辑和使用
ATT&CK的战术与技术组织结构
ATT&CK矩阵中的所有战术和技术,都可以通过以下链接进行目录结构式的浏览https://attack.mitre.org/techniques/enterprise/,也可以在矩阵里直接点击对应的技术进行浏览。当前版本共包括193类技术共401个子技术
1. 命名规则
技术由“技术描述”、“消减措施”、“检测手段”3部分组成,技术子类多增加一个“案例”(Procedure Examples)组成部分。案例包括攻击者组织和攻击工具
所有技术的命名都以大写字母T打头,后面带上4个数字,组成编号,例如T1134表示“Access Token Manipulation”技术类。如果该类技术有子类技术,则通过小数点加上3个从001开始的数字编号,表示子类技术,例如T1134.005表示“SID-History Injection”子技术
所有的消减措施,均以Mitigations的首字母M打头,后面跟随4个数字作为编号;所有的检测手段,均以Data Source的首字母DS打头,后面跟随4个数字作为编号,因为检测手段表示从哪里获取检测数据,所以为DS
在“案例”中,包括攻击组织和攻击工具,攻击组织以Group的首字母打头,后面跟随4个数字作为编号;攻击工具以Software首字母打头,后面跟随4个数字作为编号。所有这些攻击组织和攻击工具均是已公开的
从上面可以看到,只有子类技术采用小数点加3个数字作为编号,其他都是以首字母加4个数字作为编号,很好记忆区分
2. T1548分析
T1548(Abuse Elevation Control Mechanism)表示“滥用权限控制机制”技术,包括4个子技术,如下图所示:
2.1 基本描述
攻击者可能会绕过旨在控制提升权限机制以获得更高级别权限。大多数现代系统都包含权限控制机制,即用户是分级的,例如Linux有普通用户和Root用户,Windows分作System、administrator、Authenticated user等不同级别的用户权限,且有相应的控制机制在不同级别用户之间进行切换,例如Windows的UAC机制。攻击者可以执行多种方法来利用内置的控制机制,以提高攻击者的权限。当有子类技术时,详细信息会在子类技术中进行描述
以T1548.001为例进行分析,这个子技术为“Abuse Elevation Control Mechanism: Setuid and Setgid”,攻击者滥用应用程序的属性setuid或setgid位的配置,以便让代码在不同(可能更特权)的用户上下文中运行。在Linux或macOS上,当为应用程序二进制文件设置setuid或setgid位时,应用程序将分别以拥有用户或组的权限运行(具体原理可以阅读引用的论文)。通常,应用程序是在当前用户的上下文中运行的,而不管哪个用户或组拥有该应用程序。然而,在某些情况下,程序需要在提升的上下文中执行才能正常运行,但运行这些程序的用户可能没有特定的所需权限
任何用户都可以指定要为自己的应用程序设置的setuid或setgid标志(即Linux和Mac文件和目录权限修改),而不是在sudoers文件中创建条目(必须由root用户完成)。chmod命令可以通过位掩码、chmod 4777[file]或通过简写命名、chmod u+s[file]来设置这些位。这将启用setuid位。为了启用设置位,可以使用chmod 2775和chmod g+s
攻击者可以在自己的恶意软件上使用这种机制,以确保他们将来能够在高级上下文中执行。这种滥用通常是“shell转义”或其他绕过权限受限的执行环境的操作的一部分
或者,攻击者可以选择在已启用setuid或setgid位(即文件和目录发现)的情况下查找和瞄准易受攻击的二进制文件。当通过ls-l查看文件的属性时,setuid和setguid位用“s”而不是“x”表示。find命令也可用于搜索此类文件
例如,find/-perm+4000 2>/dev/null可用于查找设置了setuid的文件,find/-perm+2000 2>/dev/null可用于setgid。设置了这些位的二进制文件可能会被对手滥用
2.2 案例
案列中描述的一个攻击软件叫Keydnap,这是一款在后门程序,可以窃取了用户钥匙链的敏感信息。对工具的详细研究分析,可以参考对应的论文分析
2.3 消减措施
消减措施编号为M1028。具有已知漏洞或已知shell转义的应用程序不应设置setuid或setgid位,以减少应用程序受损时的潜在损坏。此外,在整个系统中,设置了setuid或setgid位的程序数量应该最小化
2.4 检测手段
通过2种手段来进行检测。一是DS0017,通过监测命令行执行参数,监视诸如chmod之类的实用程序及其命令行参数的执行情况,以查找正在设置的setuid或setguid位
一是DS0022,监视文件系统中的元数据,以监测是否有设置了setuid或setgid位的文件,同时使用setuid或setgid位监视对可能执行shell转义或利用应用程序中的漏洞的文件所做的更改,以使代码在不同用户的上下文中运行
3.T1003分析
T1003(OS Credential Dumping)为操作系统凭据Dump技术,包括8个子技术
3.1 基本描述
攻击者通过转储凭据的方式,从操作系统和软件中获取帐户登录和凭据信息,通常以哈希或明文密码的形式。然后可以使用凭证进行横向移动和访问受限信息。
以子技术T1003.002(OS Credential Dumping: Security Account Manager)为例进行说明。T1003.002表示,攻击者可能试图通过内存技术或通过存储SAM数据库的Windows注册表从安全帐户管理器(SAM)数据库中提取凭证信息。SAM是一个数据库文件,包含主机的本地帐户,通常是通过net user命令找到的帐户。枚举SAM数据库需要SYSTEM级别的访问权限。
有许多公开的工具可以实现OS凭据转储,最著名的有以下几款:
pwdumpx.exe
gsecdump
Mimikatz
secretsdump.py
这些信息也可以从注册表中转储获取,命令操作如下:
reg save HKLM\sam sam
reg save HKLM\system system
在Windows系统中,Administrator账号的RID为500,Guest账号的RID为501,普通账号的RID从1000开始进行累增
3.2 案例
攻击软件Cobalt Strike、CosmicDuke、CrackMapExec等工具都集成了这个攻击功能;攻击组织GALLIUM、Ke3chang等组织都使用了这个攻击技术,关于工具和组织的详细介绍和说明,可以阅读参考文献
3.3 消减措施
从4个方面进行消减,一是系统配置(域环境下才可以),在系统的配置功能中,取消或严格限制NTLM功能;二是密码策略,确保本地管理员帐户在网络上的所有系统中都具有复杂、唯一的密码;三是特权账号管控,除非受到严格控制,否则不要将用户或管理域帐户放在跨系统的本地管理员组中,因为这通常相当于在所有系统上使用相同密码的本地管理员帐户。遵循企业网络设计和管理的最佳实践,以限制跨管理层的特权帐户使用;四是安全意识培训,通过培训用户和管理员不要对多个帐户使用同一密码,限制帐户和系统之间的凭据重叠
3.4 检测手段
从3个方面进行检测,一是监测命令执行,监控执行的命令和参数,这些命令和参数可能试图通过内存技术或通过存储SAM数据库的Windows注册表从安全帐户管理器(SAM)数据库中提取凭证材料;二是监测文件访问,监控哈希转储程序是否打开本地文件系统(%SystemRoot%/system32/config/SAM)上的安全帐户管理器(SAM)。一些哈希转储程序会将本地文件系统作为设备打开,并解析到SAM表,以避免文件访问防御。其他人会在读取哈希之前在内存中复制SAM表。检测被对手使用的被泄露的有效帐户也可能有所帮助;三是监测注册表访问,监视正在创建的SAM注册表项转储以访问存储的帐户密码哈希。一些哈希转储程序会将本地文件系统作为设备打开,并解析到SAM表,以避免文件访问防御。其他人会在读取哈希之前在内存中复制SAM表。检测被对手使用的被泄露的有效帐户也可能有所帮助