{"id":18830539,"url":"https://github.com/cmu-sei/cdas","last_synced_at":"2025-04-14T03:42:51.446Z","repository":{"id":59896311,"uuid":"284978123","full_name":"cmu-sei/CDAS","owner":"cmu-sei","description":"This program generates cyber attack scenarios for use in cyber training exercises, red team planning, blue team planning, automated attack execution, and cybersecurity policy analysis.","archived":false,"fork":false,"pushed_at":"2021-04-15T18:10:30.000Z","size":57340,"stargazers_count":26,"open_issues_count":0,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-27T17:46:56.779Z","etag":null,"topics":["cyber-training-exercises","cybersecurity","policy-analysis","scenarios","simulation","threat-actors"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmu-sei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-04T12:49:52.000Z","updated_at":"2024-12-16T21:06:23.000Z","dependencies_parsed_at":"2022-09-24T23:30:35.047Z","dependency_job_id":null,"html_url":"https://github.com/cmu-sei/CDAS","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmu-sei%2FCDAS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmu-sei%2FCDAS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmu-sei%2FCDAS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmu-sei%2FCDAS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmu-sei","download_url":"https://codeload.github.com/cmu-sei/CDAS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248818905,"owners_count":21166468,"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","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":["cyber-training-exercises","cybersecurity","policy-analysis","scenarios","simulation","threat-actors"],"created_at":"2024-11-08T01:49:21.960Z","updated_at":"2025-04-14T03:42:51.420Z","avatar_url":"https://github.com/cmu-sei.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cyber Decision Analysis Simulator - CDAS\n\n![CDAS Logo](cdas/assets/images/CDAS.png)\n\n## Overview\n\nThis program generates cyber attack scenarios for use in cyber training exercises, red team planning, blue team planning, automated attack execution, and cybersecurity policy analysis. CDAS generates documentation for these scenarios in the form of cyber incident reports and supporting contextual information (information on countries and threat actors). Scenarios can be based on real countries and geopolitical context, or have this context generated psuedo-randomly. Scenarios can use real APTs or have them generated pseudo-randomly to match the geopolitical context. Simulated cyber events are then generated based on APT motivation and organization vulnerability.\n\n## Features\n\n- [x] Country and geopolitical context generation\n- [x] APT generation\n- [x] Cyber event generation (incidents, attacks, intelligence)\n- [x] Output formats: PDF, JSON, MISP and/or HTML\n\n### ToDo\n- [ ] Country relationship details\n- [ ] Detailed representation of defender networks (asset improvement)\n- [ ] Visualization of relationships between data points\n- [ ] Improved world map generation\n- [ ] \"web feeds\" of intelligence/events (ex. news reports, dark web posts, etc.)\n\n## Components\n\n- Agents: Threat actors, defenders (companies)\n    - Friendly, enemy, and neutral players in the simulation\n- Assets: Cyber infrastructure\n    - Networks, software, hardware, configurations, and vulnerabilities\n- Context: Geopolitical context\n    - Countries, country attributes, and relationships with other countries which drive agent decision making\n- Simulation\n    - Decision parameters, simulation parameters, and output/formatting controls\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine. For detailed instructions on how to configure and use CDAS, see the [User Guide](UserGuide.md).\n\n### Prerequisites\n\nCDAS installs the following packages and their dependencies upon setup:\n\n```\nnumpy\nreportlab\ndrawSVG\ncyberdem\n```\n\n### Installing\n\n1. Download CDAS and unzip the download folder\n2. From within the top-level cdas folder (where setup.py is located) run\n\n```\n$ pip3 install .\n```\n\n3. To test that CDAS is installed properly run\n\n```\n$ python3 -m cdas -c sample_configs/randomize_all_small_pdf.json -v\nSetting up directories...\nCreating fake countries...\nCreating fake threat actors...\nRunning simulation...\n        Round 1\n        Round 2\n        Round 3\n        Round 4\n        Round 5\nSaving output...\n        pdf\nDone\n```\n\nCDAS should finish with no errors and the results will be in a folder called cdas-output. Results will include\n- SVG map of countries\n- A \"pdf\" folder containing\n    - 'actors' folder containing PDF files with threat actor descriptions\n    - 'countries' folder containing PDF files with country attributes\n    - 'reports' folder containing PDF files with event reports\n    - 'defenders' folder containing PDF files with organization descriptions\n\n## Configuration\n\nCDAS is configured via a required json file. You will find several sample configuration files in the [sample_configs](sample_configs) folder. Users can change variables related to geopolitical context generation, asset generation, agent generation, whether to randomize or use real world data, and more. See the [User Guide](UserGuide.md) for further instructions.\n\nAdditionally, there are three available command line flags: the required config-file, and the optional input and output directories. See the help menu for information on available flags.\n\n```\n$ python3 -m cdas -h\nusage: __main__.py [-h] -c CONFIG_FILE [-i INPUT_DIRECTORY] [-o OUTPUT_DIRECTORY] [--verbose]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -c CONFIG_FILE, --config-file CONFIG_FILE\n                        configuration file (json)\n  -i INPUT_DIRECTORY, --input-directory INPUT_DIRECTORY\n                        directory for specifying custom data\n  -o OUTPUT_DIRECTORY, --output-directory OUTPUT_DIRECTORY\n                        directory for storing results\n  --verbose, -v         v for basic status, vv for detailed status\n```\n\n## Simulation Details\n\n### Model\n\n- *type* - the player's prioritization of the security triad (Confidentiality, Integrity, Availability). For example, a defender listed as type, \"CIA\", prioritizes confidentiality the most and availability the least. An attacker listed as, \"CIA\", prioritizes espionage the highest (breaking confidentiality) and disrpution/denial (breaking availability) the least.\n\n## License\n\nCopyright 2020 Carnegie Mellon University. See the [LICENSE.md](LICENSE.md) file for details.\n\n## Acknowledgements\n\n* Default country information is pulled from the CIA World Factbook site (https://www.cia.gov/library/publications/the-world-factbook/)\n* Default intrusion set information for CDAS comes from the [Mitre Cyber Threat Intelligence repository](https://github.com/mitre/cti).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmu-sei%2Fcdas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmu-sei%2Fcdas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmu-sei%2Fcdas/lists"}