AttackGen 是一款网络安全事件响应测试工具,它利用大型语言模型和全面的MITRE ATT&CK 框架的强大功能。该工具根据用户选择的威胁行为者组和您组织的详细信息生成定制的事件响应场景。
为 Repo 加星标
如果您发现 AttackGen 有用,请考虑在 GitHub 上为该存储库加注。这可以帮助更多人发现该工具。非常感谢您的支持!
特征
- 根据所选的威胁行为者群体生成独特的事件响应场景。
- 允许您指定组织的规模和行业,以实现定制方案。
- 根据 MITRE ATT&CK 框架显示所选威胁行为者组使用的技术的详细列表。
- 根据选择的 ATT&CK 技术创建自定义场景。
- 捕获用户对生成场景质量的反馈。
- 可下载的 Markdown 格式场景。
使用 OpenAI API、Azure OpenAI 服务、Mistral API 或本地托管的 Ollama 模型来生成事件响应场景。
- 可作为 Docker 容器映像使用,以便于部署。
- 可选与LangSmith集成,以实现强大的调试、测试和模型性能监控。
发行
v0.4(当前)
什么是新的? | 它为什么有用? |
---|---|
Mistral API 集成 | - 替代模型提供程序:用户现在可以利用 Mistral AI 模型来生成事件响应场景。此集成为 OpenAI 和 Azure OpenAI 服务模型提供了替代方案,使用户可以探索和比较不同语言模型针对其特定用例的性能。 |
使用 Ollama 的本地模型支持 | - 本地模型托管:AttackGen 现在支持通过与 Ollama 集成使用本地托管的 LLM。此功能对于具有严格数据隐私要求或希望将数据保留在本地的组织特别有用。请注意,此功能不适用于在 Streamlit Community Cloud 上托管的 AttackGen 版本的用户,网址为 https://attackgen.streamlit.app |
可选的 LangSmith 集成 | - 提高灵活性:与 LangSmith 的集成现在是可选的。如果没有提供 LangChain API 密钥,用户将看到一条提示消息,表明 LangSmith 不会记录运行,而不是抛出错误。此更改改善了整体用户体验,并允许用户继续使用 AttackGen,而无需 LangSmith。 |
各种错误修复和改进 | - 增强的用户体验:此版本包括几个错误修复和用户界面改进,使 AttackGen 更加用户友好且强大。 |
v0.3
什么是新的? | 它为什么有用? |
---|---|
Azure OpenAI 服务集成 | - 增强集成:除了标准 OpenAI API 之外,用户现在可以选择使用部署在 Azure OpenAI 服务上的 OpenAI 模型。此集成提供了一种无缝且安全的解决方案,可将 AttackGen 整合到现有的 Azure 生态系统中,并利用既定的商业和保密协议。- 改进的数据安全性:从 Azure 运行 AttackGen 可确保应用程序描述和其他数据保留在 Azure 环境中,使其成为在威胁模型中处理敏感数据的组织的理想选择。 |
LangSmith for Azure OpenAI 服务 | - 增强的调试功能:LangSmith 跟踪功能现在可用于使用 Azure OpenAI 服务生成的场景。此功能为调试、测试和监控模型性能提供了强大的工具,使用户能够深入了解模型的决策过程并识别生成的场景的潜在问题。 - 用户反馈:LangSmith 还捕获了用户对使用 Azure OpenAI 服务生成的场景质量的反馈,从而为模型性能和用户满意度提供了宝贵的见解。 |
OpenAI API 的模型选择 | - 灵活的模型选项:用户现在可以从 OpenAI API 端点提供的多个模型中进行选择,例如gpt-4-turbo-preview 。这允许对不同的语言模型进行更大的自定义和实验,使用户能够找到最适合其特定用例的模型。 |
Docker 容器镜像 | - 轻松部署:AttackGen 现已作为 Docker 容器映像提供,从而更易于在一致且可重复的环境中部署和运行应用程序。此功能对于希望在容器化环境中运行 AttackGen 的用户或希望在云平台上部署应用程序的用户特别有用。 |
v0.2
什么是新的? | 它为什么有用? |
---|---|
基于ATT&CK技术的自定义场景 | - 对于成熟组织:如果您的组织具有高级威胁情报能力,此功能特别有用。例如,如果您正在监控一个新发现或鲜为人知的威胁行为者团体,您可以针对该团体使用的技术定制事件响应测试场景。- 重点测试:或者,使用此功能将您的事件响应测试重点放在网络杀伤链的特定部分或某些 MITRE ATT&CK 策略上,例如“横向移动”或“渗透”。这对于希望评估和改进其防御态势特定领域的组织非常有用。 |
用户对生成场景的反馈 | - 收集反馈对于跟踪模型随时间的性能至关重要,并有助于突出场景生成任务中的优势和劣势。 |
改进了缺少 API 密钥的错误处理 | - 改善用户体验。 |
st.spinner 用新的st.status 小部件替换了 Streamlit小部件 | - 提供对长期运行过程(即场景生成)的更好的可视性。 |
v0.1
初始版本。要求
- Python 的最新版本。
- Python 包:pandas、streamlit 以及自定义库所需的任何其他包(
langchain
和mitreattack
)。 - OpenAI API 密钥。
- LangChain API 密钥(可选) -有关更多详细信息,请参阅下面的LangSmith 设置部分。
- 数据文件:
enterprise-attack.json
(STIX 格式的 MITRE ATT&CK 数据集)和groups.json
。
安装
选项 1:克隆存储库
- 克隆此存储库:
代码:
git clone [URL]https://github.com/mrwadams/attackgen.git[/URL]
- 将目录更改为克隆的存储库:
代码:
cd attackgen
- 安装所需的 Python 包:
代码:
pip install -r requirements.txt
选项 2:使用 Docker
- 从 Docker Hub 拉取 Docker 容器镜像:
代码:
docker pull mrwadams/attackgen
LangSmith 设置
如果您想使用 LangSmith 来调试、测试和监控模型性能,您需要设置一个 LangSmith 帐户并创建一个包含您的 LangChain API 密钥的文件。请按照此处的.streamlit/secrets.toml
说明设置您的帐户并获取您的 API 密钥。您会在目录中找到一个文件,您可以将其用作您自己的 secrets.toml 文件的模板。secrets.toml-example
.streamlit/
如果您不想使用 LangSmith,您仍然必须有一个
.streamlit/secrets.toml
文件,但您可以将该LANGCHAIN_API_KEY
字段留空。数据设置
从此处下载最新版本的 STIX 格式的 MITRE ATT&CK 数据集。确保将此文件放在./data/
存储库内的目录中。运行 AttackGen
数据设置完成后,您可以使用以下命令运行 AttackGen:
代码:
streamlit run 👋_Welcome.py
用法
运行 AttackGen
选项 1:在本地运行 Streamlit 应用
- 运行 Streamlit 应用程序:
代码:
streamlit run 👋_Welcome.py
- 打开您的网络浏览器并导航到 Streamlit 提供的 URL。
- 使用该应用程序生成标准或自定义的事件响应场景(详情见下文)。
选项 2:使用 Docker 容器镜像
- 运行 Docker 容器:
代码:
docker run -p 8501:8501 mrwadams/attackgen
[URL='http://localhost:8501/']http://localhost:8501[/URL]
。3. 使用该应用程序生成标准或自定义事件响应场景(详情见下文)。生成场景
标准场景生成
- 选择使用 OpenAI API 还是 Azure OpenAI 服务。
- 输入您的 OpenAI API 密钥,或者 Azure OpenAI 服务上模型的 API 密钥和部署详细信息。
- 从下拉菜单中选择您所在组织的行业和规模。
- 导航至该
Threat Group Scenarios
页面。 - 选择您想要模拟的威胁行为者组。
- 点击“生成场景”来创建事件响应场景。
- 使用
或
按钮对生成场景的质量提供反馈。注意:仅当文件中设置了 LANGCHAIN_API_KEY 的值时,才会出现反馈按钮
.streamlit/secrets.toml
。
自定义场景生成
- 选择使用 OpenAI API 还是 Azure OpenAI 服务。
- 输入您的 OpenAI API 密钥,或者 Azure OpenAI 服务上模型的 API 密钥和部署详细信息。
- 从下拉菜单中选择您组织的行业和规模。
- 导航至该
Custom Scenario
页面。 - 使用多选框搜索并选择与您的场景相关的 ATT&CK 技术。
- 单击“生成场景”以根据所选技术创建自定义事件响应测试场景。
- 使用
或
按钮对生成场景的质量提供反馈。注意:仅当文件中设置了 LANGCHAIN_API_KEY 的值时,才会出现反馈按钮
.streamlit/secrets.toml
。
贡献
我很高兴接受对这个项目的贡献。请随时提交问题或拉取请求。执照
该项目采用GNU GPLv3许可。下载 Attackgen