AWS Bedrock Invocations without Guardrails Detected by a Single User Over a Session
Identifies multiple AWS Bedrock executions in a one minute time window without guardrails by the same user in the same account over a session. Multiple consecutive executions implies that a user may be intentionally attempting to bypass security controls, by not routing the requests with the desired guardrail configuration in order to access sensitive information, or possibly exploit a vulnerability in the system.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2024/11/25"
3integration = ["aws_bedrock"]
4maturity = "production"
5updated_date = "2026/09/25"
6
7[rule]
8author = ["Elastic"]
9description = """
10Identifies multiple AWS Bedrock executions in a one minute time window without guardrails by the same user in the same
11account over a session. Multiple consecutive executions implies that a user may be intentionally attempting to bypass
12security controls, by not routing the requests with the desired guardrail configuration in order to access sensitive
13information, or possibly exploit a vulnerability in the system.
14"""
15false_positives = [
16 "Users testing new model deployments or updated compliance policies without Amazon Bedrock guardrails.",
17]
18from = "now-60m"
19interval = "10m"
20language = "esql"
21license = "Elastic License v2"
22name = "AWS Bedrock Invocations without Guardrails Detected by a Single User Over a Session"
23note = """## Triage and analysis
24
25### Investigating AWS Bedrock Invocations without Guardrails Detected by a Single User Over a Session
26
27Using Amazon Bedrock Guardrails during model invocation is critical for ensuring the safe, reliable, and ethical use of AI models.
28Guardrails help manage risks associated with AI usage and ensure the output aligns with desired policies and standards.
29
30#### Possible investigation steps
31
32- Identify the user account that caused multiple model violations over a session without desired guardrail configuration and whether it should perform this kind of action.
33- Investigate the user activity that might indicate a potential brute force attack.
34- Investigate other alerts associated with the user account during the past 48 hours.
35- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal time of day?
36- Examine the account's prompts and responses in the last 24 hours.
37- If you suspect the account has been compromised, scope potentially compromised assets by tracking Amazon Bedrock model access, prompts generated, and responses to the prompts by the account in the last 24 hours.
38
39### False positive analysis
40
41- Verify the user account that caused multiple policy violations by a single user over session, is not testing any new model deployments or updated compliance policies in Amazon Bedrock guardrails.
42
43### Response and remediation
44
45- Initiate the incident response process based on the outcome of the triage.
46- Disable or limit the account during the investigation and response.
47- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:
48 - Identify the account role in the cloud environment.
49 - Identify if the attacker is moving laterally and compromising other Amazon Bedrock Services.
50 - Identify any regulatory or legal ramifications related to this activity.
51- Review the permissions assigned to the implicated user group or role behind these requests to ensure they are authorized and expected to access bedrock and ensure that the least privilege principle is being followed.
52- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.
53- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the mean time to respond (MTTR).
54"""
55references = [
56 "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-components.html",
57 "https://atlas.mitre.org/techniques/AML.T0051",
58 "https://atlas.mitre.org/techniques/AML.T0054",
59 "https://www.elastic.co/security-labs/elastic-advances-llm-security",
60]
61risk_score = 47
62rule_id = "f2c653b7-7daf-4774-86f2-34cdbd1fc528"
63setup = """## Setup
64
65This rule requires that guardrails are configured in AWS Bedrock. For more information, see the AWS Bedrock documentation:
66
67https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-create.html
68"""
69severity = "medium"
70tags = [
71 "Domain: GenAI",
72 "Data Source: AWS Bedrock",
73 "Data Source: AWS S3",
74 "Resources: Investigation Guide",
75 "Use Case: Policy Violation",
76 "Noise: Low",
77 "Performance: Normal",
78 "Profile: Recommended",
79 "Threat: Unauthorized AI Usage",
80 "Rule Type: ES|QL",
81 "Platform: AWS",
82 "Domain: Cloud",
83 "Service: AWS S3",
84 "Service: AWS Bedrock",
85 "Mitre Atlas: AML.T0051",
86 "Mitre Atlas: AML.T0054",
87]
88timestamp_override = "event.ingested"
89type = "esql"
90
91query = '''
92from logs-aws_bedrock.invocation-*
93
94// Create 1-minute time buckets
95| eval Esql.time_window_date_trunc = date_trunc(1 minute, @timestamp)
96
97// Filter for invocations without guardrails
98| where gen_ai.guardrail_id is null and user.id is not null
99
100// keep only relevant fields
101| keep
102 @timestamp,
103 Esql.time_window_date_trunc,
104 gen_ai.guardrail_id,
105 user.id
106
107// count number of unsafe invocations per user
108| stats
109 Esql.ml_invocations_no_guardrails_count = count()
110 by user.id
111
112// Filter for suspicious volume
113| where Esql.ml_invocations_no_guardrails_count > 5
114
115// sort descending
116| sort Esql.ml_invocations_no_guardrails_count desc
117'''
118
119
120[[rule.threat_mappings]]
121framework = "MITRE ATLAS"
122version = "2026.08"
123[[rule.threat_mappings.threat]]
124framework = "MITRE ATLAS"
125[[rule.threat_mappings.threat.technique]]
126id = "AML.T0051"
127name = "LLM Prompt Injection"
128reference = "https://atlas.mitre.org/techniques/AML.T0051/"
129
130
131[rule.threat_mappings.threat.tactic]
132id = "AML.TA0005"
133name = "Execution"
134reference = "https://atlas.mitre.org/tactics/AML.TA0005/"
135[[rule.threat_mappings.threat]]
136framework = "MITRE ATLAS"
137[[rule.threat_mappings.threat.technique]]
138id = "AML.T0054"
139name = "LLM Jailbreak"
140reference = "https://atlas.mitre.org/techniques/AML.T0054/"
141
142
143[rule.threat_mappings.threat.tactic]
144id = "AML.TA0007"
145name = "Defense Evasion"
146reference = "https://atlas.mitre.org/tactics/AML.TA0007/"
Triage and analysis
Investigating AWS Bedrock Invocations without Guardrails Detected by a Single User Over a Session
Using Amazon Bedrock Guardrails during model invocation is critical for ensuring the safe, reliable, and ethical use of AI models. Guardrails help manage risks associated with AI usage and ensure the output aligns with desired policies and standards.
Possible investigation steps
- Identify the user account that caused multiple model violations over a session without desired guardrail configuration and whether it should perform this kind of action.
- Investigate the user activity that might indicate a potential brute force attack.
- Investigate other alerts associated with the user account during the past 48 hours.
- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal time of day?
- Examine the account's prompts and responses in the last 24 hours.
- If you suspect the account has been compromised, scope potentially compromised assets by tracking Amazon Bedrock model access, prompts generated, and responses to the prompts by the account in the last 24 hours.
False positive analysis
- Verify the user account that caused multiple policy violations by a single user over session, is not testing any new model deployments or updated compliance policies in Amazon Bedrock guardrails.
Response and remediation
- Initiate the incident response process based on the outcome of the triage.
- Disable or limit the account during the investigation and response.
- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:
- Identify the account role in the cloud environment.
- Identify if the attacker is moving laterally and compromising other Amazon Bedrock Services.
- Identify any regulatory or legal ramifications related to this activity.
- Review the permissions assigned to the implicated user group or role behind these requests to ensure they are authorized and expected to access bedrock and ensure that the least privilege principle is being followed.
- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.
- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the mean time to respond (MTTR).
References
Related rules
- AWS Bedrock Guardrails Detected Multiple Violations by a Single User Over a Session
- AWS Bedrock Guardrails Detected Multiple Policy Violations Within a Single Blocked Request
- Unusual High Word Policy Blocks Detected
- AWS Bedrock Detected Multiple Attempts to use Denied Models by a Single User
- AWS Bedrock Detected Multiple Validation Exception Errors by a Single User