azure-sf-cluster-write-config

derived azure emits CanModifyConfiguration

match (effective permission)

{ "action": "Microsoft.ServiceFabric/managedclusters/write", "scope_type": "resource|resourceGroup|subscription" }

emit

source typeIdentity
target type*
source<principal>
target<serviceFabric cluster>
permissionsMicrosoft.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.'
move · open · esc close