Most non-human identity breaches start through doors that were already known to be open: a key in code, an unowned OAuth grant, an agent with production write access, a password-only login to a data platform. NHI Mgmt Group, The State of NHI & AI Agent Breach Report 2026 (October 2026) analysed more than 200 breaches and ends with a ten-action plan: five actions for the first 30 days to close the open doors and five for the next 90 days to make it hard to happen again. This template turns that plan into a fill-in document with an owner, a completion test, evidence and a due date for every action, plus the breach that shows why it matters. It is for security, platform and IAM leads who need a short, defensible plan after a breach in their sector, an audit finding or a board question. If you are starting an NHI programme from nothing, use it alongside the NHI 30/60/90 day plan template for a new programme, which covers mandate and governance.
How to use this template
- Replace every value in square brackets: [Organisation], [Plan owner], [Sponsor], [date], [team], [system].
- Keep the ten actions: they come from the report's plan. You may split an action into sub-tasks but do not drop one without recording an exception in section 7.
- Name a person, not a team, as owner: the owner is accountable for the completion test, even when another team does the work.
- Evidence is what you would show an auditor: a report export, a configuration screenshot, a closed ticket set, a signed exception. If you cannot name it, the action is not specific enough.
- All numbers in this template are illustrative placeholders: counts, targets and dates must come from your own baseline. The only figures quoted from the report are attributed to it.
- Review weekly: update status in sections 4 and 5 every week and report to the sponsor at day 30 and day 120.
1. Purpose and scope
| Item | Entry |
| Organisation | [Organisation] |
| Plan owner | [Name, role] |
| Sponsor | [CISO, CIO or CTO] |
| Start date (day 0) | [date] |
| Trigger | [Sector breach; audit finding; leaked key incident; AI agent rollout; board request] |
| Environments in scope | [Cloud accounts, source control organisations, CI/CD platforms, SaaS tenants, data platforms, AI provider accounts] |
| Out of scope this cycle | [e.g. OT, mainframe] with reason |
| Identities in scope | Secrets and passwords, API keys, cloud credentials, source control tokens, CI/CD and publishing tokens, OAuth tokens and grants, service accounts, signing keys and certificates, AI agents and MCP servers |
The identity list mirrors the identity types the report classifies. Its finding that 44% of the breaches it analysed (99) began with a leaked, stolen or weak credential is the reason the first 30 days focus on credentials already exposed.
2. Roles and sign-off
| Role | Name | Responsibility |
| Sponsor | [Name] | Approves the plan, accepts exceptions, receives day-30 and day-120 reports |
| Plan owner | [Name] | Runs the weekly review, keeps the evidence register, escalates blockers |
| Source control and CI/CD owner | [Name] | Actions 30.1, 90.1, 90.2 |
| SaaS and identity owner | [Name] | Actions 30.2, 30.4 |
| AI platform owner | [Name] | Actions 30.3, 30.5, 90.4 |
| Cloud platform owner | [Name] | Actions 90.1, 90.2 |
| Detection and response lead | [Name] | Action 90.3 |
| Third-party risk lead | [Name] | Action 90.5 |
3. Baseline
Record the starting position on day 0. The values below are illustrative examples of the format, not benchmarks.
| Measure | Day 0 value | Source of the number |
| Live secrets found in code, CI logs, images, tickets and chat | [e.g. 140, illustrative] | [Scanner name and scan date] |
| Third-party OAuth grants and SaaS integrations | [count] | [Admin console exports] |
| Grants with no named owner | [count] | [Same export, owner field] |
| AI agents, MCP servers and AI API keys known | [count] | [Inventory source] |
| Human logins to data platforms, CI/CD and cloud consoles without MFA | [count] | [IdP and platform reports] |
| AI agents with standing production write access | [count] | [Role review] |
| Long-lived keys used by workloads and CI | [count] | [Cloud IAM credential reports, CI secret stores] |
4. First 30 days: close the open doors
| ID | Action (from the report) | Owner | Completion test | Evidence | Due | Status |
| 30.1 | Scan code, CI logs, container images, tickets and chat for secrets. Revoke and rotate anything live. | [Name] | Every live finding revoked at its issuer or recorded as an exception | Scanner report; revocation tickets | [day 0 + 21] | [ ] |
| 30.2 | List every third-party OAuth grant and SaaS integration. Revoke what is unused, unowned or over-scoped. | [Name] | Every remaining grant has an owner, a purpose and reviewed scopes | Grant register; revocation log | [day 0 + 30] | [ ] |
| 30.3 | Find every AI agent, MCP server and AI API key, and give each an owner. | [Name] | Inventory complete; unowned items revoked or disabled | AI inventory export | [day 0 + 30] | [ ] |
| 30.4 | Enforce MFA on human logins to data platforms, CI/CD and cloud consoles, contractors included. | [Name] | Policy enforced; no password-only human logins in scope | Conditional access or platform policy export; sign-in report | [day 0 + 30] | [ ] |
| 30.5 | Remove standing production write access from coding and other AI agents. | [Name] | Agents hold read-only or no production access; writes need approval | Role assignment export before and after | [day 0 + 30] | [ ] |
Why each action, and what good looks like
- 30.1 Secrets: the xAI API key leak stayed live for about 59 days after automated scanning emailed the developer. Route findings to an owned queue and revoke at the issuer; deleting the file is not revocation. Rotate what appears in tickets too: after the Salesloft Drift breach, Cloudflare rotated 104 API tokens found in its support cases. See the Developer Secret Scanning Triage guide.
- 30.2 OAuth and SaaS: in the Salesloft Drift case one vendor's stored tokens reached Salesforce data across many tenants. For each grant record owner, scopes, last use and expiry. See the SaaS and OAuth App Governance Guide.
- 30.3 AI inventory: the Moltbook database exposure leaked about 1.5 million agent API keys, and the OpenCode Console breach showed that keys held by tools must be revoked at the provider. Include keys entered into IDE plugins, gateways and hosted tools. See the LLMjacking Guide.
- 30.4 MFA: the Snowflake customer breaches used infostealer credentials on password-only accounts, some unrotated for years, with no network allow-lists. Prefer phishing-resistant methods for admins; see the Phishing-Resistant MFA Guide.
- 30.5 Agent production access: in the Replit AI agent database deletion the code freeze was only a chat instruction, and the agent had direct production write access. Enforce it in permissions, not prompts.
5. Next 90 days: make it hard to happen again
| ID | Action (from the report) | Owner | Completion test | Evidence | Due | Status |
| 90.1 | Replace long-lived keys with short-lived, scoped credentials: workload identity, OIDC, trusted publishing. | [Name] | [Target share, e.g. all CI-to-cloud and package publishing paths] use federated or short-lived credentials | Pipeline configuration; disabled key list | [day 30 + 90] | [ ] |
| 90.2 | Scope every workload and CI credential to one system and one environment; block instance metadata. | [Name] | No credential spans production and non-production; metadata access restricted | IAM policy review; metadata settings export | [day 30 + 90] | [ ] |
| 90.3 | Baseline normal NHI behaviour; revoke or rotate automatically when a secret leaks. | [Name] | Baselines live for priority NHIs; automated revocation tested end to end | Detection rules; test run record | [day 30 + 90] | [ ] |
| 90.4 | Put agent guardrails in place: tool allow-lists, approval for risky actions, a tested kill switch. | [Name] | Every production agent has an allow-list, approval gates and a kill switch tested in the last [n] days | Agent configuration; kill switch test log | [day 30 + 90] | [ ] |
| 90.5 | Treat vendors with privileged or remote access as tier-zero suppliers, and check how fast they can revoke keys. | [Name] | Tier-zero vendor list approved; each has a stated revocation time and contact | Vendor register; questionnaire responses | [day 30 + 90] | [ ] |
Why each action, and what good looks like
6. Evidence register
| Action ID | Evidence item | Location | Date captured | Reviewed by |
| [30.1] | [Scanner export, revocation ticket set] | [Repository or GRC tool link] | [date] | [Name] |
| [30.4] | [Policy export, sign-in report filtered to password-only] | [link] | [date] | [Name] |
| [90.4] | [Kill switch test log with timestamps] | [link] | [date] | [Name] |
Keep evidence for at least [retention period] so the next review can compare against it.
7. Exceptions, risks and dependencies
| Item | Type | Impact if not resolved | Compensating control | Approver | Expiry |
| [Legacy system that cannot take MFA] | Exception | [Password-only access remains] | [Network allow-list, credential rotation every n days] | [Sponsor] | [date] |
| [CI platform does not support OIDC] | Dependency | [Long-lived key remains] | [Scoped key, short rotation, alerting] | [Sponsor] | [date] |
| [Vendor will not state revocation time] | Risk | [Unknown exposure window] | [Contract clause, reduced access] | [Sponsor] | [date] |
Every exception has an expiry date. An exception without one is a decision not to fix.
8. Metrics and reporting
| Metric | Day 0 | Day 30 target | Day 120 target |
| Live secrets outstanding from the baseline scan | [value] | [e.g. 0, illustrative] | 0 |
| OAuth grants and integrations without an owner | [value] | 0 | 0 |
| AI agents, MCP servers and AI keys without an owner | [value] | 0 | 0 |
| Password-only human logins to in-scope platforms | [value] | 0 or excepted | 0 |
| Median time from leaked secret detection to revocation | [value] | [target] | [target, automated] |
| Share of CI and workload paths on short-lived credentials | [value] | [value] | [target] |
| Tier-zero vendors with a confirmed revocation time | [value] | [value] | 100% |
Day-30 and day-120 reports to the sponsor contain: actions complete with evidence links, actions late with reason and new date, open exceptions, and the metric table above.
9. Approval
| Role | Name | Signature or approval reference | Date |
| Sponsor | [Name] | [ref] | [date] |
| Plan owner | [Name] | [ref] | [date] |
Implementation guidance
- Start with the scan, not the inventory debate: action 30.1 produces findings that make every other action easier to fund. Run it in week one even if the scanner is basic.
- Rotate safely: create the replacement credential, update consumers, confirm traffic on the new credential, then revoke the old one at the issuer. Keep a rollback path for the first hours, and record each rotation as evidence.
- Pilot before enforcing: roll MFA (30.4) and agent permission changes (30.5) out to one team or platform first, in report-only mode where the platform offers it, then enforce.
- Use the report's route-to-control mapping to prioritise: the report's table of what would have stopped the breaches puts supply chain (51 breaches), leaked secrets (48) and stolen credentials (47) at the top. Actions 90.1, 30.1 and 90.3 carry their controls, so protect those first if time runs short.
- Small organisations: one person may own several actions. Keep the ten actions but shrink scope to the systems that hold customer data or ship code.
- Large organisations: run actions 30.1 to 30.5 per business unit with a central plan owner, and report one combined metric table.
- Map to frameworks for audit: NIST CSF 2.0 PR.AA-01 (credentials managed), GV.SC-07 (supplier risk), RS.MI-02 (incidents eradicated); NIST SP 800-53 Rev. 5 IA-5, AC-2, AC-6, CM-8 and SR-6.
Standards and references
Related NHI Mgmt Group resources: NHI 30/60/90 day plan template for a new programme · NHI Programme Roadmap · LLMjacking Response Playbook · Non-Human Identity (NHI) Guide
NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 28 October 2026. Spotted an error? Use our
contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security.
nhimg.org