{"id":27976457,"url":"https://github.com/misp/skillaegis","last_synced_at":"2025-08-21T09:04:27.176Z","repository":{"id":253117258,"uuid":"833609381","full_name":"MISP/SkillAegis","owner":"MISP","description":"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.","archived":false,"fork":false,"pushed_at":"2025-08-18T13:52:13.000Z","size":16236,"stargazers_count":30,"open_issues_count":3,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-18T15:36:39.605Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MISP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-25T11:48:56.000Z","updated_at":"2025-08-18T13:52:16.000Z","dependencies_parsed_at":"2025-05-08T01:33:06.648Z","dependency_job_id":"2201a08a-4636-4e07-9ff8-4b161fb0dcfc","html_url":"https://github.com/MISP/SkillAegis","commit_stats":null,"previous_names":["misp/skillaegis"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/MISP/SkillAegis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MISP%2FSkillAegis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MISP%2FSkillAegis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MISP%2FSkillAegis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MISP%2FSkillAegis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MISP","download_url":"https://codeload.github.com/MISP/SkillAegis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MISP%2FSkillAegis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271454821,"owners_count":24762698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-08T01:27:01.010Z","updated_at":"2025-08-21T09:04:27.150Z","avatar_url":"https://github.com/MISP.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SkillAegis\n\u003cimg alt=\"SkillAegis Logo\" align=\"right\" src=\"application/skillaegis-logo.svg\"/\u003e \n\n**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.\n\n\n## Features\n\n- **Create Exercise Scenarios**: Design and customize various training exercises tailored to your needs.\n- **Run Exercises**: Deploy scenarios and run training sessions.\n- **Live Dashboard**: Monitor progress and performance with the live dashboard, providing realtime insights and analytics.\n\n## Installation\n\nTo get started with SkillAegis, follow these steps:\n\n0. Ensure Python **3.10** or higher is installed.\n    ```bash\n    python -V\n    ```\n1. Clone the repository:\n    ```bash\n    git clone https://github.com/MISP/SkillAegis.git\n    ```\n2. Navigate to the project directory:\n    ```bash\n    cd SkillAegis\n    ```\n3. Initialize the submodules\n    ```bash\n    git submodule update --init --recursive\n    ```\n4. Clone the configuration file\n    ```bash\n    cp config.json.sample config.json\n    ```\n    -   [optional] Update the configuration\n5. Install the submodule dependencies\n   ```bash\n   # Editor\n   pushd SkillAegis-Editor\n   python3 -m venv venv\n   source venv/bin/activate\n   pip3 install -r requirements.txt\n   cp config.py.sample config.py\n   # [recommended] Update the configuration's MISP part\n   deactivate\n   popd\n\n   # Dashboard\n   pushd SkillAegis-Dashboard\n   python3 -m venv venv\n   source venv/bin/activate\n   pip3 install -r requirements.txt\n   cp config.py.sample config.py\n   # [recommended] Update the configuration\n   deactivate\n   popd\n   ```\n6. Start the project\n   ```bash\n   bash SkillAegis.sh\n   ```\n\n## Update\n\nTo update the project, follow these steps:\n\n1. Pull the latest changes\n    ```bash\n    git pull\n    ```\n2. Pull the latest changes for all submodules\n    ```bash\n    git submodule update --recursive\n    ```\n\n## Docker\n\nYou can alternatively run it in Docker, following those steps :\n\n1. Build the image\n    ```bash\n    docker compose build\n    ```\n2. Copy and update the config\n    ```bash\n    cp template.env .env\n    vim .env\n    ```\n3. [optional] Allow the application to reach services on the host\n    ```bash\n    # Create a docker override file and add the host as extra_hosts\n    tee docker-compose.override.yml \u003e /dev/null \u003c\u003cEOF\n    services:\n      skillaegis-dashboard:\n        extra_hosts:\n          - \"host.docker.internal:host-gateway\"\n    EOF\n    ```\n    \n4. Run the application\n    ```bash\n    docker compose up\n    ```\n\n# Project Structure\n\nThe project is composed of three applications:\n\n1. **[SkillAegis](https://github.com/MISP/SkillAegis)**: The main application that configures and starts the two other projects. It also contains all created scenarios.\n2. **[SkillAegis Editor](https://github.com/MISP/SkillAegis-Editor)**: The scenario builder to create new training exercises.\n3. **[SkillAegis Dashboard](https://github.com/MISP/SkillAegis-Dashboard)**: The application to start training sessions and track participants' progress in real time.\n\n\n## SkillAegis\nSkillAegis 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.\n\n![SkillAegis Main Application](./docs/skillaegis_main_app.png)\n\n\n## SkillAegis Editor\nThe **Editor** can be used to design or edit scenario.\n\n![SkillAegis Editor Scenario Index](./docs/SkillAegis-Editor_index.png)\n*List of all available scenarios*\n\n![SkillAegis Editor Scenario Designer](./docs/SkillAegis-Editor_designer.png)\n*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.*\n\n![SkillAegis Editor Inject Tester](./docs/SkillAegis-Editor_inject-tester.png)\n*Writing evaluations for injects can be challenging, so the inject tester is provided to streamline this process.*\n\n## SkillAegis Dashboard\nThe **Dashboard** can be used to run a training session and visualize the progress of participants in real-time.\n\n![SkillAegis Dashboard Active Exercises](./docs/SkillAegis-Dashboard-recording.gif)\n*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.*\n\n![SkillAegis Dashboard Active Exercises](./docs/SkillAegis-Dashboard_main.png)\n*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.*\n\n![SkillAegis Dashboard Fullscreen](./docs/SkillAegis-Dashboard_fullscreen.png)\n*The fullscreen view provides an overview of the status of all users in a single, easily accessible display.*\n\n\n## Scenario format\nThe format used to describe the scenarios is the [Common Exercise Format (CEXF)](https://misp.github.io/cexf/).\n\nThe [format description](https://github.com/MISP/cexf/blob/main/format-description.md) 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.\n\n**Sample exercise**\n```json\n{\n  \"exercise\": {\n    \"description\": \"Simple Spear Phishing e-mail example, mimicing a fraud case\",\n    \"expanded\": \"# Simple Spear Phishing e-mail example, mimicing a fraud case\",\n    \"meta\": {\n      \"author\": \"MISP Project\",\n      \"level\": \"beginner\"\n    },\n    \"name\": \"Phishing e-mail\",\n    \"namespace\": \"phishing\",\n    \"tags\": [\n      \"exercise:software-scope=\\\"misp\\\"\",\n      \"state:production\"\n    ],\n    \"total_duration\": \"7200\",\n    \"uuid\": \"75d7460-af9d-4098-8ad1-754457076b32\",\n    \"valid_until\": \"20310611\",\n    \"version\": \"20210611\"\n  },\n  \"inject_flow\": [...],\n  \"injects\": [...],\n}\n```\n\n\n## Contributing\n\nWe welcome contributions from the community. To contribute:\n\n1. Fork the repository.\n2. Create a new branch:\n    ```bash\n    git checkout -b feature/your-feature-name\n    ```\n3. Make your changes and commit them:\n    ```bash\n    git commit -m 'Add some feature'\n    ```\n4. Push to the branch:\n    ```bash\n    git push origin feature/your-feature-name\n    ```\n5. Open a pull request.\n\n# License\nThis software is licensed under GNU Affero General Public License version 3\n\n```\nCopyright (c) 2024 Sami Mokaddem\nCopyright (c) 2024 CIRCL - Computer Incident Response Center Luxembourg\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisp%2Fskillaegis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisp%2Fskillaegis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisp%2Fskillaegis/lists"}