gcp-kms-escalate-via-sign

Forging a signature as a key that anchors a more-privileged identity is escalation.

derived gcp emits CanEscalateTo

match

A conjunctive graph pattern. Variables (?x) bind node ids; every clause must hold.

{'principal': None} CanImpersonate {'identity': None}

where

the CanImpersonate derives from gcp-kms-sign-forge-identity (signing-key trust anchor) ?identity.privilege_level > ?principal.privilege_level

emit

source typeIdentity
target typeIdentity
source<principal>
target<anchored identity>
permissionscloudkms.cryptoKeyVersions.useToSign
conditionsiam_permission resource_policy key_permission trust_relationship
state logicInherits the CanImpersonate state (ACTIVE only with confirmed trust-anchor evidence; else POTENTIAL).

Narrative

{principal.name} can escalate to {identity.name} by forging a signature with {key.name}, whose public key {identity.name} is trusted to sign with.

Raw rule rules/derived/gcp/kms.yaml

id: gcp-kms-escalate-via-sign
emits: CanEscalateTo
description: Forging a signature as a key that anchors a more-privileged identity is escalation.
match:
- - principal: null
  - CanImpersonate
  - identity: null
where:
- the CanImpersonate derives from gcp-kms-sign-forge-identity (signing-key trust anchor)
- ?identity.privilege_level > ?principal.privilege_level
emit:
  source_type: Identity
  target_type: Identity
  source: <principal>
  target: <anchored identity>
  permissions:
  - cloudkms.cryptoKeyVersions.useToSign
  conditions:
  - iam_permission
  - resource_policy
  - key_permission
  - trust_relationship
  state_logic: Inherits the CanImpersonate state (ACTIVE only with confirmed trust-anchor evidence; else
    POTENTIAL).
  confidence: min(contributing_confidences) * 0.9
  derived_from:
  - <CanImpersonate edge_id>
  false_positive_note: "Only when the anchored identity is strictly more privileged than the caller. Same/lower-privilege\
    \ is lateral, not escalation. Inherits the trust-anchor confidence \u2014 an unconfirmed anchor stays\
    \ POTENTIAL."
  narrative: '{principal.name} can escalate to {identity.name} by forging a signature with {key.name},
    whose public key {identity.name} is trusted to sign with.'
move · open · esc close