Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: This detection identifies potential cross-region inference abuse in AWS Bedrock Claude models. Cross-region inference abuse may indicate attempts to bypass regional restrictions, exfiltrate data, or perform unauthorized actions across different AWS regions.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| rename "identity.arn" AS user_arn
| rename "input.inputTokenCount" AS input_tokens
Expand Down Expand Up @@ -43,7 +43,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$user$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: user
Expand All @@ -63,8 +63,8 @@ category: application
security_domain: endpoint
tests:
- name: True Positive Test
test_type: unit
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_cross_region_possible_inference_abuse.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: Detects identities generating anomalously large model responses relative to their own historical baseline. For each identity, computes the average, maximum, and standard deviation of output token counts across all invocations, then flags any identity whose single largest response exceeds two standard deviations above their own mean. A statistically significant output spike from a single identity may indicate bulk data extraction, successful prompt injection producing verbose output, or a runaway agentic loop hitting context limits.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| spath output="out_tokens" path="output.outputBodyJson.usage.output_tokens"
| eval user = replace('identity.arn', ".*/", "")
Expand Down Expand Up @@ -46,7 +46,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$user$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: user
Expand All @@ -68,6 +68,6 @@ tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_excessive_use_of_tokens.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: Detects identities invoking high-risk filesystem and execution tools via AWS Bedrock Claude. For each identity, monitors the usage of potentially dangerous commands and flags any anomalous activity that deviates from their historical baseline. This may indicate attempts to escalate privileges, exfiltrate data, or execute unauthorized commands.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| spath output="tool_called" path="output.outputBodyJson{}.content_block.toolUse.name"
| spath output="out_tokens_stream" path="output.outputBodyJson{}.usage.output_tokens"
Expand Down Expand Up @@ -81,7 +81,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$user$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: user
Expand All @@ -103,6 +103,6 @@ tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_high_risk_filesystem_and_exec_tool_invocation.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: This detection identifies prompts with hostile or aggressive sentiment being sent to AWS Bedrock Claude models. Hostile prompts may indicate potential abuse, harassment, or other malicious intent.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| rename "identity.arn" AS user_arn
| rename "input.inputBodyJson.messages{}.content{}.text" AS prompt_text
Expand Down Expand Up @@ -43,7 +43,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$host$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$host$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: host
Expand All @@ -63,8 +63,8 @@ category: application
security_domain: endpoint
tests:
- name: True Positive Test
test_type: unit
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_hostile_prompt_sentiment.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Hunting
description: This search surfaces AWS Bedrock Claude prompts containing phrases commonly associated with prompt injection or jailbreak attempts, such as instruction overrides, persona switching, or requests to ignore prior guidance. These strings are not inherently malicious on their own - many of them (for example "act as", "you must", or "new persona") appear routinely in legitimate system prompts, few-shot examples, and role-play or creative-writing use cases. This is a hunting search rather than an anomaly detection because the base rate of benign matches is high; use it to pivot into the surrounding conversation and look for corroborating signals such as the phrase appearing mid-conversation rather than in an expected system/few-shot prompt, the user attempting to override guardrails or safety instructions rather than set a benign persona, instructions that follow the injected phrase requesting privilege escalation, data exfiltration, or access to restricted tools/resources, repeated or iterative attempts from the same user/role after being refused, and injected phrases originating from untrusted input (e.g., retrieved documents or tool output) rather than the human user turn.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| rename "identity.arn" AS user_arn, "input.inputBodyJson.messages{}.content{}.text" AS prompt_mv
| eval prompt_text = mvjoin(prompt_mv, " || ")
Expand Down Expand Up @@ -40,7 +40,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$host$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$host$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
analytic_story:
- Suspicious AWS Bedrock Claude Activities
asset_type: Web Application
Expand All @@ -54,8 +54,8 @@ category: application
security_domain: endpoint
tests:
- name: True Positive Test
test_type: unit
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_possible_prompt_injection.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: This detection identifies sensitive data such as social security numbers, passwords, API keys, and credit card numbers being sent in prompts to AWS Bedrock Claude models. Exposure of sensitive data through AI prompts may indicate data loss, credential leakage, or insider threat activity.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| rename "identity.arn" AS user_arn, "input.inputBodyJson.messages{}.content{}.text" AS prompt_mv, "accountId" AS account_id
| eval prompt_text = mvjoin(prompt_mv, " || ")
Expand Down Expand Up @@ -39,7 +39,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$host$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$host$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: host
Expand All @@ -59,8 +59,8 @@ category: application
security_domain: endpoint
tests:
- name: True Positive Test
test_type: unit
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_sensitive_data_in_prompts.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: This detection identifies unusually large prompts sent to AWS Bedrock Claude models by calculating the statistical baseline of input token counts and flagging requests that exceed one standard deviations above the mean. Abnormally large prompts may indicate prompt injection attacks, data exfiltration attempts, or abuse of the AI service.
data_source:
- AWS Bedrock Claude
search: |-
search: |
`aws_bedrock_claude`
| rename "input.inputTokenCount" AS input_tokens
| rename "identity.arn" AS user_arn
Expand Down Expand Up @@ -38,7 +38,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$host$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$host$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: host
Expand All @@ -58,8 +58,8 @@ category: application
security_domain: endpoint
tests:
- name: True Positive Test
test_type: unit
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/aws_bedrock_claude/aws_bedrock_claude_unusually_large_prompts.ndjson
sourcetype: json_no_timestamp
source: http:bulkawsbedrock
sourcetype: json_no_timestamp
test_type: unit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: Anomaly
description: The search surfaces alerts from the Cisco AI Defense product for potential attacks against the AI models running in your environment. This analytic identifies security events within Cisco AI Defense by examining event messages, actions, and policy names. It focuses on connections and applications associated with specific guardrail entities and ruleset types. By aggregating and analyzing these elements, the search helps detect potential policy violations and security threats, enabling proactive defense measures and ensuring network integrity.
data_source:
- Cisco AI Defense Alerts
search: |-
search: |
`cisco_ai_defense`
| rename genai_application.application_name as application_name
| rename connection.connection_name as connection_name
Expand Down Expand Up @@ -51,7 +51,7 @@ drilldown_searches:
- name: View risk events for the last 7 days for - "$application_name$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$application_name$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: 7d
latest_offset: "0"
latest_offset: '0'
intermediate_findings:
entities:
- field: application_name
Expand Down
Loading
Loading