azure-aci-logs-secret

derived azure emits ExposesCredential

match (effective permission)

{ "action": "Microsoft.ContainerInstance/containerGroups/containers/logs/read", "scope_type": "resource|resourceGroup|subscription" }

emit

target typeCredential
source<containerGroup>
target<Credential>
permissionsMicrosoft.ContainerInstance/containerGroups/containers/logs/read

Narrative

{principal.name} can read container logs of {group.name} (logs/read), which may leak secrets printed by the workload.

Raw rule rules/derived/azure/aci.yaml

id: azure-aci-logs-secret
emits: ExposesCredential
match_effective_permission:
  action: Microsoft.ContainerInstance/containerGroups/containers/logs/read
  scope_type: resource|resourceGroup|subscription
optional_permission: Microsoft.ContainerInstance/containerGroups/containers/attach/action
emit:
  target_type: Credential
  source: <containerGroup>
  target: <Credential>
  permissions:
  - Microsoft.ContainerInstance/containerGroups/containers/logs/read
  note: Secrets printed to stdout/stderr by the workload are readable via logs/read or the attach output
    stream.
  false_positive_note: Only a real exposure if the workload actually emits credentials to stdout; mark
    POTENTIAL when unverified. Not an execution primitive on its own.
  narrative: '{principal.name} can read container logs of {group.name} (logs/read), which may leak secrets
    printed by the workload.'
move · open · esc close