Microsoft Sentinel Analytic Rules
cloudbrothers.infoAzure Sentinel RepoToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage

Jamf Protect - Alerts

Back
Id6098daa0-f05e-44d5-b5a0-913e63ba3179
RulenameJamf Protect - Alerts
DescriptionCreates an incident based on Jamf Protect Alert data in Microsoft Sentinel
SeverityHigh
Required data connectorsJamfProtect
KindNRT
Source Urihttps://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Jamf Protect/Analytic Rules/JamfProtectAlerts.yaml
Version1.0.5
Arm template6098daa0-f05e-44d5-b5a0-913e63ba3179.json
Deploy To Azure
JamfProtect
| where EventProduct == "Jamf Protect - Alerts"
    and isnotempty(EventSeverity)
| extend
    algorithm = "SHA256",
    Host_IPs = tostring(parse_json(DvcIpAddr)[0]),
    Tags = tostring(Match_facts[0].tags),
    Tactics = case(Match_tags has "Execution", "Execution", Match_tags has "Visibility", "Visibility", Match_tags has "Persistence", "Persistence", Match_tags has "LateralMovement", "LateralMovement", Match_tags has "CredentialAccess", "CredentialAcccess", Match_tags has "DefenseEvasion", "DefenseEvasion", Match_tags has "PrivilegeEscalation", "PrivilegeEscalation", Match_tags has "Impact", "Impact", Match_tags has "CommandAndControl", "CommandandControl", Match_tags has "Discovery", "Discovery", Match_tags has "InitialAccess", "InitialAccess", ""),
    Techniques = pack_array(extract(@"[A-Za-z]\d{4}", 0, tostring(Match_tags))),
    JamfPro = case(Match_actions has "SmartGroup", "Workflow with Jamf Pro", Match_actions has "Prevented", "No workflow, Prevented by Protect", "No workflow")
status: Available
id: 6098daa0-f05e-44d5-b5a0-913e63ba3179
name: Jamf Protect - Alerts
customDetails:
  JamfPro_Status: JamfPro
  TargetBinarySignMsg: TargetBinarySigningInfoMessage
  TargetBinarySigner: TargetBinarySigningTeamID
  Protect_Tags: Tags
  Related_Binaries: TargetBinaryFilePath
  Protect_Event_Type: EventType
  TargetbinarySign: TargetbinarySignerType
  Related_File_hash: TargetBinarySHA256
  Protect_Analytic: EventMessage
kind: NRT
requiredDataConnectors:
- connectorId: JamfProtect
  dataTypes:
  - jamfprotect_CL
suppressionDuration: PT5H
severity: High
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Jamf Protect/Analytic Rules/JamfProtectAlerts.yaml
eventGroupingSettings:
  aggregationKind: AlertPerResult
incidentConfiguration:
  groupingConfiguration:
    matchingMethod: AllEntities
    enabled: false
    lookbackDuration: PT5H
    reopenClosedIncident: false
  createIncident: true
description: |
    'Creates an incident based on Jamf Protect Alert data in Microsoft Sentinel'
relevantTechniques: 
alertDetailsOverride:
  alertDisplayNameFormat: '{{EventMessage}} detected on {{DvcHostname}}'
  alertDynamicProperties:
  - value: EventReportUrl
    alertProperty: AlertLink
  - value: EventVendor
    alertProperty: ProviderName
  - value: EventProduct
    alertProperty: ProductName
  - value: Techniques
    alertProperty: Techniques
  alertSeverityColumnName: EventSeverity
  alertTacticsColumnName: Tactics
  alertDescriptionFormat: '{{EventDescription}} - Please investigate'
suppressionEnabled: false
query: |
  JamfProtect
  | where EventProduct == "Jamf Protect - Alerts"
      and isnotempty(EventSeverity)
  | extend
      algorithm = "SHA256",
      Host_IPs = tostring(parse_json(DvcIpAddr)[0]),
      Tags = tostring(Match_facts[0].tags),
      Tactics = case(Match_tags has "Execution", "Execution", Match_tags has "Visibility", "Visibility", Match_tags has "Persistence", "Persistence", Match_tags has "LateralMovement", "LateralMovement", Match_tags has "CredentialAccess", "CredentialAcccess", Match_tags has "DefenseEvasion", "DefenseEvasion", Match_tags has "PrivilegeEscalation", "PrivilegeEscalation", Match_tags has "Impact", "Impact", Match_tags has "CommandAndControl", "CommandandControl", Match_tags has "Discovery", "Discovery", Match_tags has "InitialAccess", "InitialAccess", ""),
      Techniques = pack_array(extract(@"[A-Za-z]\d{4}", 0, tostring(Match_tags))),
      JamfPro = case(Match_actions has "SmartGroup", "Workflow with Jamf Pro", Match_actions has "Prevented", "No workflow, Prevented by Protect", "No workflow")  
version: 1.0.5
tactics: 
entityMappings:
- fieldMappings:
  - identifier: HostName
    columnName: DvcHostname
  - identifier: OSFamily
    columnName: DvcOs
  - identifier: OSVersion
    columnName: DvcOsVersion
  entityType: Host
- fieldMappings:
  - identifier: Address
    columnName: Host_IPs
  entityType: IP
- fieldMappings:
  - identifier: Name
    columnName: TargetUsername
  entityType: Account
- fieldMappings:
  - identifier: CommandLine
    columnName: TargetProcessCurrentDirectory
  - identifier: ProcessId
    columnName: TargetProcessId
  entityType: Process
- fieldMappings:
  - identifier: Algorithm
    columnName: algorithm
  - identifier: Value
    columnName: TargetBinarySHA256
  entityType: FileHash
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspace": {
      "type": "String"
    }
  },
  "resources": [
    {
      "apiVersion": "2023-02-01-preview",
      "id": "[concat(resourceId('Microsoft.OperationalInsights/workspaces/providers', parameters('workspace'), 'Microsoft.SecurityInsights'),'/alertRules/6098daa0-f05e-44d5-b5a0-913e63ba3179')]",
      "kind": "NRT",
      "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/6098daa0-f05e-44d5-b5a0-913e63ba3179')]",
      "properties": {
        "alertDetailsOverride": {
          "alertDescriptionFormat": "{{EventDescription}} - Please investigate",
          "alertDisplayNameFormat": "{{EventMessage}} detected on {{DvcHostname}}",
          "alertDynamicProperties": [
            {
              "alertProperty": "AlertLink",
              "value": "EventReportUrl"
            },
            {
              "alertProperty": "ProviderName",
              "value": "EventVendor"
            },
            {
              "alertProperty": "ProductName",
              "value": "EventProduct"
            },
            {
              "alertProperty": "Techniques",
              "value": "Techniques"
            }
          ],
          "alertSeverityColumnName": "EventSeverity",
          "alertTacticsColumnName": "Tactics"
        },
        "alertRuleTemplateName": "6098daa0-f05e-44d5-b5a0-913e63ba3179",
        "customDetails": {
          "JamfPro_Status": "JamfPro",
          "Protect_Analytic": "EventMessage",
          "Protect_Event_Type": "EventType",
          "Protect_Tags": "Tags",
          "Related_Binaries": "TargetBinaryFilePath",
          "Related_File_hash": "TargetBinarySHA256",
          "TargetbinarySign": "TargetbinarySignerType",
          "TargetBinarySigner": "TargetBinarySigningTeamID",
          "TargetBinarySignMsg": "TargetBinarySigningInfoMessage"
        },
        "description": "'Creates an incident based on Jamf Protect Alert data in Microsoft Sentinel'\n",
        "displayName": "Jamf Protect - Alerts",
        "enabled": true,
        "entityMappings": [
          {
            "entityType": "Host",
            "fieldMappings": [
              {
                "columnName": "DvcHostname",
                "identifier": "HostName"
              },
              {
                "columnName": "DvcOs",
                "identifier": "OSFamily"
              },
              {
                "columnName": "DvcOsVersion",
                "identifier": "OSVersion"
              }
            ]
          },
          {
            "entityType": "IP",
            "fieldMappings": [
              {
                "columnName": "Host_IPs",
                "identifier": "Address"
              }
            ]
          },
          {
            "entityType": "Account",
            "fieldMappings": [
              {
                "columnName": "TargetUsername",
                "identifier": "Name"
              }
            ]
          },
          {
            "entityType": "Process",
            "fieldMappings": [
              {
                "columnName": "TargetProcessCurrentDirectory",
                "identifier": "CommandLine"
              },
              {
                "columnName": "TargetProcessId",
                "identifier": "ProcessId"
              }
            ]
          },
          {
            "entityType": "FileHash",
            "fieldMappings": [
              {
                "columnName": "algorithm",
                "identifier": "Algorithm"
              },
              {
                "columnName": "TargetBinarySHA256",
                "identifier": "Value"
              }
            ]
          }
        ],
        "eventGroupingSettings": {
          "aggregationKind": "AlertPerResult"
        },
        "incidentConfiguration": {
          "createIncident": true,
          "groupingConfiguration": {
            "enabled": false,
            "lookbackDuration": "PT5H",
            "matchingMethod": "AllEntities",
            "reopenClosedIncident": false
          }
        },
        "OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Jamf Protect/Analytic Rules/JamfProtectAlerts.yaml",
        "query": "JamfProtect\n| where EventProduct == \"Jamf Protect - Alerts\"\n    and isnotempty(EventSeverity)\n| extend\n    algorithm = \"SHA256\",\n    Host_IPs = tostring(parse_json(DvcIpAddr)[0]),\n    Tags = tostring(Match_facts[0].tags),\n    Tactics = case(Match_tags has \"Execution\", \"Execution\", Match_tags has \"Visibility\", \"Visibility\", Match_tags has \"Persistence\", \"Persistence\", Match_tags has \"LateralMovement\", \"LateralMovement\", Match_tags has \"CredentialAccess\", \"CredentialAcccess\", Match_tags has \"DefenseEvasion\", \"DefenseEvasion\", Match_tags has \"PrivilegeEscalation\", \"PrivilegeEscalation\", Match_tags has \"Impact\", \"Impact\", Match_tags has \"CommandAndControl\", \"CommandandControl\", Match_tags has \"Discovery\", \"Discovery\", Match_tags has \"InitialAccess\", \"InitialAccess\", \"\"),\n    Techniques = pack_array(extract(@\"[A-Za-z]\\d{4}\", 0, tostring(Match_tags))),\n    JamfPro = case(Match_actions has \"SmartGroup\", \"Workflow with Jamf Pro\", Match_actions has \"Prevented\", \"No workflow, Prevented by Protect\", \"No workflow\")\n",
        "severity": "High",
        "status": "Available",
        "suppressionDuration": "PT5H",
        "suppressionEnabled": false,
        "tactics": null,
        "techniques": null,
        "templateVersion": "1.0.5"
      },
      "type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
    }
  ]
}