skip to content

You reset a compromised cloud admin, yet privileged API calls continue — what do you hunt in control-plane audit?

level: seniorimportance: nice to knowfreq 36%

answer

  1. the reset closed one path, not all of them
  2. hunt creates, not the person
  3. bound to the compromise window
  4. a credential added to an app already trusted
  5. compare credential creation timestamps

basics

~20 s

Hunt every identity-creating and credential-adding event made inside the compromise window: new access keys, secrets or certificates added to an existing application or service principal, new service accounts, and roles newly trusted by an outside party.

solid answer

~40 s

A password reset revokes a human authentication path; it does not touch a credential the intruder created for a workload identity. So hunt the control plane's create events, bounded by the window from first confirmed compromise to reset: access keys issued, client secrets or certificates added to an existing application registration, service-account keys generated, new trust relationships letting an external principal assume a role, and privileges attached to any of those. The continuing activity does not look like the intruder because every entry now names the application or service account — a legitimate non-human identity, often signing in non-interactively where conditional access and MFA never apply. Shift from hunting the person to the credential's birth certificate: enumerate credentials on privileged workload identities and compare creation timestamps against the window.

go deeper

for a junior

Know that a password reset addresses one authentication path, and that keys, certificates and application secrets are separate credentials that survive it.

for a middle

Be able to list the control-plane event families that create persistence — key creation, secrets added to an application, new service accounts, widened trust — and explain why later use appears as the application.

for a senior

Demonstrate the pivot from hunting the person to enumerating credentials by creation timestamp against the compromise window, and separate containment from eradication with a re-entry watch afterwards.

for a principal

Own the standing controls: ownership and expiry for every workload credential, restricting who can add one to a privileged application, and audit retention long enough to reach a create event found months later.

## Why the reset did not work Containment on a compromised administrator usually means: reset the password, revoke active sessions, re-enrol the second factor. That closes the interactive path. It does not close anything the intruder created *with* that account while they held it — and control-plane persistence is exactly that: an identity or credential added through the API that lives entirely independently of the human account it was created from. It is worth being precise about what a reset does and does not reach in general. Resetting a password does not by itself invalidate an already-issued refresh token, a Kerberos ticket, or an OAuth consent grant to an application, and it certainly does not invalidate a separately created key or certificate. Each of those is a distinct revocation action. ## The event families to hunt Bound the search to the window from **first confirmed compromise to the reset** — not from the alert, which is usually later — and search the control-plane audit records for creation and credential events performed by the compromised identity, or by anything it created: | Family | What it looks like | | --- | --- | | Long-lived key issued | an access key created for a user or a key generated for a service account | | Credential added to an existing app | a client secret or certificate added to an application or service principal that already existed and is already trusted | | New workload identity | a service account, managed identity or application registration created | | Trust widened | a role's trust policy edited to allow an external account or federated principal to assume it | | Privilege attached | a policy, app role or directory role granted to any of the above | | Consent granted | an application granted broad delegated or application permissions across the tenant | The second row is the nasty one. Creating a new application is conspicuous. Adding one more certificate to an application that fifty services already depend on is a single small update event in a stream of legitimate configuration churn, and after it, the intruder authenticates as an application the organisation itself trusts. ## Why the follow-on activity is invisible to human-focused hunting Once the credential is in use, every audit entry names the workload identity. There is no anomalous person, no impossible geography to reason about, no interactive login to challenge. Non-interactive workload sign-ins are commonly a separate log category from user sign-ins, and the policy controls that gate humans — conditional access, step-up MFA, device compliance — frequently do not apply to them at all. A hunt framed as "what did the compromised user do after the reset" returns nothing, and the SOC concludes containment worked. The pivot that works is to stop hunting the person and hunt the **credential's birth certificate**: enumerate the credentials attached to every privileged workload identity, read their creation timestamps, and treat any credential created inside the compromise window as attacker-controlled until an owner proves otherwise. Most estates have never done this enumeration once, and the exercise finds forgotten legitimate keys as well. ## Ephemerality raises the stakes The host or pipeline the intruder worked from may be long gone. If the credential creation happened from a build agent that was destroyed, or a session inside a container that has restarted, the control-plane record of the create event is the only surviving account of it. That is also the reason the control-plane trail deserves longer retention than most other sources: this class of persistence is routinely discovered weeks after the create event, and a thirty-day window will simply not contain it. ## Eradication, not just containment Removing these is a different action from the reset: - Delete the credential itself — the key, the secret, the certificate — rather than disabling the identity that created it. - Roll back the widened trust relationship and revoke the consent grant. - Revoke outstanding tokens issued to those identities, since deleting a credential does not always expire tokens already minted from it. - Then **watch for re-entry**: build a detection on credential-addition events against privileged workload identities and on first-seen source addresses for those identities, and keep it running past the incident. The eradication claim is only defensible once a period has passed with that watch in place and silent. ## The interview point The strong answer separates the two phases explicitly: the reset was **containment** of one authentication path, and eradication means finding every identity and credential created during attacker control. The weak answer treats the reset as the end of the incident and then explains the continuing activity as a false positive, because the actor now looks like an ordinary application doing ordinary things.

  • Why does adding a credential to an existing application beat creating a new one, from the intruder's view?
    Because the application is already trusted and already busy. Its permissions were granted long ago and reviewed by nobody recently, its activity is expected around the clock, and the addition itself is one small configuration event among many. A newly created application, by contrast, is a first-seen identity that anomaly detection and periodic reviews are far more likely to surface.
  • You delete the attacker-added secret. Is the identity contained?
    Not necessarily. Tokens already issued from that credential may remain valid until they expire, so revoke outstanding tokens for the identity as a separate step. Check for other credentials on the same identity, and roll back any trust or consent changes made in the window. Then keep a detection on credential additions to that identity running, so re-entry is visible.
  • How would you have detected this at the time it was created?
    By alerting on credential and identity creation events against privileged workload identities in the control plane — key creation, secret or certificate addition, trust-policy edits granting external principals access. These are rare, high-consequence and performed by a small set of legitimate owners, which makes the precision achievable without drowning the queue.

You changed the locks after a burglary, but while they were inside the intruder had a spare key cut for the tradesman's lockbox. Every later entry is logged as the tradesman, and the tradesman is supposed to have a key.

saying these in an interview costs you the question

  • Assuming a password reset revokes every credential the account created
  • Hunting only the compromised username after containment
  • Ignoring credentials added to already-trusted applications
  • Confusing containment of one path with eradication
  • Expecting workload sign-ins to be gated by conditional access or MFA

context