Analytic rule catalog
UniFi Site Manager Firmware Update Available
Back
| Id | 83b88ab5-21ca-5dd2-df91-6db4354f9360 |
| Rulename | UniFi Site Manager: Firmware Update Available |
| Description | Identifies UniFi devices with firmware updates available. Keeping firmware patched is critical as updates often include security vulnerability fixes. |
| Severity | Low |
| Tactics | InitialAccess |
| Techniques | T1190 |
| Required data connectors | UniFiSiteManagerConnectorDefinition |
| Kind | Scheduled |
| Query frequency | 1d |
| Query period | 1d |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/UniFi%20Site%20Manager%20%28CCF%29/Analytic%20Rules/UniFiCloudFirmwareUpdateAvailable.yaml |
| Version | 1.0.2 |
| Arm template | 83b88ab5-21ca-5dd2-df91-6db4354f9360.json |
Unifi_SiteManager_Devices_CL
| where TimeGenerated > ago(1d)
| summarize arg_max(TimeGenerated, *) by Id
| where isnotempty(UpdateAvailable)
| extend DeviceDetail = strcat(coalesce(Name, "Unnamed"), " (", Model, ") ", Version, " -> ", UpdateAvailable, " @", Ip)
| summarize
DevicesNeedingUpdate = count(),
DeviceList = make_list(DeviceDetail),
Models = make_set(Model),
ProductLines = make_set(ProductLine)
| where DevicesNeedingUpdate >= 1
| extend
TimeGenerated = now(),
AffectedModels = strcat_array(Models, ", "),
AffectedProductLines = strcat_array(ProductLines, ", "),
DeviceListString = strcat_array(DeviceList, "; ")
| extend Activity = strcat(DevicesNeedingUpdate, ' device(s) have firmware updates available: ', AffectedModels)
| project
TimeGenerated,
DevicesNeedingUpdate,
AffectedModels,
AffectedProductLines,
Activity,
DeviceListString
entityMappings:
- entityType: CloudApplication
fieldMappings:
- identifier: Name
columnName: AffectedProductLines
name: 'UniFi Site Manager: Firmware Update Available'
kind: Scheduled
triggerOperator: gt
status: Available
subTechniques: []
queryPeriod: 1d
requiredDataConnectors:
- connectorId: UniFiSiteManagerConnectorDefinition
dataTypes:
- Unifi_SiteManager_Devices_CL
tactics:
- InitialAccess
query: |
Unifi_SiteManager_Devices_CL
| where TimeGenerated > ago(1d)
| summarize arg_max(TimeGenerated, *) by Id
| where isnotempty(UpdateAvailable)
| extend DeviceDetail = strcat(coalesce(Name, "Unnamed"), " (", Model, ") ", Version, " -> ", UpdateAvailable, " @", Ip)
| summarize
DevicesNeedingUpdate = count(),
DeviceList = make_list(DeviceDetail),
Models = make_set(Model),
ProductLines = make_set(ProductLine)
| where DevicesNeedingUpdate >= 1
| extend
TimeGenerated = now(),
AffectedModels = strcat_array(Models, ", "),
AffectedProductLines = strcat_array(ProductLines, ", "),
DeviceListString = strcat_array(DeviceList, "; ")
| extend Activity = strcat(DevicesNeedingUpdate, ' device(s) have firmware updates available: ', AffectedModels)
| project
TimeGenerated,
DevicesNeedingUpdate,
AffectedModels,
AffectedProductLines,
Activity,
DeviceListString
description: |
Identifies UniFi devices with firmware updates available. Keeping firmware patched is critical as updates often include security vulnerability fixes.
severity: Low
incidentConfiguration:
groupingConfiguration:
lookbackDuration: P7D
enabled: true
reopenClosedIncident: false
matchingMethod: AnyAlert
createIncident: true
id: 83b88ab5-21ca-5dd2-df91-6db4354f9360
triggerThreshold: 0
queryFrequency: 1d
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/UniFi%20Site%20Manager%20%28CCF%29/Analytic%20Rules/UniFiCloudFirmwareUpdateAvailable.yaml
version: 1.0.2
relevantTechniques:
- T1190
{
"$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/83b88ab5-21ca-5dd2-df91-6db4354f9360')]",
"kind": "Scheduled",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/83b88ab5-21ca-5dd2-df91-6db4354f9360')]",
"properties": {
"alertRuleTemplateName": "83b88ab5-21ca-5dd2-df91-6db4354f9360",
"customDetails": null,
"description": "Identifies UniFi devices with firmware updates available. Keeping firmware patched is critical as updates often include security vulnerability fixes.\n",
"displayName": "UniFi Site Manager: Firmware Update Available",
"enabled": true,
"entityMappings": [
{
"entityType": "CloudApplication",
"fieldMappings": [
{
"columnName": "AffectedProductLines",
"identifier": "Name"
}
]
}
],
"incidentConfiguration": {
"createIncident": true,
"groupingConfiguration": {
"enabled": true,
"lookbackDuration": "P7D",
"matchingMethod": "AnyAlert",
"reopenClosedIncident": false
}
},
"OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/UniFi%20Site%20Manager%20%28CCF%29/Analytic%20Rules/UniFiCloudFirmwareUpdateAvailable.yaml",
"query": "Unifi_SiteManager_Devices_CL\n| where TimeGenerated > ago(1d)\n| summarize arg_max(TimeGenerated, *) by Id\n| where isnotempty(UpdateAvailable)\n| extend DeviceDetail = strcat(coalesce(Name, \"Unnamed\"), \" (\", Model, \") \", Version, \" -> \", UpdateAvailable, \" @\", Ip)\n| summarize\n DevicesNeedingUpdate = count(),\n DeviceList = make_list(DeviceDetail),\n Models = make_set(Model),\n ProductLines = make_set(ProductLine)\n| where DevicesNeedingUpdate >= 1\n| extend\n TimeGenerated = now(),\n AffectedModels = strcat_array(Models, \", \"),\n AffectedProductLines = strcat_array(ProductLines, \", \"),\n DeviceListString = strcat_array(DeviceList, \"; \")\n| extend Activity = strcat(DevicesNeedingUpdate, ' device(s) have firmware updates available: ', AffectedModels)\n| project\n TimeGenerated,\n DevicesNeedingUpdate,\n AffectedModels,\n AffectedProductLines,\n Activity,\n DeviceListString\n",
"queryFrequency": "P1D",
"queryPeriod": "P1D",
"severity": "Low",
"status": "Available",
"subTechniques": [],
"suppressionDuration": "PT1H",
"suppressionEnabled": false,
"tactics": [
"InitialAccess"
],
"techniques": [
"T1190"
],
"templateVersion": "1.0.2",
"triggerOperator": "GreaterThan",
"triggerThreshold": 0
},
"type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
}
]
}