CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。
通过CALDERA工具,安全红队可以提前手动模拟并设定好攻击流程,并以此进行自动化攻击和事件响应演练。同样,安全蓝队也可以利用该工具,根据相应的威胁开展模拟应对。
github地址: mitre/caldera: Automated Adversary Emulation Platform (github.com)
为什么选择朴素贝叶斯
在一次行动中,对手的概况决定了哪些能力可用,规划者决定执行哪些能力以及执行顺序。Caldera 目前有多个可用的规划器,可让您管理操作的优先级。默认的原子规划器根据对手配置文件的原子顺序一次为每个代理提供一种可用的能力。Atomic规划器是执行操作的万能方法,但您是否知道 Caldera 现在有一种方法可以使用过去的操作数据来优先考虑最有效的能力并设置操作的风险承受水平?这是在新的朴素贝叶斯规划器中实现的。如果您重复执行相同的操作,并希望通过从操作数据中获得的见解来改进当前原子规划器的性能,那么朴素贝叶斯规划器可能适合。
相关背景:
在了解朴素贝叶斯 (NB) 规划器的逻辑之前,我们先回顾一下 Caldera 操作中的相关术语和概念:
能力——可以在运行代理上执行的特定 ATT&CK 策略/技术实施。
功能将包括要运行的命令、命令可以运行的平台/执行器(例如:Windows / PowerShell)、要包含的有效负载以及对用于解析 Caldera 服务器上的输出的模块的引用。
事实——有关给定(目标)计算机的可识别信息。
事实名称在能力文件中引用,并且在从能力创建链接时将替换为事实值。
链接——在将任务分配给特定代理、选择执行方法(powershell、sh 等)并用事实填充任何变量后的一种能力。
由能力生成并取决于目标操作系统、可用软件和 Caldera 知道的其他“事实”。
链接成功— 当链接返回状态代码 0 时,即表示链接“成功”,这意味着它没有超时或错误,而是返回了预期的输出。
贝叶斯定理— 用于计算条件概率的数学公式。
朴素贝叶斯分类器— 基于贝叶斯定理的分类技术,具有预测变量之间的独立假设。
规划逻辑
NB 规划器首先根据本地存储的操作数据构建先前执行的链接矩阵(使用事实作为特征),然后将贝叶斯定理应用于该矩阵,以基于先前操作的成功来评估当前操作链接的成功可能性。类似条件下的链接。然后,它按照每一步的链接成功概率的顺序执行操作。它利用用户控制的最小链接成功概率和最小链接数据参数来做出适合用户标准的决策,并仅执行具有必要置信度和数据重要性的链接。操作按照链接成功概率的顺序(从高到低)自动执行,数据不足用于分析的链接最后执行,过去数据充足但成功可能性不足的链接将被完全删除。NB 规划器允许对每个环节充满信心地执行操作,并自动优先考虑更有效的能力。
这是 NB Planner 链路选择逻辑的细分:
需要注意的是,操作经常会在一些链接上没有足够的数据,在这种情况下,NB规划器将使用默认原子顺序执行那些操作,直到它们产生具有足够数据的新链接,然后规划器将返回到链接成功优先级逻辑。预期的用例是为 NB 规划者提供尽可能多的过去 Caldera 运行数据,以便分类器变得更加适用和有效。
使用计划器
要使用 NB 规划器,只需在“开始新操作”选项的高级部分中选择朴素贝叶斯作为规划器。
在执行过程中,规划者自然会优先考虑在当前条件下成功概率较高的链接。
但当所有可用链接都没有足够的数据时,将回退到原子排序。
并且会删除执行成功概率不足的链接。
定制规划器
规划器还允许使用其他参数,例如上面用于在终端输出中记录规划器逻辑的调试日志记录选项。所有参数要么在规划器配置文件中设置,要么在规划器本身中设置。
配置文件选项:
如上所示,在配置文件中,您可以通过更改 params 的值来自定义 NB planner 的多个方面。最重要的是min_prob_link_success,它是链接执行所需的链接成功的最小计算概率(默认为 49%),并允许您设置操作的风险容忍级别。除了设置最小链接置信度之外,设置数据显着性也可能有所帮助。更改min_link_data的值可设置 NB 链接选择逻辑所需的过去相似链接的数量,如果您希望使用原子逻辑,除非有大量相关本地数据,否则可能会很有用。还可以使用参数来延迟某些链接的执行并激活 DEBUG 级别日志记录。
规划器选项
在python 脚本的_get_highest_probability_link方法中,有一个选项可以选择在贝叶斯定理计算成功概率期间查询过去链接矩阵的特征。当前的默认选择是:
但是,如果您拥有本地可用的过去操作数据的重要存储库,那么您可能希望更具体地了解链接规范,以便为未来链接计算的成功概率更加相关。这可以通过从 FEATURE_NAMES 列表向 link_query_features 字典添加更多功能来完成。特征应以与第 144-156 行保存到链接矩阵相同的方式添加到字典中,但应转换为字符串。
总结
朴素贝叶斯规划器利用过去的操作历史来执行操作,同时在某些风险承受能力和数据显着性级别上优先考虑链路成功的可能性。对于希望通过数据洞察简化本地 Caldera 重复操作的用户来说,它是理想的选择。