Publisher: Splunk Community
Connector Version: 1.0.1
Product Vendor: Microsoft
Product Name: Sentinel
Product Version Supported (regex): ".*"
Minimum Product Version: 5.3.4
This app provides integration with Microsoft Sentinel
In order to configure the Sentinel app, a new App Registration in the Azure Portal is required. Please refer to Register an Application for further guidance.
The Sentinel SOAR App uses the client-credentials flow to authenticate against Azure. Under your created App registration, in Certificates & Secrets, create a new Client Secret. Save the secret value for later use during asset configuration.
Under your subscription, select the Add role assignment context menu and assign the Azure Sentinel Contributor role to your registered app.
When creating your SOAR asset, enter the Application ID as Client ID and the saved secret value as Client Secret .
In order to connect to your Sentinel environment, the Tenant ID , Subscription ID , Workspace Name , Workspace ID , Resource Group fields are required. They can be found inside of the Azure Portal. Fields related to polling are optional.
In order to retrieve the Workspace ID, navigate to your Sentinel Settings -> Workspace Settings
Actions like get incident take an incident name input parameter. This can be captured from the Sentinel API or Web UI, but it's not to be confused with the Incident Number or the Title. The Incident Name is the last component of the link to the incident that can be reviewed in Sentinel. For example, the Incident Name corresponding to
https://portal.azure.com/#asset/Microsoft_Azure_Security_Insights/Incident/subscriptions/dx582xwx-4x28-4f8d-9ded-9b0xd2803739/resourceGroups/demomachine_group/providers/Microsoft.OperationalInsights/workspaces/customworkspace/providers/Microsoft.SecurityInsights/Incidents/80289647-8743-4x67-87xx-9409x59xxxxx
is simply 80289647-8743-4a67-87db-9409e597b0db
The timerange parameter expects a ISO 8061 duration. Please find some commonly used values below
- Last 7 days : P7D
- Last 24 hours : P1D
- Last 24 hours : P1D
- Last 30 minutes: : PT30M
The run query action will perform light post-processing of the raw results from Sentinel to ease the use of data within SOAR. Notable, it will aggregate all returned tables in a single result set and set the SentinelTableName property on the individual objects. Most of the time, there will only be a PrimaryResult table returned.
The below configuration variables are required for this Connector to operate. These variables are specified when configuring a Sentinel asset in SOAR.
VARIABLE | REQUIRED | TYPE | DESCRIPTION |
---|---|---|---|
tenant_id | required | string | Tenant ID (e.g. 1e309abf-db6c-XXXX-a1d2-XXXXXXXXXXXX) |
subscription_id | required | string | The ID of the target subscription |
resource_group_name | required | string | The name of the resource group. The name is case insensitive |
workspace_name | required | string | The name of the workspace |
workspace_id | required | string | The id of the workspace |
client_id | required | string | Application (client) ID assigned to your Graph Security API app |
client_secret | required | password | Client Secret |
first_run_max_incidents | optional | numeric | Maximum Incidents for scheduled polling first time |
start_time_scheduled_poll | optional | string | Start Time for Schedule/Manual POLL (Use this format: 1970-01-01T00:00:00Z) |
test connectivity - Validate the asset configuration for connectivity
on poll - Callback action for the on_poll ingest functionality
get incident - Gets a given incident
get incident entities - Gets all entities for an incident
get incident alerts - Gets all alerts for an incident
list incidents - Gets all incidents
update incident - Updates an existing incident
add incident comment - Creates a new incident comment
run query - Queries the Sentinel Log Analytics workspace for data using KQL
Validate the asset configuration for connectivity
Type: test
Read only: True
No parameters are required for this action
No Output
Callback action for the on_poll ingest functionality
Type: ingest
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
container_count | optional | Number of events to generate | numeric | |
artifact_count | optional | Number of artifacts to generate per event | numeric |
No Output
Gets a given incident
Type: investigate
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
incident_name | required | Incident Name | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.parameter.incident_name | string | |
action_result.data.*.etag | string | |
action_result.data.*.id | string | |
action_result.data.*.name | string | mssentinel incident name |
action_result.data.*.properties.additionalData.alertsCount | numeric | |
action_result.data.*.properties.additionalData.bookmarksCount | numeric | |
action_result.data.*.properties.additionalData.commentsCount | numeric | |
action_result.data.*.properties.createdTimeUtc | string | |
action_result.data.*.properties.incidentNumber | numeric | |
action_result.data.*.properties.incidentUrl | string | |
action_result.data.*.properties.labels.*.labelName | string | |
action_result.data.*.properties.labels.*.labelType | string | |
action_result.data.*.properties.lastModifiedTimeUtc | string | |
action_result.data.*.properties.owner.assignedTo | string | |
action_result.data.*.properties.owner.email | string | |
action_result.data.*.properties.owner.objectId | string | |
action_result.data.*.properties.owner.userPrincipalName | string | |
action_result.data.*.properties.severity | string | |
action_result.data.*.properties.status | string | |
action_result.data.*.properties.title | string | |
action_result.data.*.type | string | |
action_result.summary.incident_id | string | mssentinel incident id |
action_result.summary.incident_name | string | mssentinel incident name |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Gets all entities for an incident
Type: investigate
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
incident_name | required | Incident Name | string | mssentinel incident name |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.parameter.incident_name | string | |
action_result.data.entities.*.id | string | |
action_result.data.entities.*.kind | string | |
action_result.data.entities.*.kind | string | |
action_result.data.entities.*.name | string | |
action_result.summary.total_entities | string | |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Gets all alerts for an incident
Type: investigate
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
incident_name | required | Incident Name | string | mssentinel incident name |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.parameter.incident_name | string | |
action_result.data.*.id | string | mssentinel alert id |
action_result.data.*.kind | string | |
action_result.data.*.name | string | |
action_result.data.*.properties.alertDisplayName | string | |
action_result.data.*.properties.confidenceLevel | string | |
action_result.data.*.properties.endTimeUtc | string | |
action_result.data.*.properties.friendlyName | string | |
action_result.data.*.properties.processingEndTime | string | |
action_result.data.*.properties.severity | string | |
action_result.data.*.properties.startTimeUtc | string | |
action_result.data.*.properties.status | string | |
action_result.data.*.properties.systemAlertId | string | |
action_result.data.*.properties.timeGenerated | string | |
action_result.data.*.properties.vendorName | string | |
action_result.data.*.type | string | |
action_result.summary.total_alerts | numeric | |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Gets all incidents
Type: investigate
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
limit | required | Maximum number of incidents to list | numeric | |
filter | optional | Filters the results, based on a Boolean condition | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.parameter.filter | string | |
action_result.parameter.limit | numeric | |
action_result.data.*.etag | string | |
action_result.data.*.id | string | |
action_result.data.*.name | string | mssentinel incident id |
action_result.data.*.properties.additionalData.alertsCount | numeric | |
action_result.data.*.properties.additionalData.bookmarksCount | numeric | |
action_result.data.*.properties.additionalData.commentsCount | numeric | |
action_result.data.*.properties.createdTimeUtc | string | |
action_result.data.*.properties.incidentNumber | numeric | |
action_result.data.*.properties.incidentUrl | string | |
action_result.data.*.properties.labels.*.labelName | string | |
action_result.data.*.properties.labels.*.labelType | string | |
action_result.data.*.properties.lastModifiedTimeUtc | string | |
action_result.data.*.properties.owner.assignedTo | string | |
action_result.data.*.properties.owner.email | string | |
action_result.data.*.properties.owner.objectId | string | |
action_result.data.*.properties.owner.userPrincipalName | string | |
action_result.data.*.properties.severity | string | |
action_result.data.*.properties.status | string | |
action_result.data.*.properties.title | string | |
action_result.data.*.type | string | |
action_result.summary.total_incidents | numeric | |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Updates an existing incident
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
incident_name | required | Incident Name | string | |
severity | optional | Updated severity of the incident | string | |
status | optional | Updated status of the incident | string | |
title | optional | Updated title of the incident | string | |
description | optional | Updated description of the incident | string | |
owner_upn | optional | Updated owner (userPrincipalName) | string | |
classification | optional | The reason the incident was closed. Only updated when status is updated to Closed | string | |
classification_comment | optional | Describes the reason the incident was closed. Only updated when status is updated to Closed | string | |
classification_reason | optional | The classification reason the incident was closed with. Only updated when status is updated to Closed | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.parameter.classification | string | |
action_result.parameter.classification_comment | string | |
action_result.parameter.classification_reason | string | |
action_result.parameter.description | string | |
action_result.parameter.incident_name | string | |
action_result.parameter.owner_upn | string | |
action_result.parameter.severity | string | |
action_result.parameter.status | string | |
action_result.parameter.title | string | |
action_result.data.*.etag | string | |
action_result.data.*.id | string | |
action_result.data.*.name | string | mssentinel incident name |
action_result.data.*.properties.additionalData.alertsCount | numeric | |
action_result.data.*.properties.additionalData.bookmarksCount | numeric | |
action_result.data.*.properties.additionalData.commentsCount | numeric | |
action_result.data.*.properties.createdTimeUtc | string | |
action_result.data.*.properties.incidentNumber | numeric | |
action_result.data.*.properties.incidentUrl | string | |
action_result.data.*.properties.labels.*.labelName | string | |
action_result.data.*.properties.labels.*.labelType | string | |
action_result.data.*.properties.lastModifiedTimeUtc | string | |
action_result.data.*.properties.owner.assignedTo | string | |
action_result.data.*.properties.owner.email | string | |
action_result.data.*.properties.owner.objectId | string | |
action_result.data.*.properties.owner.userPrincipalName | string | |
action_result.data.*.properties.severity | string | |
action_result.data.*.properties.status | string | |
action_result.data.*.properties.title | string | |
action_result.data.*.type | string | |
action_result.summary.incident_id | string | mssentinel incident id |
action_result.summary.incident_name | string | mssentinel incident name |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Creates a new incident comment
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
incident_name | required | Incident Name | string | |
message | required | The comment message | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.parameter.incident_name | string | |
action_result.parameter.message | string | |
action_result.data.*.id | string | |
action_result.data.*.name | string | |
action_result.data.*.properties.author.email | string | |
action_result.data.*.properties.author.name | string | |
action_result.data.*.properties.author.objectId | string | |
action_result.data.*.properties.author.userPrincipalName | string | |
action_result.data.*.properties.createdTimeUtc | string | |
action_result.data.*.properties.lastModifiedTimeUtc | string | |
action_result.data.*.properties.message | string | |
action_result.data.*.type | string | |
action_result.summary | string | |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Queries the Sentinel Log Analytics workspace for data using KQL
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
query | required | Query in KQL (for example, "SecurityIncident" will retrieve the Sentinel incidents table) | string | |
timespan | optional | Time Interval in ISO 8601 Duration format. For example, "P7D" for last 7 days or an interval like "2007-03-01T13:00:00Z/2008-05-11T15:30:00Z" | string | |
max_rows | required | Maximum number of rows to return in the result. Defaults to 3000 | numeric |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.status | string | |
action_result.status | string | |
action_result.parameter.max_rows | numeric | |
action_result.parameter.query | string | |
action_result.parameter.timespan | string | |
action_result.data.*.TimeGenerated | string | |
action_result.summary.total_rows | numeric | |
action_result.message | string | |
action_result.message | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |