azure-appsvc-publish-deploy
match (effective permission)
{
"action": "Microsoft.Web/sites/publish/action",
"scope_type": "resource|resourceGroup|subscription"
}
emit
| source type | Identity |
|---|---|
| source | <principal> |
| target | <Microsoft.Web/sites> |
| permissions | Microsoft.Web/sites/publish/action |
| conditions | service_state |
Narrative
{principal.name} can deploy attacker code to {target.name} (Microsoft.Web/sites/publish/action).
Raw rule rules/derived/azure/appservice.yaml
id: azure-appsvc-publish-deploy
emits: CanModifyCode
match_effective_permission:
action: Microsoft.Web/sites/publish/action
scope_type: resource|resourceGroup|subscription
emit:
source_type: Identity
source: <principal>
target: <Microsoft.Web/sites>
permissions:
- Microsoft.Web/sites/publish/action
conditions:
- service_state
escalation: ZipDeploy / package publish attacker application code into the app worker.
false_positive_note: Deployed code runs when the app worker is running; on a stopped app emit CONDITIONAL(service_state)
and pair with azure-appsvc-start. No app credential is required.
narrative: '{principal.name} can deploy attacker code to {target.name} (Microsoft.Web/sites/publish/action).'