AttackGen:一款基于LLM的网络安全事件响应测试工具

关于AttackGen

AttackGen是一款功能强大的网络安全事件响应测试工具,该工具利用了大语言模型和MITRE ATT&CK框架的强大功能,并且能够根据研究人员选择的威胁行为组织以及自己组织的详细信息生成定制化的事件响应场景。

功能介绍

1、根据所选的威胁行为组织生成定制化的事件响应场景。

2、允许指定组织的规模和行业,以实现定制化方案。

3、根据MITRE ATT&CK框架,显示所选威胁行为组织使用的技术详细列表。

4、根据选择的ATT&CK技术创建自定义场景。

5、使用场景模板根据常见类型的网络事件快速生成自定义场景。

6、AttackGen助手,可用于更新或询问有关生成场景的问题聊天界面。

7、获取用户对生成场景质量的反馈。

8、提供了可下载的Markdown格式场景。

9、使用OpenAI API、Azure OpenAI服务、Google AI API、Mistral API 或本地托管的Ollama 模型来生成事件响应场景。

10、可作为 Docker 容器映像使用,以便于部署。

11、可选与LangSmith集成,以实现强大的调试、测试和模型性能监控。

12、GPT-4o 模型支持。

工具要求

1、Python 3.x;

2、Python包:pandas、streamlit以及自定义库所需的任何其他包(langchain和mitreattack);

3、OpenAI API 密钥;

4、LangChain API 密钥(可选)【文档】;

5、数据文件:enterprise-attack.json(STIX 格式的 MITRE ATT&CK 数据集)和groups.json;

工具依赖

langchain

langchain-core

langchain-community

langchain-google-genai

langchain-mistralai

langchain-openai

langsmith

mitreattack-python

openai

pandas

setuptools

streamlit

工具安装

源码安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/mrwadams/attackgen.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd attackgenpip install -r requirements

Docker使用

docker pull mrwadams/attackgen

工具配置

LangSmith 设置

如果你想使用LangSmith来调试、测试和监控模型性能,你需要设置一个LangSmith帐户然后创建一个.streamlit/secrets.toml说明,并写入你的LangChain API密钥。项目目录的.streamlit/路径下有一个secrets.toml-example文件,可以将其作为模板创建我们自己的 secrets.toml 文件。

如果你不想使用LangSmith,仍然必须要有一个.streamlit/secrets.toml文件,但可以将其中的LANGCHAIN_API_KEY字段留空。

数据设置

点击【这里】下载最新版本的STIX格式的MITRE ATT&CK数据集。确保将此文件放在项目的./data/目录中。

工具使用

数据设置完成后,可以使用以下命令运行 AttackGen:

streamlit run Welcome.py

选项 1:在本地运行Streamlit应用

运行Streamlit应用程序:

streamlit run Welcome.py

打开您Web浏览器并导航到Streamlit提供的URL,并使用该应用程序生成标准或自定义的事件响应场景。

选项 2:使用 Docker 容器镜像

docker run -p 8501:8501 mrwadams/attackgen

此命令将启动容器并将端口8501(Streamlit应用程序的默认端口)从容器映射到你的主机。接下来,打开Web浏览器并导航到http://localhost:8501,然后使用该应用程序生成标准或自定义事件响应场景。

生成场景

标准场景生成

1、选择使用OpenAI API还是Azure OpenAI服务。

2、输入OpenAI API密钥,或者Azure OpenAI服务上模型API密钥,以及部署详细信息。

3、从下拉菜单中选择所在组织的行业和规模。

4、导航至“威胁行为组织场景”页面。

5、选择想要模拟的威胁行为组织。

6、点击“生成场景”来创建事件响应场景。

7、使用按钮对生成场景的质量提供反馈。

自定义场景生成

1、选择使用OpenAI API还是Azure OpenAI服务。

2、输入OpenAI API密钥,或者Azure OpenAI服务上模型API密钥,以及部署详细信息。

3、从下拉菜单中选择组织的行业和规模。

4、导航至“自定义场景”页面。

5、使用多选框搜索并选择与场景相关的ATT&CK技术。

6、单击“生成场景”以根据所选技术创建自定义事件响应测试场景。

7、使用按钮对生成场景的质量提供反馈。

请注意,生成场景可能需要一分钟左右的时间。场景生成后,可以在应用程序上查看它,也可以将其下载为 Markdown 文件。

工具运行截图

许可证协议

本项目的开发与发布遵循GNU GPLv3开源许可协议。

项目地址

AttackGen:【GitHub传送门】

参考资料

GitHub - mrwadams/attackgen: AttackGen is a cybersecurity incident response testing tool that leverages the power of large language models and the comprehensive MITRE ATT&CK framework. The tool generates tailored incident response scenarios based on user-selected threat actor groups and your organisation's details.

Get started with LangSmith | 🦜️🛠️ LangSmith

attack-stix-data/enterprise-attack/enterprise-attack.json at master · mitre-attack/attack-stix-data · GitHub

https://attackgen.streamlit.app/

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

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

相关文章

【MindSpore学习打卡】应用实践-计算机视觉-FCN图像语义分割-基于MindSpore实现FCN-8s进行图像语义分割的教程

图像语义分割是计算机视觉领域中的一个重要任务,它旨在对图像中的每个像素进行分类,从而实现对图像内容的详细理解。在众多图像语义分割算法中,全卷积网络(Fully Convolutional Networks, FCN)因其端到端的训练方式和高…

7.7、指针和函数

代码 #include <iostream> using namespace std;//实现两个数字进行交换 void swap01(int a, int b) {int temp a;a b;b temp;cout << "swap01a " << a << endl;cout << "swap01b " << b << endl; }void sw…

08 docker Registry搭建docker私仓

目录 本地镜像发布流程 1. docker pull registry 下载镜像 2. docker run 运行私有库registry 3. docker commit 构建镜像 4. docker tag 修改新镜像&#xff0c;使之符合私服规范tag 5. 修改配置文件使之支持http 6. curl验证私服库上有什么镜像 7. push推送 pull拉取 …

Activity、Window、DecorView的关系

目录 一、Activity、Window、DecorView的层级关系如下图所示&#xff1a; 1、Activity 2、Window 3、DecorView 二、DecorView初始化相关源码 三、DecorView显示时机 前言&#xff1a; 不同的Android版本有差异&#xff0c;以下基于Android 11进行讲解。 一、Activi…

Halide AOT模式

这种模式会提前&#xff0c;会提前编译好&#xff0c;变成dll什么的&#xff0c;可接受任何输入的参数运行。 然后这样调用&#xff0c;必须要make一下前一个file&#xff0c;才有后面的.h

魔行观察-AI数据分析-蜜雪冰城

摘要 本报告旨在评估蜜雪冰城品牌作为投资对象的潜力和价值&#xff0c;基于其经营模式、门店分布、人均消费、覆盖省份等关键指标进行分析。 数据数据源&#xff1a;魔行观察&#xff1a;http://www.wmomo.com/#/brand/brandDetails?code10013603 品牌概览 蜜雪冰城是中国…

Vue 爬坑

都是基于最新的Vue3版本 "vue": "^3.4.29" 1 vue组建样式设置 <script setup lang"ts"> import HelloWorld from ./components/HelloWorld.vue </script><template><div><a href"https://vitejs.dev" tar…

RPA 第一课

RPA 是 Robotic Process Automation 的简称&#xff0c;意思是「机器人流程自动化」。 顾名思义&#xff0c;它是一种以机器人&#xff08;软件&#xff09;来替代人&#xff0c;实现重复工作自动化的工具。 首先要说一句&#xff0c;RPA 不是 ChatGPT 出来之后的产物&#x…

elementui中@click短时间内多次触发,@click重复点击,做不允许重复点击处理

click快速点击&#xff0c;发生多次触发 2.代码示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">确 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按钮 */sub…

分布式锁——基于Redis分布式锁

单机锁 服务器只有一个&#xff0c;JVM只有一个。 用synchronized加锁&#xff0c;对lock对象加锁&#xff0c;只有线程1结束&#xff0c;线程2,3才会开始。 再用uid避免一个线程多次进来。 分布式锁 真正上线时&#xff1a; 【注&#xff1a;这些服务器连接的是一个Redis集…

STM32入门笔记(03): ADC(SPL库函数版)(2)

A/D转换的常用技术有逐次逼近式、双积分式、并行式和跟踪比较式等。目前用的较多的是前3种。 A/D转换器的主要技术指标 转换时间 分辨率 例如&#xff0c;8位A/D转换器的数字输出量的变化范围为0&#xff5e;255&#xff0c;当输入电压的满刻度为5V时&#xff0c;数字量每变化…

如何学好自动化测试

1. 什么是自动化测试 自动化测试是使用脚本和工具来执行测试任务&#xff0c;以替代手工测试过程。它可以提高效率、减少人工错误&#xff0c;并增加测试覆盖率。在软件开发过程中&#xff0c;自动化测试已经成为了不可或缺的一部分。 自动化测试主要有以下好处&#xff1a; …

Amos结构方程模型---探索性分析

初级 第5讲 探索性分析_哔哩哔哩_bilibili amos中基本操作&#xff1a; 椭圆潜变量&#xff0c;不可预测 数据导入 改变形状 判定系数 方差估计和假设检验&#xff1a; 探索性分析&#xff1a; ses&#xff08;潜变量&#xff09;社会经济指数 从考虑最大的MI开始&#xff0c;卡…

【Python画图-驯化seaborn】一文搞懂seaborn中的箱线图实践技巧

【Python画图-驯化seaborn】一文搞懂seaborn中的箱线图实践技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&a…

1.4 ROS2集成开发环境搭建

1.4.1 安装VSCode VSCode全称Visual Studio Code&#xff0c;是微软推出的一款轻量级代码编辑器&#xff0c;免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT 等特性&#xff0c;支持插件…

7.3数据库第一次作业

安装MySQL 1.打开安装包 2.选择自定义安装&#xff08;custom&#xff09;并点击下一步 3.自定义安装路径 4.点击执行 5.执行成功 6.默认选项点击下一步 7.选择新的授权方式并点击下一步 8.配置密码 9.默认配置并点击下一步 10.点击执行&#xff08;Execute&#xff09; 11.执…

python中的文件

1.什么是文件&#xff1f; 硬盘上存储的数据都是以文件的形式来组织的~ 文件是数据在硬盘上的存储形式&#xff0c;不同的数据在硬盘上的存储形式是不同的&#xff0c; 2.文件路径 文件夹/目录。 文件夹&#xff0c;再包含文件夹的情况&#xff0c;这就是一个嵌套的关系&…

2024-2025年本田维修电路图线路图接线图资料更新

此次更新了2024-2025年本田车系电路图资料&#xff0c;覆盖市面上99%车型&#xff0c;包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等等&#xff01; 汽修帮手汽…

Java中使用arima预测未来数据

看着已经存在的曲线图数据&#xff0c;想预估下后面曲线图的数据。 import java.util.Vector;public class AR {double[] stdoriginalData{};int p;ARMAMath armamathnew ARMAMath();/*** AR模型* param stdoriginalData* param p //p为MA模型阶数*/public AR(double [] stdori…

你的硬盘知道的太多:你以为你的秘密真的被删除了吗?

某一天你收到了朋友发给你的一个秘密文件&#xff0c;在看完之后&#xff0c;为了不被别人发现&#xff0c;你决定将文件毁尸灭迹&#xff01; 你选中文件名称 / 右键 / 删除&#xff0c;好了&#xff0c;文件已经消失了。但你是懂电脑的&#xff0c;知道文件此时还在回收站里面…