【ATTCK】MITRE Caldera -前瞻规划器

         CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。

         通过CALDERA工具,安全红队可以提前手动模拟并设定好攻击流程,并以此进行自动化攻击和事件响应演练。同样,安全蓝队也可以利用该工具,根据相应的威胁开展模拟应对。

         github地址: mitre/caldera: Automated Adversary Emulation Platform (github.com)

Caldera规划器如何工作

         在一次行动中,对抗的配置决定了可用的能力,规划者决定使用哪些能力及其顺序。Caldera 的默认规划器“原子规划器”根据对手配置文件的原子顺序一次向每个代理发送一个可用能力。如果代理有该能力的执行者并且其事实得到满足,则该能力是可用的。

         Caldera 还预装了两个额外的规划器:Batch 和 Buckets。批量规划器将所有可用的能力发送给每个代理。存储桶规划器是批量规划器的变体,它在状态机中的不同状态(或“存储桶”)之间进行转换,并将所有可用能力从当前存储桶发送到每个代理。

         这些规划器适用于大多数用例,但在使用具有数百种能力的大型对手配置文件时效果较差。例如,新的“Everything Bagel”对手将使用 Caldera 中加载的所有能力,默认情况下有超过 1,200 个能力。

         使用 Atomic planner 运行 Everything Bagel 对手后,我们在下面的屏幕截图中看到了一些限制。规划者使用了很多不相关的能力并且需要很长时间才能完成。使用批量或桶规划器我们会得到类似的结果。能力太多,无法有效地全部使用。

图 1 — 使用 Atomic planner 运行 Everything Bagel 对手

前瞻规划器

         受这些限制的激励,前瞻性规划者根据预期的未来奖励决定使用哪些能力。它以能力奖励表、深度参数和折扣因子作为输入。深度参数有效地控制了规划器在对每个动作进行评分时的“前瞻”范围,而折扣因子则控制了规划器如何权衡未来的奖励。

         在描述算法之前,先约定一些符号:

         令g为折扣因子。这是全局定义的。默认为 0.9。

         令d为前瞻深度。这是全局定义的。默认为 3。

         令能力集为A。

         定义函数E : A x P(A)为将A中的每个能力a映射到a后面的能力集的函数。

         如果a的解析器生成了b的输入事实,我们就说能力b跟随能力a。从上面的语言来看,我们可能有一个例子:E(a) = {b}。

         令R : A x N为我们的奖励表,将每种能力映射到其直接奖励。下面的伪代码描述了该算法:

         使用前瞻规划器运行 Everything Bagel 对手后,我们在下面的屏幕截图中看到了一些有趣的结果。规划者使用多个相关能力序列中的第一个能力(例如,查找 Git 存储库、创建暂存目录、收集 ARP 详细信息)。

图 2 — 使用 Look Ahead 规划器运行 Everything Bagel 对手

         规划者对每个能力的默认奖励为 1,因此能力的价值主要由后续能力序列的长度决定。

自定义前瞻性规划器

         我们可以通过在 YAML 配置文件中编辑规划器的能力奖励来自定义前瞻规划器,该文件位于plugins/stockpile/data/planners/254c7035-de7d-4d76-a888–2c09ba594eca.yml。

         如果我们希望规划者优先考虑特定能力或能力序列,我们需要定制能力奖励。ability_rewards字段包含从能力 ID 映射到奖励值的子字段。下面显示的示例配置为“Exfil staged directory”添加了 10 的能力奖励。

图 3 —在 planner 中自定义ability_rewards字段的示例配置

         可以通过从“能力”选项卡中搜索并选择能力来找到能力 ID,如下所示。

图 4 — 显示如何选择能力的屏幕截图

         在使用定制的能力奖励运行 Everything Bagel 对手之后,我们看到了不同的结果。策划者立刻使用了可以获得高奖励的能力“Exfil暂存目录”。

图 5 — 运行 Everything Bagel 对手并提供定制能力奖励

         有趣的是,所得到的能力序列比现有对手配置文件(例如窃贼对手)以更少的步骤达到“Exfil staged Directory”能力,并且由规划者自动生成,而无需明确指定此顺序。

总结

         未来规划器根据预期的未来奖励决定使用哪些能力。我们可以定制能力奖励,以便规划者优先考虑导致不同能力的序列,例如窃取文件。通过优先考虑能力,前瞻规划器使我们能够更有效地利用大型对手的资料甚至Caldera的所有能力来运行行动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/136804.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【微软技术栈】C#.NET 如何使用本地化的异常消息创建用户定义的异常

本文内容 创建自定义异常创建本地化异常消息 在本文中,你将了解如何通过使用附属程序集的本地化异常消息创建从 Exception 基类继承的用户定义异常。 一、创建自定义异常 .NET 包含许多你可以使用的不同异常。 但是,在某些情况下,如果它们…

elastic-job 完结篇

一 elastic-job 1.1 案例场景分析 1.设置4个分片,10秒执行一次。 分片弹性扩容缩容机制测试: 测试1:测试窗口1不关闭,再次运行main方法查看控制台日志,注意修改application.properties中的 server.port&#xf…

机器学习数据预处理——Word2Vec的使用

引言: Word2Vec 是一种强大的词向量表示方法,通常通过训练神经网络来学习词汇中的词语嵌入。它可以捕捉词语之间的语义关系,对于许多自然语言处理任务,包括情感分析,都表现出色。 代码: 重点代码&#…

删除杀软回调 bypass EDR 研究

01 — 杀软或EDR内核回调简介 Windows x64 系统中,由于 PatchGuard 的限制,杀软或EDR正常情况下,几乎不能通过 hook 的方式,完成其对恶意软件的监控和查杀。那怎么办呢?别急,微软为我们提供了其他的方法&a…

Halcon WPF 开发学习笔记(4):Halcon 锚点坐标打印

文章目录 专栏前言锚点二次开发添加回调函数辅助Model类 下集预告 专栏 Halcon开发 博客专栏 WPF/HALCON机器视觉合集 前言 Halcon控件C#开发是我们必须掌握的,因为只是单纯的引用脚本灵活性过低,我们要拥有Halcon辅助开发的能力 锚点开发是我们常用的…

Javaweb之javascript的小案例的详细解析

1.5.4 案例 1.5.4.1 需求说明 鲁迅说的好,光说不练假把式,光练不说傻把式。所以接下来我们需要通过案例来加强对于上述DOM知识的掌握。需求如下3个: 点亮灯泡 将所有的div标签的标签体内容后面加上:very good 使所有的复选框呈现被选中的…

基于springboot实现驾校管理系统项目【项目源码】

基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#xff0…

2.4.0 Milky Way 强势登场!新功能大爆炸,让你High翻全场!

Yo开发达人们,我们有重磅新功能要给你们放送啦! Check it out 数据汇总不再单调,新的聚合函数登场! compact_state_agg #1359gauge_agg #1370first #1395last #1413mode #1440increase #1476delta #1395time_delta #1405rate #14…

2352 智能社区医院管理系统JSP【程序源码+文档+调试运行】

摘要 本文介绍了一个智能社区医院管理系统的设计和实现。该系统包括管理员、护工和医生三种用户,具有社区资料管理、药品管理、挂号管理和系统管理等功能。通过数据库设计和界面设计,实现了用户友好的操作体验和数据管理。经过测试和优化,系…

基于 Gin 的 HTTP 代理 demo

上次用 TCP 模拟了一个 HTTP 代理之后,感觉那样还是太简陋了,想着是不是可以用框架来做一个有点实际用处的东西。所以,就思索如何用 golang 的 Gin 框架来实现一个?嗯,对的你没有听错,是 gin 框架。你可能会…

【ATTCK】MITRE Caldera - 测试数据泄露技巧

CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。 通过CALDERA工具,安全…

ida81输入密码验证算法分析以及破解思路

本文分析了ida81对输入密码的验证流程,分别对输入密码到生成解密密钥、密码素材的生成过程以及文件数据的加密过程这三个流程进行分析,并尝试找一些可利用的破绽。很遗憾,由于水平有限,目前也只是有个思路未能完全实现&#xff0c…

Liunx命令汇总

一.用户相关命令 1.1账号管理 创建用户: useradd (选项) 用户名用户口令: passwd (选项) 用户名修改用户: usermod 选项 用户名删除用户: userdel (选项) 用…

C语言——贪吃蛇

一. 游戏效果 贪吃蛇 二. 游戏背景 贪吃蛇是久负盛名的游戏,它也和俄罗斯⽅块,扫雷等游戏位列经典游戏的⾏列。 贪吃蛇起源于1977年的投币式墙壁游戏《Blockade》,后移植到各种平台上。具体如下: 起源。1977年,投币式…

【数据结构】树与二叉树(十二):二叉树的递归创建(算法CBT)

文章目录 5.2.1 二叉树二叉树性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点,其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

【数据结构初阶】顺序表

各位读者老爷好,又见面了哈!鼠鼠我呀现在基于C语言浅浅介绍一下数据结构初阶中的顺序表,希望对你有所帮助! 目录 1.线性表 2.顺序表 2.1概念即结构 2.2动态顺序表接口的实现 2.2.1定义顺序表 2.2.2初始化 2.2.3销毁 2.2…

「Qt Widget中文示例指南」如何模拟一个时钟?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 点击获取Qt Widget组…

敏捷开发是什么?敏捷开发流程是怎么样的?

1. 什么是敏捷开发? 敏捷开发是一种迭代、增量式的软件开发方法,旨在通过灵活、协作和快速响应变化的方式,提高开发团队的效率和产品的质量。相较于传统的瀑布式开发模型,敏捷开发更加注重用户需求的响应和团队协作&#xff0…

【可解释AI】Alibi explain: 解释机器学习模型的算法

Alibi explain: 解释机器学习模型的算法 可解释人工智能简介Alibi特点算法Library设计展望参考资料 今天介绍Alibi Explain,一个开源Python库,用于解释机器学习模型的预测(https://github.com/SeldonIO/alibi)。该库具有最先进的分类和回归模型可解释性算…