{"id":19260687,"url":"https://github.com/mitre/cicat","last_synced_at":"2026-03-27T03:01:37.422Z","repository":{"id":146198221,"uuid":"305503458","full_name":"mitre/CICAT","owner":"mitre","description":null,"archived":false,"fork":false,"pushed_at":"2020-10-30T15:37:36.000Z","size":7149,"stargazers_count":19,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-19T13:52:05.684Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mitre.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}},"created_at":"2020-10-19T20:19:00.000Z","updated_at":"2024-10-04T14:33:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"86040b2d-98dc-4136-a8b3-c7a3d6d56183","html_url":"https://github.com/mitre/CICAT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mitre/CICAT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitre%2FCICAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitre%2FCICAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitre%2FCICAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitre%2FCICAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mitre","download_url":"https://codeload.github.com/mitre/CICAT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitre%2FCICAT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31013619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T02:58:54.984Z","status":"ssl_error","status_checked_at":"2026-03-27T02:58:46.993Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2024-11-09T19:22:31.318Z","updated_at":"2026-03-27T03:01:37.405Z","avatar_url":"https://github.com/mitre.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Critical Infrastructure Cyberspace Analysis Tool (CICAT)\nCICAT is a modeling and simulation tool for evaluating how an adversary might conduct a cyber attack. CICAT uses a threat model that leverages open source cyber threat data provided by MITRE Enterprise ATT\u0026CK™ and ATT\u0026CK for ICS. MITRE developed CICAT to automate production of cyber attack scenarios in support of International Atomic Energy Agency (IAEA) Coordinated Research Program (CRP) J02008: \"Enhancing Computer Security Incident Analysis at Nuclear Facilities\", which seeks to improve capabilities to prevent, detect, and respond to cyber security incidents at nuclear facilities.\n# Version\nCICAT v1.1\n# Copyright 2020 The MITRE Corporation. All Rights Reserved. \nApproved for public release; Distribution unlimited. PRS Case 20-2400.\n# Licensing\nApache 2.0\n# Documentation\nA whitepaper discussing CICAT is available at https://www.mitre.org/publications/technical-papers/critical-infrastructure-cyberspace-analysis-tool-cicat-capability.\n# Platform requirements\nPython 3.7 or better; pip\n# Installation\n1. Unzip the distribution into a local directory.\n2. cd to the cicat folder.\n3. pip install -r requirements.\n4. cd to the example folder.\n5. run CCATrun.bat. (If CICAT is installed correctly, this will generate scenarios for the AP1000 model and create a Results spreadsheet.)\n# Scenario Generation\nThis CICAT distribution includes the program scenGEN.py, which is used to generate cyber attack scenarios. This program imports an infrastructure model and scenario specification as Excel spreadsheets, and exports generated scnerarios data as an Excel spreadsdheet. \n\nTo run scenGEN.py: \npython scenGEN.py -i \\\u003cinfrastucture spreadsheet.xlsx\\\u003e -s \\\u003cscenario specification.xlsx\\\u003e -o \\\u003cresults spreadsheet.xlsx\\\u003e\n                                                                                                   \nExamples of infrastucture and scenario specification spreadsheets can be found in the data subdirectory and are called TB_infrastructure.xlsx and TB_scnearios.xlsx, respectively. These spreadsheets represent an infrastructure testbed developed for testing purposes. These testbed files are imported by default if scenGEN.py is invoked without -i or -s input parameters.  \n\nThe -o parameter is used to specify a filename for the output spreadsheet. If no -o parameter is supplied, the default filename 'Results' is used and saved in the data subdirectory. The output filename is always appended with a timestamp to prevent CICAT from overwriting previous scenario results. \n# Worked Example\nThe example subfolder contains an example assessment of AP1000 pressurized water reactor (PWR) safety systems using CICAT scenario generation. This worked example is approved for public release, PRS case 20-1395.\n\nThe infrastructure spreadsheet includes model details for roughly 12 AP1000 safety systems and 80 components. Note that this model contains fictitious component and network details, and was developed for demonstration purposes. \n\nThe scneario specification includes 4 scenarios, each targeting a different safety system from internal plant locations and through an external entry point. Each scenario uses the same threat actor (IS01) applying a different tactic pattern. A tactic pattern specifies the sequence of ATT\u0026CK tactics the threat actor uses over the course of an cyber attack. The spreadsheet provides details on threat actor capabilities and tactic patterns supported in CICAT. \n\nNote that IS01 is a fictional threat actor and the tactic patterns do not reflect known adversary behaviors. The IS01 threat actor profile includes both Enterprise ATT\u0026CK(tm) and ATT\u0026CK for ICS techniques. It was developed to demonstrate generation of cyberattack scenarios in a blended IT and OT environment.\n\nThe CCATrun.bat script (Windows) invokes the scenGEN.py program to generate scnearios that are output to a RESULTS.ap1000.xlsx spreadsheet.\n\nThe CICAT brief.ap1000.pptx powerpoint outlines the assessment scope, objectives, results, and lessons learned.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmitre%2Fcicat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmitre%2Fcicat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmitre%2Fcicat/lists"}