LLM guardrails mapped to the OWASP Top 10 for LLM Applications

Runtime guardrails reduce some OWASP LLM Top 10 2025 risks and cannot address others. This page maps each risk to guards, owned controls and tests you can run on self-hosted infrastructure.

On this page

Which OWASP LLM Top 10 risks can guardrails actually reduce?

When an AI assistant or agent heads to production, the security review will often ask for coverage against the OWASP Top 10 for LLM Applications 2025. Runtime guardrails reduce some of these risks, mainly LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure and LLM05 Improper Output Handling, and they partly help with LLM06 Excessive Agency and LLM10 Unbounded Consumption. The remaining risks depend on architecture, supply chain controls, data governance and monitoring, so a guardrail layer should never be presented as full coverage.

The complete list is LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure, LLM03 Supply Chain, LLM04 Data and Model Poisoning, LLM05 Improper Output Handling, LLM06 Excessive Agency, LLM07 System Prompt Leakage, LLM08 Vector and Embedding Weaknesses, LLM09 Misinformation and LLM10 Unbounded Consumption, as published by the OWASP GenAI Security Project. The list is a *risk taxonomy* that helps teams name and prioritize threats. It is not a certification, and no assessor will accept a guardrail product as evidence that the list has been addressed. Ask each vendor or partner to map every control to a specific risk ID and to state what the control does not cover.

Use the mapping as a planning tool. For each risk, record the control owner, the layer that enforces it (input rail, output rail, gateway policy, tool allowlist or architecture decision) and the test that proves it works. Risks such as LLM03 Supply Chain, LLM04 Data and Model Poisoning, LLM07 System Prompt Leakage and LLM08 Vector and Embedding Weaknesses need controls in model sourcing, data pipelines, prompt handling and retrieval design, and a guard that scans only the final message will miss them. Confirm this split with your security team before the review, and keep the gaps visible in the risk register rather than hiding them behind a single tool.

Mapping each OWASP LLM risk to guards, owners and configuration

This table maps each OWASP LLM Top 10 2025 risk to the runtime guard that can reduce it, the function the guard must perform, and where the configuration lives in NeMo Guardrails, Guardrails AI or gateway settings. Rows marked as partial controls name the non-guardrail control that must complete the risk, so no row should be read as full coverage.

RiskRuntime guard and configurationWhat the function must do and what completes it
LLM01 Prompt injectionPartial. NeMo Guardrails input rails with jailbreak and injection detection, defined in config.yml and Colang; Guardrails AI input guards with chained validatorsMust block or flag crafted instructions in user input and in retrieved content. Complete it with least-privilege tool scopes and separation of untrusted content from instructions
LLM02 Sensitive information disclosurePartial. Input and output rails for PII detection and masking; gateway policy on request and response loggingMust catch identifiers and secrets before they reach the model or the user. Complete it with access controls on data sources and retention limits on logs
LLM03 Supply chainNull. Guardrails do not verify model or package provenance; confirm pinned versions and checksums in your own build pipelineMust verify that guard packages, validators and model files are trusted before import. Complete it with an internal artifact registry and software bill of materials review
LLM04 Data and model poisoningPartial. Output rails and evaluation checks can surface anomalous behavior; they do not inspect training dataMust detect drift in answers after data or model changes. Complete it with controlled ingestion, dataset review and regression tests on a fixed evaluation set
LLM05 Improper output handlingGuardrails AI output guards and Pydantic-structured validation; NeMo Guardrails output rails in ColangMust reject output that is unsafe for downstream systems, such as markup or commands. Complete it with encoding and parameterized handling in every consuming application
LLM06 Excessive agencyPartial. NeMo Guardrails execution rails on tool calls with allowlists in Colang or Python actionsMust restrict which tools and arguments an agent may use. Complete it with scoped credentials, human approval for risky actions and action logging
LLM07 System prompt leakagePartial. Output rails that match system prompt fragments and block their returnMust stop verbatim or near-verbatim disclosure of instructions. Complete it by keeping secrets out of prompts entirely and treating prompts as non-confidential
LLM08 Vector and embedding weaknessesPartial. NeMo Guardrails retrieval rails on RAG chunks before they reach the promptMust filter chunks by source and permission before generation. Complete it with access-controlled vector indexes and tenant isolation at query time
LLM09 MisinformationPartial. Fact-checking and hallucination detection in NeMo Guardrails; citation checks in custom actionsMust flag unsupported claims and missing sources. Complete it with human review for high-impact answers and grounding evaluation
LLM10 Unbounded consumptionGateway policy for rate limits, budgets and maximum token counts in LiteLLM or APISIX; guard checks add latencyMust cap requests, tokens and spend per user or key. Complete it with capacity limits on inference servers and alerting on usage spikes

NeMo Guardrails or Guardrails AI: which fits which risk

NeMo Guardrails is built around a conversational control model. Policies are written in configuration files (a config.yml file, optional Python actions and Colang files), and the framework applies five rail types: input rails, dialog rails, retrieval rails for RAG chunks, execution rails for custom actions and tools, and output rails. This makes it a strong match for prompt injection (LLM01), improper output handling (LLM05) and limits on tool use tied to excessive agency (LLM06), because a single configuration can govern what enters the model, what the model may do and what leaves it. Colang 1.0 is the default, and Colang 2.0 is also supported.

  • Rail coverage: input, dialog, retrieval, execution and output rails all live in one configuration model, which helps when a single control must span the whole request path.
  • Colang versions: Colang 1.0 is the default. NVIDIA documents a migration to 2.x with the nemoguardrails convert tool, and says converted configurations still need manual review before use.
  • Deployment: the library can be called from Python, or run as a guardrails server that loads configurations from a folder and exposes an HTTP API. A Dockerfile is provided to build a server image.
  • Built-in detection: the library includes self-check moderation, fact-checking, hallucination detection, jailbreak and injection detection, and third-party integrations.
  • Enterprise option: NVIDIA also offers a NeMo Guardrails microservice, a production container image on the same configuration model, deployed on Kubernetes with Helm.

Before committing, confirm the Colang version your team will maintain, test every converted rule on your own traffic, and check which detection models run offline in your environment.

Self-hosted platforms that enforce guardrails

Guardrails only reduce risk when something enforces them on every request and records what happened. The platforms below split that job into three parts: rules that inspect prompts and outputs, a gateway that forces every model call through those rules, and an observability layer that keeps blocked and allowed decisions as evidence. Choosing one from each group, and confirming how they connect, is the core design decision for the OWASP LLM risks covered on this page.

NeMo Guardrails for rule-based rails

NeMo Guardrails configures input, dialog, retrieval, execution and output rails in Colang, with a config.yml and optional Python actions. It maps well to LLM01 Prompt Injection and LLM07 System Prompt Leakage because dialog and input rails can refuse out-of-scope or jailbreak-style requests before a model sees them. Check that your team can maintain Colang policies, and plan a review of converted configurations if you migrate between Colang versions. The current release to pin is v0.24.1, which should be re-verified before deployment.

Guardrails AI for validators

Guardrails AI builds input and output guards from validators installed from Guardrails Hub, such as regex matching or toxicity detection, and chains them together. It is strongest for LLM05 Improper Output Handling, where a response must match a Pydantic model or pass format and content checks before a downstream system consumes it. Confirm which validators your data needs, whether each one runs locally, and how you will write and version custom validators. The current release is v0.11.0.

LiteLLM as the enforcement point

A rule engine only helps if every application calls the model through it. LiteLLM sits between applications and providers in OpenAI format and can run guardrails, logging, keys and budgets in one place. This is the control that stops a team from bypassing guards by calling a model directly, which matters for LLM10 Unbounded Consumption as well as injection. It is MIT licensed except for the enterprise directory, so confirm which features you need sit outside that directory before you rely on them.

Apache APISIX as an AI gateway

APISIX is an Apache-2.0 API gateway that also functions as an AI gateway, so guard calls can sit alongside existing authentication, rate limiting and routing. This fits organizations that already run APISIX for APIs and want one policy plane for model traffic. Confirm which AI-specific plugins your version provides, since the AI gateway features and their guard hooks differ from general API features. The latest release is 3.19.0, published September 28, 2026.

Kong Gateway as an existing control point

Kong Gateway is Apache-2.0 licensed and is often already deployed for API authentication and rate limiting. If it is your standard, the question is whether its AI traffic handling can route prompts through an external guard service and block requests before they reach a model. Treat that as something to prove in a test environment, not assume from the API features. The latest release is 3.9.4, published October 12, 2026.

Langfuse or Phoenix for decision records

Blocked and allowed decisions need to be stored, with the rule that fired, so that a control can be shown to work and tuned for false positives. Langfuse is MIT licensed except its ee directories, and Phoenix is under the Elastic License 2.0, which prohibits providing it to third parties as a hosted or managed service. If you deliver LLM features to customers from your own platform, check that licence position with counsel before choosing Phoenix. The latest Langfuse release is v4.63.0.

How input and output guards sit around the model call

The guard is a control point in the request path, not a property of the model. A user prompt should reach the AI gateway first, then pass input rails, then the model, then output rails, and only then return to the user. Each hop is a place where a decision can be enforced and logged. Input rails inspect the prompt for injection attempts (LLM01) and for personal or confidential data that should not reach the model (LLM02). Output rails inspect the response before it is shown or passed to another system, which is where improper output handling (LLM05) and disclosure of system prompt content (LLM07) are caught. A model's built-in refusals can change between versions and cannot be audited as a policy, so the guard should be treated as a separate, versioned component with its own configuration.

Tool calls and retrieved chunks are the two paths most often left unchecked. Retrieved document text should pass through retrieval rails before it is placed in the prompt, because instructions hidden in indexed content enter the model through that route. Tool calls and their arguments should pass through execution rails before anything runs, which is where excessive agency (LLM06) is limited by allowlists, scoped credentials and approval steps. Confirm with your platform team that the framework you choose can apply rails at these points, and not only at the chat turn. In a NeMo Guardrails deployment, for example, this depends on how the configuration defines retrieval and execution rails, so test it rather than assume it.

The gateway must not offer a route that skips the guard. Teams often add a direct model endpoint for a new application, a batch job or an internal tool, and the guard silently stops applying. Require that every route to a model, including fallback providers, evaluation jobs and service accounts, is registered at the gateway with the guard attached, and that model endpoints accept traffic only from the gateway. A useful acceptance test is to send the same attack prompt through each registered route and through a direct call from an application host, then compare the logs. Any route where the guard did not record a decision is a finding to fix before go-live.

Which OWASP risks guardrails do not cover

Can a runtime guardrail stop a poisoned or backdoored model from being deployed?

No. A guardrail inspects prompts and responses at runtime, so it cannot tell whether the model weights themselves were tampered with. LLM03 Supply Chain and LLM04 Data and Model Poisoning need controls before deployment: model provenance checks, pinned versions with recorded checksums, a reviewed model registry, and an approval step before any new weights or fine-tuned models reach production. For training and fine-tuning data, the controls are data pipeline controls: source allowlists, access logs, and review of what enters the corpus. Guard validators such as toxicity or regex checks can catch some symptoms of a poisoned model, but they reduce only a slice of the risk. Ask your implementation partner which model sources are allowed, how weights are verified, and who signs off on each change. Keep a record of each approval, because it becomes evidence for later reviews.

How much of system prompt leakage can output filtering prevent?

Output filtering reduces leakage only partly. An output rail can match known phrases from the system prompt, but a model can paraphrase, translate or encode the instructions, and a filter will miss those variants. The stronger control is design: keep secrets, credentials and internal routing logic out of the system prompt, and enforce access decisions in application code or the AI gateway rather than trusting the model to withhold them. Treat the system prompt as public. Then use canary strings and red-team probes to check whether leakage still happens. garak can run prompt-extraction style probes against an endpoint, and its JSONL report gives you a record of each attempt. Confirm with your partner exactly which probes they run and how often they repeat them.

How do vector and embedding weaknesses get fixed if the guardrail only checks text?

The weakness sits in the retrieval layer, so the fix belongs there. A guard that reads the final answer cannot know whether a chunk should have been retrieved for this user at all. The controls are retrieval access control: each chunk carries its source permissions, the vector search filters by the caller's identity before results reach the model, and tenant or department boundaries are enforced in the index, not in the prompt. Embedding pipelines also need controls: validated sources, versioned embedding models, and rebuild procedures when permissions change. Retrieval rails in NeMo Guardrails can inspect chunks for injected instructions, which covers a related slice. Ask whether your vector database supports metadata filtering on identity claims, and whether deletions in the source system propagate to the index.

Do guardrails prevent misinformation and hallucinated answers?

Guardrails reduce some hallucinations but do not eliminate misinformation. NeMo Guardrails includes fact-checking and hallucination detection, and Guardrails AI can run validators that check structure or known facts. These checks help where an answer can be compared with a trusted source, such as a retrieved passage. They cannot judge correctness in general. LLM09 Misinformation is addressed mainly through evaluation: a fixed set of test questions with expected answers, grounding requirements that force citations, and human review for high-impact outputs. Track evaluation results over model and prompt versions. Ask your partner how the evaluation set is built, who owns it, and what happens when answers drift after a model update.

Which parts of excessive agency can guardrails limit, and what remains?

Guardrails can limit some tool use but cannot replace permission design. Execution rails can check a proposed tool call against an allowlist, and an output rail can require human confirmation for specific actions. Those checks handle part of LLM06 Excessive Agency. The rest depends on scoped credentials: each tool should use a service identity that holds only the permissions its task needs, with read and write access separated. Limit the rate and value of actions, and log every call for review. If a credential can delete records, a guard that misreads a request still leaves that capability in place. Ask your partner for a permission inventory per tool and a test that confirms the agent cannot exceed it.

How do you test that a guard works, and who owns the testing?

Test each guard against known attack sets, measure the result, and repeat the test after every change. garak, an Apache 2.0 tool from NVIDIA, probes models for prompt injection, data leakage, jailbreaks and other weaknesses. It runs from the command line, can test models through a REST endpoint configured in YAML, and writes a JSONL report of each attempt and its evaluation. By default it makes 5 generations per prompt and marks a probe as FAIL when any attempt produces undesirable output. Run the same suite against the bare model and against the guarded endpoint, then compare. Testing is recurring work, so retainers or internal teams should cover it. Ask whether the partner tests the guardrail configuration itself, not only the model.

What does it cost to cover the OWASP risks that guardrails leave open?

The cost comes from work outside the guardrail product. Guardrail software under Apache 2.0 has no license fee, but the other controls need people and infrastructure: model provenance and approval processes, identity and permission design for retrieval and tools, evaluation datasets, and recurring red-team runs. Some of this is one-time setup, such as the permission model and the evaluation set. Other parts recur, such as re-running tests after each model or prompt change and reviewing new model versions. Cost rises with the number of tools, data sources and models. Ask for a quote that lists each control, who performs it, what is delivered, and what the recurring test cycle includes. DeployOpen does not publish prices, and a quote follows from a written scope.

Can our own team handle these controls without an outside partner?

Many teams can handle parts of this work internally, but the split is uneven. Guard configuration, garak test runs and logging are within reach of a platform team that can write Python and operate containers. Retrieval permission design, identity integration and model provenance need collaboration between security, data owners and platform engineering. Evaluation sets need domain experts who can judge correct answers. A practical split is to keep ownership of policies and approvals internal while a partner plans, implements and documents the controls, then supports the recurring tests. DeployOpen implements and tests self-hosted platforms in the client's own environment, and most engagements are fixed-scope with the scope agreed in writing first.

How to test that each guard works before go-live

This sequence proves, risk by risk, that each guard blocks what it should and allows legitimate traffic, and it leaves a repeatable record that stays valid after every policy or model change. It turns guardrail configuration into testable evidence instead of an assumption.

  1. Define expected block or allow outcomes per risk

    The security owner and the application owner write a short test matrix that maps each OWASP LLM risk in scope, such as LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure and LLM05 Improper Output Handling, to the rail or validator that should act on it. For each row they record the expected result for hostile prompts and for representative legitimate prompts, so a blocked benign request counts as a defect too. The step is done when every guard in the configuration has at least one expected block case and one expected allow case, approved in writing.

  2. Point garak at the gateway endpoint

    The test engineer installs garak from PyPI on a machine with Python 3.11 or newer and configures its REST generator with a short YAML file describing the guarded endpoint, or a LiteLLM route if the gateway fronts the model. Tests must target the gateway, not the bare model, because the guardrails, authentication and logging you are validating live in that path. The step is done when a smoke run against the endpoint returns generations and the engineer confirms in the logs that requests passed through the guard layer.

  3. Run probes mapped to each risk

    The engineer selects garak probes that cover the risks in the matrix, such as prompt injection, data leakage, jailbreaks and toxicity, and runs them with the default probewise harness so each probe uses its recommended detectors. Results are only meaningful for the risks the probes actually exercise, so the team notes any OWASP risk without a matching probe as a gap for manual testing. The step is done when every in-scope risk has a completed probe run against the gateway.

  4. Review the JSONL report and garak.log

    For each run, the engineer reads the JSONL report, which records every attempt and its evaluation, and checks that attempts marked as failures match the expected-outcome matrix. The garak.log file, which persists across runs, is used to diagnose errors such as timeouts or malformed responses that could be mistaken for a passing guard. The step is done when each failed attempt is classified as a real bypass, a false positive on legitimate content, or a test harness problem, and the classification is stored with the run.

  5. Measure failure rates with five generations per prompt

    garak makes five generations per prompt by default and marks a probe as FAIL with a failure rate when any attempt produces undesirable output, so one bad generation fails the probe. The team keeps this default for go-live sign-off and records the failure rate per probe alongside the policy version and model version tested. Any non-zero rate on a high-impact risk, such as sensitive information disclosure, is escalated to the owner who accepted the residual risk. The step is done when the baseline report for the release is archived with its rates.

  6. Add regression probes for every fixed bypass

    Each bypass found during testing becomes a permanent regression case. The engineer writes a probe or a custom REST-based test that reproduces the exact prompt or output pattern, then adds it to the test suite so future policy edits cannot silently reopen the gap. Where a fix relies on a custom validator or a Colang flow, the regression case is stored with that rail's configuration. The step is done when every fixed finding has a named test that fails on the vulnerable version and passes on the fixed one.

  7. Rerun the suite after every policy or model change

    The test suite runs again after each change to rail configuration, validators, the gateway routing or the underlying model, and before any model version upgrade. The team compares failure rates with the archived baseline and blocks promotion if a previously passing risk now fails or a benign test case is newly blocked. This step recurs for as long as the system runs, so the test run should be part of the change process rather than a one-time project task. It is done when each change record links to a passing suite run with its report attached.

Evidence auditors ask for from guardrail logs

An auditor reviewing a guarded language model will ask whether the controls were defined, whether they ran, whether they were tested and whether changes were controlled. The cards below cover the five evidence sets that answer those questions for the OWASP LLM risks a runtime guard is expected to reduce.

Rail configuration and version history

Auditors want to see the exact input, output and retrieval rails that were live on a given date, mapped to the OWASP LLM risks they address. For NeMo Guardrails, that means the config.yml, Colang files and any Python actions, stored in version control with the library version recorded alongside. Check that you can reproduce the configuration that served a specific request from months earlier, not only the current one.

Blocked and allowed event records

Each decision a rail makes, whether it blocked a prompt, redacted an output or let it pass, should produce a structured record with a timestamp, rail name, risk category and model version. Without these records you cannot show that prompt injection or sensitive information disclosure controls fired, or estimate how often they fire. Confirm with your security team which fields are stored, which are masked, and who can read them.

Test reports with failure rates

Pre-release and scheduled test runs against the guarded endpoint provide the measurement evidence auditors look for. garak writes a JSONL report of every attempt and its evaluation, and marks a probe as FAIL with a failure rate when any of its default five generations produces undesirable output. Keep these reports per release, and record which probes map to which OWASP LLM items so gaps are visible.

Policy change records

Every change to a rail, threshold or allowlist should have a ticket, an approver, a test result and a deployment record. This matters because a single tuned threshold can silently reopen a risk the OWASP mapping says is covered. Ask whether changes go through the same review as application code and whether a rollback to the prior configuration is tested.

Log retention for high-risk systems

Where the system is a high-risk AI system under the EU AI Act, Article 12(1) requires the system to technically allow automatic recording of events over its lifetime, and Article 19(1) requires providers to keep those logs for at least six months unless other law provides otherwise. Confirm with your legal and compliance team whether these obligations apply to your use case, and set retention and access controls for guard logs accordingly.

Evidence artifacts and the component that produces each

This table lists the evidence an assessor or internal reviewer can ask for, what each artifact shows about the OWASP LLM risks it touches, and which component produces it. Read it as a checklist: if a component is missing from your design, the matching evidence will also be missing. DeployOpen prepares this evidence, but independent auditors and certification bodies are the ones who issue any attestation.

Evidence itemWhat it showsProducing component
Rail definitions and policy filesWhich input, output and dialog rails are active for each assistant and how they are versionedNeMo Guardrails config and Colang files
Validator configuration setWhich validators guard each input and output path, such as regex or toxicity checks, and their settingsGuardrails AI validator set
Blocked and allowed request logsPer-request decisions at the gateway, including which guard fired and when, relevant to LLM05 and LLM02LiteLLM or APISIX logs
Adversarial test reportsProbe results for prompt injection, leakage and jailbreaks, with failure rates per probegarak JSONL reports
Trace and evaluation recordsPrompts, retrieved context, tool calls and outputs linked to a guard decision for reviewLangfuse or Phoenix traces
Excessive agency test resultsEvidence that tool calls outside the allowlist or without approval were blocked, relevant to LLM06NeMo Guardrails execution rails with gateway logs
Retention and log access recordsWhere logs are stored, how long they are kept and who can read them, to confirm retention against the applicable rulesGateway and observability storage configuration, confirmed with the organization's legal and compliance team

Common questions about guardrails and OWASP LLM coverage

Do LLM guardrails alone satisfy the OWASP Top 10 for LLM Applications?

No. Runtime guardrails reduce some of the OWASP LLM Top 10 2025 risks, mainly LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure and LLM05 Improper Output Handling, but they do not cover the whole list. Risks such as LLM03 Supply Chain, LLM04 Data and Model Poisoning, LLM06 Excessive Agency, LLM08 Vector and Embedding Weaknesses and LLM10 Unbounded Consumption need controls in identity, tool permissions, data pipelines, rate limits and model sourcing. Map each risk to the controls that address it, then record which gaps remain open.

What drives the implementation effort and cost of guardrails?

The main drivers are policy tuning, test volume, self-hosted classifier compute and gateway integration. Policy tuning is ongoing work: rails written in Colang for NeMo Guardrails or validators chosen from Guardrails Hub need examples from your own traffic to reduce false positives. Test volume grows with each risk you cover, because garak runs five generations per prompt by default, so a broad probe set produces many attempts. Classifier models need CPU or GPU capacity that recurs. Gateway integration with LiteLLM or Apache APISIX adds work on routing and logging. Ask any quote to itemize these four areas separately.

How long does a guardrails rollout take, and what does the timeline depend on?

The timeline depends on the number of risks in scope, the number of applications and models behind the gateway, and how quickly your owners decide on blocking policies. No duration is fixed in advance. A typical first phase covers input rails for prompt injection, output rails for sensitive data, and a baseline garak run, then expands. Each rails configuration also needs manual review after any Colang 1.0 to 2.x migration, which NVIDIA says is required. Agree the phases, deliverables and dates in writing before work starts, since most engagements are fixed-scope.

What must our team supply before a guardrails engagement starts?

Your team needs to supply a named owner for each application and for the policy decisions, a representative sample of prompts and outputs with sensitive cases labeled, and written risk decisions on what counts as unsafe, what must be blocked and what should only be logged. You also need access to the model endpoints and the AI gateway, plus a decision on where logs are stored. The EU AI Act Article 19(1) requires providers of high-risk systems to keep automatically generated logs for at least six months unless other law provides otherwise, so confirm retention with your legal team early.

Can our in-house team build and run these guardrails without a partner?

Yes, if you have engineers who can write and test rails, operate a self-hosted gateway and maintain a red-team routine. NeMo Guardrails is Apache-2.0 licensed and Guardrails AI is Apache-2.0 licensed, and both are free to run. The harder work is ongoing: tuning policies, reviewing false positives, retesting after model or prompt changes and keeping evidence current. Ask a partner to show how it would hand over runbooks, test suites and configuration versioning so the work does not depend on one person.

How do we test that each guardrail actually works?

Test each guard against attacks it is meant to stop, and measure both missed attacks and blocked legitimate requests. garak, an Apache-2.0 tool from NVIDIA, probes models for prompt injection, data leakage, jailbreaks and other weaknesses, and writes a JSONL report of every attempt. Pair these automated probes with scenarios drawn from your own applications, and rerun the full suite after every policy, model or gateway change. Document the results as evidence, but remember that the report shows what was tested, not that the system is secure.

Does DeployOpen provide the guardrails, and what does it not do?

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted guardrails in your own infrastructure, and it runs security testing, including AI and agent security testing and red teaming. It prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies perform those assessments. Ongoing testing and tuning are available as retainers, and the scope is agreed in writing before work begins.

How DeployOpen scopes and tests LLM guardrails mapped to the OWASP Top 10 for LLM Applications

DeployOpen is a Chainscore Labs company that plans, implements, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure, and runs security testing that includes AI systems. For LLM guardrails mapped to the OWASP Top 10 for LLM Applications, we start from a written scope that names each risk, the controls that address it and the tests that prove each guard works.

How we scope

  • Engagements are fixed-scope, with scope and deliverables agreed in writing before work starts.
  • The written scope lists which OWASP LLM risks the guardrails address and which are assigned to other controls.
  • We confirm where input and output rails run, which models and gateway they sit behind, and where logs are stored.

How we build

  • We implement input and output rails in NeMo Guardrails or Guardrails AI, enforced at the organization's AI gateway.
  • We write policy configuration as versioned files so changes to rails go through review before they reach production.
  • We wire blocked requests and guard decisions into the organization's own logging so each decision can be reviewed later.

How we test and hand over

  • We test each guard against attack cases mapped to the risks in scope, using garak or similar probes and recorded results.
  • We document each rail, its configuration, its test evidence and the residual risks that other controls must cover.
  • We hand over runbooks, configuration repositories and test scripts so the client's team can rerun the tests after changes.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Retainers can cover re-running guard tests when models, prompts, gateway versions or policies change.
  • We prepare systems, controls and evidence for compliance assessments, while independent auditors and certification bodies issue any reports.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.