Analytic rule catalog
Quantum-vulnerable key detected in Key Vault
Back
| Id | 8a1c4f2d-2b3a-4e5f-9c1d-1a2b3c4d5e6f |
| Rulename | Quantum-vulnerable key detected in Key Vault |
| Description | A key in Azure Key Vault has been classified as quantum-vulnerable (RSA or elliptic-curve). These key types are broken by Shor’s algorithm on a sufficiently large fault-tolerant quantum computer. Rotate to a PQ-hybrid key (ML-KEM, ML-DSA) or plan migration before the harvest-now-decrypt-later window closes for long-lived data. |
| Severity | Medium |
| Tactics | Impact |
| Techniques | T1565 |
| Required data connectors | QCryptonPQCScanner |
| Kind | Scheduled |
| Query frequency | 1h |
| Query period | 1h |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/QCryptonPQCScanner/Analytic%20Rules/QuantumVulnerableKVKey.yaml |
| Version | 1.0.0 |
| Arm template | 8a1c4f2d-2b3a-4e5f-9c1d-1a2b3c4d5e6f.json |
PQReadiness_CL
| where TimeGenerated > ago(1h)
| where AssetKind == "kv-key"
| where QuantumPosture == "vulnerable"
| extend AlgorithmDetail = strcat(Algorithm, iif(isnotnull(KeySize), strcat("-", tostring(KeySize)), ""))
| project TimeGenerated, ResourceId, ResourceName, AssetIdentifier, AlgorithmDetail, PostureReason, RiskScore, SubscriptionId, ResourceGroup
| order by RiskScore desc
entityMappings:
- fieldMappings:
- identifier: ResourceId
columnName: ResourceId
entityType: AzureResource
- fieldMappings:
- identifier: Url
columnName: AssetIdentifier
entityType: Url
id: 8a1c4f2d-2b3a-4e5f-9c1d-1a2b3c4d5e6f
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/QCryptonPQCScanner/Analytic%20Rules/QuantumVulnerableKVKey.yaml
triggerOperator: gt
tactics:
- Impact
kind: Scheduled
requiredDataConnectors:
- dataTypes:
- PQReadiness_CL
connectorId: QCryptonPQCScanner
queryPeriod: 1h
severity: Medium
relevantTechniques:
- T1565
triggerThreshold: 0
version: 1.0.0
name: Quantum-vulnerable key detected in Key Vault
status: Available
query: |
PQReadiness_CL
| where TimeGenerated > ago(1h)
| where AssetKind == "kv-key"
| where QuantumPosture == "vulnerable"
| extend AlgorithmDetail = strcat(Algorithm, iif(isnotnull(KeySize), strcat("-", tostring(KeySize)), ""))
| project TimeGenerated, ResourceId, ResourceName, AssetIdentifier, AlgorithmDetail, PostureReason, RiskScore, SubscriptionId, ResourceGroup
| order by RiskScore desc
description: |
A key in Azure Key Vault has been classified as quantum-vulnerable (RSA or elliptic-curve).
These key types are broken by Shor's algorithm on a sufficiently large fault-tolerant quantum computer.
Rotate to a PQ-hybrid key (ML-KEM, ML-DSA) or plan migration before the harvest-now-decrypt-later
window closes for long-lived data.
queryFrequency: 1h
{
"$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/8a1c4f2d-2b3a-4e5f-9c1d-1a2b3c4d5e6f')]",
"kind": "Scheduled",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/8a1c4f2d-2b3a-4e5f-9c1d-1a2b3c4d5e6f')]",
"properties": {
"alertRuleTemplateName": "8a1c4f2d-2b3a-4e5f-9c1d-1a2b3c4d5e6f",
"customDetails": null,
"description": "A key in Azure Key Vault has been classified as quantum-vulnerable (RSA or elliptic-curve).\nThese key types are broken by Shor's algorithm on a sufficiently large fault-tolerant quantum computer.\nRotate to a PQ-hybrid key (ML-KEM, ML-DSA) or plan migration before the harvest-now-decrypt-later\nwindow closes for long-lived data.\n",
"displayName": "Quantum-vulnerable key detected in Key Vault",
"enabled": true,
"entityMappings": [
{
"entityType": "AzureResource",
"fieldMappings": [
{
"columnName": "ResourceId",
"identifier": "ResourceId"
}
]
},
{
"entityType": "Url",
"fieldMappings": [
{
"columnName": "AssetIdentifier",
"identifier": "Url"
}
]
}
],
"OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/QCryptonPQCScanner/Analytic%20Rules/QuantumVulnerableKVKey.yaml",
"query": "PQReadiness_CL\n| where TimeGenerated > ago(1h)\n| where AssetKind == \"kv-key\"\n| where QuantumPosture == \"vulnerable\"\n| extend AlgorithmDetail = strcat(Algorithm, iif(isnotnull(KeySize), strcat(\"-\", tostring(KeySize)), \"\"))\n| project TimeGenerated, ResourceId, ResourceName, AssetIdentifier, AlgorithmDetail, PostureReason, RiskScore, SubscriptionId, ResourceGroup\n| order by RiskScore desc\n",
"queryFrequency": "PT1H",
"queryPeriod": "PT1H",
"severity": "Medium",
"status": "Available",
"subTechniques": [],
"suppressionDuration": "PT1H",
"suppressionEnabled": false,
"tactics": [
"Impact"
],
"techniques": [
"T1565"
],
"templateVersion": "1.0.0",
"triggerOperator": "GreaterThan",
"triggerThreshold": 0
},
"type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
}
]
}