azure-sf-cluster-write-config
match (effective permission)
{
"action": "Microsoft.ServiceFabric/managedclusters/write",
"scope_type": "resource|resourceGroup|subscription"
}
emit
| source type | Identity |
|---|---|
| target type | * |
| source | <principal> |
| target | <serviceFabric cluster> |
| permissions | Microsoft.ServiceFabric/managedclusters/write Microsoft.ServiceFabric/clusters/write |
Narrative
{principal.name} can rewrite cluster config on {target.name} (clusters/write), e.g. adding an admin client-cert thumbprint to grant itself data-plane admin.
Raw rule rules/derived/azure/servicefabric.yaml
id: azure-sf-cluster-write-config
emits: CanModifyConfiguration
match_effective_permission:
action: Microsoft.ServiceFabric/managedclusters/write
scope_type: resource|resourceGroup|subscription
emit:
source_type: Identity
target_type: '*'
source: <principal>
target: <serviceFabric cluster>
permissions:
- Microsoft.ServiceFabric/managedclusters/write
- Microsoft.ServiceFabric/clusters/write
escalation: Add an attacker admin client-cert thumbprint to fabric settings -> self-grant data-plane
admin; enable ManagedIdentityTokenService; add node types.
false_positive_note: clusters/write changes cluster config but does not itself run code; the escalation
is realized only by then using the added admin client cert on the data plane (see azure-sf-admin-client-provision).
narrative: '{principal.name} can rewrite cluster config on {target.name} (clusters/write), e.g. adding
an admin client-cert thumbprint to grant itself data-plane admin.'