How do we…
How do we assess the security of a GenAI feature we are building ourselves?
Add to board memoOpen the memo
The short answer
- Recommendation
- Assume the model will be fooled and assess the system around it. After the AI intake, draw the data flow, count the three risky properties, set a review depth, check the standard and the deployment checklist, test at that depth, and hand counts of checks verified and findings open to the release decision.
- Reasoning
- An LLM application puts instructions and data in one channel, so the model reads an attacker's words as it reads yours. A sentence in a prompt is not a control. The defence lies in what the model may read, where its output may go, what it may do and who approves it. The rule of two counts three properties: it reads untrusted content, reaches sensitive data, and can act or send outside (GS-24). With all three, a person approves every action and an independent tester tests it. The count raises the depth; it is never a score.
- Considerations
- Building a feature on a supplier's model API counts as building. A new feature is Tier 3 and held until Legal records your role; a deployer role sets the tier again, and a provider or other role keeps it at Tier 3 and Depth 3.
- No feature releases a payment or changes supplier bank details, and a breach of the AI data rule or the prohibited-practice rule takes no exception (GS-27).
- The depths, fix days and gates are the pack's defaults: fixes due within 30 days for Critical, 90 for High, 180 for Medium and 365 for Low. Your own standard may set different ones.
- A clean test shows what the testers tried and says nothing about what they did not.
The decision, step by step
Select any step for the reasoning behind it and where the pack covers it.
- Start
- Step
- Decision
- Outcome
- Loop back
Keyboard: Tab to a step, arrow keys move along the flow, Enter pins its explanation, + and − zoom, 0 fits the diagram, Esc closes. The text version below has the same content.
Where a step quotes a number, it is the default in the CISO Times pack. Your own standard may set a different one.
Read as text
The same flow written out: each step, its reasoning and where the pack covers it. 21 steps.
Start
A team is building a feature on a large language model
An LLM application puts instructions and data in one channel, so the model reads your instructions and an attacker's words as the same kind of thing. The national cyber centres and OWASP both say the defence lies in the system around the model, because the model will sometimes be fooled. The assessment therefore asks what the model may read, where its output may go, what it may do and who approves it. What you already do for access, logging and secure development still applies.
In the pack
- P25-A01 P25-A01
- P25-A02 Generative AI Security StandardHow this standard works
Decision
What did the P24 intake decide for this use?
The intake comes first, because which AI may be used, with which data and who approves it are P24's rules. Building an application or feature on a supplier's model API counts as building, whether it is for staff or for customers, so the answer to the building question is Yes for the feature this flow assesses. A new feature is then set at Tier 3 and held until Legal records which role the organisation holds; a feature already running carries the hold as a condition with a date. That is a signal, not a finding that you are a provider, and Legal decides. With no decision yet, take the second branch.
- Stop: Stop: no review starts
- A hold is open, or no decision yet: Finish the intake and clear the hold first
- A tier is set and no hold applies: Describe the feature and draw its data flow
In the pack
- P24-A03 AI Use Case Intake & Approval ProcedureStage 1 (IS-1): Propose (rule IQ-12)
- P24-A03 AI Use Case Intake & Approval ProcedureThe tiers
- P25-A03 LLM Application Security Review ProcedureScope
Outcome
Stop: no review starts
A prohibited practice, or special category personal data in the use, stops it at the intake. There is no route to approval, so the review does not start, and a changed use is a new request. Tell Legal for a prohibited practice and the Data Protection Officer for special category data.
In the pack
- P24-A03 AI Use Case Intake & Approval ProcedureStop
- P25-A03 LLM Application Security Review ProcedureWhat sets the depth
Outcome
Finish the intake and clear the hold first
A hold stops the start. The provider signal, where the organisation would build on a supplier's model API, brand, supply or change the purpose of the system, holds a new use until Legal records which role the organisation holds (deployer, provider or other). If Legal records the deployer role, the tier is set again from the answers, so the use does not stay at Tier 3 only because the signal was raised. If Legal records the provider or another role, the hold clears but the use stays Tier 3. A running use carries it as a dated condition. The review follows the intake decision. The role is for counsel.
In the pack
- P24-A03 AI Use Case Intake & Approval ProcedureHolds and conditions
- P24-A03 AI Use Case Intake & Approval ProcedureThe order of the screen
Step
Describe the feature and draw its data flow
On one page, show every source the model reads (user input, files, web pages, email, tool results, retrieved text, memory) and every place its output goes (screens, files, databases, links, tools). Mark each source trusted or untrusted: anything from outside the organisation, or from anyone who can submit text, is untrusted. Record the model name and version, the system prompt version and the tools. The feature goes on the P24 inventory with a named owner.
In the pack
- P25-A03 LLM Application Security Review ProcedureStage 1 (RP-1): Describe
- P25-A02 Generative AI Security StandardDesign (rule GS-03)
Decision
How many of the three risky properties does it have?
Count three properties: it reads untrusted content, it can reach data above Public or personal data, and it can change state or communicate outside the organisation, which includes acting without a person reading its output. The count raises the depth. It is never a score. If the owner cannot say whether a property holds, treat it as true until the data flow shows otherwise.
- All three, or not known: Depth 3: independent test, and a person approves every action
- Two of three: Depth 2 at least: write down the residual risk in plain words
- One or none: Set the depth and select the threats from the catalogue
In the pack
- P25-A03 LLM Application Security Review ProcedureThe rule of two (rule GS-24)
- P25-A02 Generative AI Security StandardAgents and tools (rule GS-24)
Step
Depth 3: independent test, and a person approves every action
With all three properties the review is at Depth 3. An independent tester, who did not build the feature, tests every selected attack class under a written plan. A person approves every action the feature takes. Approvers follow the higher of the P24 tier and the depth, so a Tier 2 use reviewed at Depth 3 is signed as Tier 3.
In the pack
- P25-A03 LLM Application Security Review ProcedureThe rule of two (rule GS-24)
- P25-A03 LLM Application Security Review ProcedureWho signs
Step
Depth 2 at least: write down the residual risk in plain words
With two properties the review is at least Depth 2. It records in plain words what risk remains and who accepts it, and the approvers read it. A feature with two properties is not half as risky as one with three. It is a feature where the review has to say what remains.
In the pack
- P25-A03 LLM Application Security Review ProcedureThe rule of two (rule GS-24)
- P25-A02 Generative AI Security StandardThe review depth
Step
Set the depth and select the threats from the catalogue
The Head of Information Security sets the depth: the highest that the P24 tier and the feature give. Retrieving company content above Public, having tools and keeping memory each make it at least Depth 2. Then mark each of the twelve threats selected or left out, with a written reason for every one left out. 'Low risk' is not a reason.
In the pack
- P25-A03 LLM Application Security Review ProcedureWhat sets the depth
- P25-A03 LLM Application Security Review ProcedureStage 2 (RP-2): Select threats
- P25-A04 LLM Application Threat CatalogueThreat Catalogue
Step
Design for a fooled model, then check the standard
Design on the assumption that the model will be fooled: a sentence in a prompt is not a control. Keep untrusted content apart from instructions, check output in code, send only the data the task needs and keep secrets out of prompts. The developer then marks each of the thirty-one requirements met, not met or not applicable, with evidence, and completes the deployment checklist with the IT owner. Seven of its 30 checks apply only to a feature you host or build.
In the pack
- P25-A02 Generative AI Security StandardDesign (rule GS-02)
- P25-A02 Generative AI Security StandardInput handling (rule GS-04)
- P25-A02 Generative AI Security StandardOutput handling (rule GS-06)
- P25-A02 Generative AI Security StandardSecrets (rule GS-10)
- P25-A05 Generative AI Deployment Configuration ChecklistChecklist
Decision
Does the model call tools, or send anything outside?
A feature in which the model chooses which tools to call is an agent, and P24 treats a system that can act as Tier 3 until assessed. A fooled model with a mailbox can do whatever the mailbox can do. If you are not sure what a connector can do, answer yes.
- Yes, or not known: Review the agent's tools, identity and approvals
- No: Does it retrieve company content or keep memory?
In the pack
- P25-A02 Generative AI Security StandardAgents and tools (rule GS-22)
- P24-A03 AI Use Case Intake & Approval ProcedureThe tiers (rule AG-16)
Step
Review the agent's tools, identity and approvals
Give the model only the tools the task needs, each doing one job with strict input. Each tool acts as the signed-in person or a named service identity with least access, and code checks the person's permission on every call. A person approves, seeing the exact action, before anything irreversible, anything that leaves the organisation, changes access, spends money, runs code outside a sandbox or affects a person. A feature never releases a payment or changes supplier bank details. Test the switch-off.
In the pack
- P25-A09 AI Agent Permission & Tool-Access Review ChecklistApproval Rules
- P25-A09 AI Agent Permission & Tool-Access Review ChecklistChecklist
- P25-A02 Generative AI Security StandardHuman approval (rule GS-25)
Decision
Does it retrieve company content or keep memory?
Retrieval adds company documents to the prompt, and memory carries content between sessions. Both are places where an attacker's text, or someone else's data, can wait. Content from outside, and from anyone who can submit text, stays untrusted whichever system holds it. If you are not sure whether an index or cache is in use, answer yes.
- Yes, or not known: Control who can add to a store and who can read from it
- No: Does any model or component come from outside the organisation?
In the pack
- P25-A02 Generative AI Security StandardKnowledge stores (rule GS-12)
- P25-A04 LLM Application Threat CatalogueThreat Catalogue (rule LT-10)
Step
Control who can add to a store and who can read from it
Retrieval returns only what the signed-in person may already read, checked in the index query or source system with that person's identity. Asking the model to hold something back is not a check. Every store has an owner, a source list, a data level and a way to remove a document and everything derived from it. Content enters only from named sources, with a record of who added it. Memory writes are logged and the person can clear them.
In the pack
- P25-A02 Generative AI Security StandardData exposure (rule GS-09)
- P25-A02 Generative AI Security StandardKnowledge stores (rule GS-13)
- P25-A09 AI Agent Permission & Tool-Access Review ChecklistChecklist (rule AP-14)
Decision
Does any model or component come from outside the organisation?
Most features call a provider's model or take a model, adapter or library from a public source. A tampered or silently changed model changes every answer. A public model or adapter is used only after its publisher, source and file hash are checked and it loads in a form that does not run code. Answer yes if any part comes from outside.
- Yes, or not known: Send the questionnaire, pin versions, plan for model changes
- No, all of it is our own: Test at the depth, including the content the feature reads
In the pack
- P25-A02 Generative AI Security StandardModel and provider (rule GS-15)
- P25-A04 LLM Application Threat CatalogueThreat Catalogue (rule LT-05)
Step
Send the questionnaire, pin versions, plan for model changes
Procurement sends the AI vendor questionnaire and Security reviews the answers. They inform the supplier decision under the third-party pack and do not replace it. Record the model name and version. Keep a list of models, adapters, libraries, tools and connectors with versions, pinned and approved before use. A change of model is a trigger for review, so know the provider's route for notice of changes (the pack's supplier term ST-7).
In the pack
- P25-A03 LLM Application Security Review ProcedureStage 4 (RP-4): Assess the provider
- P25-A06 AI Vendor & Model Provider Security QuestionnaireQuestionnaire
- P25-A02 Generative AI Security StandardChange control (rule GS-18)
Step
Test at the depth, including the content the feature reads
At Depth 1 the configuration checks are the test. At Depth 2 the team runs the tests for each selected attack class and writes down what it tried. At Depth 3 an independent tester runs them under a written plan, approved before anything is sent. Test what the feature reads (a document, an email, a tool result) as well as what users type. A clean result shows what the testers tried and says nothing about what they did not.
In the pack
- P25-A03 LLM Application Security Review ProcedureStage 5 (RP-5): Test
- P25-A07 AI Red Team Test Plan TemplateSafety and data handling rules
- P25-A07 AI Red Team Test Plan TemplateAttack classes
Decision
Did the checks or tests find a gap?
A finding is a confirmed gap between the feature and the standard, found in a review, a check, a test or an incident. Two gaps take no exception: a feature that can release a payment or change supplier bank details, and a breach of P24's data rule or prohibited-practice rule. If a test or check is unfinished, go back and finish it before you answer. A gap that is open under an approved exception does not stop the hand-over, and the approvers see it.
- Yes, and a fix or an exception is possible: Rate it, give it an owner and a due date, and fix it
- Yes, and it takes no exception: Stop: no exception is possible, so remove the path or the breach
- A test or check is unfinished: Test at the depth, including the content the feature reads (back to an earlier step)
- No, or each open one has an approved exception: Take the evidence to the release decision
In the pack
- P25-A03 LLM Application Security Review ProcedureWhat takes no exception
- P25-A03 LLM Application Security Review ProcedureFindings and exceptions
Step
Rate it, give it an owner and a due date, and fix it
Rate the finding on impact and likelihood, each 1 to 4, on your risk scales. The band is its severity. The due date counts from the day it is confirmed. The pack's defaults are 30 days for Critical, 90 for High, 180 for Medium and 365 for Low. It has a named owner and goes in your findings register. After the fix, test the attack class again. If the fix cannot be made by the due date, the owner asks for an exception before it: the approver its band sets decides, a Critical one goes to the board or its equivalent, and the owner is never among the approvers. Then answer the previous question again.
- Then: Did the checks or tests find a gap? (back to an earlier step)
In the pack
- P25-A03 LLM Application Security Review ProcedureRating a finding
- P25-A03 LLM Application Security Review ProcedureWhat each severity needs
- P25-A08 AI Security Findings & Exceptions RegisterFindings
Outcome
Stop: no exception is possible, so remove the path or the breach
A feature never releases a payment or changes supplier bank details, by any tool or path, and this takes no exception. Nor does a breach of P24's data rule or prohibited-practice rule. The fix is to change the feature or the use. A feature may draft a payment request that a named person then makes through the normal approval.
In the pack
- P25-A03 LLM Application Security Review ProcedureWhat takes no exception
- P24-A03 AI Use Case Intake & Approval ProcedureStop
Outcome
Take the evidence to the release decision
The assessment ends with a file: the data flow, threat selection, standard check, checklist result, test results, findings and the provider's answers. Hand it to the AI governance lead, who convenes the decision. The approvers decide Release, Release with conditions or Hold against seven gates. Report the file as counts of checks verified and findings open, never as one score.
In the pack
- P25-A03 LLM Application Security Review ProcedureEvidence the review holds
- P25-A03 LLM Application Security Review ProcedureThe release gates
Practical checklist
- Finish the AI intake and clear any hold before the review starts.
- Draw the data flow: every source the model reads, marked trusted or untrusted, and every place its output goes.
- Count the three risky properties, treating an unknown one as true, and set the depth.
- Select threats from the catalogue, with a written reason for each one left out.
- Check each standard requirement and the deployment checklist with evidence.
- Review tools, identities and approvals, knowledge stores and outside models or components where the feature has them.
- Test at the depth, including the content the feature reads as well as what users type.
- Rate each finding, give it an owner and a due date, retest after the fix, then hand the file to the release decision.
Evidence to have ready
- The data flow, the model and system prompt versions, and the threat selection with reasons.
- The standard check and the deployment checklist, each item marked with its evidence.
- The test plan and results, naming the attack classes tried and who tested.
- The findings register with severity, owner, due date and any approved exception.
- The provider's questionnaire answers and the supplier decision, and the release approval record.
Assumptions
- The use is on your P24 inventory, or going on it, with a named owner. Which AI may be used, with which data, and who approves it are P24's rules.
- You build or configure the feature on a model you call or host. You do not need to train a model.
- The depths, days and gates shown are the pack's defaults, and your own standard may set different ones.
- OWASP and MITRE ATLAS are community sources, cited as they state them. They are not law, and the pack does not map them to the EU AI Act or the GDPR.
Not covered here
- Whether the use may go ahead at all, with which data, and who approves it. That is “How do we decide whether a proposed AI use case can go ahead?”.
- Whether the EU AI Act makes you a provider or a deployer. That is “Does the EU AI Act apply to our use of AI, and are we a provider or a deployer?”.
- How the release decision is run and signed. That is “How do we review an LLM feature or an AI agent for security before it goes live?”.
- What to do when the feature leaks data or is manipulated into a harmful action. That is “If an LLM application leaks data or is manipulated into a harmful action, then what do we do?”.
Related questions
- How do we decide whether a proposed AI use case can go ahead?
- Does the EU AI Act apply to our use of AI, and are we a provider or a deployer?
- How do we review an LLM feature or an AI agent for security before it goes live?
- How do we defend an LLM application against prompt injection?
- How do we test an LLM application the way an attacker would?