cisagov / decider
- воскресенье, 5 марта 2023 г. в 00:13:52
A web application that assists network defenders, analysts, and researcher in the process of mapping adversary behaviors to the MITRE ATT&CK® framework.
A web application that assists network defenders, analysts, and researcher in the process of mapping adversary behaviors to the MITRE ATT&CK® framework.
This project makes use of MITRE ATT&CK - ATT&CK Terms of Use
pip install -r requirements.txt
brew install postgresql
Before developing, please set up a virtualenv and install the pre-commit git hook scripts.
Decider uses Black and Flake8 with a line length of 119.
Please ensure you are using Python 3.8.10.
To do this, after cloning the repository, run:
sudo apt install -y python3-pip
python3 -m venv venv/
source venv/bin/activate
pip3 install wheel==0.37.1
pip3 install -r requirements.txt
pip3 install -r requirements_dev.txt
pre-commit install
Decider is a tool to help analysts map adversary behavior to the MITRE ATT&CK framework. Decider makes creating ATT&CK mappings easier to get right by walking users through the mapping process. It does so by asking a series of guided questions about adversary activity to help them arrive at the correct tactic, technique, or subtechnique. Decider has a powerful search and filter functionality that enables users to focus on the parts of ATT&CK that are relevant to their analysis. Decider also has a cart functionality that lets users export results to commonly used formats, such as tables and ATT&CK Navigator™ heatmaps.
There are 3 different components to Decider: the PostgreSQL database, the web server (uWSGI), and the Decider application. Decider and its components are tested on Ubuntu 20.04 / CentOS 7. Installation and management should be done on either of these platforms.
This is documented inside of Decider's Admin Guide.
python3 initial_setup.py
Decider is configured by two files:
.env
.env.example
must exist/be defined in either .env
or the environment itself for Decider to launch/run build scripts.initial_setup.py
to create this file. The script will ask for the creation of two logins and an encryption key.
app/conf.py
SQLALCHEMY_DATABASE_URI
variable can be tweaked:
host
/port
: specify the PostgreSQL server endpoint location.database
: specifies which DB on the server to use.python3 decider.py --config CONFIG
(from the root decider_tool/ directory)
python -m app.utils.db.actions.full_build [--config CONF]
: /jsons/source → DB
pg_dump -U DB_USER -W -F t -h HOSTNAME DB_NAME > decider.sql
pg_restore -U DB_USER -W -h localhost -d DB_NAME < app/utils/decider.sql