2499 строки
126 KiB
JSON
2499 строки
126 KiB
JSON
{
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"author": "Cohesity - support@cohesity.com",
|
|
"comments": "Solution template for CohesitySecurity"
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"defaultValue": "[resourceGroup().location]",
|
|
"metadata": {
|
|
"description": "Not used, but needed to pass arm-ttk test `Location-Should-Not-Be-Hardcoded`. We instead use the `workspace-location` which is derived from the LA workspace"
|
|
}
|
|
},
|
|
"workspace-location": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "[concat('Region to deploy solution resources -- separate from location selection',parameters('location'))]"
|
|
}
|
|
},
|
|
"workspace": {
|
|
"defaultValue": "",
|
|
"type": "string",
|
|
"metadata": {
|
|
"description": "Workspace name for Log Analytics where Microsoft Sentinel is setup"
|
|
}
|
|
}
|
|
},
|
|
"variables": {
|
|
"email": "support@cohesity.com",
|
|
"_email": "[variables('email')]",
|
|
"_solutionName": "CohesitySecurity",
|
|
"_solutionVersion": "3.0.0",
|
|
"solutionId": "cohesitydev1592001764720.cohesity_sentinel_data_connector",
|
|
"_solutionId": "[variables('solutionId')]",
|
|
"workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]",
|
|
"uiConfigId1": "CohesityDataConnector",
|
|
"_uiConfigId1": "[variables('uiConfigId1')]",
|
|
"dataConnectorContentId1": "CohesityDataConnector",
|
|
"_dataConnectorContentId1": "[variables('dataConnectorContentId1')]",
|
|
"dataConnectorId1": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]",
|
|
"_dataConnectorId1": "[variables('dataConnectorId1')]",
|
|
"dataConnectorTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId1'))),variables('dataConnectorVersion1')))]",
|
|
"dataConnectorVersion1": "1.0.0",
|
|
"_dataConnectorcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentId1'),'-', variables('dataConnectorVersion1'))))]",
|
|
"Cohesity_Send_Incident_Email": "Cohesity_Send_Incident_Email",
|
|
"_Cohesity_Send_Incident_Email": "[variables('Cohesity_Send_Incident_Email')]",
|
|
"playbookVersion1": "1.0",
|
|
"playbookContentId1": "Cohesity_Send_Incident_Email",
|
|
"_playbookContentId1": "[variables('playbookContentId1')]",
|
|
"playbookId1": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId1'))]",
|
|
"playbookTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId1'))),variables('playbookVersion1')))]",
|
|
"_playbookcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId1'),'-', variables('playbookVersion1'))))]",
|
|
"blanks": "[replace('b', 'b', '')]",
|
|
"Cohesity_Restore_From_Last_Snapshot": "Cohesity_Restore_From_Last_Snapshot",
|
|
"_Cohesity_Restore_From_Last_Snapshot": "[variables('Cohesity_Restore_From_Last_Snapshot')]",
|
|
"playbookVersion2": "1.0",
|
|
"playbookContentId2": "Cohesity_Restore_From_Last_Snapshot",
|
|
"_playbookContentId2": "[variables('playbookContentId2')]",
|
|
"playbookId2": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId2'))]",
|
|
"playbookTemplateSpecName2": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId2'))),variables('playbookVersion2')))]",
|
|
"_playbookcontentProductId2": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId2'),'-', variables('playbookVersion2'))))]",
|
|
"Cohesity_Close_Helios_Incident": "Cohesity_Close_Helios_Incident",
|
|
"_Cohesity_Close_Helios_Incident": "[variables('Cohesity_Close_Helios_Incident')]",
|
|
"playbookVersion3": "1.0",
|
|
"playbookContentId3": "Cohesity_Close_Helios_Incident",
|
|
"_playbookContentId3": "[variables('playbookContentId3')]",
|
|
"playbookId3": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId3'))]",
|
|
"playbookTemplateSpecName3": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId3'))),variables('playbookVersion3')))]",
|
|
"_playbookcontentProductId3": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId3'),'-', variables('playbookVersion3'))))]",
|
|
"Cohesity_CreateOrUpdate_ServiceNow_Incident": "Cohesity_CreateOrUpdate_ServiceNow_Incident",
|
|
"_Cohesity_CreateOrUpdate_ServiceNow_Incident": "[variables('Cohesity_CreateOrUpdate_ServiceNow_Incident')]",
|
|
"playbookVersion4": "1.0",
|
|
"playbookContentId4": "Cohesity_CreateOrUpdate_ServiceNow_Incident",
|
|
"_playbookContentId4": "[variables('playbookContentId4')]",
|
|
"playbookId4": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId4'))]",
|
|
"playbookTemplateSpecName4": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId4'))),variables('playbookVersion4')))]",
|
|
"_playbookcontentProductId4": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId4'),'-', variables('playbookVersion4'))))]",
|
|
"Cohesity_Delete_Incident_Blobs": "Cohesity_Delete_Incident_Blobs",
|
|
"_Cohesity_Delete_Incident_Blobs": "[variables('Cohesity_Delete_Incident_Blobs')]",
|
|
"playbookVersion5": "1.0",
|
|
"playbookContentId5": "Cohesity_Delete_Incident_Blobs",
|
|
"_playbookContentId5": "[variables('playbookContentId5')]",
|
|
"playbookId5": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId5'))]",
|
|
"playbookTemplateSpecName5": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId5'))),variables('playbookVersion5')))]",
|
|
"_playbookcontentProductId5": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId5'),'-', variables('playbookVersion5'))))]",
|
|
"_solutioncontentProductId": "[concat(take(variables('_solutionId'),50),'-','sl','-', uniqueString(concat(variables('_solutionId'),'-','Solution','-',variables('_solutionId'),'-', variables('_solutionVersion'))))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"name": "[variables('dataConnectorTemplateSpecName1')]",
|
|
"location": "[parameters('workspace-location')]",
|
|
"dependsOn": [
|
|
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
|
|
],
|
|
"properties": {
|
|
"description": "CohesitySecurity data connector with template version 3.0.0",
|
|
"mainTemplate": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "[variables('dataConnectorVersion1')]",
|
|
"parameters": {},
|
|
"variables": {},
|
|
"resources": [
|
|
{
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId1'))]",
|
|
"apiVersion": "2021-03-01-preview",
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors",
|
|
"location": "[parameters('workspace-location')]",
|
|
"kind": "GenericUI",
|
|
"properties": {
|
|
"connectorUiConfig": {
|
|
"id": "[variables('_uiConfigId1')]",
|
|
"title": "Cohesity (using Azure Functions)",
|
|
"publisher": "Cohesity",
|
|
"descriptionMarkdown": "The Cohesity function apps provide the ability to ingest Cohesity Datahawk ransomware alerts into Microsoft Sentinel.",
|
|
"additionalRequirementBanner": ">This data connector depends on two functions apps - [one](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/CohesitySecurity/Data%20Connectors/Helios2Sentinel/IncidentProducer) gets the data about new incidents from Cohesity Datahawk, formats and adds them to the queue; [another one](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/CohesitySecurity/Data%20Connectors/Helios2Sentinel/IncidentConsumer) takes them from the queue and stores in the MS Sentinel Incidents table. The functions have their own configs and depends on Blob storage and KeyVault",
|
|
"graphQueries": [
|
|
{
|
|
"metricName": "Cohesity logs",
|
|
"legend": "Cohesity_CL",
|
|
"baseQuery": "Cohesity_CL"
|
|
}
|
|
],
|
|
"sampleQueries": [
|
|
{
|
|
"description": "All Cohesity logs",
|
|
"query": "Cohesity_CL\n| sort by TimeGenerated desc"
|
|
}
|
|
],
|
|
"dataTypes": [
|
|
{
|
|
"name": "Cohesity_CL",
|
|
"lastDataReceivedQuery": "Cohesity_CL\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
|
|
}
|
|
],
|
|
"connectivityCriterias": [
|
|
{
|
|
"type": "IsConnectedQuery",
|
|
"value": [
|
|
"Cohesity_CL\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(1d)"
|
|
]
|
|
}
|
|
],
|
|
"availability": {
|
|
"status": 1,
|
|
"isPreview": false
|
|
},
|
|
"permissions": {
|
|
"resourceProvider": [
|
|
{
|
|
"provider": "Microsoft.OperationalInsights/workspaces",
|
|
"permissionsDisplayText": "read and write permissions on the workspace are required.",
|
|
"providerDisplayName": "Workspace",
|
|
"scope": "Workspace",
|
|
"requiredPermissions": {
|
|
"write": true,
|
|
"read": true,
|
|
"delete": true
|
|
}
|
|
},
|
|
{
|
|
"provider": "Microsoft.OperationalInsights/workspaces/sharedKeys",
|
|
"permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).",
|
|
"providerDisplayName": "Keys",
|
|
"scope": "Workspace",
|
|
"requiredPermissions": {
|
|
"action": true
|
|
}
|
|
}
|
|
],
|
|
"customs": [
|
|
{
|
|
"name": "Microsoft.Web/sites permissions",
|
|
"description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)."
|
|
},
|
|
{
|
|
"name": "Azure Blob Storage connection string and container name",
|
|
"description": "Azure Blob Storage connection string and container name"
|
|
}
|
|
]
|
|
},
|
|
"instructionSteps": [
|
|
{
|
|
"description": ">**NOTE:** This connector uses Azure Functions that connect to the Azure Blob Storage and KeyVault. This might result in additional costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/), [Azure Blob Storage pricing page](https://azure.microsoft.com/pricing/details/storage/blobs/) and [Azure KeyVault pricing page](https://azure.microsoft.com/pricing/details/key-vault/) for details."
|
|
},
|
|
{
|
|
"description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Functions App."
|
|
},
|
|
{
|
|
"description": "**STEP 1 - Get a Cohesity DataHawk API key (see troubleshooting [instruction 1](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/CohesitySecurity/Data%20Connectors/Helios2Sentinel/IncidentProducer))**"
|
|
},
|
|
{
|
|
"description": "**STEP 2 - Register Azure app ([link](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps)) and save Application (client) ID, Directory (tenant) ID, and Secret Value ([instructions](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)). Grant it Azure Storage (user_impersonation) permission. Also, assign the 'Microsoft Sentinel Contributor' role to the application in the appropriate subscription.**"
|
|
},
|
|
{
|
|
"description": "**STEP 3 - Deploy the connector and the associated Azure Functions**."
|
|
},
|
|
{
|
|
"description": "Use this method for automated deployment of the Cohesity data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinel-Cohesity-azuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the parameters that you created at the previous steps\n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n5. Click **Purchase** to deploy.",
|
|
"title": "Azure Resource Manager (ARM) Template"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]",
|
|
"properties": {
|
|
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]",
|
|
"contentId": "[variables('_dataConnectorContentId1')]",
|
|
"kind": "DataConnector",
|
|
"version": "[variables('dataConnectorVersion1')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"packageKind": "Solution",
|
|
"packageVersion": "[variables('_solutionVersion')]",
|
|
"packageName": "[variables('_solutionName')]",
|
|
"packageId": "[variables('_solutionId')]",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"contentId": "[variables('_dataConnectorContentId1')]",
|
|
"contentKind": "DataConnector",
|
|
"displayName": "Cohesity (using Azure Functions)",
|
|
"contentProductId": "[variables('_dataConnectorcontentProductId1')]",
|
|
"id": "[variables('_dataConnectorcontentProductId1')]",
|
|
"version": "[variables('dataConnectorVersion1')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]",
|
|
"dependsOn": [
|
|
"[variables('_dataConnectorId1')]"
|
|
],
|
|
"location": "[parameters('workspace-location')]",
|
|
"properties": {
|
|
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]",
|
|
"contentId": "[variables('_dataConnectorContentId1')]",
|
|
"kind": "DataConnector",
|
|
"version": "[variables('dataConnectorVersion1')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId1'))]",
|
|
"apiVersion": "2021-03-01-preview",
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors",
|
|
"location": "[parameters('workspace-location')]",
|
|
"kind": "GenericUI",
|
|
"properties": {
|
|
"connectorUiConfig": {
|
|
"title": "Cohesity (using Azure Functions)",
|
|
"publisher": "Cohesity",
|
|
"descriptionMarkdown": "The Cohesity function apps provide the ability to ingest Cohesity Datahawk ransomware alerts into Microsoft Sentinel.",
|
|
"graphQueries": [
|
|
{
|
|
"metricName": "Cohesity logs",
|
|
"legend": "Cohesity_CL",
|
|
"baseQuery": "Cohesity_CL"
|
|
}
|
|
],
|
|
"dataTypes": [
|
|
{
|
|
"name": "Cohesity_CL",
|
|
"lastDataReceivedQuery": "Cohesity_CL\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
|
|
}
|
|
],
|
|
"connectivityCriterias": [
|
|
{
|
|
"type": "IsConnectedQuery",
|
|
"value": [
|
|
"Cohesity_CL\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(1d)"
|
|
]
|
|
}
|
|
],
|
|
"sampleQueries": [
|
|
{
|
|
"description": "All Cohesity logs",
|
|
"query": "Cohesity_CL\n| sort by TimeGenerated desc"
|
|
}
|
|
],
|
|
"availability": {
|
|
"status": 1,
|
|
"isPreview": false
|
|
},
|
|
"permissions": {
|
|
"resourceProvider": [
|
|
{
|
|
"provider": "Microsoft.OperationalInsights/workspaces",
|
|
"permissionsDisplayText": "read and write permissions on the workspace are required.",
|
|
"providerDisplayName": "Workspace",
|
|
"scope": "Workspace",
|
|
"requiredPermissions": {
|
|
"write": true,
|
|
"read": true,
|
|
"delete": true
|
|
}
|
|
},
|
|
{
|
|
"provider": "Microsoft.OperationalInsights/workspaces/sharedKeys",
|
|
"permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).",
|
|
"providerDisplayName": "Keys",
|
|
"scope": "Workspace",
|
|
"requiredPermissions": {
|
|
"action": true
|
|
}
|
|
}
|
|
],
|
|
"customs": [
|
|
{
|
|
"name": "Microsoft.Web/sites permissions",
|
|
"description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)."
|
|
},
|
|
{
|
|
"name": "Azure Blob Storage connection string and container name",
|
|
"description": "Azure Blob Storage connection string and container name"
|
|
}
|
|
]
|
|
},
|
|
"instructionSteps": [
|
|
{
|
|
"description": ">**NOTE:** This connector uses Azure Functions that connect to the Azure Blob Storage and KeyVault. This might result in additional costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/), [Azure Blob Storage pricing page](https://azure.microsoft.com/pricing/details/storage/blobs/) and [Azure KeyVault pricing page](https://azure.microsoft.com/pricing/details/key-vault/) for details."
|
|
},
|
|
{
|
|
"description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Functions App."
|
|
},
|
|
{
|
|
"description": "**STEP 1 - Get a Cohesity DataHawk API key (see troubleshooting [instruction 1](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/CohesitySecurity/Data%20Connectors/Helios2Sentinel/IncidentProducer))**"
|
|
},
|
|
{
|
|
"description": "**STEP 2 - Register Azure app ([link](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps)) and save Application (client) ID, Directory (tenant) ID, and Secret Value ([instructions](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)). Grant it Azure Storage (user_impersonation) permission. Also, assign the 'Microsoft Sentinel Contributor' role to the application in the appropriate subscription.**"
|
|
},
|
|
{
|
|
"description": "**STEP 3 - Deploy the connector and the associated Azure Functions**."
|
|
},
|
|
{
|
|
"description": "Use this method for automated deployment of the Cohesity data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinel-Cohesity-azuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the parameters that you created at the previous steps\n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n5. Click **Purchase** to deploy.",
|
|
"title": "Azure Resource Manager (ARM) Template"
|
|
}
|
|
],
|
|
"id": "[variables('_uiConfigId1')]",
|
|
"additionalRequirementBanner": ">This data connector depends on two functions apps - [one](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/CohesitySecurity/Data%20Connectors/Helios2Sentinel/IncidentProducer) gets the data about new incidents from Cohesity Datahawk, formats and adds them to the queue; [another one](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/CohesitySecurity/Data%20Connectors/Helios2Sentinel/IncidentConsumer) takes them from the queue and stores in the MS Sentinel Incidents table. The functions have their own configs and depends on Blob storage and KeyVault"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"name": "[variables('playbookTemplateSpecName1')]",
|
|
"location": "[parameters('workspace-location')]",
|
|
"dependsOn": [
|
|
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
|
|
],
|
|
"properties": {
|
|
"description": "My_Cohesity_Send_Incident_Email Playbook with template version 3.0.0",
|
|
"mainTemplate": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "[variables('playbookVersion1')]",
|
|
"parameters": {
|
|
"PlaybookName": {
|
|
"defaultValue": "My_Cohesity_Send_Incident_Email",
|
|
"type": "string"
|
|
},
|
|
"EmailID": {
|
|
"type": "string",
|
|
"metadata": {
|
|
"description": "Enter value for EmailID"
|
|
}
|
|
}
|
|
},
|
|
"variables": {
|
|
"MicrosoftSentinelConnectionName": "[[concat('MicrosoftSentinel-', parameters('PlaybookName'))]",
|
|
"OutlookConnectionName": "[[concat('Outlook-', parameters('PlaybookName'))]",
|
|
"connection-2": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"_connection-2": "[[variables('connection-2')]",
|
|
"connection-3": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Outlook')]",
|
|
"_connection-3": "[[variables('connection-3')]",
|
|
"workspace-location-inline": "[concat('[resourceGroup().locatio', 'n]')]",
|
|
"workspace-name": "[parameters('workspace')]",
|
|
"workspaceResourceId": "[[resourceId('microsoft.OperationalInsights/Workspaces', variables('workspace-name'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"properties": {
|
|
"provisioningState": "Succeeded",
|
|
"state": "Enabled",
|
|
"definition": {
|
|
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"$connections": {
|
|
"type": "Object"
|
|
},
|
|
"EmailID": {
|
|
"defaultValue": "[[parameters('EmailID')]",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"triggers": {
|
|
"Microsoft_Sentinel_incident": {
|
|
"type": "ApiConnectionWebhook",
|
|
"inputs": {
|
|
"body": {
|
|
"callback_url": "@{listCallbackUrl()}"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azuresentinel']['connectionId']"
|
|
}
|
|
},
|
|
"path": "/incident-creation"
|
|
}
|
|
}
|
|
},
|
|
"actions": {
|
|
"Initialize_variable": {
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "EmailBody",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Send_email_(V2)": {
|
|
"runAfter": {
|
|
"Set_variable_2": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"body": {
|
|
"Body": "<p>@{variables('EmailBody')}</p>",
|
|
"Importance": "Normal",
|
|
"Subject": "Cohesity Alert",
|
|
"To": "@parameters('EmailID')"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['outlook']['connectionId']"
|
|
}
|
|
},
|
|
"method": "post",
|
|
"path": "/v2/Mail"
|
|
}
|
|
},
|
|
"Set_variable_2": {
|
|
"runAfter": {
|
|
"Initialize_variable": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "SetVariable",
|
|
"inputs": {
|
|
"name": "EmailBody",
|
|
"value": "<p>Hello SecurityTeam,</p>\n<p>You have a Cohesity incident from Microsoft Sentinel. Below is information:</p>\n\n<ul>\n<li><strong>Incident ARM Name: </strong>@{triggerBody()?['object']?['name']}</li>\n<li><strong>Description</strong>: @{triggerBody()?['object']?['properties']?['description']}</li>\n<li><strong>Severity</strong>: @{triggerBody()?['object']?['properties']?['severity']}</li>\n<li><strong>Incident ID</strong>: @{triggerBody()?['object']?['properties']?['incidentNumber']}</li>\n<li><strong>Incident Create Time Utc</strong>: @{triggerBody()?['object']?['properties']?['createdTimeUtc']}</li>\n<li><strong>Incident URL</strong>: @{triggerBody()?['object']?['properties']?['incidentUrl']}</li>\n</ul>\n\n<p>Please review and update incident accordingly.</p>\n<p>Cohesity Team</p>"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"$connections": {
|
|
"value": {
|
|
"azuresentinel": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"connectionName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
},
|
|
"outlook": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('OutlookConnectionName'))]",
|
|
"connectionName": "[[variables('OutlookConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Outlook')]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"name": "[[parameters('PlaybookName')]",
|
|
"type": "Microsoft.Logic/workflows",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"tags": {
|
|
"hidden-SentinelTemplateName": "My_Cohesity_Send_Incident_Email",
|
|
"hidden-SentinelTemplateVersion": "1.0",
|
|
"hidden-SentinelWorkspaceId": "[[variables('workspaceResourceId')]"
|
|
},
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"apiVersion": "2019-05-01",
|
|
"dependsOn": [
|
|
"[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"[[resourceId('Microsoft.Web/connections', variables('OutlookConnectionName'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"parameterValueType": "Alternative",
|
|
"api": {
|
|
"id": "[[variables('_connection-2')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('OutlookConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('OutlookConnectionName')]",
|
|
"api": {
|
|
"id": "[[variables('_connection-3')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('Playbook-', last(split(variables('playbookId1'),'/'))))]",
|
|
"properties": {
|
|
"parentId": "[variables('playbookId1')]",
|
|
"contentId": "[variables('_playbookContentId1')]",
|
|
"kind": "Playbook",
|
|
"version": "[variables('playbookVersion1')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"title": "Cohesity Incident Email",
|
|
"description": "This playbook sends an email to the recipient with the details related to the incidents.",
|
|
"prerequisites": "Create a distribution list (email) that will be used for sending out incident notifications.",
|
|
"postDeployment": [
|
|
"To enable this playbook, you need to authorize Outlook connection."
|
|
],
|
|
"lastUpdateTime": "2022-12-23T10:57:00Z",
|
|
"entities": [
|
|
"Malware"
|
|
],
|
|
"tags": [
|
|
"SOAR",
|
|
"Email Notification",
|
|
"Threat Response"
|
|
],
|
|
"releaseNotes": {
|
|
"version": "1.0",
|
|
"title": "[variables('blanks')]",
|
|
"notes": [
|
|
"Initial version"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"packageKind": "Solution",
|
|
"packageVersion": "[variables('_solutionVersion')]",
|
|
"packageName": "[variables('_solutionName')]",
|
|
"packageId": "[variables('_solutionId')]",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"contentId": "[variables('_playbookContentId1')]",
|
|
"contentKind": "Playbook",
|
|
"displayName": "My_Cohesity_Send_Incident_Email",
|
|
"contentProductId": "[variables('_playbookcontentProductId1')]",
|
|
"id": "[variables('_playbookcontentProductId1')]",
|
|
"version": "[variables('playbookVersion1')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"name": "[variables('playbookTemplateSpecName2')]",
|
|
"location": "[parameters('workspace-location')]",
|
|
"dependsOn": [
|
|
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
|
|
],
|
|
"properties": {
|
|
"description": "My_Cohesity_Restore_From_Last_Snapshot Playbook with template version 3.0.0",
|
|
"mainTemplate": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "[variables('playbookVersion2')]",
|
|
"parameters": {
|
|
"PlaybookName": {
|
|
"defaultValue": "My_Cohesity_Restore_From_Last_Snapshot",
|
|
"type": "String"
|
|
}
|
|
},
|
|
"variables": {
|
|
"AzureblobConnectionName": "[[concat('Azureblob-', parameters('PlaybookName'))]",
|
|
"MicrosoftSentinelConnectionName": "[[concat('MicrosoftSentinel-', parameters('PlaybookName'))]",
|
|
"KeyvaultConnectionName": "[[concat('Keyvault-', parameters('PlaybookName'))]",
|
|
"connection-2": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azureblob')]",
|
|
"_connection-2": "[[variables('connection-2')]",
|
|
"connection-3": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"_connection-3": "[[variables('connection-3')]",
|
|
"connection-4": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Keyvault')]",
|
|
"_connection-4": "[[variables('connection-4')]",
|
|
"workspace-location-inline": "[concat('[resourceGroup().locatio', 'n]')]",
|
|
"workspace-name": "[parameters('workspace')]",
|
|
"workspaceResourceId": "[[resourceId('microsoft.OperationalInsights/Workspaces', variables('workspace-name'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Logic/workflows",
|
|
"apiVersion": "2019-05-01",
|
|
"name": "[[parameters('PlaybookName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"dependsOn": [
|
|
"[[resourceId('Microsoft.Web/connections', variables('AzureblobConnectionName'))]",
|
|
"[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"[[resourceId('Microsoft.Web/connections', variables('KeyvaultConnectionName'))]"
|
|
],
|
|
"tags": {
|
|
"hidden-SentinelTemplateName": "Cohesity_Restore_From_Last_Snapshot",
|
|
"hidden-SentinelTemplateVersion": "1.0",
|
|
"hidden-SentinelWorkspaceId": "[[variables('workspaceResourceId')]"
|
|
},
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"properties": {
|
|
"provisioningState": "Succeeded",
|
|
"state": "Enabled",
|
|
"definition": {
|
|
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"$connections": {
|
|
"type": "Object"
|
|
}
|
|
},
|
|
"triggers": {
|
|
"Microsoft_Sentinel_incident": {
|
|
"type": "ApiConnectionWebhook",
|
|
"inputs": {
|
|
"body": {
|
|
"callback_url": "@{listCallbackUrl()}"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azuresentinel']['connectionId']"
|
|
}
|
|
},
|
|
"path": "/incident-creation"
|
|
}
|
|
}
|
|
},
|
|
"actions": {
|
|
"Get_cid_from_blob_content": {
|
|
"runAfter": {
|
|
"Get_jobId_from_blob_content": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/GetFileContentByPath",
|
|
"queries": {
|
|
"inferContentType": true,
|
|
"path": "/cohesity-extra-parameters/@{variables('helioID')}/cid",
|
|
"queryParametersSingleEncoded": true
|
|
}
|
|
}
|
|
},
|
|
"Get_entityId_from_blob_content": {
|
|
"runAfter": {
|
|
"Get_jobInstanceId_from_blob_content": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/GetFileContentByPath",
|
|
"queries": {
|
|
"inferContentType": true,
|
|
"path": "/cohesity-extra-parameters/@{variables('helioID')}/entityId",
|
|
"queryParametersSingleEncoded": true
|
|
}
|
|
}
|
|
},
|
|
"Get_jobId_from_blob_content": {
|
|
"runAfter": {
|
|
"Initialize_HelioID": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/GetFileContentByPath",
|
|
"queries": {
|
|
"inferContentType": true,
|
|
"path": "/cohesity-extra-parameters/@{variables('helioID')}/jobId",
|
|
"queryParametersSingleEncoded": true
|
|
}
|
|
}
|
|
},
|
|
"Get_jobInstanceId_from_blob_content": {
|
|
"runAfter": {
|
|
"Get_jobStartTimeUsecs_from_blob_content": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/GetFileContentByPath",
|
|
"queries": {
|
|
"inferContentType": true,
|
|
"path": "/cohesity-extra-parameters/@{variables('helioID')}/jobInstanceId",
|
|
"queryParametersSingleEncoded": true
|
|
}
|
|
}
|
|
},
|
|
"Get_jobStartTimeUsecs_from_blob_content": {
|
|
"runAfter": {
|
|
"Get_cid_from_blob_content": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/GetFileContentByPath",
|
|
"queries": {
|
|
"inferContentType": true,
|
|
"path": "/cohesity-extra-parameters/@{variables('helioID')}/jobStartTimeUsecs",
|
|
"queryParametersSingleEncoded": true
|
|
}
|
|
}
|
|
},
|
|
"Get_object_from_blob_content": {
|
|
"runAfter": {
|
|
"Get_entityId_from_blob_content": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/GetFileContentByPath",
|
|
"queries": {
|
|
"inferContentType": true,
|
|
"path": "/cohesity-extra-parameters/@{variables('helioID')}/object",
|
|
"queryParametersSingleEncoded": true
|
|
}
|
|
}
|
|
},
|
|
"Get_secret": {
|
|
"runAfter": {
|
|
"Get_object_from_blob_content": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['keyvault']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/secrets/@{encodeURIComponent('ApiKey')}/value"
|
|
}
|
|
},
|
|
"HTTP": {
|
|
"runAfter": {
|
|
"Get_secret": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Http",
|
|
"inputs": {
|
|
"body": {
|
|
"name": "Sentinel_triggered_restore_task_@{body('Get_object_from_blob_content')}",
|
|
"objects": [
|
|
{
|
|
"jobId": "@int(string(body('Get_jobId_from_blob_content')))",
|
|
"jobRunId": "@int(string(body('Get_jobInstanceId_from_blob_content')))",
|
|
"protectionSourceId": "@int(string(body('Get_entityId_from_blob_content')))",
|
|
"sourceName": "@{body('Get_object_from_blob_content')}",
|
|
"startedTimeUsecs": "@int(string(body('Get_jobStartTimeUsecs_from_blob_content')))"
|
|
}
|
|
],
|
|
"type": "kRecoverVMs",
|
|
"vmwareParameters": {
|
|
"powerOffAndRenameExistingVm": true,
|
|
"poweredOn": true,
|
|
"prefix": "Recover-",
|
|
"recoveryProcessType": "kCopyRecovery",
|
|
"suffix": "-VM"
|
|
}
|
|
},
|
|
"headers": {
|
|
"Content-Type": "application/json",
|
|
"apiKey": "@body('Get_secret')?['value']",
|
|
"clusterid": "@{body('Get_cid_from_blob_content')}"
|
|
},
|
|
"method": "POST",
|
|
"uri": "https://helios.cohesity.com/irisservices/api/v1/public/restore/recover"
|
|
}
|
|
},
|
|
"Initialize_Description": {
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "description",
|
|
"type": "string",
|
|
"value": "@triggerBody()?['object']?['properties']?['description']"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_HelioID": {
|
|
"runAfter": {
|
|
"Initialize_Description": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "helioID",
|
|
"type": "string",
|
|
"value": "@{split(variables('description'), 'Helios ID: ')[1]}"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"$connections": {
|
|
"value": {
|
|
"azureblob": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('AzureblobConnectionName'))]",
|
|
"connectionName": "[[variables('AzureblobConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azureblob')]"
|
|
},
|
|
"azuresentinel": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"connectionName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
},
|
|
"keyvault": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('KeyvaultConnectionName'))]",
|
|
"connectionName": "[[variables('KeyvaultConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Keyvault')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('AzureblobConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('AzureblobConnectionName')]",
|
|
"api": {
|
|
"id": "[[variables('_connection-2')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"parameterValueType": "Alternative",
|
|
"api": {
|
|
"id": "[[variables('_connection-3')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('KeyvaultConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('KeyvaultConnectionName')]",
|
|
"api": {
|
|
"id": "[[variables('_connection-4')]"
|
|
},
|
|
"parameterValueType": "Alternative",
|
|
"alternativeParameterValues": {
|
|
"vaultName": "[[concat('cohesitypro', uniqueString(resourceGroup().id))]"
|
|
},
|
|
"nonSecretParameterValues": {
|
|
"vaultName": "[[concat('cohesitypro', uniqueString(resourceGroup().id))]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('Playbook-', last(split(variables('playbookId2'),'/'))))]",
|
|
"properties": {
|
|
"parentId": "[variables('playbookId2')]",
|
|
"contentId": "[variables('_playbookContentId2')]",
|
|
"kind": "Playbook",
|
|
"version": "[variables('playbookVersion2')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"title": "Restore From Last Cohesity Snapshot",
|
|
"description": "This playbook restores the latest good Data Hawk (Helios) snapshot.",
|
|
"prerequisites": "Deploy the Cohesity configuration and function apps (see details [here](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/CohesitySecurity/Playbooks/Cohesity_Restore_From_Last_Snapshot/readme.md)).",
|
|
"postDeployment": [
|
|
"Authorize all connections."
|
|
],
|
|
"lastUpdateTime": "2023-01-13T10:02:00Z",
|
|
"entities": [
|
|
"Malware"
|
|
],
|
|
"tags": [
|
|
"DataHawk",
|
|
"SOAR",
|
|
"Cohesity",
|
|
"Threat Response"
|
|
],
|
|
"releaseNotes": {
|
|
"version": "1.0",
|
|
"title": "[variables('blanks')]",
|
|
"notes": [
|
|
"Initial version"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"packageKind": "Solution",
|
|
"packageVersion": "[variables('_solutionVersion')]",
|
|
"packageName": "[variables('_solutionName')]",
|
|
"packageId": "[variables('_solutionId')]",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"contentId": "[variables('_playbookContentId2')]",
|
|
"contentKind": "Playbook",
|
|
"displayName": "My_Cohesity_Restore_From_Last_Snapshot",
|
|
"contentProductId": "[variables('_playbookcontentProductId2')]",
|
|
"id": "[variables('_playbookcontentProductId2')]",
|
|
"version": "[variables('playbookVersion2')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"name": "[variables('playbookTemplateSpecName3')]",
|
|
"location": "[parameters('workspace-location')]",
|
|
"dependsOn": [
|
|
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
|
|
],
|
|
"properties": {
|
|
"description": "My_Cohesity_Close_Helios_Incident Playbook with template version 3.0.0",
|
|
"mainTemplate": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "[variables('playbookVersion3')]",
|
|
"parameters": {
|
|
"PlaybookName": {
|
|
"defaultValue": "My_Cohesity_Close_Helios_Incident",
|
|
"type": "String"
|
|
}
|
|
},
|
|
"variables": {
|
|
"MicrosoftSentinelConnectionName": "[[concat('MicrosoftSentinel-', parameters('PlaybookName'))]",
|
|
"KeyvaultConnectionName": "[[concat('Keyvault-', parameters('PlaybookName'))]",
|
|
"connection-2": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"_connection-2": "[[variables('connection-2')]",
|
|
"connection-3": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Keyvault')]",
|
|
"_connection-3": "[[variables('connection-3')]",
|
|
"workspace-location-inline": "[concat('[resourceGroup().locatio', 'n]')]",
|
|
"workspace-name": "[parameters('workspace')]",
|
|
"workspaceResourceId": "[[resourceId('microsoft.OperationalInsights/Workspaces', variables('workspace-name'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Logic/workflows",
|
|
"apiVersion": "2017-07-01",
|
|
"name": "[[parameters('PlaybookName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"dependsOn": [
|
|
"[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"[[resourceId('Microsoft.Web/connections', variables('KeyvaultConnectionName'))]"
|
|
],
|
|
"tags": {
|
|
"hidden-SentinelTemplateName": "Cohesity_Close_Helios_Incident",
|
|
"hidden-SentinelTemplateVersion": "1.0",
|
|
"hidden-SentinelWorkspaceId": "[[variables('workspaceResourceId')]"
|
|
},
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"properties": {
|
|
"provisioningState": "Succeeded",
|
|
"state": "Enabled",
|
|
"definition": {
|
|
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"$connections": {
|
|
"type": "Object"
|
|
}
|
|
},
|
|
"triggers": {
|
|
"Microsoft_Sentinel_incident": {
|
|
"type": "ApiConnectionWebhook",
|
|
"inputs": {
|
|
"body": {
|
|
"callback_url": "@{listCallbackUrl()}"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azuresentinel']['connectionId']"
|
|
}
|
|
},
|
|
"path": "/incident-creation"
|
|
}
|
|
}
|
|
},
|
|
"actions": {
|
|
"Get_secret": {
|
|
"runAfter": {
|
|
"Initialize_HelioID": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['keyvault']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/secrets/@{encodeURIComponent('ApiKey')}/value"
|
|
}
|
|
},
|
|
"HTTP": {
|
|
"runAfter": {
|
|
"Get_secret": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Http",
|
|
"inputs": {
|
|
"body": {
|
|
"status": "kSuppressed"
|
|
},
|
|
"headers": {
|
|
"Content-Type": "application/json",
|
|
"apiKey": "@body('Get_secret')?['value']"
|
|
},
|
|
"method": "Patch",
|
|
"uri": "https://helios.cohesity.com/mcm/alerts/@{variables('helioID')}"
|
|
}
|
|
},
|
|
"Initialize_Description": {
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "description",
|
|
"type": "string",
|
|
"value": "@triggerBody()?['object']?['properties']?['description']"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_HelioID": {
|
|
"runAfter": {
|
|
"Initialize_Description": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "helioID",
|
|
"type": "string",
|
|
"value": "@{split(variables('description'), 'Helios ID: ')[1]}"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"$connections": {
|
|
"value": {
|
|
"azuresentinel": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"connectionName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
},
|
|
"keyvault": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('KeyvaultConnectionName'))]",
|
|
"connectionName": "[[variables('KeyvaultConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Keyvault')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"parameterValueType": "Alternative",
|
|
"api": {
|
|
"id": "[[variables('_connection-2')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('KeyvaultConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"api": {
|
|
"id": "[[variables('_connection-3')]",
|
|
"type": "Microsoft.Web/locations/managedApis"
|
|
},
|
|
"parameterValueType": "Alternative",
|
|
"alternativeParameterValues": {
|
|
"vaultName": "[[concat('cohesitypro', uniqueString(resourceGroup().id))]"
|
|
},
|
|
"nonSecretParameterValues": {
|
|
"vaultName": "[[concat('cohesitypro', uniqueString(resourceGroup().id))]"
|
|
},
|
|
"displayName": "[[variables('KeyvaultConnectionName')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('Playbook-', last(split(variables('playbookId3'),'/'))))]",
|
|
"properties": {
|
|
"parentId": "[variables('playbookId3')]",
|
|
"contentId": "[variables('_playbookContentId3')]",
|
|
"kind": "Playbook",
|
|
"version": "[variables('playbookVersion3')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"title": "Close Cohesity Helios Incident",
|
|
"description": "This playbook closes the corresponding Cohesity DataHawk (Helios) ticket.",
|
|
"prerequisites": "Deploy the Cohesity configuration and function apps (see details [here](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/CohesitySecurity/Playbooks/Cohesity_Close_Helios_Incident/readme.md)).",
|
|
"postDeployment": [
|
|
"Grant KeyVault permissions to your playbook."
|
|
],
|
|
"lastUpdateTime": "2023-01-13T10:02:00Z",
|
|
"entities": [
|
|
"Malware"
|
|
],
|
|
"tags": [
|
|
"DataHawk",
|
|
"SOAR",
|
|
"Cohesity",
|
|
"Threat Response"
|
|
],
|
|
"releaseNotes": {
|
|
"version": "1.0",
|
|
"title": "[variables('blanks')]",
|
|
"notes": [
|
|
"Initial version"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"packageKind": "Solution",
|
|
"packageVersion": "[variables('_solutionVersion')]",
|
|
"packageName": "[variables('_solutionName')]",
|
|
"packageId": "[variables('_solutionId')]",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"contentId": "[variables('_playbookContentId3')]",
|
|
"contentKind": "Playbook",
|
|
"displayName": "My_Cohesity_Close_Helios_Incident",
|
|
"contentProductId": "[variables('_playbookcontentProductId3')]",
|
|
"id": "[variables('_playbookcontentProductId3')]",
|
|
"version": "[variables('playbookVersion3')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"name": "[variables('playbookTemplateSpecName4')]",
|
|
"location": "[parameters('workspace-location')]",
|
|
"dependsOn": [
|
|
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
|
|
],
|
|
"properties": {
|
|
"description": "My_Cohesity_CreateOrUpdate_ServiceNow_Incident Playbook with template version 3.0.0",
|
|
"mainTemplate": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "[variables('playbookVersion4')]",
|
|
"parameters": {
|
|
"PlaybookName": {
|
|
"defaultValue": "My_Cohesity_CreateOrUpdate_ServiceNow_Incident",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"variables": {
|
|
"MicrosoftsentinelConnectionName": "[[concat('Microsoftsentinel-', parameters('PlaybookName'))]",
|
|
"ServiceNowConnectionName": "[[concat('Service-Now-', parameters('PlaybookName'))]",
|
|
"connection-2": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"_connection-2": "[[variables('connection-2')]",
|
|
"connection-3": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Service-Now')]",
|
|
"_connection-3": "[[variables('connection-3')]",
|
|
"workspace-location-inline": "[concat('[resourceGroup().locatio', 'n]')]",
|
|
"workspace-name": "[parameters('workspace')]",
|
|
"workspaceResourceId": "[[resourceId('microsoft.OperationalInsights/Workspaces', variables('workspace-name'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"properties": {
|
|
"provisioningState": "Succeeded",
|
|
"state": "Enabled",
|
|
"definition": {
|
|
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"$connections": {
|
|
"type": "Object"
|
|
}
|
|
},
|
|
"triggers": {
|
|
"Microsoft_Sentinel_incident": {
|
|
"type": "ApiConnectionWebhook",
|
|
"inputs": {
|
|
"body": {
|
|
"callback_url": "@{listCallbackUrl()}"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['microsoftsentinel']['connectionId']"
|
|
}
|
|
},
|
|
"path": "/incident-creation"
|
|
}
|
|
}
|
|
},
|
|
"actions": {
|
|
"Condition_-_create_or_update_incident": {
|
|
"actions": {
|
|
"Create_Record": {
|
|
"runAfter": {
|
|
"Switch": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"body": {
|
|
"comments": "Link to Microsoft Sentinel Incident: [code]<a href=\"@{triggerBody()?['object']?['properties']?['incidentUrl']}\" target=\"_blank\" rel=\"noopener noreferrer\">Incident_URL</a>[/code] ",
|
|
"description": "Incident description: @{triggerBody()?['object']?['properties']?['description']};\nSeverity: @{triggerBody()?['object']?['properties']?['severity']};\nAlerts: @{join(triggerBody()?['object']?['properties']?['additionalData']?['alertProductNames'],'; ')};",
|
|
"impact": "@variables('Creation severity')",
|
|
"number": "@triggerBody()?['object']?['name']",
|
|
"short_description": "@triggerBody()?['object']?['properties']?['title']",
|
|
"urgency": "@variables('Creation severity')"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['service-now_1']['connectionId']"
|
|
}
|
|
},
|
|
"method": "post",
|
|
"path": "/api/now/v2/table/@{encodeURIComponent('incident')}",
|
|
"queries": {
|
|
"sysparm_display_value": true,
|
|
"sysparm_exclude_reference_link": false
|
|
}
|
|
}
|
|
},
|
|
"Switch": {
|
|
"cases": {
|
|
"Case_Severity_High": {
|
|
"case": "High",
|
|
"actions": {
|
|
"Set_Severity_variable_to_High": {
|
|
"type": "SetVariable",
|
|
"inputs": {
|
|
"name": "Creation severity",
|
|
"value": "1"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Case_Severity_Medium": {
|
|
"case": "Medium",
|
|
"actions": {
|
|
"Set_Severity_variable_to_Medium": {
|
|
"type": "SetVariable",
|
|
"inputs": {
|
|
"name": "Creation severity",
|
|
"value": "2"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"expression": "@triggerBody()?['object']?['properties']?['severity']",
|
|
"type": "Switch"
|
|
},
|
|
"Update_incident": {
|
|
"runAfter": {
|
|
"Create_Record": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"body": {
|
|
"incidentArmId": "@triggerBody()?['object']?['id']",
|
|
"tagsToAdd": {
|
|
"TagsToAdd": [
|
|
{
|
|
"Tag": "SNOW System ID: @{body('Create_Record')?['result']?['sys_id']}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['microsoftsentinel']['connectionId']"
|
|
}
|
|
},
|
|
"method": "put",
|
|
"path": "/Incidents"
|
|
}
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Initialize_variable_-_creation_severity": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"else": {
|
|
"actions": {
|
|
"For_each": {
|
|
"foreach": "@triggerBody()?['object']?['properties']?['labels']",
|
|
"actions": {
|
|
"Condition": {
|
|
"actions": {
|
|
"Condition_-_is_incident_closed": {
|
|
"actions": {
|
|
"Update_Record_-_Incident_closed": {
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"body": {
|
|
"caller_id": "@triggerBody()?['incidentUpdates']?['updatedBy']?['name']",
|
|
"close_code": "Resolved by Caller",
|
|
"close_notes": "Classification: @{triggerBody()?['object']?['properties']?['classification']}\nClassification reason: @{triggerBody()?['object']?['properties']?['classificationReason']}\nClassification comment: @{triggerBody()?['object']?['properties']?['classificationComment']}",
|
|
"state": "7"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['service-now_1']['connectionId']"
|
|
}
|
|
},
|
|
"method": "put",
|
|
"path": "/api/now/v2/table/@{encodeURIComponent('incident')}/@{encodeURIComponent(variables('SNOW System ID'))}",
|
|
"queries": {
|
|
"sysparm_display_value": false,
|
|
"sysparm_exclude_reference_link": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Set_variable_-_SNOW_System_ID": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"else": {
|
|
"actions": {
|
|
"Condition_-_alert_updated": {
|
|
"actions": {
|
|
"Compose_alert": {
|
|
"runAfter": {
|
|
"For_each_-_new_alert": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Compose",
|
|
"inputs": "Alerts: @{variables('New alert')}"
|
|
},
|
|
"For_each_-_new_alert": {
|
|
"foreach": "@triggerBody()?['incidentUpdates']?['alerts']",
|
|
"actions": {
|
|
"Append_to_string_variable_-_alert": {
|
|
"type": "AppendToStringVariable",
|
|
"inputs": {
|
|
"name": "New alert",
|
|
"value": "@concat(items('For_each_-_new_alert')?['properties']?['alertDisplayName'], '; ')"
|
|
}
|
|
}
|
|
},
|
|
"type": "Foreach"
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Condition_-_comment_updated": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Alerts"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Condition_-_comment_updated": {
|
|
"actions": {
|
|
"Compose_comment": {
|
|
"runAfter": {
|
|
"For_each_-_new_comment": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Compose",
|
|
"inputs": "Comment: @{variables('New comments')}"
|
|
},
|
|
"For_each_-_new_comment": {
|
|
"foreach": "@triggerBody()?['incidentUpdates']?['comments']",
|
|
"actions": {
|
|
"Append_to_string_variable_-_comment": {
|
|
"type": "AppendToStringVariable",
|
|
"inputs": {
|
|
"name": "New comments",
|
|
"value": "@concat(items('For_each_-_new_comment')?['properties']?['message'], '; ')"
|
|
}
|
|
}
|
|
},
|
|
"type": "Foreach"
|
|
}
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Comments"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Condition_-_owner_update": {
|
|
"actions": {
|
|
"Append_to_string_variable_-_owner": {
|
|
"type": "AppendToStringVariable",
|
|
"inputs": {
|
|
"name": "New owner",
|
|
"value": "@triggerBody()?['object']?['properties']?['owner']?['assignedTo']"
|
|
}
|
|
},
|
|
"Compose_owner": {
|
|
"runAfter": {
|
|
"Append_to_string_variable_-_owner": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Compose",
|
|
"inputs": "Owner: @{variables('New owner')}"
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Condition_-_tag_updated": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Owner"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Condition_-_severity_update": {
|
|
"actions": {
|
|
"Append_to_string_variable_-_severity": {
|
|
"type": "AppendToStringVariable",
|
|
"inputs": {
|
|
"name": "New severity",
|
|
"value": "@triggerBody()?['object']?['properties']?['severity']"
|
|
}
|
|
},
|
|
"Compose_severity": {
|
|
"runAfter": {
|
|
"Append_to_string_variable_-_severity": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Compose",
|
|
"inputs": "Severity: @{variables('New severity')}"
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Condition_-_owner_update": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Severity"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Condition_-_status_update": {
|
|
"actions": {
|
|
"Append_to_string_variable_-_status": {
|
|
"type": "AppendToStringVariable",
|
|
"inputs": {
|
|
"name": "New status",
|
|
"value": "@triggerBody()?['object']?['properties']?['status']"
|
|
}
|
|
},
|
|
"Compose_status": {
|
|
"runAfter": {
|
|
"Append_to_string_variable_-_status": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Compose",
|
|
"inputs": "Status: @{variables('New status')}"
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Condition_-_tactics_update": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Status"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Condition_-_tactics_update": {
|
|
"actions": {
|
|
"Compose_tactics": {
|
|
"type": "Compose",
|
|
"inputs": "Tactics: @{join(triggerBody()?['incidentUpdates']?['tactics'], '; ')}"
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Condition_-_severity_update": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Tactics"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Condition_-_tag_updated": {
|
|
"actions": {
|
|
"Compose_tag": {
|
|
"runAfter": {
|
|
"For_each_-_new_tag": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Compose",
|
|
"inputs": "Tags: @{variables('New tag')}"
|
|
},
|
|
"For_each_-_new_tag": {
|
|
"foreach": "@triggerBody()?['incidentUpdates']?['labels']",
|
|
"actions": {
|
|
"Append_to_string_variable_-_tag": {
|
|
"type": "AppendToStringVariable",
|
|
"inputs": {
|
|
"name": "New tag",
|
|
"value": "@concat(items('For_each_-_new_tag')?['labelName'], '; ')"
|
|
}
|
|
}
|
|
},
|
|
"type": "Foreach"
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Condition_-_alert_updated": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"Labels"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Update_Record_-_incident_not_closed": {
|
|
"runAfter": {
|
|
"Condition_-_status_update": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"body": {
|
|
"comments": "Microsoft Sentinel incident is updated:\n\nUpdate fields: @{join(triggerBody()?['incidentUpdates']?['updatedFields'], '; ')}\nUpdate by: @{triggerBody()?['incidentUpdates']?['updatedBy']?['name']}\n\nNew values:\n@{outputs('Compose_alert')}\n@{outputs('Compose_severity')}\n@{outputs('Compose_owner')}\n@{outputs('Compose_status')}\n@{outputs('Compose_tag')}\n@{outputs('Compose_comment')}\n@{outputs('Compose_tactics')}"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['service-now_1']['connectionId']"
|
|
}
|
|
},
|
|
"method": "put",
|
|
"path": "/api/now/v2/table/@{encodeURIComponent('incident')}/@{encodeURIComponent(variables('SNOW System ID'))}",
|
|
"queries": {
|
|
"sysparm_display_value": false,
|
|
"sysparm_exclude_reference_link": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"equals": [
|
|
"@triggerBody()?['object']?['properties']?['status']",
|
|
"Closed"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Set_variable_-_SNOW_System_ID": {
|
|
"type": "SetVariable",
|
|
"inputs": {
|
|
"name": "SNOW System ID",
|
|
"value": "@{split(items('For_each')?['labelName'],': ')[1]}"
|
|
}
|
|
}
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"contains": [
|
|
"@items('For_each')?['labelName']",
|
|
"SNOW"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
}
|
|
},
|
|
"type": "Foreach"
|
|
}
|
|
}
|
|
},
|
|
"expression": {
|
|
"and": [
|
|
{
|
|
"equals": [
|
|
"@triggerBody()?['incidentUpdates']?['updatedFields']",
|
|
"@null"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": "If"
|
|
},
|
|
"Initialize_variable_-_SNOW_System_ID": {
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "SNOW System ID",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_alert": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_comment": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "New alert",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_comment": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_SNOW_System_ID": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "New comments",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_creation_severity": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_status": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "Creation severity",
|
|
"type": "string",
|
|
"value": "3"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_owner": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_tag": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "New owner",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_severity": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_owner": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "New severity",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_status": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_severity": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "New status",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable_-_tag": {
|
|
"runAfter": {
|
|
"Initialize_variable_-_alert": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "New tag",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"$connections": {
|
|
"value": {
|
|
"microsoftsentinel": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('MicrosoftsentinelConnectionName'))]",
|
|
"connectionName": "[[variables('MicrosoftsentinelConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
},
|
|
"service-now_1": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('ServiceNowConnectionName'))]",
|
|
"connectionName": "[[variables('ServiceNowConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Service-Now')]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"name": "[[parameters('PlaybookName')]",
|
|
"type": "Microsoft.Logic/workflows",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"tags": {
|
|
"hidden-SentinelTemplateName": "Cohesity_CreateOrUpdate_ServiceNow_Incident",
|
|
"hidden-SentinelTemplateVersion": "1.0",
|
|
"hidden-SentinelWorkspaceId": "[[variables('workspaceResourceId')]"
|
|
},
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"apiVersion": "2019-05-01",
|
|
"dependsOn": [
|
|
"[[resourceId('Microsoft.Web/connections', variables('MicrosoftsentinelConnectionName'))]",
|
|
"[[resourceId('Microsoft.Web/connections', variables('ServiceNowConnectionName'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('MicrosoftsentinelConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('MicrosoftsentinelConnectionName')]",
|
|
"parameterValueType": "Alternative",
|
|
"api": {
|
|
"id": "[[variables('_connection-2')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('ServiceNowConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('ServiceNowConnectionName')]",
|
|
"api": {
|
|
"id": "[[variables('_connection-3')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('Playbook-', last(split(variables('playbookId4'),'/'))))]",
|
|
"properties": {
|
|
"parentId": "[variables('playbookId4')]",
|
|
"contentId": "[variables('_playbookContentId4')]",
|
|
"kind": "Playbook",
|
|
"version": "[variables('playbookVersion4')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"title": "Cohesity Create or Update ServiceNow incident",
|
|
"description": "This playbook creates and updates the incident in the ServiceNow platform.",
|
|
"prerequisites": "Create an account for ServiceNow.",
|
|
"postDeployment": [
|
|
"1. Update ServiceNow credentials in the playbook.",
|
|
"2. For the playbook to run, there is a need to assign the Microsoft Sentinel Responder role to the playbook's managed identity.",
|
|
"3. (Recommendation) You can create an automation rule to close the corresponding ServiceNow ticket when the corresponding Sentinel ticket is closed."
|
|
],
|
|
"lastUpdateTime": "2022-12-23T10:02:00Z",
|
|
"entities": [
|
|
"Malware"
|
|
],
|
|
"tags": [
|
|
"ServiceNow",
|
|
"SOAR",
|
|
"Notification",
|
|
"Threat Response"
|
|
],
|
|
"releaseNotes": {
|
|
"version": "1.0",
|
|
"title": "[variables('blanks')]",
|
|
"notes": [
|
|
"Initial version"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"packageKind": "Solution",
|
|
"packageVersion": "[variables('_solutionVersion')]",
|
|
"packageName": "[variables('_solutionName')]",
|
|
"packageId": "[variables('_solutionId')]",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"contentId": "[variables('_playbookContentId4')]",
|
|
"contentKind": "Playbook",
|
|
"displayName": "My_Cohesity_CreateOrUpdate_ServiceNow_Incident",
|
|
"contentProductId": "[variables('_playbookcontentProductId4')]",
|
|
"id": "[variables('_playbookcontentProductId4')]",
|
|
"version": "[variables('playbookVersion4')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"name": "[variables('playbookTemplateSpecName5')]",
|
|
"location": "[parameters('workspace-location')]",
|
|
"dependsOn": [
|
|
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
|
|
],
|
|
"properties": {
|
|
"description": "My_Cohesity_Delete_Incident_Blobs Playbook with template version 3.0.0",
|
|
"mainTemplate": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "[variables('playbookVersion5')]",
|
|
"parameters": {
|
|
"PlaybookName": {
|
|
"type": "string",
|
|
"defaultValue": "My_Cohesity_Delete_Incident_Blobs",
|
|
"metadata": {
|
|
"description": "Enter value for PlaybookName"
|
|
}
|
|
}
|
|
},
|
|
"variables": {
|
|
"AzureblobConnectionName": "[[concat('Azureblob-', parameters('PlaybookName'))]",
|
|
"MicrosoftSentinelConnectionName": "[[concat('MicrosoftSentinel-', parameters('PlaybookName'))]",
|
|
"connection-2": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azureblob')]",
|
|
"_connection-2": "[[variables('connection-2')]",
|
|
"connection-3": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"_connection-3": "[[variables('connection-3')]",
|
|
"workspace-location-inline": "[concat('[resourceGroup().locatio', 'n]')]",
|
|
"workspace-name": "[parameters('workspace')]",
|
|
"workspaceResourceId": "[[resourceId('microsoft.OperationalInsights/Workspaces', variables('workspace-name'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"properties": {
|
|
"provisioningState": "Succeeded",
|
|
"state": "Enabled",
|
|
"definition": {
|
|
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"$connections": {
|
|
"type": "Object"
|
|
},
|
|
"PlaybookName": {
|
|
"type": "string",
|
|
"defaultValue": "[[parameters('PlaybookName')]"
|
|
}
|
|
},
|
|
"staticResults": {
|
|
"Delete_blob_(V2)0": {
|
|
"status": "Succeeded",
|
|
"outputs": {
|
|
"statusCode": "OK"
|
|
}
|
|
}
|
|
},
|
|
"triggers": {
|
|
"Microsoft_Sentinel_incident": {
|
|
"type": "ApiConnectionWebhook",
|
|
"inputs": {
|
|
"body": {
|
|
"callback_url": "@{listCallbackUrl()}"
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azuresentinel']['connectionId']"
|
|
}
|
|
},
|
|
"path": "/incident-creation"
|
|
}
|
|
}
|
|
},
|
|
"actions": {
|
|
"For_each": {
|
|
"foreach": "@body('Lists_blobs_(V2)')?['value']",
|
|
"actions": {
|
|
"Delete_blob_(V2)": {
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"headers": {
|
|
"SkipDeleteIfFileNotFoundOnServer": false
|
|
},
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "delete",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/files/@{encodeURIComponent(encodeURIComponent(items('For_each')?['Path']))}"
|
|
},
|
|
"runtimeConfiguration": {
|
|
"staticResult": {
|
|
"staticResultOptions": "Disabled",
|
|
"name": "Delete_blob_(V2)0"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"runAfter": {
|
|
"Lists_blobs_(V2)": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "Foreach"
|
|
},
|
|
"Initialize_Description": {
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "description",
|
|
"type": "string",
|
|
"value": "@triggerBody()?['object']?['properties']?['description']"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Initialize_variable": {
|
|
"runAfter": {
|
|
"Initialize_Description": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "InitializeVariable",
|
|
"inputs": {
|
|
"variables": [
|
|
{
|
|
"name": "heliosID",
|
|
"type": "string",
|
|
"value": "@{split(variables('description'), 'Helios ID: ')[1]}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Lists_blobs_(V2)": {
|
|
"runAfter": {
|
|
"Initialize_variable": [
|
|
"Succeeded"
|
|
]
|
|
},
|
|
"type": "ApiConnection",
|
|
"inputs": {
|
|
"host": {
|
|
"connection": {
|
|
"name": "@parameters('$connections')['azureblob']['connectionId']"
|
|
}
|
|
},
|
|
"method": "get",
|
|
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/foldersV2/@{encodeURIComponent(encodeURIComponent('/cohesity-extra-parameters/',variables('heliosID'),'/'))}",
|
|
"queries": {
|
|
"useFlatListing": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"$connections": {
|
|
"value": {
|
|
"azureblob": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('AzureblobConnectionName'))]",
|
|
"connectionName": "[[variables('AzureblobConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azureblob')]"
|
|
},
|
|
"azuresentinel": {
|
|
"connectionId": "[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]",
|
|
"connectionName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"id": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/Azuresentinel')]",
|
|
"connectionProperties": {
|
|
"authentication": {
|
|
"type": "ManagedServiceIdentity"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"name": "[[parameters('PlaybookName')]",
|
|
"type": "Microsoft.Logic/workflows",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"tags": {
|
|
"hidden-SentinelTemplateName": "Cohesity_Delete_Incident_Blobs",
|
|
"hidden-SentinelTemplateVersion": "1.0",
|
|
"hidden-SentinelWorkspaceId": "[[variables('workspaceResourceId')]"
|
|
},
|
|
"apiVersion": "2017-07-01",
|
|
"dependsOn": [
|
|
"[[resourceId('Microsoft.Web/connections', variables('AzureblobConnectionName'))]",
|
|
"[[resourceId('Microsoft.Web/connections', variables('MicrosoftSentinelConnectionName'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('AzureblobConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('AzureblobConnectionName')]",
|
|
"api": {
|
|
"id": "[[variables('_connection-2')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Web/connections",
|
|
"apiVersion": "2016-06-01",
|
|
"name": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"location": "[[variables('workspace-location-inline')]",
|
|
"kind": "V1",
|
|
"properties": {
|
|
"displayName": "[[variables('MicrosoftSentinelConnectionName')]",
|
|
"parameterValueType": "Alternative",
|
|
"api": {
|
|
"id": "[[variables('_connection-3')]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
|
|
"apiVersion": "2022-01-01-preview",
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('Playbook-', last(split(variables('playbookId5'),'/'))))]",
|
|
"properties": {
|
|
"parentId": "[variables('playbookId5')]",
|
|
"contentId": "[variables('_playbookContentId5')]",
|
|
"kind": "Playbook",
|
|
"version": "[variables('playbookVersion5')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"tier": "Partner",
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"link": "https://support.cohesity.com/"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"title": "Delete Cohesity incident blobs",
|
|
"description": "This playbook deletes the blobs on Azure storage created by an incident that is generated by Cohesity function apps.",
|
|
"prerequisites": "Deploy the Cohesity configuration and function apps (see details [here](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/CohesitySecurity/Playbooks/Cohesity_Delete_Incident_Blobs/readme.md)).",
|
|
"postDeployment": [
|
|
"Authorize all connections."
|
|
],
|
|
"lastUpdateTime": "2023-01-27T10:57:00Z",
|
|
"entities": [
|
|
"Malware"
|
|
],
|
|
"tags": [
|
|
"Cleanup"
|
|
],
|
|
"releaseNotes": {
|
|
"version": "1.0",
|
|
"title": "[variables('blanks')]",
|
|
"notes": [
|
|
"Initial version"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"packageKind": "Solution",
|
|
"packageVersion": "[variables('_solutionVersion')]",
|
|
"packageName": "[variables('_solutionName')]",
|
|
"packageId": "[variables('_solutionId')]",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"contentId": "[variables('_playbookContentId5')]",
|
|
"contentKind": "Playbook",
|
|
"displayName": "My_Cohesity_Delete_Incident_Blobs",
|
|
"contentProductId": "[variables('_playbookcontentProductId5')]",
|
|
"id": "[variables('_playbookcontentProductId5')]",
|
|
"version": "[variables('playbookVersion5')]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.OperationalInsights/workspaces/providers/contentPackages",
|
|
"apiVersion": "2023-04-01-preview",
|
|
"location": "[parameters('workspace-location')]",
|
|
"properties": {
|
|
"version": "3.0.0",
|
|
"kind": "Solution",
|
|
"contentSchemaVersion": "3.0.0",
|
|
"displayName": "CohesitySecurity",
|
|
"publisherDisplayName": "Cohesity",
|
|
"descriptionHtml": "<p><strong>Note:</strong> <em>There may be <a href=\"https://aka.ms/sentinelsolutionsknownissues\">known issues</a> pertaining to this Solution, please refer to them before installing.</em></p>\n<p>This product integrates Cohesity Helios with Microsoft Sentinel to stay updated with the security events from your Cohesity environment and immediately respond to a ransomware attack or an anomaly</p>\n<p><strong>Data Connectors:</strong> 1, <strong>Playbooks:</strong> 5</p>\n<p><a href=\"https://aka.ms/azuresentinel\">Learn more about Microsoft Sentinel</a> | <a href=\"https://aka.ms/azuresentinelsolutionsdoc\">Learn more about Solutions</a></p>\n",
|
|
"contentKind": "Solution",
|
|
"contentProductId": "[variables('_solutioncontentProductId')]",
|
|
"id": "[variables('_solutioncontentProductId')]",
|
|
"icon": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/Cohesity-Logo.svg\" width=\"75px\"height=\"75px\">",
|
|
"contentId": "[variables('_solutionId')]",
|
|
"parentId": "[variables('_solutionId')]",
|
|
"source": {
|
|
"kind": "Solution",
|
|
"name": "CohesitySecurity",
|
|
"sourceId": "[variables('_solutionId')]"
|
|
},
|
|
"author": {
|
|
"name": "Cohesity",
|
|
"email": "[variables('_email')]"
|
|
},
|
|
"support": {
|
|
"name": "Cohesity",
|
|
"email": "support@cohesity.com",
|
|
"tier": "Partner",
|
|
"link": "https://support.cohesity.com/"
|
|
},
|
|
"dependencies": {
|
|
"operator": "AND",
|
|
"criteria": [
|
|
{
|
|
"kind": "DataConnector",
|
|
"contentId": "[variables('_dataConnectorContentId1')]",
|
|
"version": "[variables('dataConnectorVersion1')]"
|
|
},
|
|
{
|
|
"kind": "Playbook",
|
|
"contentId": "[variables('_Cohesity_Send_Incident_Email')]",
|
|
"version": "[variables('playbookVersion1')]"
|
|
},
|
|
{
|
|
"kind": "Playbook",
|
|
"contentId": "[variables('_Cohesity_Restore_From_Last_Snapshot')]",
|
|
"version": "[variables('playbookVersion2')]"
|
|
},
|
|
{
|
|
"kind": "Playbook",
|
|
"contentId": "[variables('_Cohesity_Close_Helios_Incident')]",
|
|
"version": "[variables('playbookVersion3')]"
|
|
},
|
|
{
|
|
"kind": "Playbook",
|
|
"contentId": "[variables('_Cohesity_CreateOrUpdate_ServiceNow_Incident')]",
|
|
"version": "[variables('playbookVersion4')]"
|
|
},
|
|
{
|
|
"kind": "Playbook",
|
|
"contentId": "[variables('_Cohesity_Delete_Incident_Blobs')]",
|
|
"version": "[variables('playbookVersion5')]"
|
|
}
|
|
]
|
|
},
|
|
"firstPublishDate": "2022-10-10",
|
|
"providers": [
|
|
"Cohesity"
|
|
],
|
|
"categories": {
|
|
"domains": [
|
|
"Security - Cloud Security",
|
|
"Security - Automation (SOAR)"
|
|
]
|
|
}
|
|
},
|
|
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/', variables('_solutionId'))]"
|
|
}
|
|
],
|
|
"outputs": {}
|
|
}
|