【ATTCK】MITRE Caldera -前瞻规划器

news2024/11/16 21:30:15

         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的所有能力来运行行动。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有奖 | Python 开发者 2023 年度调查

你好,我是 EarlGrey,一名双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。 点击上方蓝字关注我,持续接收优质好书、高效工具和赚钱机会,一起提升认知和思维。 1…

2023年【电工(初级)】考试内容及电工(初级)复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 电工(初级)考试内容是安全生产模拟考试一点通总题库中生成的一套电工(初级)复审模拟考试,安全生产模拟考试一点通上电工(初级)作业手…

C++ Qt 学习(六):Qt http 编程

1. http 基础 HTTP 基础教程C Web 框架 drogonoatpp 2. C Qt 用户登录、注册功能实现 login_register.h #pragma once#include <QtWidgets/QDialog> #include "ui_login_register.h" #include <QNetworkReply>class login_register : public QDialog…

【MySQL】使用C/C++访问MySQL

文章目录 一. 环境准备1. 方法一2. 方法二 二. MySQL接口介绍1. 初始化/连接/关闭2. 执行操作3. 查找操作 结束语 本篇环境是云服务器Centos上的MySQL 版本; 一. 环境准备 使用C/C访问MySQL&#xff0c;首先需要MySQL的开发者库 这里提供两种方法&#xff1a; 1. 方法一 …

【Unity每日一记】“调皮的协程”,协程和多线程的区别在哪里

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

【MySQL系列】 第二章 · SQL(下)

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

JSP运行环境搭建

将安装JSP引擎的计算机称作一个支持JSP的Web服务器。这个服务器负责运行JSP&#xff0c;并将运行结果返回给用户。 JSP的核心内容之一就是编写JSP页面,JSP页面是Web应用程序的重要组成部分之一。一个简单Web应用程序可能只有一个JSP页面,而一个复杂的Web应用程序可能由许多JSP…

【操作系统】考研真题攻克与重点知识点剖析 - 第 3 篇:内存管理

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…

首发!文心一言插件精品课,共创大模型应用新范式

“AI原生应用要能解决过去解决不了、解决不好的问题&#xff0c;应用才是大模型存在的意义。”越来越多人用AI打造自己的生产力工具、专业领域行业助手、游戏娱乐影音大师……你是否跃跃欲试却无从下手&#xff1f;机会来了&#xff01;《文心一言插件开发课》震撼来袭&#xf…

STM32--系统滴答SysTick

一、SysTick是什么&#xff1f; Systick定时器是一个24bit的倒计时&#xff08;向下计数&#xff09;定时器&#xff0c;功能就是实现简单的延时。 SysTick 是一种系统定时器&#xff0c;通常在嵌入式系统中使用。它是 ARM Cortex-M 处理器的一个特殊定时器&#xff0c;用于提…

基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码

基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于樽海鞘群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

微信聊天,收到二维码图片就自动帮你提取出来的方法

10-3 如果你是二维码收集的重度用户&#xff0c;那我非常推荐你好好阅读本文&#xff0c;也许可以帮你解决你的问题&#xff0c;比如做网推的人&#xff0c;需要常年混迹在各种微信群&#xff0c;那如何在各个微信群中收集到群友分享出来的二维码&#xff0c;并且要立即保存出…

Pyside6/PYQT6如何实现无边框设计,解决无边框窗口无法移动的问题

文章目录 💢 问题 💢💯 解决方案 💯🍔 准备工作🐾 操作步骤🐾 窗口无边框🐾 窗口透明🐾 实现窗口可移动⚓️ 相关链接 ⚓️💢 问题 💢 有时候我们需要一个无边框的UI设计来实现/美化一些功能,如:制作一个桌面时钟,进度条展示等,要实现无边框其实很简…

基于springboot实现桥牌计分管理系统项目【项目源码】计算机毕业设计

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

Liunx命令汇总

一.用户相关命令 1.1账号管理 创建用户&#xff1a; useradd &#xff08;选项&#xff09; 用户名用户口令&#xff1a; passwd &#xff08;选项&#xff09; 用户名修改用户&#xff1a; usermod 选项 用户名删除用户&#xff1a; userdel &#xff08;选项&#xff09; 用…

SpringBootWeb案例——Tlias智能学习辅助系统(3)——登录校验

前一节已经实现了部门管理、员工管理的基本功能。但并没有登录&#xff0c;就直接访问到了Tlias智能学习辅助系统的后台&#xff0c;这节来实现登录认证。 目录 登录功能登录校验(重点)会话技术会话跟踪方案一 Cookie&#xff08;客户端会话跟踪技术&#xff09;会话跟踪方案二…

微信支付服务商消费者投诉及时处理与商户违规及时通知,支持多服务商

大家好&#xff0c;我是小悟 微信直连商户处理消费者投诉的功能解决了很多商户对于投诉处理不及时而导致商户号出现异常的问题&#xff0c;可以说解决了实实在在的问题。 很多小伙伴私信说自己是服务商角色&#xff0c;也需要微信支付服务商处理消费者投诉的功能&#xff0c;…

ablation study

文章目录 ablation study1、消融实验思想是什么&#xff1f;2、消融实验意义3、消融实验应用场景举例 ablation study 1、消融实验思想是什么&#xff1f; “消融实验”&#xff08;ablation study&#xff09;通常指的是通过逐步移除系统的一部分来评估该系统的贡献。这种方法…

分享一下关于“vcruntime140_1.dll丢失的5种解决方法

今天我来给大家分享一下关于“vcruntime140_1.dll丢失的5种修复方法”的分享。首先&#xff0c;我们来了解一下vcruntime140_1.dll丢失的原因。 病毒感染&#xff1a;病毒或恶意软件可能损坏或删除vcruntime140_1.dll文件。 系统更新或软件安装&#xff1a;在进行系统更新或安…

使用.net 构建 Elsa Workflow

对接过蓝凌OA 也基于泛微OA数据库原型重新研发上线过产品&#xff0c;自研的开源的也上线过 每个公司对OA流程引擎介绍 都不一样的&#xff0c; 比如Elsa 这款微软MVP开源组件&#xff0c;基于跨平台开发的技术含量高&#xff0c;专门做OA的同行推过对应文章。 直接看怎么用吧。…