SkillAegis is a platform to design, run, and monitor exercise scenarios, enhancing skills in applications like MISP and training users in best practices for information management and protective tools. Its gamification system makes learning engaging, ensuring users acquire essential technical skills and adhere to industry standards.
To get started with SkillAegis, follow these steps:
python -V
git clone https://github.com/MISP/SkillAegis.git
cd SkillAegis
git submodule update --init --recursive
cp config.json.sample config.json
# Editor
pushd SkillAegis-Editor
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
cp config.py.sample config.py
# [recommended] Update the configuration's MISP part
deactivate
popd
# Dashboard
pushd SkillAegis-Dashboard
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
cp config.py.sample config.py
# [recommended] Update the configuration
deactivate
popd
bash SkillAegis.sh
To update the project, follow these steps:
git pull
git submodule update --recursive
docker compose build
cp template.env .env
vim .env
# Create a docker override file and add the host as extra_hosts
tee docker-compose.override.yml > /dev/null <<EOF
services:
skillaegis-dashboard:
extra_hosts:
- "host.docker.internal:host-gateway"
EOF
docker compose up
The project is composed of three applications:
SkillAegis is the primary application that configures, launches the two other projects, and houses the scenarios. While not essential for the overall project to function, it significantly simplifies the process.
The Editor can be used to design or edit scenario.
List of all available scenarios
While designing a scenario, you can create multiple injects, specify their execution order, outline any requirements for each, and define the criteria for evaluating and marking them as complete.
Writing evaluations for injects can be challenging, so the inject tester is provided to streamline this process.
The Dashboard can be used to run a training session and visualize the progress of participants in real-time.
Short demo of SkillAegis-Dashboard: Once the application starts, the user selects an exercise. From that point, the application tracks the real-time progression of each players.
On the dashboard main page, you can monitor the progress of all participants for the selected exercise and view real-time logs of their activity feed.
The fullscreen view provides an overview of the status of all users in a single, easily accessible display.
The format used to describe the scenarios is the Common Exercise Format (CEXF).
The format description outlines the JSON format including its overall structure and the semantics for each key. While scenarios can be written manually, we strongly recommend using the SkillAegis-Editor to simplify this process.
Sample exercise
{
"exercise": {
"description": "Simple Spear Phishing e-mail example, mimicing a fraud case",
"expanded": "# Simple Spear Phishing e-mail example, mimicing a fraud case",
"meta": {
"author": "MISP Project",
"level": "beginner"
},
"name": "Phishing e-mail",
"namespace": "phishing",
"tags": [
"exercise:software-scope=\"misp\"",
"state:production"
],
"total_duration": "7200",
"uuid": "75d7460-af9d-4098-8ad1-754457076b32",
"valid_until": "20310611",
"version": "20210611"
},
"inject_flow": [...],
"injects": [...],
}
We welcome contributions from the community. To contribute:
git checkout -b feature/your-feature-name
git commit -m 'Add some feature'
git push origin feature/your-feature-name
This software is licensed under GNU Affero General Public License version 3
Copyright (c) 2024 Sami Mokaddem
Copyright (c) 2024 CIRCL - Computer Incident Response Center Luxembourg