Azure-Sentinel/Playbooks
Lior Tamir 9e895f85b0
Merge pull request #5018 from loriatarms/relateAlertsToIncident-basedOnIP
New playbook template - relate alerts to incident
2022-05-23 10:01:37 +03:00
..
.template Fix more issues in validations 2022-02-27 12:32:57 +02:00
AD4IoT-AutoCloseIncidents Update playbook trigger names 2022-02-22 17:02:56 +02:00
AD4IoT-MailbyProductionLine Update playbook trigger names 2022-02-22 17:02:56 +02:00
AD4IoT-NewAssetServiceNowTicket Update playbook trigger names 2022-02-22 17:02:56 +02:00
AD4IoT-TritonDetectionAndResponse Update readme.md 2022-03-14 10:43:16 -07:00
ADX-Health-Playbook Update README.md 2021-08-24 10:22:14 +02:00
AS-PagerDuty-Integration Update README.md 2022-04-20 19:08:04 -07:00
AS-Slack-Integration Update README.md 2022-04-20 19:24:41 -07:00
AS_Alert_Spiderfoot_Scan Update azuredeploy.json 2022-04-28 18:04:16 -07:00
Add-IP-Entity-To-Named-Location Update playbook trigger names 2022-02-22 17:02:56 +02:00
Advanced-SNOW-Teams-Integration Fixed issues with Advanced-Snow-Teams-Integration Playbook 2022-04-13 20:50:07 -07:00
Affected-Key-Credentials-CVE-2021-42306 update Affected-Key-Credentials-CVE-2021-42306 ARM 2022-03-16 15:47:09 -07:00
Aggregate-SNOW-tickets Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
AutoConnect-ASCSubscriptions updates 2021-08-03 15:41:23 -04:00
AzureFirewall Update playbook trigger names 2022-02-22 17:02:56 +02:00
Block-AADUser Update playbook trigger names 2022-02-22 17:02:56 +02:00
Block-AADUserOrAdmin Update playbook trigger names 2022-02-22 17:02:56 +02:00
Block-ExchangeIP Update playbook trigger names 2022-02-22 17:02:56 +02:00
Block-IPs-on-MDATP-Using-GraphSecurity Update playbook trigger names 2022-02-22 17:02:56 +02:00
Block-OnPremADUser Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Change-Incident-Severity Update playbook trigger names 2022-02-22 17:02:56 +02:00
CiscoASA Fix tags 2021-08-02 11:13:44 +03:00
CiscoFirepower Update playbook trigger names 2022-02-22 17:02:56 +02:00
Close-Incident-MCAS Update playbook trigger names 2022-02-22 17:02:56 +02:00
Close-SentinelIncident-fromSNOW Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Comment-OriginAlertURL Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Comment-RemediationSteps Update playbook trigger names 2022-02-22 17:02:56 +02:00
Confirm-AADRiskyUser Update playbook trigger names 2022-02-22 17:02:56 +02:00
Create-AzureDevOpsTask Update playbook trigger names 2022-02-22 17:02:56 +02:00
Create-AzureSnapshot Update playbook trigger names 2022-02-22 17:02:56 +02:00
Create-IBMResilientIncident Update playbook trigger names 2022-02-22 17:02:56 +02:00
Create-Jira-Issue Update playbook trigger names 2022-02-22 17:02:56 +02:00
Create-SNOW-record Update playbook trigger names 2022-02-22 17:02:56 +02:00
Create-Zendesk-Ticket Update playbook trigger names 2022-02-22 17:02:56 +02:00
CrowdStrike Playbooks/CrowdStrike: minimum permission details 2021-11-20 11:10:09 -05:00
Dismiss-AADRiskyUser Update playbook trigger names 2022-02-22 17:02:56 +02:00
Dismiss_Upstream_Events Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Edgescan-AzureSentinel-Integration Update azuredeploy1.json 2022-04-28 18:02:14 -07:00
Enrich-Sentinel-Incident-AlienVault-OTX Update playbook trigger names 2022-02-22 17:02:56 +02:00
Enrich-SentinelIncident-GreyNoise-IP Update playbook trigger names 2022-02-22 17:02:56 +02:00
Enrich-SentinelIncident-GreyNoiseCommunity-IP Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Enrich-SentinelIncident-MDATPTVM Update playbook trigger names 2022-02-22 17:02:56 +02:00
Export-Incidents-With-Comments Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Export-Report-CSV Correct typo and add content 2021-08-18 05:22:37 -07:00
F5BigIP Revert change for F5, HaveIBeenPwned 2022-02-27 12:04:52 +02:00
ForcepointNGFW Update playbook trigger names 2022-02-22 17:02:56 +02:00
Fortinet-FortiGate updated UTF-8 encoding instead of UTF-8-BOM encoding 2021-08-05 09:49:56 +05:30
Get-AD4IoTDeviceCVEs Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-ASCRecommendations Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-AlertEntitiesEnrichment Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-AlienVault_OTX Update azuredeploy.json 2022-05-12 13:31:36 -07:00
Get-CompromisedPasswords Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-GeoFromIPandTagIncident-EmailAlertBasedonGeo Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-GeoFromIpAndTagIncident Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-MDATPVulnerabilities Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-MDEFileActivityWithin30Mins Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-MDEInvestigationPackage Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-MDEProcessActivityWithin30Mins Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Get-MDEStatistics Fix more issues in validations 2022-02-27 12:32:57 +02:00
Get-MachineData-EDR-SOAR-ActionsOnMachine Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-MerakiData-ConfigurationChanges Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Get-MerakiData-OrgSecurityEvents Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Get-Microsoft-Covid19-Indicators Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Get-O365Data fix docs link 2021-06-16 00:57:53 +00:00
Get-Recipients-EmailMessageID-containing-URL Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Get-SOCActions Merge pull request #4182 from rinure-msft/patch-2 2022-04-04 11:11:56 +05:30
Get-SentinelAlertsEvidence Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-TenableVlun Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Get-VTURLPositivesComment Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Get-VirusTotalDomainReport Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-VirusTotalFileInfo Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-VirusTotalIPReport Update playbook trigger names 2022-02-22 17:02:56 +02:00
Get-VirusTotalURLReport Update playbook trigger names 2022-02-22 17:02:56 +02:00
Guardicore-Import-Assets Update azuredeploy.json 2022-04-28 17:59:29 -07:00
Guardicore-Import-Incidents Update azuredeploy.json 2022-04-28 17:58:08 -07:00
Guardicore-ThreatIntel Update azuredeploy.json 2022-03-16 18:01:03 -07:00
HaveIBeenPwned Revert change for F5, HaveIBeenPwned 2022-02-27 12:04:52 +02:00
HaveIBeenPwned-Email Update playbook trigger names 2022-02-22 17:02:56 +02:00
IdentityProtection-EmailResponse Update playbook trigger names 2022-02-22 17:02:56 +02:00
IdentityProtection-TeamsBotResponse Fix more issues in validations 2022-02-27 12:32:57 +02:00
Incident-Assignment-Shifts Update playbook trigger names 2022-02-22 17:02:56 +02:00
Incident-Email-Notification Update playbook trigger names 2022-02-22 17:02:56 +02:00
Incident-Status-Sync-To-WDATP Update playbook trigger names 2022-02-22 17:02:56 +02:00
IncidentUpdate -Get-SentinelAlertsEvidence Update readme.md 2021-06-24 15:29:00 +12:00
Ingest-CanaryTokens Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Ingest-Prisma Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Isolate-AzureStorageAccount Update playbook trigger names 2022-02-22 17:02:56 +02:00
Isolate-AzureVMtoNSG Update playbook trigger names 2022-02-22 17:02:56 +02:00
Isolate-MDEMachine Merge pull request #3121 from appelboom/patch-1 2022-03-11 15:29:38 +05:30
M365-Security-Posture Fixed error in sending Secure Score (#4399) 2022-03-15 11:22:36 +05:30
Move-LogAnalytics-to-Storage Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Notify-ASCAlertAzureResource Update playbook trigger names 2022-02-22 17:02:56 +02:00
OktaRawLog Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Open-ServiceDeskPlusOnDemand-Ticket Update playbook trigger names 2022-02-22 17:02:56 +02:00
PaloAlto-PAN-OS Fix default name of PAN-OS playbook custom connector 2022-05-15 12:05:27 +03:00
PaloAlto-Wildfire Update playbook trigger names 2022-02-22 17:02:56 +02:00
Post-Message-Slack Update playbook trigger names 2022-02-22 17:02:56 +02:00
Post-Message-Teams Update playbook trigger names 2022-02-22 17:02:56 +02:00
Post-Tags-And-Comments-To-Your-IntSights-Account Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Prompt-User update to new MS Teams action 2022-03-22 16:23:50 +00:00
QuickStart-SentinelTriggers Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
RecordedFuture-Block-IPs-and-Domains-on-Microsoft-Defender-for-Endpoint Update RecordedFuture-TIforDefenderEndpoint.json 2022-03-23 16:10:14 +00:00
RecordedFuture_C2_Malware_Detect Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
RecordedFuture_COVID19_Related_Domain_Lure_Detect Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
RecordedFuture_Dom_C2_DNS_Name Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
RecordedFuture_Generic_Detection Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
RecordedFuture_IOC_Enrichment Update playbook trigger names 2022-02-22 17:02:56 +02:00
RecordedFuture_IP_ActCommC2C Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
RecordedFuture_IP_Enrichment Update playbook trigger names 2022-02-22 17:02:56 +02:00
RecordedFuture_IP_SCF Updating Deploy buttons and links part 1 2021-06-16 00:25:40 +00:00
Remove-MDEAppExecution Update playbook trigger names 2022-02-22 17:02:56 +02:00
Reset-AADUserPassword Fix typo in Reset-AADUserPassword playbook title 2022-04-28 09:22:28 +03:00
Resolve-McasInfrequentCountryAlerts Update azuredeploy.json 2022-02-27 13:46:29 +02:00
Restrict-MDEAppExecution Update playbook trigger names 2022-02-22 17:02:56 +02:00
Restrict-MDEDomain Added missing readme file 2022-05-13 19:43:31 +01:00
Restrict-MDEFileHash Update playbook trigger names 2022-02-22 17:02:56 +02:00
Restrict-MDEIPAddress changing TimeGenerated to createdTimeUtc 2022-05-03 17:07:49 +01:00
Restrict-MDEUrl Update playbook trigger names 2022-02-22 17:02:56 +02:00
Revoke-AADSignInSessions Update playbook trigger names 2022-02-22 17:02:56 +02:00
Run-AzureVMPacketCapture Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Run-MDEAntivirus Revert role assignment addition to Run-MDEAntivirus playbook 2022-04-28 09:15:18 +03:00
Save-NamedLocations Updating Deploy buttons and links part 2 2021-06-16 01:40:49 +00:00
Send-AnalyticalRulesHealthNotifications Updated Send-AnalyticalRulesHealthNotifications 2021-12-01 15:21:16 -08:00
Send-AzCommunicationsSMSMessage Fix issues raised by automatic validations 2022-02-27 12:00:11 +02:00
Send-ConnectorHealthStatus Updated deploy buttons 2021-10-20 14:02:18 -04:00
Send-IngestionCostAlert update Send-IngestionCostAlert azuredeploy.json 2022-03-29 10:28:52 -07:00
Send-IngestionCostAnomalyAlert fixed Azure Deploy link 2022-05-12 09:44:38 +01:00
Send-Teams-adaptive-card-on-incident-creation Send-Teams-adaptive-card-on-incident-creation 2022-05-05 15:29:02 +01:00
Send-UrlReport Update playbook trigger names 2022-02-22 17:02:56 +02:00
Send-basic-email Update playbook trigger names 2022-02-22 17:02:56 +02:00
Send-email-with-formatted-incident-report Update playbook trigger names 2022-02-22 17:02:56 +02:00
Spur-Enrichment Merge pull request #2903 from tokesr/tokesr-patch-1 2022-03-11 10:36:43 +05:30
Start-MDEAutomatedInvestigation Update playbook trigger names 2022-02-22 17:02:56 +02:00
Sync-IncidentsWithJIRA Update readme.md 2022-05-06 12:24:31 +02:00
Sync-Sentinel-Incident-Comments-To-M365Defender Updated readme for Trigger frequency change 2021-06-24 17:57:14 +05:30
Unisolate-MDEMachine Updated default name from Isolate-MDEMachine to Unisolate-MDEMachine (#4587) 2022-04-11 18:08:17 +05:30
Update-BulkIncidents fixed DeploytoAzure buttons 2021-12-10 18:25:22 -08:00
Update-NamedLocations-TOR Update azuredeploy.json 2021-01-05 08:27:23 -08:00
Update-VIPUsers-Watchlist-from-AzureAD-Group Update-VIPUsers-Watchlist-from-AzureAD-Group 2022-03-20 22:49:23 +00:00
Update-Watchlist-With-NamedLocation Update azuredeploy.json 2021-08-25 14:40:21 +02:00
Watchlist-Add-HostToWatchList update of whatchlist playbooks with native actions 2022-04-28 15:29:43 +01:00
Watchlist-Add-IPToWatchList update of whatchlist playbooks with native actions 2022-04-28 15:29:43 +01:00
Watchlist-Add-URLToWatchList update of whatchlist playbooks with native actions 2022-04-28 15:29:43 +01:00
Watchlist-Add-UserToWatchList update of whatchlist playbooks with native actions 2022-04-28 15:29:43 +01:00
Watchlist-ChangeIncidentSeverityandTitleIFUserVIP Change default playbook name for 'Watchlist-ChangeIncidentSeverityandTitleIFUserVIP' 2022-05-18 10:56:49 +03:00
Watchlist-CloseIncidentKnownIPs Update playbook trigger names 2022-02-22 17:02:56 +02:00
Watchlist-InformSubowner-IncidentTrigger Update playbook trigger names 2022-02-22 17:02:56 +02:00
Watchlist-SendSQLData-Watchlist Updating Deploy buttons and links part 2 2021-06-16 01:40:49 +00:00
Zscaler Update playbook trigger names 2022-02-22 17:02:56 +02:00
Zscaler-add-Domains-to-URL-Category Update azuredeploy.json 2022-04-28 17:56:16 -07:00
relateAlertsToIncident-basedOnIP Update azuredeploy.json 2022-05-22 18:19:35 +03:00
CSV-Report-Export Create CSV-Report-Export 2021-08-10 11:48:33 -07:00
Download.png Added Download Icon 2022-03-29 21:50:07 -07:00
ReadMe.md Updated Note 2022-03-29 21:53:19 -07:00
logic_app_logo.png Add files via upload 2020-10-21 16:37:03 +13:00

ReadMe.md

LogicApps Logo

About

This repo contains sample security playbooks for security automation, orchestration and response (SOAR). Each folder contains a security playbook ARM template that uses Microsoft Sentinel trigger.

Instructions for deploying a custom template

After selecting a playbook, in the Azure portal:

  1. Search for deploy a custom template
  2. Click build your own template in the editor
  3. Paste the contents from the GitHub playbook
  4. Click Save
  5. Fill in needed data and click Purchase

Once deployment is complete, you will need to authorize each connection.

  1. Click the Microsoft Sentinel connection resource
  2. Click edit API connection
  3. Click Authorize
  4. Sign in
  5. Click Save
  6. Repeat steps for other connections
  • For Azure Log Analytics Data Collector, you will need to add the workspace ID and Key You can now edit the playbook in Logic apps.

Instructions for templatizing a playbook

Option 1: Azure Logic App/Playbook ARM Template Generator

  1. Download tool and run the PowerShell script
    Download

  2. Extract the folder and open "Playbook_ARM_Template_Generator.ps1" either in Visual Studio Code/Windows PowerShell/PowerShell Core

    Note
    The script runs from the user's machine. You must allow PowerShell script execution. To do so, run the following command:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass  
    
  3. Script prompts you to enter your Azure Tenant Id

  4. You are prompted to authenticate with credentials, once the user is authenticated, you will be prompted to choose

    • Subscription
    • Playbooks
  5. After selecting playbooks, script prompts to select location on your local drive to save ARM Template

Note: Tool converts microsoftsentinel connections to MSI during export

Option 2: Manual

Once you have created a playbook that you want to export to share, go to the Logic App resource in Azure.

Note: this is the generic instructions there may be other steps depending how complex or what connectors are used for the playbook.

  1. Click Export Template from the resource menu in Azure Portal.
  2. Copy the contents of the template.
  3. Using VS code, create a JSON file with the name "azuredeploy.json".
  4. Paste the code into the new file.
  5. In the parameters section, you can remove all parameters and add the following minimum fields. Users can edit the parameters when deploying your template. You can add more parameters based on your playbook requirements.
    "parameters": {
        "PlaybookName": {
            "defaultValue": "<PlaybookName>",
            "type": "string"
        },
        "UserName": {
            "defaultValue": "<username>@<domain>",
            "type": "string"
        }
    },
  • Playbook name and username are minimum requirements that will be used for the connections.
  1. In the variables section, create a variable for each connection the playbook is using.
  • To construct a string variable, use this following snippet. Make sure to replace the connectorname with actual name of the connector.
    [concat('<connectorname>-', parameters('PlaybookName'))]
  • For example, if you are using Azure Active Directory and Microsoft Sentinel connections in the playbook, then create two variables with actual connection names. The variables will be the connection names. Here we are creating a connection name using the connection (AzureAD) and "-" and the playbook name.
    "variables": {
        "AzureADConnectionName": "[concat('azuread-', parameters('PlaybookName'))]",
        "AzureSentinelConnectionName": "[concat('azuresentinel-', parameters('PlaybookName'))]"
    },
  1. Next, you will need to add resources to be created for each connection.
   "resources": [
        {
            "type": "Microsoft.Web/connections",
            "apiVersion": "2016-06-01",
            "name": "[variables('AzureADConnectionName')]",
            "location": "[resourceGroup().location]",
            "properties": {
                "displayName": "[parameters('UserName')]",
                "customParameterValues": {},
                "api": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/azuread')]"
                }
            }
        },
  • The name is using the variable we created.
  • The location is using the resource group that was selected as part of the deployment.
  • The displayname is using the Username parameter.
  • Lastly, you can build the string for the id using strings plus properties of the subscription and resource group.
  • Repeat for each connection needed.
  1. In the Microsoft.Logic/workflows resource under parameters / $connections, there will be a value for each connection. You will need to update each like the following.
"parameters": {
                    "$connections": {
                        "value": {
                            "azuread": {
                                "connectionId": "[resourceId('Microsoft.Web/connections', variables('AzureADConnectionName'))]",
                                "connectionName": "[variables('AzureADConnectionName')]",
                                "id": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/azuread')]"
                            },
                            "azuresentinel": {
                                "connectionId": "[resourceId('Microsoft.Web/connections', variables('AzureSentinelConnectionName'))]",
                                "connectionName": "[variables('AzureSentinelConnectionName')]",
                                "id": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/azuresentinel')]"
                            }
                        }
                    }
                }

  • The connectionId will use a string and variable.
  • The connectionName is the variable.
  • The id is the string we used early for the id when creating the resource.
  1. In the Microsoft.Logic/workflows resource, you will also need the dependsOn field, which is a list of resourceId. The string for each resourceId is constructed using this snippet, followed by an example which contains Azure AD and Azure Sentinel connections.
    [resourceId('Microsoft.Web/connections', <ConnectionVariableName>)]
    "dependsOn": [
        "[resourceId('Microsoft.Web/connections', variables('AzureADConnectionName'))]",
        "[resourceId('Microsoft.Web/connections', variables('AzureSentinelConnectionName'))]"
    ]
  1. Save the JSON.
  2. Create a Readme.md file with a brief description of the playbook.
  3. Test deployment of your template following Instructions for deploying a custom template. Make sure the deployment succeeds.
  4. If you need samples of a playbook template, refer to an existing playbooks' azuredeploy.json sample file in the repo.
  5. Contribute the playbook template to the repository.

Suggestions and feedback

We value your feedback. Let us know if you run into any problems or share your suggestions and feedback by sending email to AzureSentinel@microsoft.com