static void Main(string[] args) { if (args.Length > 0) { if (Directory.Exists(args[0])) { Console.WriteLine("Threats Manager Platform - MITRE Importer"); var graph = new MitreGraph(); var cweFile = Directory.GetFiles(args[0], "cwe*.xml", SearchOption.TopDirectoryOnly)? .OrderByDescending(x => x) .FirstOrDefault(); if (cweFile != null) { var cwe = File.ReadAllText(cweFile); var cweEngine = new CweEngine(cwe); cweEngine.EnrichGraph(graph); } var capecFile = Directory.GetFiles(args[0], "capec*.xml", SearchOption.TopDirectoryOnly)? .OrderByDescending(x => x) .FirstOrDefault(); if (capecFile != null) { var capec = File.ReadAllText(capecFile); var capecEngine = new CapecEngine(capec); capecEngine.EnrichGraph(graph); } var attackFile = Directory.GetFiles(args[0], "enterprise-attack.json", SearchOption.TopDirectoryOnly)? .OrderByDescending(x => x) .FirstOrDefault(); if (attackFile != null) { var attack = File.ReadAllText(attackFile); var attackEngine = new AttackEngine("Enterprise ATT&CK", "1.0", attack); attackEngine.EnrichGraph(graph); } graph.ReconcileRelationships(); Print(graph); var path = Path.Combine(args[0], "MitreGraph.json"); graph.Serialize(path); Console.WriteLine($"Created file {path}."); } else { throw new DirectoryNotFoundException(); } } }
public void SetupTest() { gameObject = new GameObject(); engine = gameObject.AddComponent <AttackEngine>(); }