@x12i/memorix-retrieval 1.35.0 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalox-seeds/inputs/entity-descriptors/assets.json +166 -0
- package/catalox-seeds/inputs/entity-descriptors/subnets.json +115 -1
- package/catalox-seeds/inputs/entity-descriptors/topology-zones.json +52 -1
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities-groups.json +10 -2
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +79 -7
- package/catalox-seeds/inputs/graph-descriptors/asset-subnet-paths-graph.json +41 -0
- package/catalox-seeds/inputs/graph-descriptors/asset-topology-vulnerabilities-graph.json +81 -0
- package/catalox-seeds/inputs/graph-descriptors/asset-vulnerability-group-graph.json +38 -0
- package/catalox-seeds/inputs/graph-descriptors/vulnerability-asset-subnet-graph.json +40 -0
- package/catalox-seeds/inputs/list-descriptors/assets-exploitability-decisions-list.json +4 -0
- package/catalox-seeds/inputs/list-descriptors/assets-potential-impact-decisions-list.json +16 -8
- package/catalox-seeds/inputs/manifest.json +4 -0
- package/catalox-seeds/inputs/memorix-catalog-ids.json +2 -1
- package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +1186 -34
- package/dist/client/catalox-adapter.d.ts.map +1 -1
- package/dist/client/catalox-adapter.js +10 -1
- package/dist/client/catalox-adapter.js.map +1 -1
- package/dist/client/catalox-like.d.ts +6 -0
- package/dist/client/catalox-like.d.ts.map +1 -1
- package/dist/data/identity.d.ts +19 -1
- package/dist/data/identity.d.ts.map +1 -1
- package/dist/data/identity.js +41 -25
- package/dist/data/identity.js.map +1 -1
- package/dist/data/record-info.d.ts +1 -1
- package/dist/data/record-info.d.ts.map +1 -1
- package/dist/descriptors/catalog-ids.d.ts +1 -0
- package/dist/descriptors/catalog-ids.d.ts.map +1 -1
- package/dist/descriptors/catalog-ids.js +1 -0
- package/dist/descriptors/catalog-ids.js.map +1 -1
- package/dist/descriptors/descriptor-types.d.ts +3 -1
- package/dist/descriptors/descriptor-types.d.ts.map +1 -1
- package/dist/errors/issues.d.ts +2 -0
- package/dist/errors/issues.d.ts.map +1 -1
- package/dist/errors/issues.js.map +1 -1
- package/dist/graphs/build-graph-directory.d.ts +28 -0
- package/dist/graphs/build-graph-directory.d.ts.map +1 -0
- package/dist/graphs/build-graph-directory.js +253 -0
- package/dist/graphs/build-graph-directory.js.map +1 -0
- package/dist/graphs/build-graph-document.d.ts +13 -0
- package/dist/graphs/build-graph-document.d.ts.map +1 -0
- package/dist/graphs/build-graph-document.js +888 -0
- package/dist/graphs/build-graph-document.js.map +1 -0
- package/dist/graphs/fallback-graph-capabilities.d.ts +16 -0
- package/dist/graphs/fallback-graph-capabilities.d.ts.map +1 -0
- package/dist/graphs/fallback-graph-capabilities.js +376 -0
- package/dist/graphs/fallback-graph-capabilities.js.map +1 -0
- package/dist/graphs/index.d.ts +9 -0
- package/dist/graphs/index.d.ts.map +1 -0
- package/dist/graphs/index.js +8 -0
- package/dist/graphs/index.js.map +1 -0
- package/dist/graphs/infer-graph-descriptor.d.ts +17 -0
- package/dist/graphs/infer-graph-descriptor.d.ts.map +1 -0
- package/dist/graphs/infer-graph-descriptor.js +234 -0
- package/dist/graphs/infer-graph-descriptor.js.map +1 -0
- package/dist/graphs/load-graph-descriptor.d.ts +31 -0
- package/dist/graphs/load-graph-descriptor.d.ts.map +1 -0
- package/dist/graphs/load-graph-descriptor.js +141 -0
- package/dist/graphs/load-graph-descriptor.js.map +1 -0
- package/dist/graphs/record-access.d.ts +36 -0
- package/dist/graphs/record-access.d.ts.map +1 -0
- package/dist/graphs/record-access.js +178 -0
- package/dist/graphs/record-access.js.map +1 -0
- package/dist/graphs/types.d.ts +70 -0
- package/dist/graphs/types.d.ts.map +1 -0
- package/dist/graphs/types.js +17 -0
- package/dist/graphs/types.js.map +1 -0
- package/dist/graphs/validate-graph-metadata.d.ts +36 -0
- package/dist/graphs/validate-graph-metadata.d.ts.map +1 -0
- package/dist/graphs/validate-graph-metadata.js +71 -0
- package/dist/graphs/validate-graph-metadata.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/retrieval/fetch-list.d.ts.map +1 -1
- package/dist/retrieval/fetch-list.js +3 -1
- package/dist/retrieval/fetch-list.js.map +1 -1
- package/dist/retrieval/resolve-fields.d.ts.map +1 -1
- package/dist/retrieval/resolve-fields.js +7 -1
- package/dist/retrieval/resolve-fields.js.map +1 -1
- package/dist/retrieval/resolve-list-analytics.d.ts +2 -2
- package/dist/retrieval/resolve-list-analytics.d.ts.map +1 -1
- package/dist/retrieval/resolve-list-analytics.js.map +1 -1
- package/dist/retrieval/resolve-property-source.d.ts.map +1 -1
- package/dist/retrieval/resolve-property-source.js +10 -3
- package/dist/retrieval/resolve-property-source.js.map +1 -1
- package/dist/seeds/default-seed-spec.d.ts.map +1 -1
- package/dist/seeds/default-seed-spec.js +25 -1
- package/dist/seeds/default-seed-spec.js.map +1 -1
- package/dist/tests/catalox-adapter-scope.test.d.ts +2 -0
- package/dist/tests/catalox-adapter-scope.test.d.ts.map +1 -0
- package/dist/tests/catalox-adapter-scope.test.js +26 -0
- package/dist/tests/catalox-adapter-scope.test.js.map +1 -0
- package/dist/tests/fetch-list.test.js +28 -0
- package/dist/tests/fetch-list.test.js.map +1 -1
- package/dist/tests/graphs.test.d.ts +2 -0
- package/dist/tests/graphs.test.d.ts.map +1 -0
- package/dist/tests/graphs.test.js +423 -0
- package/dist/tests/graphs.test.js.map +1 -0
- package/dist/tests/identity.test.js +13 -1
- package/dist/tests/identity.test.js.map +1 -1
- package/dist/tests/infer-graph.test.d.ts +2 -0
- package/dist/tests/infer-graph.test.d.ts.map +1 -0
- package/dist/tests/infer-graph.test.js +19 -0
- package/dist/tests/infer-graph.test.js.map +1 -0
- package/dist/tests/resolve-filters.test.js +8 -0
- package/dist/tests/resolve-filters.test.js.map +1 -1
- package/dist/tests/seed-manifest.test.js +3 -0
- package/dist/tests/seed-manifest.test.js.map +1 -1
- package/dist/tests/validate-graph-metadata.test.d.ts +2 -0
- package/dist/tests/validate-graph-metadata.test.d.ts.map +1 -0
- package/dist/tests/validate-graph-metadata.test.js +81 -0
- package/dist/tests/validate-graph-metadata.test.js.map +1 -0
- package/package.json +13 -2
|
@@ -82,6 +82,32 @@
|
|
|
82
82
|
"item": true,
|
|
83
83
|
"valueType": "array"
|
|
84
84
|
},
|
|
85
|
+
"subnetCidr": {
|
|
86
|
+
"label": "Subnet CIDR",
|
|
87
|
+
"source": {
|
|
88
|
+
"contentType": "snapshots",
|
|
89
|
+
"path": "data.subnetCidrs.0"
|
|
90
|
+
},
|
|
91
|
+
"humanReadable": true,
|
|
92
|
+
"sortable": true,
|
|
93
|
+
"filterable": true,
|
|
94
|
+
"list": true,
|
|
95
|
+
"item": true,
|
|
96
|
+
"valueType": "string"
|
|
97
|
+
},
|
|
98
|
+
"subnetIp": {
|
|
99
|
+
"label": "Subnet IP",
|
|
100
|
+
"source": {
|
|
101
|
+
"contentType": "snapshots",
|
|
102
|
+
"path": "data.subnets.0.networkAddress"
|
|
103
|
+
},
|
|
104
|
+
"humanReadable": true,
|
|
105
|
+
"sortable": true,
|
|
106
|
+
"filterable": true,
|
|
107
|
+
"list": true,
|
|
108
|
+
"item": true,
|
|
109
|
+
"valueType": "string"
|
|
110
|
+
},
|
|
85
111
|
"subnets": {
|
|
86
112
|
"label": "Resolved Subnets",
|
|
87
113
|
"source": {
|
|
@@ -438,6 +464,46 @@
|
|
|
438
464
|
"list": true,
|
|
439
465
|
"item": true,
|
|
440
466
|
"valueType": "number"
|
|
467
|
+
},
|
|
468
|
+
"impactDecisionLabel": {
|
|
469
|
+
"label": "Impact Decision",
|
|
470
|
+
"source": { "contentType": "decisions", "path": "data.impactDecision.decision" },
|
|
471
|
+
"humanReadable": true,
|
|
472
|
+
"sortable": true,
|
|
473
|
+
"filterable": true,
|
|
474
|
+
"list": true,
|
|
475
|
+
"item": true,
|
|
476
|
+
"valueType": "string"
|
|
477
|
+
},
|
|
478
|
+
"impactDecisionStatus": {
|
|
479
|
+
"label": "Impact Decision Status",
|
|
480
|
+
"source": { "contentType": "decisions", "path": "data.impactDecision.status" },
|
|
481
|
+
"humanReadable": true,
|
|
482
|
+
"sortable": true,
|
|
483
|
+
"filterable": true,
|
|
484
|
+
"list": true,
|
|
485
|
+
"item": true,
|
|
486
|
+
"valueType": "string"
|
|
487
|
+
},
|
|
488
|
+
"impactDecisionRiskScore": {
|
|
489
|
+
"label": "Impact Decision Score",
|
|
490
|
+
"source": { "contentType": "decisions", "path": "data.impactDecision.riskScore" },
|
|
491
|
+
"humanReadable": true,
|
|
492
|
+
"sortable": true,
|
|
493
|
+
"filterable": true,
|
|
494
|
+
"list": true,
|
|
495
|
+
"item": true,
|
|
496
|
+
"valueType": "number"
|
|
497
|
+
},
|
|
498
|
+
"impactDecisionUrgencyScore": {
|
|
499
|
+
"label": "Impact Urgency Score",
|
|
500
|
+
"source": { "contentType": "decisions", "path": "data.impactDecision.urgencyScore" },
|
|
501
|
+
"humanReadable": true,
|
|
502
|
+
"sortable": true,
|
|
503
|
+
"filterable": true,
|
|
504
|
+
"list": true,
|
|
505
|
+
"item": true,
|
|
506
|
+
"valueType": "number"
|
|
441
507
|
}
|
|
442
508
|
},
|
|
443
509
|
"associatedProperties": [
|
|
@@ -768,5 +834,105 @@
|
|
|
768
834
|
"cveId"
|
|
769
835
|
]
|
|
770
836
|
}
|
|
837
|
+
},
|
|
838
|
+
"graph": {
|
|
839
|
+
"node": {
|
|
840
|
+
"kind": "ipAddress",
|
|
841
|
+
"directoryFields": ["ipAddress", "hostType", "zones"],
|
|
842
|
+
"contentLenses": ["snapshot", "analysis", "decisions"],
|
|
843
|
+
"ui": { "icon": "server" }
|
|
844
|
+
},
|
|
845
|
+
"edgeTemplates": [
|
|
846
|
+
{
|
|
847
|
+
"id": "asset-topology-associated",
|
|
848
|
+
"source": { "kind": "associatedArray", "key": "associatedTopology" },
|
|
849
|
+
"edges": [
|
|
850
|
+
{
|
|
851
|
+
"type": "containedIn",
|
|
852
|
+
"from": { "source": "concept" },
|
|
853
|
+
"to": { "source": "itemField", "field": "cidr", "kind": "cidr" },
|
|
854
|
+
"toObjectType": "subnets",
|
|
855
|
+
"toKind": "cidr",
|
|
856
|
+
"when": { "itemFieldExists": "cidr" }
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"type": "inZone",
|
|
860
|
+
"from": { "source": "itemField", "field": "cidr", "kind": "cidr" },
|
|
861
|
+
"to": { "source": "itemField", "field": "zone", "kind": "zoneName" },
|
|
862
|
+
"toObjectType": "topology-zones",
|
|
863
|
+
"toKind": "zoneName",
|
|
864
|
+
"when": { "itemFieldExists": "zone" }
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
"type": "reachableFrom",
|
|
868
|
+
"from": { "source": "itemArrayField", "field": "reachableFromZones", "kind": "zoneName" },
|
|
869
|
+
"to": { "source": "itemField", "field": "zone", "kind": "zoneName" },
|
|
870
|
+
"toObjectType": "topology-zones",
|
|
871
|
+
"toKind": "zoneName",
|
|
872
|
+
"when": { "itemFieldExists": "zone" }
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
"type": "pathBridge",
|
|
876
|
+
"from": { "source": "literal", "kind": "zoneName", "value": "OUTSIDE" },
|
|
877
|
+
"to": { "source": "itemField", "field": "zone", "kind": "zoneName" },
|
|
878
|
+
"toObjectType": "topology-zones",
|
|
879
|
+
"toKind": "zoneName",
|
|
880
|
+
"synthesizePath": { "titleTemplate": "{from} → {to}" },
|
|
881
|
+
"when": {
|
|
882
|
+
"itemFieldExists": "zone",
|
|
883
|
+
"itemArrayIncludes": { "field": "reachableFromZones", "value": "OUTSIDE" }
|
|
884
|
+
}
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"type": "observedInZone",
|
|
888
|
+
"from": { "source": "concept" },
|
|
889
|
+
"to": { "source": "itemField", "field": "zone", "kind": "zoneName" },
|
|
890
|
+
"toObjectType": "topology-zones",
|
|
891
|
+
"toKind": "zoneName",
|
|
892
|
+
"when": { "itemFieldExists": "zone", "itemFieldMissing": "cidr" }
|
|
893
|
+
}
|
|
894
|
+
]
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"id": "asset-vulnerabilities-by-ip",
|
|
898
|
+
"source": {
|
|
899
|
+
"kind": "queryByField",
|
|
900
|
+
"objectType": "vulnerabilities",
|
|
901
|
+
"sourcePath": "data.assetIp",
|
|
902
|
+
"targetPath": "data.assetIp",
|
|
903
|
+
"limit": 50
|
|
904
|
+
},
|
|
905
|
+
"edges": [
|
|
906
|
+
{
|
|
907
|
+
"type": "affectsAsset",
|
|
908
|
+
"from": { "source": "relatedConcept" },
|
|
909
|
+
"to": { "source": "concept" },
|
|
910
|
+
"toObjectType": "vulnerabilities",
|
|
911
|
+
"toKind": "hostVulnerability",
|
|
912
|
+
"neighbor": "from"
|
|
913
|
+
}
|
|
914
|
+
]
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"id": "asset-subnets-by-cidr",
|
|
918
|
+
"source": {
|
|
919
|
+
"kind": "queryByField",
|
|
920
|
+
"objectType": "subnets",
|
|
921
|
+
"sourcePath": "data.subnetCidrs",
|
|
922
|
+
"targetPath": "data.cidr",
|
|
923
|
+
"limit": 20
|
|
924
|
+
},
|
|
925
|
+
"edges": [
|
|
926
|
+
{
|
|
927
|
+
"type": "containedIn",
|
|
928
|
+
"from": { "source": "concept" },
|
|
929
|
+
"to": { "source": "relatedConcept" },
|
|
930
|
+
"toObjectType": "subnets",
|
|
931
|
+
"toKind": "cidr",
|
|
932
|
+
"neighbor": "to"
|
|
933
|
+
}
|
|
934
|
+
]
|
|
935
|
+
}
|
|
936
|
+
]
|
|
771
937
|
}
|
|
772
938
|
}
|
|
@@ -535,6 +535,7 @@
|
|
|
535
535
|
"inputKind": "cidr",
|
|
536
536
|
"outputKind": "cidr-path-facts",
|
|
537
537
|
"writeToInsights": false,
|
|
538
|
+
"writeToRootProperty": "possiblePaths",
|
|
538
539
|
"sources": {
|
|
539
540
|
"topologyDb": "memorix-knowledge",
|
|
540
541
|
"topologyCollection": "topology-raw"
|
|
@@ -558,5 +559,118 @@
|
|
|
558
559
|
]
|
|
559
560
|
}
|
|
560
561
|
},
|
|
561
|
-
"relations": {
|
|
562
|
+
"relations": {
|
|
563
|
+
"subnetAssets": {
|
|
564
|
+
"targetEntity": "assets",
|
|
565
|
+
"type": "oneToMany",
|
|
566
|
+
"source": {
|
|
567
|
+
"contentType": "snapshots",
|
|
568
|
+
"path": "data.cidr"
|
|
569
|
+
},
|
|
570
|
+
"target": {
|
|
571
|
+
"contentType": "snapshots",
|
|
572
|
+
"path": "data.subnetCidrs"
|
|
573
|
+
},
|
|
574
|
+
"defaultMode": "array",
|
|
575
|
+
"defaultArrayProperty": "associatedAssetsSnapshots",
|
|
576
|
+
"targetFields": [
|
|
577
|
+
"ipAddress",
|
|
578
|
+
"hostName",
|
|
579
|
+
"hostType",
|
|
580
|
+
"zones"
|
|
581
|
+
]
|
|
582
|
+
},
|
|
583
|
+
"subnetZone": {
|
|
584
|
+
"targetEntity": "topology-zones",
|
|
585
|
+
"type": "manyToOne",
|
|
586
|
+
"source": {
|
|
587
|
+
"contentType": "snapshots",
|
|
588
|
+
"path": "data.zone"
|
|
589
|
+
},
|
|
590
|
+
"target": {
|
|
591
|
+
"contentType": "snapshots",
|
|
592
|
+
"path": "data.name"
|
|
593
|
+
},
|
|
594
|
+
"defaultMode": "array",
|
|
595
|
+
"defaultArrayProperty": "associatedTopologyZonesSnapshots",
|
|
596
|
+
"targetFields": [
|
|
597
|
+
"name",
|
|
598
|
+
"zoneClass"
|
|
599
|
+
]
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
"narratives": {
|
|
603
|
+
"has-assets": {
|
|
604
|
+
"label": "Has assets",
|
|
605
|
+
"displayName": "Has assets",
|
|
606
|
+
"description": "Subnet has one or more associated asset snapshots (associatedAssetsSnapshots).",
|
|
607
|
+
"kind": "having-signal",
|
|
608
|
+
"visibility": "user",
|
|
609
|
+
"sourceRef": "associatedAssetsSnapshots",
|
|
610
|
+
"targetEntity": "assets"
|
|
611
|
+
},
|
|
612
|
+
"has-possible-paths": {
|
|
613
|
+
"label": "Has possible paths",
|
|
614
|
+
"displayName": "Has possible paths",
|
|
615
|
+
"description": "Subnet snapshot has non-empty possiblePaths root property (topology path facts).",
|
|
616
|
+
"kind": "having-signal",
|
|
617
|
+
"visibility": "user",
|
|
618
|
+
"sourceRef": "possiblePaths"
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
"graph": {
|
|
622
|
+
"node": {
|
|
623
|
+
"kind": "cidr",
|
|
624
|
+
"directoryFields": ["cidr", "zone"],
|
|
625
|
+
"contentLenses": ["snapshot", "analysis"],
|
|
626
|
+
"ui": { "icon": "network" }
|
|
627
|
+
},
|
|
628
|
+
"edgeTemplates": [
|
|
629
|
+
{
|
|
630
|
+
"id": "subnet-zone-topology",
|
|
631
|
+
"source": {
|
|
632
|
+
"kind": "queryByField",
|
|
633
|
+
"objectType": "topology-zones",
|
|
634
|
+
"sourcePath": "data.zone",
|
|
635
|
+
"targetPath": "data.name",
|
|
636
|
+
"limit": 5
|
|
637
|
+
},
|
|
638
|
+
"edges": [
|
|
639
|
+
{
|
|
640
|
+
"type": "inZone",
|
|
641
|
+
"from": { "source": "concept" },
|
|
642
|
+
"to": { "source": "relatedConcept" },
|
|
643
|
+
"toObjectType": "topology-zones",
|
|
644
|
+
"toKind": "zoneName",
|
|
645
|
+
"neighbor": "to"
|
|
646
|
+
}
|
|
647
|
+
]
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"id": "subnet-assets-by-cidr",
|
|
651
|
+
"source": {
|
|
652
|
+
"kind": "queryByField",
|
|
653
|
+
"objectType": "assets",
|
|
654
|
+
"sourcePath": "data.cidr",
|
|
655
|
+
"targetPath": "data.subnetCidrs",
|
|
656
|
+
"limit": 50
|
|
657
|
+
},
|
|
658
|
+
"edges": [
|
|
659
|
+
{
|
|
660
|
+
"type": "containedIn",
|
|
661
|
+
"from": { "source": "relatedConcept" },
|
|
662
|
+
"to": { "source": "concept" },
|
|
663
|
+
"toObjectType": "assets",
|
|
664
|
+
"toKind": "ipAddress",
|
|
665
|
+
"neighbor": "from"
|
|
666
|
+
}
|
|
667
|
+
]
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"id": "subnet-path-facts",
|
|
671
|
+
"source": { "kind": "pathFacts", "key": "possiblePaths" },
|
|
672
|
+
"edges": []
|
|
673
|
+
}
|
|
674
|
+
]
|
|
675
|
+
}
|
|
562
676
|
}
|
|
@@ -81,5 +81,56 @@
|
|
|
81
81
|
},
|
|
82
82
|
"associatedProperties": [],
|
|
83
83
|
"processing": {},
|
|
84
|
-
"relations": {
|
|
84
|
+
"relations": {
|
|
85
|
+
"zoneSubnets": {
|
|
86
|
+
"targetEntity": "subnets",
|
|
87
|
+
"type": "oneToMany",
|
|
88
|
+
"source": {
|
|
89
|
+
"contentType": "snapshots",
|
|
90
|
+
"path": "data.name"
|
|
91
|
+
},
|
|
92
|
+
"target": {
|
|
93
|
+
"contentType": "snapshots",
|
|
94
|
+
"path": "data.zone"
|
|
95
|
+
},
|
|
96
|
+
"defaultMode": "array",
|
|
97
|
+
"defaultArrayProperty": "associatedSubnetsSnapshots",
|
|
98
|
+
"targetFields": [
|
|
99
|
+
"cidr",
|
|
100
|
+
"networkAddress",
|
|
101
|
+
"zone",
|
|
102
|
+
"vr"
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"graph": {
|
|
107
|
+
"node": {
|
|
108
|
+
"kind": "zoneName",
|
|
109
|
+
"directoryFields": ["name"],
|
|
110
|
+
"contentLenses": ["snapshot", "analysis"],
|
|
111
|
+
"ui": { "icon": "shield" }
|
|
112
|
+
},
|
|
113
|
+
"edgeTemplates": [
|
|
114
|
+
{
|
|
115
|
+
"id": "zone-subnets-by-name",
|
|
116
|
+
"source": {
|
|
117
|
+
"kind": "queryByField",
|
|
118
|
+
"objectType": "subnets",
|
|
119
|
+
"sourcePath": "data.name",
|
|
120
|
+
"targetPath": "data.zone",
|
|
121
|
+
"limit": 50
|
|
122
|
+
},
|
|
123
|
+
"edges": [
|
|
124
|
+
{
|
|
125
|
+
"type": "inZone",
|
|
126
|
+
"from": { "source": "relatedConcept" },
|
|
127
|
+
"to": { "source": "concept" },
|
|
128
|
+
"toObjectType": "subnets",
|
|
129
|
+
"toKind": "cidr",
|
|
130
|
+
"neighbor": "from"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
85
136
|
}
|
|
@@ -306,8 +306,8 @@
|
|
|
306
306
|
"analysisImpact": {
|
|
307
307
|
"label": "Impact",
|
|
308
308
|
"source": { "contentType": "analysis", "path": "data.impact" },
|
|
309
|
-
"humanReadable":
|
|
310
|
-
"list":
|
|
309
|
+
"humanReadable": true,
|
|
310
|
+
"list": true,
|
|
311
311
|
"item": true,
|
|
312
312
|
"valueType": "object"
|
|
313
313
|
},
|
|
@@ -393,5 +393,13 @@
|
|
|
393
393
|
"pluginName"
|
|
394
394
|
]
|
|
395
395
|
}
|
|
396
|
+
},
|
|
397
|
+
"graph": {
|
|
398
|
+
"node": {
|
|
399
|
+
"kind": "pluginId",
|
|
400
|
+
"directoryFields": ["name", "severity", "pluginId", "cveId"],
|
|
401
|
+
"contentLenses": ["snapshot", "analysis"],
|
|
402
|
+
"ui": { "icon": "bug" }
|
|
403
|
+
}
|
|
396
404
|
}
|
|
397
405
|
}
|
|
@@ -442,8 +442,8 @@
|
|
|
442
442
|
"analysisImpact": {
|
|
443
443
|
"label": "Impact",
|
|
444
444
|
"source": { "contentType": "analysis", "path": "data.impact" },
|
|
445
|
-
"humanReadable":
|
|
446
|
-
"list":
|
|
445
|
+
"humanReadable": true,
|
|
446
|
+
"list": true,
|
|
447
447
|
"item": true,
|
|
448
448
|
"valueType": "object"
|
|
449
449
|
},
|
|
@@ -475,6 +475,8 @@
|
|
|
475
475
|
"label": "Exploitability Level (analysis)",
|
|
476
476
|
"source": { "contentType": "analysis", "path": "data.exploitability.exploitability" },
|
|
477
477
|
"humanReadable": true,
|
|
478
|
+
"sortable": true,
|
|
479
|
+
"filterable": true,
|
|
478
480
|
"list": true,
|
|
479
481
|
"item": true,
|
|
480
482
|
"valueType": "string"
|
|
@@ -653,11 +655,11 @@
|
|
|
653
655
|
"direction": "parentToChild",
|
|
654
656
|
"source": {
|
|
655
657
|
"contentType": "snapshots",
|
|
656
|
-
"path": "data.
|
|
658
|
+
"path": "data.assetIps"
|
|
657
659
|
},
|
|
658
660
|
"target": {
|
|
659
661
|
"contentType": "snapshots",
|
|
660
|
-
"path": "data.
|
|
662
|
+
"path": "data.assetIp"
|
|
661
663
|
}
|
|
662
664
|
}
|
|
663
665
|
],
|
|
@@ -719,14 +721,14 @@
|
|
|
719
721
|
"displayName": "Vulnerability",
|
|
720
722
|
"description": "Security-impacting scanner result (severity low/medium/high/critical).",
|
|
721
723
|
"kind": "product-narrative",
|
|
722
|
-
"visibility": "
|
|
724
|
+
"visibility": "internal"
|
|
723
725
|
},
|
|
724
726
|
"is-finding": {
|
|
725
727
|
"label": "Is finding",
|
|
726
728
|
"displayName": "Informational finding",
|
|
727
729
|
"description": "Informational scanner result (severity none/unknown).",
|
|
728
730
|
"kind": "product-narrative",
|
|
729
|
-
"visibility": "
|
|
731
|
+
"visibility": "internal"
|
|
730
732
|
},
|
|
731
733
|
"has-analysis": {
|
|
732
734
|
"label": "Has analysis",
|
|
@@ -762,7 +764,7 @@
|
|
|
762
764
|
"label": "Has triage decision",
|
|
763
765
|
"displayName": "Triaged",
|
|
764
766
|
"kind": "rollup",
|
|
765
|
-
"visibility": "
|
|
767
|
+
"visibility": "internal"
|
|
766
768
|
},
|
|
767
769
|
"has-breach-vector": {
|
|
768
770
|
"label": "Breach vector",
|
|
@@ -856,5 +858,75 @@
|
|
|
856
858
|
"vulnerability_family"
|
|
857
859
|
]
|
|
858
860
|
}
|
|
861
|
+
},
|
|
862
|
+
"graph": {
|
|
863
|
+
"node": {
|
|
864
|
+
"kind": "hostVulnerability",
|
|
865
|
+
"directoryFields": ["assetIp", "severity", "vulnerabilityName"],
|
|
866
|
+
"contentLenses": ["snapshot", "discovery", "analysis", "decisions"],
|
|
867
|
+
"ui": { "icon": "alert-triangle" }
|
|
868
|
+
},
|
|
869
|
+
"edgeTemplates": [
|
|
870
|
+
{
|
|
871
|
+
"id": "vuln-affected-asset",
|
|
872
|
+
"source": {
|
|
873
|
+
"kind": "queryByField",
|
|
874
|
+
"objectType": "assets",
|
|
875
|
+
"sourcePath": "data.assetIp",
|
|
876
|
+
"targetPath": "data.assetIps",
|
|
877
|
+
"limit": 5
|
|
878
|
+
},
|
|
879
|
+
"edges": [
|
|
880
|
+
{
|
|
881
|
+
"type": "affectsAsset",
|
|
882
|
+
"from": { "source": "concept" },
|
|
883
|
+
"to": { "source": "relatedConcept" },
|
|
884
|
+
"toObjectType": "assets",
|
|
885
|
+
"toKind": "ipAddress",
|
|
886
|
+
"neighbor": "to"
|
|
887
|
+
}
|
|
888
|
+
]
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
"id": "vuln-in-group",
|
|
892
|
+
"source": {
|
|
893
|
+
"kind": "queryByField",
|
|
894
|
+
"objectType": "vulnerabilities-groups",
|
|
895
|
+
"sourcePath": "data.vulnerabilityName",
|
|
896
|
+
"targetPath": "data.name",
|
|
897
|
+
"limit": 5
|
|
898
|
+
},
|
|
899
|
+
"edges": [
|
|
900
|
+
{
|
|
901
|
+
"type": "inGroup",
|
|
902
|
+
"from": { "source": "concept" },
|
|
903
|
+
"to": { "source": "relatedConcept" },
|
|
904
|
+
"toObjectType": "vulnerabilities-groups",
|
|
905
|
+
"toKind": "pluginId",
|
|
906
|
+
"neighbor": "to"
|
|
907
|
+
}
|
|
908
|
+
]
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
"id": "vuln-group-by-plugin",
|
|
912
|
+
"source": {
|
|
913
|
+
"kind": "queryByField",
|
|
914
|
+
"objectType": "vulnerabilities-groups",
|
|
915
|
+
"sourcePath": "data.pluginId",
|
|
916
|
+
"targetPath": "data.pluginId",
|
|
917
|
+
"limit": 5
|
|
918
|
+
},
|
|
919
|
+
"edges": [
|
|
920
|
+
{
|
|
921
|
+
"type": "inGroup",
|
|
922
|
+
"from": { "source": "concept" },
|
|
923
|
+
"to": { "source": "relatedConcept" },
|
|
924
|
+
"toObjectType": "vulnerabilities-groups",
|
|
925
|
+
"toKind": "pluginId",
|
|
926
|
+
"neighbor": "to"
|
|
927
|
+
}
|
|
928
|
+
]
|
|
929
|
+
}
|
|
930
|
+
]
|
|
859
931
|
}
|
|
860
932
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "asset-subnet-paths-graph",
|
|
3
|
+
"title": "Asset → subnet → paths",
|
|
4
|
+
"focusObjectType": "assets",
|
|
5
|
+
"maxDepth": 3,
|
|
6
|
+
"includeEdgeTemplates": [
|
|
7
|
+
"asset-subnets-by-cidr",
|
|
8
|
+
"asset-topology-associated",
|
|
9
|
+
"subnet-zone-topology",
|
|
10
|
+
"subnet-assets-by-cidr",
|
|
11
|
+
"subnet-path-facts",
|
|
12
|
+
"zone-subnets-by-name"
|
|
13
|
+
],
|
|
14
|
+
"tiers": [
|
|
15
|
+
{
|
|
16
|
+
"id": "topology",
|
|
17
|
+
"label": "Topology",
|
|
18
|
+
"objectTypes": ["assets", "subnets", "topology-zones"]
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"nodes": [
|
|
22
|
+
{ "objectType": "assets", "tier": "topology" },
|
|
23
|
+
{ "objectType": "subnets", "tier": "topology" },
|
|
24
|
+
{ "objectType": "topology-zones", "tier": "topology" }
|
|
25
|
+
],
|
|
26
|
+
"directory": {
|
|
27
|
+
"defaultObjectTypes": ["assets", "subnets", "topology-zones"],
|
|
28
|
+
"searchFields": ["title", "identifierKey"],
|
|
29
|
+
"narrativeFiltersByObjectType": {
|
|
30
|
+
"subnets": [
|
|
31
|
+
{ "key": "has-assets", "label": "Has assets" },
|
|
32
|
+
{ "key": "has-possible-paths", "label": "Has possible paths" }
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"ui": {
|
|
37
|
+
"icon": "network",
|
|
38
|
+
"group": "network",
|
|
39
|
+
"order": 30
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "asset-topology-vulnerabilities-graph",
|
|
3
|
+
"title": "Asset topology & vulnerabilities",
|
|
4
|
+
"focusObjectType": "assets",
|
|
5
|
+
"maxDepth": 3,
|
|
6
|
+
"includeEdgeTemplates": [
|
|
7
|
+
"asset-topology-associated",
|
|
8
|
+
"asset-subnets-by-cidr",
|
|
9
|
+
"asset-vulnerabilities-by-ip",
|
|
10
|
+
"vuln-affected-asset",
|
|
11
|
+
"vuln-in-group",
|
|
12
|
+
"vuln-group-by-plugin",
|
|
13
|
+
"subnet-zone-topology",
|
|
14
|
+
"subnet-assets-by-cidr",
|
|
15
|
+
"subnet-path-facts",
|
|
16
|
+
"zone-subnets-by-name"
|
|
17
|
+
],
|
|
18
|
+
"tiers": [
|
|
19
|
+
{
|
|
20
|
+
"id": "topology",
|
|
21
|
+
"label": "Topology",
|
|
22
|
+
"objectTypes": ["assets", "subnets", "topology-zones"]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "vulnerabilities",
|
|
26
|
+
"label": "Vulnerabilities",
|
|
27
|
+
"objectTypes": ["vulnerabilities", "vulnerabilities-groups"]
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"nodes": [
|
|
31
|
+
{ "objectType": "assets", "tier": "topology" },
|
|
32
|
+
{ "objectType": "subnets", "tier": "topology" },
|
|
33
|
+
{ "objectType": "topology-zones", "tier": "topology" },
|
|
34
|
+
{ "objectType": "vulnerabilities-groups", "tier": "vulnerabilities" },
|
|
35
|
+
{ "objectType": "vulnerabilities", "tier": "vulnerabilities" }
|
|
36
|
+
],
|
|
37
|
+
"directory": {
|
|
38
|
+
"defaultObjectTypes": [
|
|
39
|
+
"assets",
|
|
40
|
+
"subnets",
|
|
41
|
+
"topology-zones",
|
|
42
|
+
"vulnerabilities",
|
|
43
|
+
"vulnerabilities-groups"
|
|
44
|
+
],
|
|
45
|
+
"searchFields": ["title", "identifierKey"],
|
|
46
|
+
"narrativeFiltersByObjectType": {
|
|
47
|
+
"assets": [
|
|
48
|
+
{ "key": "has-vulnerabilities", "label": "Has vulnerabilities" },
|
|
49
|
+
{ "key": "has-no-vulnerabilities", "label": "No vulnerabilities" },
|
|
50
|
+
{ "key": "is-triaged", "label": "Is triaged" },
|
|
51
|
+
{ "key": "has-lateral-movement-risk", "label": "Lateral movement risk" },
|
|
52
|
+
{ "key": "has-critical-predicted-impact", "label": "Critical predicted impact" },
|
|
53
|
+
{ "key": "has-high-or-critical-exploitability", "label": "High or critical exploitability" }
|
|
54
|
+
],
|
|
55
|
+
"vulnerabilities": [
|
|
56
|
+
{ "key": "has-critical-severity", "label": "Critical severity" },
|
|
57
|
+
{ "key": "has-high-severity", "label": "High severity" },
|
|
58
|
+
{ "key": "has-medium-severity", "label": "Medium severity" },
|
|
59
|
+
{ "key": "has-breach-vector", "label": "Breach vector" }
|
|
60
|
+
],
|
|
61
|
+
"vulnerabilities-groups": [
|
|
62
|
+
{ "key": "has-critical-severity", "label": "Critical severity" },
|
|
63
|
+
{ "key": "has-high-severity", "label": "High severity" },
|
|
64
|
+
{ "key": "has-medium-severity", "label": "Medium severity" },
|
|
65
|
+
{ "key": "has-low-severity", "label": "Low severity" }
|
|
66
|
+
],
|
|
67
|
+
"subnets": [
|
|
68
|
+
{ "key": "has-assets", "label": "Has assets" },
|
|
69
|
+
{ "key": "has-possible-paths", "label": "Has possible paths" }
|
|
70
|
+
],
|
|
71
|
+
"topology-zones": [
|
|
72
|
+
{ "key": "has-analysis", "label": "Has analysis" }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"ui": {
|
|
77
|
+
"icon": "network",
|
|
78
|
+
"group": "network",
|
|
79
|
+
"order": 10
|
|
80
|
+
}
|
|
81
|
+
}
|