Analytic rule catalog
Copilot - Plugin Tampering Enable and Disable Within 5 Minutes
Back
| Id | d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9 |
| Rulename | Copilot - Plugin Tampering (Enable and Disable Within 5 Minutes) |
| 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. |
| Severity | Medium |
| Tactics | Discovery DefenseEvasion |
| Techniques | T1087 T1562 |
| Required data connectors | MicrosoftCopilot |
| Kind | Scheduled |
| Query frequency | 5m |
| Query period | 5m |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Copilot/Analytic%20Rules/CopilotPluginTampering.yaml |
| Version | 1.0.0 |
| Arm template | d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9.json |
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
triggerThreshold: 0
requiredDataConnectors:
- dataTypes:
- CopilotActivity
connectorId: MicrosoftCopilot
tactics:
- Discovery
- DefenseEvasion
relevantTechniques:
- T1087
- T1562
kind: Scheduled
entityMappings:
- fieldMappings:
- identifier: FullName
columnName: AccountCustomEntity
entityType: Account
- fieldMappings:
- identifier: Address
columnName: IPCustomEntity
entityType: IP
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.'
triggerOperator: gt
status: Available
queryFrequency: 5m
id: d4e5f6a7-b8c9-40d1-e2f3-a4b5c6d7e8f9
name: Copilot - Plugin Tampering (Enable and Disable Within 5 Minutes)
severity: Medium
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
queryPeriod: 5m
{
"$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"
}
]
}