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.
- Star the Repo
- Features
- Requirements
- Installation
- Data Setup
- Running AttackGen
- Usage
- Contributing
- Licence
If you find AttackGen useful, please consider starring the repository on GitHub. This helps more people discover the tool. Your support is greatly appreciated! ⭐
- Generates unique incident response scenarios based on chosen threat actor groups.
- Allows you to specify your organisation's size and industry for a tailored scenario.
- Displays a detailed list of techniques used by the selected threat actor group as per the MITRE ATT&CK framework.
- Downloadable scenarios in Markdown format.
- Integrated with LangSmith for powerful debugging, testing, and monitoring of model performance.
- Recent version of Python.
- Python packages: pandas, streamlit, and any other packages necessary for the custom libraries (
langchain
andmitreattack
). - OpenAI API key.
- Data files:
enterprise-attack.json
(MITRE ATT&CK dataset in STIX format) andgroups.json
.
- Clone the repository:
git clone https://github.com/mrwadams/attackgen.git
- Change directory into the cloned repository:
cd attackgen
- Install the required Python packages:
pip install -r requirements.txt
Download the latest version of the MITRE ATT&CK dataset in STIX format from here. Ensure to place this file in the ./data/
directory within the repository.
After the data setup, you can run AttackGen with the following command:
streamlit run app.py
- Enter your OpenAI API Key.
- Select your organisation's industry and size from the dropdown menus.
- Select a Threat Actor Group that you want to simulate.
- Click on 'Generate Scenario' to create the incident response scenario.
Please note that generating a scenario may take a minute or so. Once the scenario is generated, you can view it on the app and also download it as a Markdown file.
I'm very happy to accept contributions to this project. Please feel free to submit an issue or pull request.
This project is licensed under GNU GPLv3.