sample-aiml-security-assessment

OWASP Top 10 for LLM Security Checks

This document catalogs the 12 OWASP Top 10 for LLM (OW-XX) checks produced by the AI/ML Security Assessment framework, and how each maps back to the underlying BR/SM/AC/FS checks it is derived from.

Disclaimer

These mappings are PRELIMINARY and ILLUSTRATIVE. They have not been reviewed by AWS Security Assurance Services or external auditors. Each organisation should validate them against its own interpretation of the OWASP Top 10 for LLM 2025 controls before relying on them as audit evidence.

Design

OW-01 through OW-10 are derived by mapping existing findings, so the OWASP Lambda itself does not call AWS APIs for those mapped rows. When OWASP is enabled and Responsible AI GRC is not, the state machine still runs Responsible AI GRC once to produce the FS-* source findings that feed OWASP mappings; that can increase scan time and use the Responsible AI GRC IAM surface. In CodeBuild-based deployments, the Responsible AI GRC source CSV is filtered out when results are copied to the customer-facing report bucket unless EnableResponsibleAIGRCAssessment=true. OW-11 and OW-12 are the only native OWASP checks: they inspect Bedrock guardrails and Lambda env vars for signals specific to LLM07 (System Prompt Leakage) that the existing checks do not cover.

The OWASP Lambda runs after the per-service Lambdas have written their CSVs. Bedrock, SageMaker, and AgentCore write per-region CSVs. Responsible AI GRC writes one execution-scoped CSV whose unscoped evidence is labeled Global rather than copied into target regions. OWASP reads those CSVs, applies the OWASP_CHECK_MAPPINGS dict, runs OW-11 and OW-12, and writes owasp_security_report_<execution>_<region>.csv.

Service selection affects only the Bedrock, SageMaker, and AgentCore source CSVs; Agent Registry is not an OWASP source. For each affected OW check ID, an N/A/Informational coverage row identifies the deselected evidence sources. Remaining mapped findings retain their status. OW-07 remains visible as unassessed when Bedrock, its only source, is deselected. OW-05 (GRC-only) and native OW-11/OW-12 are unaffected by direct-service selection. GRC still runs as a dependency and can assess deselected services through its own API calls.

If a required source CSV is missing, the Lambda emits an informational OW-00 coverage row instead of silently omitting all derived rows from that source. OW-00 is not an OWASP Top 10 control; it is a report-completeness marker.

Mapping scope for recent catalog expansions

The OWASP mapping regression coverage tracks 34 check IDs added across the recent catalog expansions. Twelve have direct OWASP mappings. The remaining 22 are intentionally unmapped, including all AWS Agent Registry controls:

Extensibility

The “By Compliance Standard” sidebar section is data-driven — future NIST AI RMF (NR- prefix) and EU AI Act (EU- prefix) additions require only appending a new entry to COMPLIANCE_STANDARDS in report_template.py and following the same Lambda/CFN wire-up pattern (EnableNISTAssessment / EnableEUAIActAssessment). Each new prefix must be 2–3 uppercase letters to satisfy the Check_ID regex ^[A-Z]{2,3}-\d{2}$.

Check catalogue

Each emitted OW row uses the category-specific OWASP remediation reference for its Reference field:

Check OWASP category Reference
OW-01 LLM01:2025 Prompt Injection https://genai.owasp.org/llmrisk/llm01-prompt-injection/
OW-02 LLM02:2025 Sensitive Information Disclosure https://genai.owasp.org/llmrisk/llm022025-sensitive-information-disclosure/
OW-03 LLM03:2025 Supply Chain https://genai.owasp.org/llmrisk/llm032025-supply-chain/
OW-04 LLM04:2025 Data and Model Poisoning https://genai.owasp.org/llmrisk/llm042025-data-and-model-poisoning/
OW-05 LLM05:2025 Improper Output Handling https://genai.owasp.org/llmrisk/llm052025-improper-output-handling/
OW-06 LLM06:2025 Excessive Agency https://genai.owasp.org/llmrisk/llm062025-excessive-agency/
OW-07, OW-11, OW-12 LLM07:2025 System Prompt Leakage https://genai.owasp.org/llmrisk/llm072025-system-prompt-leakage/
OW-08 LLM08:2025 Vector and Embedding Weaknesses https://genai.owasp.org/llmrisk/llm082025-vector-and-embedding-weaknesses/
OW-09 LLM09:2025 Misinformation https://genai.owasp.org/llmrisk/llm092025-misinformation/
OW-10 LLM10:2025 Unbounded Consumption https://genai.owasp.org/llmrisk/llm102025-unbounded-consumption/

LLM01 Prompt Injection — OW-01

Maps from:

Source Signal
BR-04 Bedrock model invocation logging enabled (§4.3 prompt logging)
BR-34 Preventive Bedrock Guardrails PROMPT_ATTACK input filter
BR-23 Guardrail content filter coverage
BR-27 Contextual grounding guardrail
SM-26 GuardDuty AI Protection feature enabled
FS-51 PROMPT_ATTACK filter at Standard tier
FS-52 Bedrock-calling Lambda runtimes not deprecated
FS-53 WAF SQLi + KnownBadInputs managed rule groups
FS-54 Adversarial testing evidence via tagging
FS-69 Prompt-input validation Lambda present

LLM02 Sensitive Information Disclosure — OW-02

Maps from:

Source Signal
BR-26 Guardrail PII / regex filter policy
BR-37 Bedrock account data retention and provider-sharing boundary
BR-38 Automated Reasoning policies use customer-managed KMS encryption
BR-40 Marketplace model endpoints use customer-managed KMS encryption
AC-14 AgentCore Identity token vault uses customer-managed KMS encryption
FS-43 CloudWatch log data protection policies
FS-44 Amazon Macie sensitive-data discovery
FS-45 Guardrail PII entities coverage (Responsible AI GRC)
FS-46 S3 data-classification tagging
SM-03 SageMaker notebooks, domains, and training jobs use encryption controls
SM-15 SageMaker Feature Store offline stores use KMS encryption
SM-27 HyperPod root and secondary EBS volumes use customer-managed KMS encryption

LLM03 Supply Chain — OW-03

Maps from:

Source Signal
BR-30 Imported-model KMS encryption
BR-33 Amazon Inspector Lambda code scanning (§2.5 SBOM / static analysis)
BR-39 Marketplace model endpoints use controlled VPC network boundaries
FS-12 SCP-enforced model allowlist
FS-13 Custom-model provenance tags
FS-14 AWS Config rules for model onboarding
FS-15 Adversarial evaluation coverage
FS-16 ECR image scanning
SM-01 SageMaker notebooks/domains avoid direct internet exposure
SM-10 SageMaker notebooks are deployed inside a VPC
SM-11 SageMaker model containers use network isolation
SM-14 SageMaker models pull containers through controlled repository access
SM-21 SageMaker AutoML jobs use network isolation
SM-25 SageMaker Experiments and lineage associations track model provenance
SM-28 HyperPod instance groups use controlled VPC network boundaries
SM-30 Model Registry resource policies restrict public and unapproved cross-account access

LLM04 Data and Model Poisoning — OW-04

Maps from:

Source Signal
BR-25 RAG evaluation coverage
BR-27 Contextual grounding on retrieved data
FS-20 Feature Store OfflineStoreConfig
FS-21 Training-data S3 versioning
FS-42 SageMaker Model Card documentation (§3.1 model system card reviews)
SM-07 SageMaker Model Monitor schedules detect quality regressions
SM-22 SageMaker Model Registry approval workflows gate model promotion
SM-23 SageMaker drift detection monitors production endpoints
SM-25 SageMaker lineage tracking links data, training runs, and model artifacts

LLM05 Improper Output Handling — OW-05

Maps from:

Source Signal
FS-55 Output-validation Lambda in response path
FS-56 WAF XSS protection
FS-57 Output encoding libraries in Lambda
FS-58 Step Functions output schema validation

LLM06 Excessive Agency — OW-06

Maps from:

Source Signal
BR-21 Agent action-group Lambda role least privilege
BR-28 Bedrock agent guardrail association
BR-29 Agent idle session TTL bound
AC-02 AgentCore IAM least privilege
AC-10 AgentCore resource-based policies
AC-15 AgentCore custom Code Interpreter VPC isolation
AC-16 AgentCore custom browser VPC isolation
FS-07 Agent execution role least privilege (Responsible AI GRC)
FS-08 AgentCore runtime inbound authorizer (Responsible AI GRC)
FS-09 Agent tool concurrency limits
FS-10 Step Functions HITL callback tasks
FS-67 Agent transaction thresholds in Cedar / config

LLM07 System Prompt Leakage — OW-07 (mapping) + OW-11, OW-12 (native)

Mapping-based (OW-07) signals:

Source Signal
BR-04 Bedrock model invocation logging enabled (§4.3 prompt logging)
BR-07 Bedrock Prompt Management adoption (§2.2 prompts as code)
BR-16 Guardrail Standard tier (Standard tier additionally detects prompt-leakage)

Native checks fill the gap:

Severity convention. OW-11 and OW-12 are native checks; their severity is control-inherent (same on Passed and Failed), matching the Responsible AI GRC severity methodology. OW-01..OW-10 mapping rows inherit the source check’s severity except when the source is N/A, in which case the OWASP row is downgraded to Informational to avoid inflating severity totals with tooling / no-resource rows.

LLM08 Vector and Embedding Weaknesses — OW-08

Maps from:

Source Signal
BR-20 Managed Knowledge Base CMK encryption
FS-22 KB IAM scoping
FS-24 KB metadata filtering
FS-25 OpenSearch Serverless encryption (CMK)
FS-26 OpenSearch Serverless network policy

LLM09 Misinformation — OW-09

Maps from:

Source Signal
BR-18 Model evaluation jobs
BR-25 RAG evaluation for faithfulness
BR-27 Contextual grounding for faithfulness
FS-31 Knowledge Base ingestion freshness
FS-32 Source attribution via citations
FS-33 KB S3 data-source integrity
FS-42 SageMaker Model Card documentation (§3.1 model system card reviews)
FS-47 Grounding filter threshold ≥ 0.70
FS-48 Active Knowledge Base present
SM-06 SageMaker Clarify evaluates bias and explainability
SM-07 SageMaker Model Monitor schedules detect quality regressions
SM-22 SageMaker Model Registry approval workflows gate production release
SM-23 SageMaker drift detection monitors production endpoints

LLM10 Unbounded Consumption — OW-10

Maps from:

Source Signal
BR-22 Service Quotas throttling limits
BR-32 CloudWatch consumption alarms
SM-26 GuardDuty AI Protection anomalous invocation and cost-harvesting detection
FS-01 WAF rate-based & Shield protection
FS-02 API Gateway usage plans
FS-03 Bedrock TPM/RPM quotas customised
FS-04 AWS Cost Anomaly Detection
FS-05 Token / throttle alarms
FS-06 AWS Budgets with Bedrock filters
FS-68 API Gateway request body size limits
SM-11 SageMaker model network isolation limits uncontrolled outbound calls

Severity / status semantics

OW rows follow the same rules as every other check in the framework: