Skip to main content

REST APIs for 24.5

Ransomware Dashboard Reference

This topic contains properties and examples for the Ransomware dashboard.

Ransomware API Details

GET /api/v2/orgs/:xorg_id/app_groups/:app_group_id/risk_details

  =====================================
    "workload_risk_summary_by_service": {
	"description": "Workload risk summary by ransomware service",
	"type": "array",
	"items": {
	    "type": "object",
	    "required": [
		"href",
		"name",
		"os_platforms",
		"port",
		"protocol",
		"severity",
		"num_unprotected_workloads",
		"num_protected_workloads",
		"average_ransomware_service_protection_coverage_percent" 
        =====================================================

This API is referencing the schema workloads_by_exposure:

        ======================================================			
},
	"workloads_by_exposure": {
	"description": "Workloads of this app group by Ransomware Exposure",
	"type": "object",
	"$ref": "workloads_by_exposure.schema.json"
},
	  ======================================================		

workloads_by_exposure

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
	"critical": {
	    "description": "Number of workloads that have 1 or more critically 
                           risky services as its highest risk",
	    "type": "integer"
	},
	"high": {
	    "description": "Number of workloads that have 1 or more high risk 
                           services as its highest risk",
	    "type": "integer"
	},
	"medium": {
	    "description": "Number of workloads that have 1 or more medium risk 
                           services as its highest risk",
	    "type": "integer"
	},
	"low": {
	    "description": "Number of workloads that have 1 or more low risk 
                           services as its highest risk",
	    "type": "integer"
	},
	"fully_protected": {
	    "description": "Number of workloads that have no risky services 
                           and are fully protected",
	    "type": "integer"
	    }
	}
}

GET /api/v2/orgs/1/app_groups/risk_summary

	================================
   },
	"risk_summary": {
	"description": "Risk Summary for this app group",
	"type": "object",
	"required": [
		"ransomware"
	],
	=============================================

common workload_exposure_severity

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"description": "Exposed ransomware severity for workload",
	"type": "string",
	"enum": [
		"critical",
		"high",
		"medium",
		"low",
		"fully_protected"
	]
}

workloads_get

{
 "properties": {
   "risk_summary": {
	"description": "Risk Summary for this workload",
	"type": "object",
	"required": [
	   "ransomware"
	],
	"properties": {
	   "ransomware": {
		"type": [
		   "object",
		   "null"
		],
		"required": [
		   "workload_exposure_severity",
		   "ransomware_protection_percent",
		   "last_updated_at"
		],
		"properties": {
		   "workload_exposure_severity": {
			"$ref": "../common/workload_exposure_severity.schema.json"
			},
		   "ransomware_protection_percent": {
			"description": "Ransomware protection percentage for this 
                                       workload",
			"type": "number"
			},
		   "last_updated_at": {
			"description": "The time at which the ransomware stats are 
                                       last computed at",
			"type": "string",
			"format": "date-time"
			}
		}
	}
}

workloads_risk_details_get

{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
   "properties": {
	"risk_details": {
	"type": "object",
	"required": [
	   "ransomware"
	],
	"ransomware": {
	   "type": [
		"object",
		"null"
	   ],
	   "properties": {
	      "details": {
		"type": "array",
		"items": {
		   "$ref": "workload_ransomware_services.schema.json"
		}
	   },
	   "last_updated_at": {
		"description": "The time at which the protection stats were 
                               last computed at",
		"type": "string",
		"format": "date-time"
	   }
      }
}

Sample Response for workloads_risk_details_get

{
   "risk_details":{
	"ransomware":{
	   "services":[
	      {
		"href":"/api/v2/orgs/8/workloads/23131cf5-1d70-42de-9242-39055338d0ef",
		"name":"SSH",
		"port":22,
		"protocol":17,
		"severity":"low",
		"port_status":"listening",
		"protection_state":"unprotected",
		"active_policy":"allowed",
		"draft_policy":"blocked",
		"recommendation":"add_boundary"
	   },
	   {
		"href":"/api/v2/orgs/8/workloads/23131cf5-1d70-42de-9242-39055338d0ef",
		"name":"SSH",
		"port":22,
		"protocol":6,
		"severity":"high",
		"port_status":"listening",
		"protection_state":"protected",
		"active_policy":"allowed",
		"draft_policy":"blocked",
		"recommendation":"has_draft_policy_needs_provisioning"
	   }
	],
	"last_updated_at":"2023-01-21 23:32:42.679673"
	}
   }
}

Sample Responses for workloads_risk_details_get when the evaluation concludes there is no risk for the workload.

When the results are not yet computed:

{
   "risk_details":{
	"ransomware": null
   }
}

The full response looks as follows:

[
   {
	"property":"num_managed_workloads",
	"time_series":[
	   {
		"start_date":"2022-10-31",
		"end_date":"2022-11-2",
		"count":120
	   },
	   {
		"start_date":"2022-10-24",
		"end_date":"2022-10-30",
		"count":115
	   },
	   {
		"start_date":"2022-10-17",
		"end_date":"2022-10-23",
		"count":110
	   },
	   {
		"start_date":"2022-10-10",
		"end_date":"2022-10-16",
		"count":100
	   }
	]
   }
]

workload_ransomware_services

{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
   "required": [
	 "href",
	  "port",
	  "protocol",
	  "severity",
	  "port_status",
	  "protection_state",
	  "active_policy",
	  "draft_policy"
	],
   "properties": {
      "href": {
	   "description": "Reference of the service",
	   "type": "string"
	},
      "name": {
	   "description": "Name of the service",
	   "type": "string"
	},
	"port": {
	   "description": "Port Number",
	   "type": "integer",
	   "minimum": 0,
	   "maximum": 65535
	},
	"proto": {
	   "description": "Protocol Number",
	   "type": "integer"
	},
	"severity": {
	   "description": "Severity of this service",
	   "type": "string",
	   "enum": [
	      "low",
	      "medium",
	      "high",
	      "critical"
	   ]
	},
       "category": {
	   "description": "Category of this service",
	   "type": "string",
	   "enum": [
	      "admin",
	      "legacy"
	   ]
      },
	"port_status": {
	   "description": "Status of the port on the workload",
	   "type": "string",
	   "enum": 	
             "listening",
	      "inactive"
	      ]
	   },
	"protection_state": {
	   "description": "Protection state of this service",
	   "type": "string",
	   "enum": [
	       "unprotected",
	       "protected_open",
	       "protected_closed"
	      ]
	},
	"active_policy": {
	      "description": "Active Policy that applies to this port",
	      "type": "string",
	      "enum": [
		  "allowed",
		  "allowed_across_boundary",
		  "blocked_by_boundary",
		 "blocked_no_rule"
	      ]
	   },
	  "draft_policy": {
	      "description": "Draft Policy that applies to this port",
	      "type": "string", 
             "enum": [
		   "allowed",
		   "allowed_across_boundary",
		   "blocked_by_boundary",
		   "blocked_no_rule"
		]
	   },
	   "recommendation": {
		"description": "Recommendation for this port based on enforcement 
                               state, allow and deny rules and active/draft rule",
		"type": "string",
		"enum": [
		   "add_boundary",
		   "has_draft_policy_needs_provisioning"
		]
	    }
      }
}

Additional information about Windows and Linux.

{
	"properties": {
	    "os_platforms": {
		"description": "Operating system for this ransomware service",
		"type": "array",
		"minItems": 1,
		"items": {
		    "type": "string",
		    "enum": [
		    "windows",
		    "linux"
		]
	    }
	}
    }
}

settings_get

New property num_assets_requiring_ransomware_protection.

{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
   "properties": {
	"href": {
	   "description": "Org Setting URI",
	   "type": "string",
	   "format": "uri"
	},
	"num_assets_requiring_ransomware_protection": {
	   "description": "number of assets that need ransomware protection 
                          for this org",
	   "type": [
		 "integer",
		  "null"
	   ]
	},
		======================================

settings_put

New property num_assets_requiring_ransomware_protection provides a number of assets that need ransomware protection in a specific organization (1 - 9999999).

{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
   "additionalProperties": false,
   "properties": {
	  "num_assets_requiring_ransomware_protection": {
		"description": "number of assets that need ransomware protection 
                               for this org",
		"type": "integer",
		"minimum": 1,
		"maximum": 9999999
		===================================

GET /api/v2/orgs/:xorg_id/sec_policy/:pversion/services

    =================================
{
    "properties": {
	"risk_details": {
	    "properties": {
		"ransomware": {
		    "properties": {
			"average_protection_percent": {
			"description": "This is the average of ransomware 
                                       protection percentage for all 
                                       the service ports in this service.",
			"type": "number"
		    }
		}
	    }
	}
    }
}
    =====================================================

Example response with the parameter include_ransomware_protection_percent set to true:

[
{
	"href": "/orgs/2/sec_policy/draft/services/4852",
	"created_at": "2020-01-13T23:31:21.710Z",
	"updated_at": "2020-01-13T23:31:21.750Z",
	"deleted_at": null,
	"created_by": {
		"href": "/users/142"
	},
	"updated_by": {
		"href": "/users/142"
	},
	"deleted_by": null,
	"update_type": null,
	"name": "IST Common POPv3",
	"description": "Post Office Protocol v3",
	"description_url": null,
	"process_name": null,
	"external_data_set": "illumio_segmentation_templates",
	"external_data_reference": "1000032 -- Universal - Version 1",
	"service_ports": [
		{
		"port": 110,
		"proto": 6
	}
	],
	"risk_details": {
		"ransomware": {
			"category": "legacy",
			"severity": "low",
			"os_platforms": [
			    "linux",
			   "windows"
			],
			"average_protection_percent": 0.2
		}
	}
}

reports_risk_summary_ransomware_timeseries_statistics_post

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "array",
	"items": {
	    "type": "object",
	    "required": [
		"property"
	    ],
	    "properties": {
		"property": {
		"description": "The property for which time series data is requested.",
		"type": "string",
		"enum": [
		    "num_managed_workloads",
		    "ransomware_protection_coverage_percent",
		    "num_workloads_by_exposure"
		    ]
	    },
	    "resolution": {
		"type": "string",
		"description": "The granularity for the time series data. E.g. 
                               day, week, month, quarter",
		"enum": [
		    "day",
		    "week",
		    "month",
		    "quarter"
	    ],
	    "default": "day"
	    },
		"max_results": {
		"type": "integer",
		"default": 5
		}
	    }
	}
}

reports_risk_summary_ransomware_timeseries_statistics_post_response

A sample response of risk_summary:

{
    "ransomware": {
	"num_total_workloads": 2,
	"num_protected_workloads": 0,
	"workloads_by_exposure": {
	    "critical": 2,
	    "high": 0,
	    "medium": 0,
	   "low": 0,
	    "fully_protected": 0
	},
	"risky_ports_by_severity": {
	    "critical": {
		"num_protected_ports": 0,
		"num_unprotected_ports": 6
	    },
	   "high": {
		"num_protected_ports": 0,
		"num_unprotected_ports": 8
	    },
	   "medium": {
		"num_protected_ports": 0,
		"num_unprotected_ports": 20
	    },
	    "low": {
		"num_protected_ports": 0,
		"num_unprotected_ports": 14
		}
	},
	"risky_ports_by_category": {  ---- New section
	    "admin": {
		"num_protected_ports": 0,
		"num_unprotected_ports": 26
	    },
	    "legacy": {
		"num_protected_ports": 0,
		"num_unprotected_ports": 22
		}
	    },
	"ransomware_protection_coverage_percent": 0.0,
	"last_updated_at": "2023-11-27T22:08:09Z"
	}
}

A sample response of ransomware_timeseries_statistics with ransomware_protection_coverage_percent

[
    {
	"property": "ransomware_protection_coverage_percent",
	"time_series": [
	    {
		"start_date": "2023-11-27",
		"end_date": "2023-11-27",
		"data": {
		    "percentage": 59.67
		}
	    },
	    {
		"start_date": "2023-11-26",
		"end_date": "2023-11-26",
		"data": {
		    "percentage": 56.0
		}
	    },
	    {
		"start_date": "2023-11-25",
		"end_date": "2023-11-25",
		"data": {
		    "percentage": 23.8
		}
	    },
	    {
		"start_date": "2023-11-24",
		"end_date": "2023-11-24",
		"data": {
		    "percentage": 23.0
		}
	    },
	    {
		"start_date": "2023-11-23",
		"end_date": "2023-11-23",
		"data": {
		    "percentage": 5.0
		}
	    }
	    ]
	}
]

A sample response of ransomware_timeseries_statistics with num_workloads_by_exposure:

[
    {
	"property": "num_workloads_by_exposure",
	"time_series": [
	    {
		"start_date": "2023-11-27",
		"end_date": "2023-11-27",
		"data": {
		    "critical": 2,
		    "high": 0,
		    "medium": 0,
		    "low": 0,
		    "fully_protected": 0
		}
	    },
	    {
		"start_date": "2023-11-26",
		"end_date": "2023-11-26",
		"data": {
		    "critical": 2,
		    "high": 0,
		    "medium": 0,
		    "low": 0,
		    "fully_protected": 0
		}
	   },
	   {
		"start_date": "2023-11-25",
		"end_date": "2023-11-25",
		"data": {
		    "critical": 2,
		    "high": 0,
		    "medium": 0,
		    "low": 0,
		    "fully_protected": 0
		}
	    },
	    {
		"start_date": "2023-11-24",
		"end_date": "2023-11-24",
		"data": {
		    "critical": 2,
		    "high": 0,
		    "medium": 0,
		    "low": 0,
		    "fully_protected": 0
		}
	   },
	   {
		"start_date": "2023-11-23",
		"end_date": "2023-11-23",
		"data": {
		   "critical": 2,
		   "high": 0,
		   "medium": 0,
		   "low": 0,
		   "fully_protected": 0
		}
	   }
	]
   }
]

reports_risk_summary_get

The property risky_ports_by_category was added to support the widget "Risky ports by type" in the UI.

"risky_ports_by_category": {
	  "description": "Risky ports by Port type",
	  "type": "object",
	   "properties": {
		"admin": {
			"$ref": "num_protected_unprotected_ports.schema.json"
		},
		"legacy": {
			"$ref": "num_protected_unprotected_ports.schema.json"
		}
	}
}

Four required properties are added for the ransomware object:

"required": [
    "ransomware"
],
    "properties": {
	"ransomware": {
	    "type": [
		"object",
		"null"
	 ],
	"required": [
	    	"num_total_workloads",
	    	"num_protected_workloads",
		"workloads_by_exposure",
		"risky_ports_by_severity",
		"risky_ports_by_category",
		"top_risky_applications",
		"top_risky_services",
		"num_risky_services",
		"num_unenforced_workloads",
		"last_updated_at"

num_protected_unprotected_ports

This schema is referenced from reports_risk_summary_get.schema.json to supply the number of protected and unprotected ports for a specified risk level:

{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
   "required": [
	"num_protected_ports",
	"num_unprotected_ports"
  ],
   "properties": {
	"num_protected_ports": {
	   "description": "Number of protected ports for this risk level, 
                          across all protection ready workloads",
	   "type": "integer"
	   },
	"num_unprotected_ports": {
	   "description": "Number of unprotected ports for this risk level, 
                          across all protection ready workloads",
	   "type": "integer"
	}
   }
}
APIs that support Summary Reports
  • report_schedules_post

  • report_schedules_put

  • reports_schedules_get

  • report_templates_get

  • reports_get

These five APIs are referencing ransomware_risk_report_params through the property report_parameters:

report_parameters: {
	"description": "Any specific parameters required for this report template",
	"type": "object",
	"anyOf": [
	    {
		"$ref": "executive_summary_report_params.schema.json"
	    },
	    {
		"$ref": "traffic_flow_report_params.schema.json"
	    },
	    {
		"$ref": "explorer_report_params.schema.json"
	    },
	    {
		"$ref": "ves_report_params.schema.json"
	    },
	   
	    {
		"$ref": "ransomware_risk_report_params.schema.json"
	    }
	]
}

reports_time_series_statistics_post

Data is presented with the granularity of day, week, month, and quarter, where the default is day.

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "array",
	"items": {
	   "type": "object",
	   "required": [
		"property"
		],
	   "properties": {
		"property": {
		   "description": "The property for which time series data is requested.",
		   "type": "string",
		   "enum": [
		   "num_managed_workloads",
		   "ransomware_protection_coverage_percent",
		   "num_workloads_by_exposure"
		   ]
		},

reports_time_series_statistics_post_response

This API specifies the time series data about the protected workloads.

This API gives the percentage of the end date of the counted period.

It is referencing the schema num_workloads_by_exposure_time_series.

"data": {
   "oneOf": [
   {
	"$ref": "../../../agent/schema/v2/num_workloads_by_exposure_
                     time_series.schema.json"
   },
   {
	"count": {
		"description": "The integer count on the end date of this period.",
		"type": "integer"
		}
	},
	{
	"percentage": {
		"description": "The percentage on the end date of this period.",
		"type": "number",
		"minumum": 0,
		"maximum": 100
		}
	}
]