示例#1
0
        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>();
 }