Back
Idd4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9
RulenameCopilot - Plugin Tampering (Enable and Disable Within 5 Minutes)
DescriptionDetects when a user enables and disables Copilot plugins within a 5-minute window. This behavior often indicates probing for security controls or living-off-Copilot techniques.

This rule identifies discovery and defense evasion activities where users rapidly toggle plugin states, potentially testing security boundaries.
SeverityMedium
TacticsDiscovery
DefenseEvasion
TechniquesT1087
T1562
Required data connectorsMicrosoftCopilot
KindScheduled
Query frequency5m
Query period5m
Trigger threshold0
Trigger operatorgt
Source Urihttps://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Copilot/Analytic%20Rules/CopilotPluginTampering.yaml
Version1.0.0
Arm templated4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9.json
Deploy To Azure
CopilotActivity
| where RecordType in ("EnableCopilotPlugin","DisableCopilotPlugin")
| summarize
    Actions = make_set(RecordType),
    FirstSeen = min(TimeGenerated),
    LastSeen = max(TimeGenerated)
  by ActorName, SrcIpAddr
| where Actions has "EnableCopilotPlugin" and Actions has "DisableCopilotPlugin"
| where LastSeen - FirstSeen < 5m
| extend AccountCustomEntity = ActorName, IPCustomEntity = SrcIpAddr
triggerThreshold: 0
kind: Scheduled
description: |
  'Detects when a user enables and disables Copilot plugins within a 5-minute window. This behavior often indicates probing for security controls or living-off-Copilot techniques.
  This rule identifies discovery and defense evasion activities where users rapidly toggle plugin states, potentially testing security boundaries.'
queryFrequency: 5m
triggerOperator: gt
relevantTechniques:
- T1087
- T1562
entityMappings:
- fieldMappings:
  - identifier: FullName
    columnName: AccountCustomEntity
  entityType: Account
- fieldMappings:
  - identifier: Address
    columnName: IPCustomEntity
  entityType: IP
id: d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9
query: |
  CopilotActivity
  | where RecordType in ("EnableCopilotPlugin","DisableCopilotPlugin")
  | summarize
      Actions = make_set(RecordType),
      FirstSeen = min(TimeGenerated),
      LastSeen = max(TimeGenerated)
    by ActorName, SrcIpAddr
  | where Actions has "EnableCopilotPlugin" and Actions has "DisableCopilotPlugin"
  | where LastSeen - FirstSeen < 5m
  | extend AccountCustomEntity = ActorName, IPCustomEntity = SrcIpAddr
version: 1.0.0
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Copilot/Analytic%20Rules/CopilotPluginTampering.yaml
requiredDataConnectors:
- dataTypes:
  - CopilotActivity
  connectorId: MicrosoftCopilot
tactics:
- Discovery
- DefenseEvasion
queryPeriod: 5m
severity: Medium
status: Available
name: Copilot - Plugin Tampering (Enable and Disable Within 5 Minutes)
{
  "$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/d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9')]",
      "kind": "Scheduled",
      "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9')]",
      "properties": {
        "alertRuleTemplateName": "d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9",
        "customDetails": null,
        "description": "'Detects when a user enables and disables Copilot plugins within a 5-minute window. This behavior often indicates probing for security controls or living-off-Copilot techniques.\nThis rule identifies discovery and defense evasion activities where users rapidly toggle plugin states, potentially testing security boundaries.'\n",
        "displayName": "Copilot - Plugin Tampering (Enable and Disable Within 5 Minutes)",
        "enabled": true,
        "entityMappings": [
          {
            "entityType": "Account",
            "fieldMappings": [
              {
                "columnName": "AccountCustomEntity",
                "identifier": "FullName"
              }
            ]
          },
          {
            "entityType": "IP",
            "fieldMappings": [
              {
                "columnName": "IPCustomEntity",
                "identifier": "Address"
              }
            ]
          }
        ],
        "OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Copilot/Analytic%20Rules/CopilotPluginTampering.yaml",
        "query": "CopilotActivity\n| where RecordType in (\"EnableCopilotPlugin\",\"DisableCopilotPlugin\")\n| summarize\n    Actions = make_set(RecordType),\n    FirstSeen = min(TimeGenerated),\n    LastSeen = max(TimeGenerated)\n  by ActorName, SrcIpAddr\n| where Actions has \"EnableCopilotPlugin\" and Actions has \"DisableCopilotPlugin\"\n| where LastSeen - FirstSeen < 5m\n| extend AccountCustomEntity = ActorName, IPCustomEntity = SrcIpAddr\n",
        "queryFrequency": "PT5M",
        "queryPeriod": "PT5M",
        "severity": "Medium",
        "status": "Available",
        "subTechniques": [],
        "suppressionDuration": "PT1H",
        "suppressionEnabled": false,
        "tactics": [
          "DefenseEvasion",
          "Discovery"
        ],
        "techniques": [
          "T1087",
          "T1562"
        ],
        "templateVersion": "1.0.0",
        "triggerOperator": "GreaterThan",
        "triggerThreshold": 0
      },
      "type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
    }
  ]
}