【ATTCK】MITRE Caldera 朴素贝叶斯规划器

       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 重复操作的用户来说,它是理想的选择。

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

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

相关文章

C++源文件的编译过程 学习 CMake 文档的前置知识

OHHHH,发现自己的基础知识真他妈的是呼呼漏风,,,,,,,,,,, 尴尬得意识到,不仅是英语水平有问题,他码的基础知识…

Web实验总

目录 网站需求: 思路: 实验步骤: 第一步:准备工作 第二步:新建一个存储网页的目录 第三步:修改本地hosts映射 第四步:修改配置文件,建立基于http服务的网站 1)创建用户song和…

iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤

目录 iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤 摘要 引言 一、APP加固的概念 二、APP加固方案的比较 三、保护iOS应用的安全 四、总结 参考资料 摘要 本文介绍了移动应用程序(App)加固的概念和流程,以及市…

[模版总结] - 树的基本算法1 - 遍历

树结构定义 一种非线性存储结构,具有存储“一对多”关系的数据元素集合 种类 General Tree TrieB/B 树二叉树 满/完满/完全二叉树 完美BT : 除了叶子结点外所有节点都有两个字节点,每一层都完满填充完全BT: 除最后一层以外其他每一层都完美…

单元测试工具-Junit

文章目录 一. 认识Junit二. Junit中常用的注解1. Test2. Disabled3. BeforeAll & AfterAll4. BeforeEach & AfterEach 三. ParameterizedTest参数化1. 单参数2. 多参数2.1. CSV 获取参数2.2. 方法获取参数 四. Order控制测试用例的执行顺序五. 断言六. 测试套件1. 通过…

Docker进阶——再次认识docker的概念 Docker的结构 Docker镜像结构 镜像的构建方式

前言 在微服务大量应用的互联网时代,经常能看到docker的身影。作为docker的爱好者(在服务器安装MySQL,Redis。。。我用的都是docker),我也会持续深入学习和认识docker。 本篇博客再次介绍docker的基本概念&#xff0…

SmartBear正式收购Stoplight,并计划在核心API设计、文档和门户产品中集成其功能

不久前,软件开发和可视化工具提供商SmartBear正式宣布收购全球领先的API设计公司Stoplight。这一收购是为了打造业内最全面的API开发平台,为寻求现代化API实践的开发团队提供更好的透明度、自动化与生产力。将Stoplight在API方面的优势(包括治…

吴恩达《机器学习》7-1->7-4:过拟合问题、代价函数、线性回归的正则化、正则化的逻辑回归模型

一、过拟合的本质 过拟合是指模型在训练集上表现良好,但在新数据上的泛化能力较差。考虑到多项式回归的例子,我们可以通过几个模型的比较来理解过拟合的本质。 线性模型(欠拟合): 第一个模型是一个线性模型&#xff0…

Elasticsearch:Lucene 中引入标量量化

作者:BENJAMIN TRENT 我们如何将标量量化引入 Lucene。 Lucene 中的自动字节量化 虽然 HNSW 是一种强大而灵活的存储和搜索向量的方法,但它确实需要大量内存才能快速运行。 例如,查询 768 维的 1MM float32 向量大约需要 1,000,000*4*(7681…

多维时序 | MATLAB实现TCN时间卷积神经网络多变量时间序列预测

多维时序 | MATLAB实现TCN时间卷积神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现TCN时间卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TCN时间卷积神经网络多变量时间序列预测 模型描述 MATLAB实现TCN时间卷…

3.前端调式(断点调式)

1. Elements 先来看这张图最上头的一行是一个功能菜单,每一个菜单都有它相应的功能和使用方法,依次从左往右来看 箭头按钮 用于在页面选择一个元素来审查和查看它的相关信息,当我们在Elements这个按钮页面下点击某个Dom元素时,箭…

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (>= 2:3.30)解决

1、ubuntu16.04安装最新版本vscode失败原因 ubuntu16.04安装最新版本的vscode会遇到依赖libnss3(>2:3.30)的问题,原因是ubuntu16.04安装的库libnss3版本更低,与vscode需要的更高版本的libnss3库不兼容,只需要升级libnss3库版本高于2:3.30…

PROFINET和UDP、MODBUS-RTU通信速度对比实验

这篇博客我们介绍PROFINET 和MODBUS-RTU通信实验时的数据刷新速度,以及这种速度不同对控制系统带来的挑战都有哪些,在介绍这篇对比实验之前大家可以参考下面的文章链接: S7-1200PLC和SMART PLC的PN智能从站通信 S7-200 SMART 和 S7-1200PLC进行PROFINET IO通信-CSDN博客文…

LeetCode(4)删除有序数组中的重复项 II【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 80. 删除有序数组中的重复项 II 1.题目 给你一个有序数组 nums ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数…

Ubuntu18.04.6安装qt5.7.1(超级详细教程)

目录 1、下载对应Linux版本的qt 2、安装完qt,可能也要安装下对应的编译工具 1、下载对应Linux版本的qt (1)准备安装的是qt5.7.1:qt-opensource-linux-x64-5.7.1.run (2)在虚拟机进入存放qt安装包的目录…

Linux安装MySQL8.0服务

Linux安装MySQL8.0服务 文章目录 Linux安装MySQL8.0服务一、卸载1.1 查看mariadb1.2 卸载 二、安装2.1 下载2.2 上传2.3 解压2.4 重命名2.5 删除2.6 创建目录2.7 环境变量2.8 修改配置2.9 配置文件2.9 用户与用户组2.10 初始化2.11 其它 三、开启远程连接MySQL 一、卸载 首先第…

springcloud图书借阅管理系统源码

开发说明: jdk1.8,mysql5.7,nodejs,idea,nodejs,vscode springcloud springboot mybatis vue elementui 功能介绍: 用户端: 登录注册 首页显示搜索图书,轮播图&…

地区 IP 库

地区 & IP 库 yudao-spring-boot-starter-biz-ip (opens new window)业务组件,提供地区 & IP 库的封装。 #1. 地区 AreaUtils (opens new window)是地区工具类,可以查询中国的省、市、区县,也可以查询国外的国家。 它的数据来自 …

MySQL | 数据库的表的增删改查【进阶】

MySQL | 数据库的表的增删改查【进阶】 文章目录 MySQL | 数据库的表的增删改查【进阶】系列文章目录本节目标:数据库约束约束类型NULL约束UNIQUE:唯一约束DEFAULT:默认值PRIMARY KEY:主键FOREIGN KEY:外键CHECK 表的设…

django|报错SQLite 3.8.3 or later is required的解决方案

迁移原同事写的程序,到新服务器上边。运行报错。解决方案有三种 降低django版本升级sqlite3,不低于3.8.3版本修改django源码 方案一、降低django版本 卸载高版本django pip uninstall django安装低版本,如 pip install django2.1.7注意&…