changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "attackPaths": {
+ "description": "The routes, highest priority first.",
+ "items": {
+ "properties": {
+ "confidenceLabel": {
+ "description": "How far the score can be trusted given where its hop probabilities came from: high, medium or low.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "correlatedHops": {
+ "description": "True when two or more hops rest on the same kind of evidence, a concrete reason they may not be independent.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "id": {
+ "description": "Stable id of the route. Pass it to explain_attack_path.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nodes": {
+ "description": "The assets the route passes through, entry point first, target last.",
+ "items": {
+ "properties": {
+ "crownJewel": {
+ "description": "True for a sensitive asset.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "internetExposed": {
+ "description": "True for an entry point reachable from the internet.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "label": {
+ "description": "Asset type, e.g. LoadBalancer, Container, IAM_Role, Bucket, CVE.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "description": "Asset name.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "priority": {
+ "description": "Triage priority, 0-100: the score blended with corroboration, target sensitivity and how many routes share the entry point. This is the order of the list.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "priorityFactors": {
+ "description": "The reasons behind the priority, human-readable.",
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "priorityLabel": {
+ "description": "Priority band: P1, P2 or P3. P1 is what to fix first.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "priorityReason": {
+ "description": "One sentence saying why the route is in its band, when a fact put it there (a runtime alert, a known-exploited weakness); null when the blended number did.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "runtimeConfirmed": {
+ "description": "True when a runtime alert sits on the route.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "score": {
+ "description": "End-to-end probability that an attacker completes the route, 0-1. A modelled estimate, not a measured rate: see get_score_trust.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "scoreUpperBound": {
+ "description": "The score if the hops fail or succeed together rather than independently: the weakest hop's probability. The truth lies between score and this.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "suppressed": {
+ "description": "True when an analyst has triaged the route off the board (accepted risk, false positive). It still exists, but do not present it as open work.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "nextOffset": {
+ "description": "Pass as `offset` for the next page. Null when this page is the last.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "offset": {
+ "description": "How many routes were skipped before this page.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "attackPaths",
+ "offset",
+ "nextOffset"
+ ],
+ "type": "object"
+}