Back
Idcdc01279-d6ea-41b1-a32d-49d726be95b8
RulenameNetskope - Unsanctioned/Risky Cloud App Access (Shadow IT)
DescriptionAlerts when users access unsanctioned or risky cloud applications based on Cloud Confidence Level (CCL) and app tags. Detects Shadow IT usage.
SeverityMedium
TacticsInitialAccess
Exfiltration
TechniquesT1199
T1567
Required data connectorsNetskopeWebTxConnector
KindScheduled
Query frequency1h
Query period1h
Trigger threshold0
Trigger operatorgt
Source Urihttps://github.com/Azure/Azure-Sentinel/blob/master/Solutions/NetskopeWebTx/Analytic%20Rules/NetskopeWebtx_Rule10.yaml
Version1.0.0
Arm templatecdc01279-d6ea-41b1-a32d-49d726be95b8.json
Deploy To Azure
NetskopeWebTransactions_CL
| where TimeGenerated > ago(1h)
| where isnotempty(CsUsername) and isnotempty(XCsApp)
| where XCsAppTags contains 'Unsanctioned' 
    or XCsAppCcl =~ 'poor'
    or XCsAppCcl =~ 'low'
    or XCsAppCci < 50
| summarize 
    EventCount = count(),
    TotalBytesMB = round(sum(Bytes) / 1048576.0, 2),
    Activities = make_set(XCsAppActivity),
    FirstSeen = min(TimeGenerated),
    LastSeen = max(TimeGenerated)
    by 
    CsUsername,
    XCsApp,
    XCsAppCategory,
    XCsAppCcl,
    XCsAppCci,
    XCsAppTags,
    XCCountry,
    XCDevice
| extend RiskLevel = case(
    XCsAppCci < 30, 'Critical',
    XCsAppCci < 50, 'High',
    XCsAppCci < 70, 'Medium',
    'Low')
| project 
    TimeGenerated = LastSeen,
    User = CsUsername,
    RiskyApplication = XCsApp,
    AppCategory = XCsAppCategory,
    CloudConfidenceLevel = XCsAppCcl,
    CloudConfidenceIndex = XCsAppCci,
    AppTags = XCsAppTags,
    RiskLevel,
    Country = XCCountry,
    Device = XCDevice,
    Activities,
    EventCount,
    DataTransferMB = TotalBytesMB
queryFrequency: 1h
entityMappings:
- fieldMappings:
  - columnName: User
    identifier: Name
  entityType: Account
- fieldMappings:
  - columnName: RiskyApplication
    identifier: Name
  entityType: CloudApplication
triggerThreshold: 0
triggerOperator: gt
severity: Medium
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/NetskopeWebTx/Analytic%20Rules/NetskopeWebtx_Rule10.yaml
query: |
  NetskopeWebTransactions_CL
  | where TimeGenerated > ago(1h)
  | where isnotempty(CsUsername) and isnotempty(XCsApp)
  | where XCsAppTags contains 'Unsanctioned' 
      or XCsAppCcl =~ 'poor'
      or XCsAppCcl =~ 'low'
      or XCsAppCci < 50
  | summarize 
      EventCount = count(),
      TotalBytesMB = round(sum(Bytes) / 1048576.0, 2),
      Activities = make_set(XCsAppActivity),
      FirstSeen = min(TimeGenerated),
      LastSeen = max(TimeGenerated)
      by 
      CsUsername,
      XCsApp,
      XCsAppCategory,
      XCsAppCcl,
      XCsAppCci,
      XCsAppTags,
      XCCountry,
      XCDevice
  | extend RiskLevel = case(
      XCsAppCci < 30, 'Critical',
      XCsAppCci < 50, 'High',
      XCsAppCci < 70, 'Medium',
      'Low')
  | project 
      TimeGenerated = LastSeen,
      User = CsUsername,
      RiskyApplication = XCsApp,
      AppCategory = XCsAppCategory,
      CloudConfidenceLevel = XCsAppCcl,
      CloudConfidenceIndex = XCsAppCci,
      AppTags = XCsAppTags,
      RiskLevel,
      Country = XCCountry,
      Device = XCDevice,
      Activities,
      EventCount,
      DataTransferMB = TotalBytesMB
tactics:
- InitialAccess
- Exfiltration
queryPeriod: 1h
relevantTechniques:
- T1199
- T1567
requiredDataConnectors:
- connectorId: NetskopeWebTxConnector
  dataTypes:
  - NetskopeWebTransactions_CL
id: cdc01279-d6ea-41b1-a32d-49d726be95b8
kind: Scheduled
version: 1.0.0
description: |
  Alerts when users access unsanctioned or risky cloud applications based on Cloud Confidence Level (CCL) and app tags. Detects Shadow IT usage.
status: Available
name: Netskope - Unsanctioned/Risky Cloud App Access (Shadow IT)
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspace": {
      "type": "String"
    }
  },
  "resources": [
    {
      "apiVersion": "2024-01-01-preview",
      "id": "[concat(resourceId('Microsoft.OperationalInsights/workspaces/providers', parameters('workspace'), 'Microsoft.SecurityInsights'),'/alertRules/cdc01279-d6ea-41b1-a32d-49d726be95b8')]",
      "kind": "Scheduled",
      "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/cdc01279-d6ea-41b1-a32d-49d726be95b8')]",
      "properties": {
        "alertRuleTemplateName": "cdc01279-d6ea-41b1-a32d-49d726be95b8",
        "customDetails": null,
        "description": "Alerts when users access unsanctioned or risky cloud applications based on Cloud Confidence Level (CCL) and app tags. Detects Shadow IT usage.\n",
        "displayName": "Netskope - Unsanctioned/Risky Cloud App Access (Shadow IT)",
        "enabled": true,
        "entityMappings": [
          {
            "entityType": "Account",
            "fieldMappings": [
              {
                "columnName": "User",
                "identifier": "Name"
              }
            ]
          },
          {
            "entityType": "CloudApplication",
            "fieldMappings": [
              {
                "columnName": "RiskyApplication",
                "identifier": "Name"
              }
            ]
          }
        ],
        "OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/NetskopeWebTx/Analytic%20Rules/NetskopeWebtx_Rule10.yaml",
        "query": "NetskopeWebTransactions_CL\n| where TimeGenerated > ago(1h)\n| where isnotempty(CsUsername) and isnotempty(XCsApp)\n| where XCsAppTags contains 'Unsanctioned' \n    or XCsAppCcl =~ 'poor'\n    or XCsAppCcl =~ 'low'\n    or XCsAppCci < 50\n| summarize \n    EventCount = count(),\n    TotalBytesMB = round(sum(Bytes) / 1048576.0, 2),\n    Activities = make_set(XCsAppActivity),\n    FirstSeen = min(TimeGenerated),\n    LastSeen = max(TimeGenerated)\n    by \n    CsUsername,\n    XCsApp,\n    XCsAppCategory,\n    XCsAppCcl,\n    XCsAppCci,\n    XCsAppTags,\n    XCCountry,\n    XCDevice\n| extend RiskLevel = case(\n    XCsAppCci < 30, 'Critical',\n    XCsAppCci < 50, 'High',\n    XCsAppCci < 70, 'Medium',\n    'Low')\n| project \n    TimeGenerated = LastSeen,\n    User = CsUsername,\n    RiskyApplication = XCsApp,\n    AppCategory = XCsAppCategory,\n    CloudConfidenceLevel = XCsAppCcl,\n    CloudConfidenceIndex = XCsAppCci,\n    AppTags = XCsAppTags,\n    RiskLevel,\n    Country = XCCountry,\n    Device = XCDevice,\n    Activities,\n    EventCount,\n    DataTransferMB = TotalBytesMB\n",
        "queryFrequency": "PT1H",
        "queryPeriod": "PT1H",
        "severity": "Medium",
        "status": "Available",
        "subTechniques": [],
        "suppressionDuration": "PT1H",
        "suppressionEnabled": false,
        "tactics": [
          "Exfiltration",
          "InitialAccess"
        ],
        "techniques": [
          "T1199",
          "T1567"
        ],
        "templateVersion": "1.0.0",
        "triggerOperator": "GreaterThan",
        "triggerThreshold": 0
      },
      "type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
    }
  ]
}