@highflame/policy 2.2.36 → 2.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_schemas/agent_ops/context.json +792 -0
- package/_schemas/agent_ops/schema.cedarschema +127 -109
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_cross_origin.cedar +6 -4
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_escalation.cedar +5 -4
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_inter_agent_injection.cedar +9 -8
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_claude_block_injection.cedar +2 -2
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_defaults.cedar +3 -3
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_multi_agent_trust.cedar +6 -6
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_chat_assistant.cedar +5 -4
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_defaults.cedar +18 -12
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_semantic.cedar +6 -6
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_toxicity.cedar +4 -4
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_advanced_secrets.cedar +4 -2
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_data_pipeline.cedar +2 -1
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_defaults.cedar +4 -2
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_advanced_pii.cedar +42 -21
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_defaults.cedar +14 -7
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_pii_model.cedar +10 -5
- package/_schemas/agent_ops/templates/ported/organization/organization_team_permissions.cedar +3 -2
- package/_schemas/agent_ops/templates/ported/threat-detection/security_advanced_block_critical_severity.cedar +3 -3
- package/_schemas/agent_ops/templates/ported/threat-detection/security_chat_assistant.cedar +5 -4
- package/_schemas/agent_ops/templates/ported/threat-detection/security_data_pipeline_block_injection.cedar +3 -2
- package/_schemas/agent_ops/templates/ported/threat-detection/security_injection.cedar +9 -8
- package/_schemas/agent_ops/templates/ported/threat-detection/security_patterns.cedar +5 -3
- package/_schemas/agent_ops/templates/ported/threat-detection/semantic_defaults.cedar +9 -7
- package/_schemas/ai_gateway/context.json +278 -0
- package/_schemas/ai_gateway/schema.cedarschema +37 -7
- package/_schemas/ai_gateway/templates/defaults/agent_security.cedar +5 -16
- package/_schemas/ai_gateway/templates/defaults/pii.cedar +14 -7
- package/_schemas/ai_gateway/templates/defaults/pii_advanced.cedar +42 -21
- package/_schemas/ai_gateway/templates/defaults/pii_model.cedar +10 -5
- package/_schemas/ai_gateway/templates/defaults/semantic.cedar +9 -74
- package/_schemas/ai_gateway/templates/defaults/tools.cedar +7 -38
- package/_schemas/ai_gateway/templates/secrets.cedar +3 -3
- package/_schemas/guardrails/context.json +671 -0
- package/_schemas/guardrails/schema.cedarschema +23 -2
- package/_schemas/guardrails/templates/defaults/agent_identity.cedar +3 -3
- package/_schemas/guardrails/templates/defaults/injection.cedar +9 -8
- package/_schemas/guardrails/templates/defaults/pii.cedar +14 -7
- package/_schemas/guardrails/templates/defaults/pii_model.cedar +10 -5
- package/_schemas/guardrails/templates/defaults/secrets.cedar +4 -2
- package/_schemas/guardrails/templates/defaults/security_patterns.cedar +5 -3
- package/_schemas/guardrails/templates/defaults/semantic.cedar +6 -6
- package/_schemas/guardrails/templates/defaults/toxicity.cedar +6 -6
- package/_schemas/guardrails/templates/profiles/a2a_security/cross_origin.cedar +6 -4
- package/_schemas/guardrails/templates/profiles/a2a_security/escalation_detection.cedar +5 -4
- package/_schemas/guardrails/templates/profiles/a2a_security/inter_agent_injection.cedar +9 -8
- package/_schemas/guardrails/templates/profiles/advanced_detection/pii.cedar +42 -21
- package/_schemas/guardrails/templates/profiles/advanced_detection/secrets.cedar +4 -2
- package/_schemas/guardrails/templates/profiles/chat_assistant/security.cedar +5 -4
- package/_schemas/guardrails/templates/profiles/chat_assistant/trust_safety.cedar +5 -4
- package/_schemas/guardrails/templates/profiles/data_pipeline/data_protection.cedar +2 -1
- package/_schemas/guardrails/templates/profiles/data_pipeline/security.cedar +3 -2
- package/_schemas/guardrails/templates/profiles/multi_agent/agent_trust.cedar +6 -6
- package/_schemas/guardrails/templates/templates.json +0 -9
- package/dist/agent_ops-defaults.gen.js +177 -120
- package/dist/agent_ops-entities.gen.js +5 -1
- package/dist/ai_gateway-defaults.gen.js +90 -164
- package/dist/ai_gateway-entities.gen.js +6 -2
- package/dist/engine.d.ts +10 -0
- package/dist/engine.js +25 -1
- package/dist/guardrails-defaults.gen.js +144 -145
- package/dist/guardrails-entities.gen.js +5 -1
- package/dist/service-schemas.gen.d.ts +3 -3
- package/dist/service-schemas.gen.js +480 -118
- package/package.json +1 -1
- package/_schemas/guardrails/templates/profiles/advanced_detection/threat_severity.cedar +0 -30
- package/_schemas/mcp_gateway/context.json +0 -655
- package/_schemas/mcp_gateway/schema.cedarschema +0 -342
- package/_schemas/mcp_gateway/templates/defaults/agent_security.cedar +0 -140
- package/_schemas/mcp_gateway/templates/defaults/baseline.cedar +0 -23
- package/_schemas/mcp_gateway/templates/defaults/semantic.cedar +0 -105
- package/_schemas/mcp_gateway/templates/defaults/tools.cedar +0 -92
- package/_schemas/mcp_gateway/templates/mcp_server_allowlist.cedar +0 -33
- package/_schemas/mcp_gateway/templates/mcp_tool_permissions.cedar +0 -77
- package/_schemas/mcp_gateway/templates/templates.json +0 -89
- package/dist/mcp_gateway-context.gen.d.ts +0 -51
- package/dist/mcp_gateway-context.gen.js +0 -52
- package/dist/mcp_gateway-defaults.gen.d.ts +0 -61
- package/dist/mcp_gateway-defaults.gen.js +0 -668
- package/dist/mcp_gateway-entities.gen.d.ts +0 -11
- package/dist/mcp_gateway-entities.gen.js +0 -37
|
@@ -519,7 +519,7 @@ const AGENT_OPS_DATA_PROTECTION_DEFAULTS_CEDAR = `// ===========================
|
|
|
519
519
|
|
|
520
520
|
@id("data-protection.block-secrets")
|
|
521
521
|
@name("Block secrets")
|
|
522
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secrets_detected is true.")
|
|
522
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secrets_detected is true.")
|
|
523
523
|
@severity("critical")
|
|
524
524
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
525
525
|
@reject_message("Request blocked: secrets or credentials were detected in the content.")
|
|
@@ -527,6 +527,7 @@ forbid (
|
|
|
527
527
|
principal,
|
|
528
528
|
action in [
|
|
529
529
|
AgentOps::Action::"process_prompt",
|
|
530
|
+
AgentOps::Action::"process_response",
|
|
530
531
|
AgentOps::Action::"call_tool",
|
|
531
532
|
AgentOps::Action::"read_file",
|
|
532
533
|
AgentOps::Action::"write_file"
|
|
@@ -539,7 +540,7 @@ when {
|
|
|
539
540
|
|
|
540
541
|
@id("data-protection.block-secrets-bulk")
|
|
541
542
|
@name("Block secrets (bulk)")
|
|
542
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secret_count >= 3.")
|
|
543
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secret_count >= 3.")
|
|
543
544
|
@severity("critical")
|
|
544
545
|
@tags("category:data-protection,threat:secrets,threat:exfiltration,detection:aggregate,owasp:llm06")
|
|
545
546
|
@reject_message("Request blocked: multiple distinct secrets were detected — possible credential dump.")
|
|
@@ -547,6 +548,7 @@ forbid (
|
|
|
547
548
|
principal,
|
|
548
549
|
action in [
|
|
549
550
|
AgentOps::Action::"process_prompt",
|
|
551
|
+
AgentOps::Action::"process_response",
|
|
550
552
|
AgentOps::Action::"call_tool",
|
|
551
553
|
AgentOps::Action::"read_file",
|
|
552
554
|
AgentOps::Action::"write_file"
|
|
@@ -580,13 +582,14 @@ const AGENT_OPS_SECURITY_INJECTION_CEDAR = `// =================================
|
|
|
580
582
|
|
|
581
583
|
@id("security.block-injection-ml")
|
|
582
584
|
@name("Block injection (ML)")
|
|
583
|
-
@description("Blocks process_prompt and call_tool when injection_score >= 86.")
|
|
585
|
+
@description("Blocks process_prompt, process_response, and call_tool when injection_score >= 86.")
|
|
584
586
|
@severity("high")
|
|
585
587
|
@tags("category:security,threat:injection,detection:ml,owasp:llm01,mitre:atlas-t0051")
|
|
586
588
|
@reject_message("Prompt blocked: the ML classifier detected prompt injection with high confidence.")
|
|
587
589
|
forbid (
|
|
588
590
|
principal,
|
|
589
|
-
action in [AgentOps::Action::"process_prompt",
|
|
591
|
+
action in [AgentOps::Action::"process_prompt",
|
|
592
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
590
593
|
resource
|
|
591
594
|
)
|
|
592
595
|
when {
|
|
@@ -595,13 +598,13 @@ when {
|
|
|
595
598
|
|
|
596
599
|
@id("security.block-jailbreak-ml")
|
|
597
600
|
@name("Block jailbreak (ML)")
|
|
598
|
-
@description("Blocks process_prompt when jailbreak_score >= 81.")
|
|
601
|
+
@description("Blocks process_prompt and process_response when jailbreak_score >= 81.")
|
|
599
602
|
@severity("high")
|
|
600
603
|
@tags("category:security,threat:jailbreak,detection:ml,owasp:llm02,mitre:atlas-t0054")
|
|
601
604
|
@reject_message("Prompt blocked: the ML classifier detected a jailbreak attempt with high confidence.")
|
|
602
605
|
forbid (
|
|
603
606
|
principal,
|
|
604
|
-
action
|
|
607
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
605
608
|
resource
|
|
606
609
|
)
|
|
607
610
|
when {
|
|
@@ -610,13 +613,13 @@ when {
|
|
|
610
613
|
|
|
611
614
|
@id("security.block-injection-combined")
|
|
612
615
|
@name("Block injection + jailbreak (combined)")
|
|
613
|
-
@description("Blocks process_prompt when injection_score >= 61 and jailbreak_score >= 61.")
|
|
616
|
+
@description("Blocks process_prompt and process_response when injection_score >= 61 and jailbreak_score >= 61.")
|
|
614
617
|
@severity("high")
|
|
615
618
|
@tags("category:security,threat:injection,threat:jailbreak,detection:ml")
|
|
616
619
|
@reject_message("Prompt blocked: moderate injection and jailbreak signals were detected together.")
|
|
617
620
|
forbid (
|
|
618
621
|
principal,
|
|
619
|
-
action
|
|
622
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
620
623
|
resource
|
|
621
624
|
)
|
|
622
625
|
when {
|
|
@@ -626,13 +629,13 @@ when {
|
|
|
626
629
|
|
|
627
630
|
@id("security.block-invisible-chars")
|
|
628
631
|
@name("Block invisible-character injection")
|
|
629
|
-
@description("Blocks process_prompt when invisible_chars_detected is true and invisible_chars_score >= 51.")
|
|
632
|
+
@description("Blocks process_prompt and process_response when invisible_chars_detected is true and invisible_chars_score >= 51.")
|
|
630
633
|
@severity("high")
|
|
631
634
|
@tags("category:security,threat:invisible-chars,threat:injection,detection:pattern")
|
|
632
635
|
@reject_message("Prompt blocked: invisible Unicode characters often used for injection were detected.")
|
|
633
636
|
forbid (
|
|
634
637
|
principal,
|
|
635
|
-
action
|
|
638
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
636
639
|
resource
|
|
637
640
|
)
|
|
638
641
|
when {
|
|
@@ -664,7 +667,8 @@ const AGENT_OPS_PRIVACY_DEFAULTS_CEDAR = `// ===================================
|
|
|
664
667
|
@reject_message("Content blocked: national identifier (SSN, passport, or driver's license) patterns detected.")
|
|
665
668
|
forbid (
|
|
666
669
|
principal,
|
|
667
|
-
action in [AgentOps::Action::"process_prompt",
|
|
670
|
+
action in [AgentOps::Action::"process_prompt",
|
|
671
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
668
672
|
resource
|
|
669
673
|
)
|
|
670
674
|
when {
|
|
@@ -685,7 +689,8 @@ when {
|
|
|
685
689
|
@reject_message("Content blocked: credit card number patterns detected.")
|
|
686
690
|
forbid (
|
|
687
691
|
principal,
|
|
688
|
-
action in [AgentOps::Action::"process_prompt",
|
|
692
|
+
action in [AgentOps::Action::"process_prompt",
|
|
693
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
689
694
|
resource
|
|
690
695
|
)
|
|
691
696
|
when {
|
|
@@ -700,7 +705,8 @@ when {
|
|
|
700
705
|
@reject_message("Content blocked: bank account (IBAN) number patterns detected.")
|
|
701
706
|
forbid (
|
|
702
707
|
principal,
|
|
703
|
-
action in [AgentOps::Action::"process_prompt",
|
|
708
|
+
action in [AgentOps::Action::"process_prompt",
|
|
709
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
704
710
|
resource
|
|
705
711
|
)
|
|
706
712
|
when {
|
|
@@ -721,7 +727,8 @@ when {
|
|
|
721
727
|
@reject_message("Content blocked: medical record identifier patterns detected.")
|
|
722
728
|
forbid (
|
|
723
729
|
principal,
|
|
724
|
-
action in [AgentOps::Action::"process_prompt",
|
|
730
|
+
action in [AgentOps::Action::"process_prompt",
|
|
731
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
725
732
|
resource
|
|
726
733
|
)
|
|
727
734
|
when {
|
|
@@ -744,7 +751,8 @@ when {
|
|
|
744
751
|
@reject_message("Content blocked: tax identifier (ITIN or EIN) patterns detected.")
|
|
745
752
|
forbid (
|
|
746
753
|
principal,
|
|
747
|
-
action in [AgentOps::Action::"process_prompt",
|
|
754
|
+
action in [AgentOps::Action::"process_prompt",
|
|
755
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
748
756
|
resource
|
|
749
757
|
)
|
|
750
758
|
when {
|
|
@@ -764,7 +772,8 @@ when {
|
|
|
764
772
|
@reject_message("Content blocked: credential or API key patterns detected.")
|
|
765
773
|
forbid (
|
|
766
774
|
principal,
|
|
767
|
-
action in [AgentOps::Action::"process_prompt",
|
|
775
|
+
action in [AgentOps::Action::"process_prompt",
|
|
776
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
768
777
|
resource
|
|
769
778
|
)
|
|
770
779
|
when {
|
|
@@ -794,7 +803,8 @@ when {
|
|
|
794
803
|
@reject_message("Content blocked: cryptocurrency wallet address patterns detected.")
|
|
795
804
|
forbid (
|
|
796
805
|
principal,
|
|
797
|
-
action in [AgentOps::Action::"process_prompt",
|
|
806
|
+
action in [AgentOps::Action::"process_prompt",
|
|
807
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
798
808
|
resource
|
|
799
809
|
)
|
|
800
810
|
when {
|
|
@@ -829,7 +839,8 @@ const AGENT_OPS_PRIVACY_PII_MODEL_CEDAR = `// ==================================
|
|
|
829
839
|
@reject_message("Content blocked: national identifier (SSN, passport, or driver's license) patterns detected.")
|
|
830
840
|
forbid (
|
|
831
841
|
principal,
|
|
832
|
-
action in [AgentOps::Action::"process_prompt",
|
|
842
|
+
action in [AgentOps::Action::"process_prompt",
|
|
843
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
833
844
|
resource
|
|
834
845
|
)
|
|
835
846
|
when {
|
|
@@ -844,7 +855,8 @@ when {
|
|
|
844
855
|
@reject_message("Content blocked: credit card number patterns detected.")
|
|
845
856
|
forbid (
|
|
846
857
|
principal,
|
|
847
|
-
action in [AgentOps::Action::"process_prompt",
|
|
858
|
+
action in [AgentOps::Action::"process_prompt",
|
|
859
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
848
860
|
resource
|
|
849
861
|
)
|
|
850
862
|
when {
|
|
@@ -859,7 +871,8 @@ when {
|
|
|
859
871
|
@reject_message("Content blocked: bank account (IBAN) number patterns detected.")
|
|
860
872
|
forbid (
|
|
861
873
|
principal,
|
|
862
|
-
action in [AgentOps::Action::"process_prompt",
|
|
874
|
+
action in [AgentOps::Action::"process_prompt",
|
|
875
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
863
876
|
resource
|
|
864
877
|
)
|
|
865
878
|
when {
|
|
@@ -874,7 +887,8 @@ when {
|
|
|
874
887
|
@reject_message("Content blocked: medical record identifier patterns detected.")
|
|
875
888
|
forbid (
|
|
876
889
|
principal,
|
|
877
|
-
action in [AgentOps::Action::"process_prompt",
|
|
890
|
+
action in [AgentOps::Action::"process_prompt",
|
|
891
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
878
892
|
resource
|
|
879
893
|
)
|
|
880
894
|
when {
|
|
@@ -889,7 +903,8 @@ when {
|
|
|
889
903
|
@reject_message("Content blocked: credential or API key patterns detected.")
|
|
890
904
|
forbid (
|
|
891
905
|
principal,
|
|
892
|
-
action in [AgentOps::Action::"process_prompt",
|
|
906
|
+
action in [AgentOps::Action::"process_prompt",
|
|
907
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
893
908
|
resource
|
|
894
909
|
)
|
|
895
910
|
when {
|
|
@@ -921,13 +936,13 @@ const AGENT_OPS_TRUST_SAFETY_TOXICITY_CEDAR = `// ==============================
|
|
|
921
936
|
|
|
922
937
|
@id("trust-safety.block-toxicity-critical")
|
|
923
938
|
@name("Block critical toxicity")
|
|
924
|
-
@description("Blocks process_prompt when any toxicity score is >= 91.")
|
|
939
|
+
@description("Blocks process_prompt and process_response when any toxicity score is >= 91.")
|
|
925
940
|
@severity("critical")
|
|
926
941
|
@tags("category:trust-safety,threat:harmful,detection:ml,compliance:eu-ai-act,compliance:iso-42001")
|
|
927
942
|
@reject_message("Prompt blocked: critical-severity toxic content detected.")
|
|
928
943
|
forbid (
|
|
929
944
|
principal,
|
|
930
|
-
action
|
|
945
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
931
946
|
resource
|
|
932
947
|
)
|
|
933
948
|
when {
|
|
@@ -941,13 +956,13 @@ when {
|
|
|
941
956
|
|
|
942
957
|
@id("trust-safety.block-toxicity-combined")
|
|
943
958
|
@name("Block combined toxicity")
|
|
944
|
-
@description("Blocks process_prompt when any two toxicity scores are >= 61.")
|
|
959
|
+
@description("Blocks process_prompt and process_response when any two toxicity scores are >= 61.")
|
|
945
960
|
@severity("high")
|
|
946
961
|
@tags("category:trust-safety,threat:harmful,detection:aggregate")
|
|
947
962
|
@reject_message("Prompt blocked: multiple moderate toxicity signals were detected together.")
|
|
948
963
|
forbid (
|
|
949
964
|
principal,
|
|
950
|
-
action
|
|
965
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
951
966
|
resource
|
|
952
967
|
)
|
|
953
968
|
when {
|
|
@@ -1285,7 +1300,7 @@ const AGENT_OPS_SECURITY_PATTERNS_CEDAR = `// ==================================
|
|
|
1285
1300
|
|
|
1286
1301
|
@id("security.block-path-traversal")
|
|
1287
1302
|
@name("Block path traversal")
|
|
1288
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when path_traversal_detected is true and severity is high or critical.")
|
|
1303
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when path_traversal_detected is true and severity is high or critical.")
|
|
1289
1304
|
@severity("high")
|
|
1290
1305
|
@tags("category:security,threat:path-traversal,detection:pattern,mitre:t1005")
|
|
1291
1306
|
@reject_message("Request blocked: path traversal pattern detected — sensitive system files or deep directory traversal.")
|
|
@@ -1293,6 +1308,7 @@ forbid (
|
|
|
1293
1308
|
principal,
|
|
1294
1309
|
action in [
|
|
1295
1310
|
AgentOps::Action::"process_prompt",
|
|
1311
|
+
AgentOps::Action::"process_response",
|
|
1296
1312
|
AgentOps::Action::"call_tool",
|
|
1297
1313
|
AgentOps::Action::"read_file",
|
|
1298
1314
|
AgentOps::Action::"write_file"
|
|
@@ -1307,13 +1323,14 @@ when {
|
|
|
1307
1323
|
|
|
1308
1324
|
@id("security.block-sql-injection")
|
|
1309
1325
|
@name("Block SQL injection")
|
|
1310
|
-
@description("Blocks process_prompt and call_tool when sql_injection_detected is true and sql_injection_score >= 75.")
|
|
1326
|
+
@description("Blocks process_prompt, process_response, and call_tool when sql_injection_detected is true and sql_injection_score >= 75.")
|
|
1311
1327
|
@severity("high")
|
|
1312
1328
|
@tags("category:security,threat:sql-injection,detection:pattern")
|
|
1313
1329
|
@reject_message("Request blocked: SQL injection pattern detected — tautology, UNION attack, or destructive query.")
|
|
1314
1330
|
forbid (
|
|
1315
1331
|
principal,
|
|
1316
|
-
action in [AgentOps::Action::"process_prompt",
|
|
1332
|
+
action in [AgentOps::Action::"process_prompt",
|
|
1333
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
1317
1334
|
resource
|
|
1318
1335
|
)
|
|
1319
1336
|
when {
|
|
@@ -1341,13 +1358,13 @@ const AGENT_OPS_TRUST_SAFETY_SEMANTIC_CEDAR = `// ==============================
|
|
|
1341
1358
|
|
|
1342
1359
|
@id("trust-safety.block-dangerous-topics")
|
|
1343
1360
|
@name("Block dangerous topics")
|
|
1344
|
-
@description("Blocks process_prompt when content_topics contains weapons or explosives categories.")
|
|
1361
|
+
@description("Blocks process_prompt and process_response when content_topics contains weapons or explosives categories.")
|
|
1345
1362
|
@severity("critical")
|
|
1346
1363
|
@tags("category:trust-safety,threat:harmful,detection:ml,compliance:eu-ai-act")
|
|
1347
1364
|
@reject_message("Prompt blocked: content classified under a dangerous topic (weapons, explosives, illegal synthesis).")
|
|
1348
1365
|
forbid (
|
|
1349
1366
|
principal,
|
|
1350
|
-
action
|
|
1367
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
1351
1368
|
resource
|
|
1352
1369
|
)
|
|
1353
1370
|
when {
|
|
@@ -1361,13 +1378,13 @@ when {
|
|
|
1361
1378
|
|
|
1362
1379
|
@id("trust-safety.block-controlled-substances")
|
|
1363
1380
|
@name("Block controlled substances")
|
|
1364
|
-
@description("Blocks process_prompt when content_topics contains controlled substances or precursor chemicals.")
|
|
1381
|
+
@description("Blocks process_prompt and process_response when content_topics contains controlled substances or precursor chemicals.")
|
|
1365
1382
|
@severity("high")
|
|
1366
1383
|
@tags("category:trust-safety,threat:harmful,detection:ml,compliance:eu-ai-act")
|
|
1367
1384
|
@reject_message("Prompt blocked: content discusses controlled substances or precursor chemicals.")
|
|
1368
1385
|
forbid (
|
|
1369
1386
|
principal,
|
|
1370
|
-
action
|
|
1387
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
1371
1388
|
resource
|
|
1372
1389
|
)
|
|
1373
1390
|
when {
|
|
@@ -1381,13 +1398,13 @@ when {
|
|
|
1381
1398
|
|
|
1382
1399
|
@id("trust-safety.block-restricted-topics")
|
|
1383
1400
|
@name("Block high-confidence restricted topics")
|
|
1384
|
-
@description("Blocks process_prompt when topic_confidence >= 81 and content_topics contains a restricted category.")
|
|
1401
|
+
@description("Blocks process_prompt and process_response when topic_confidence >= 81 and content_topics contains a restricted category.")
|
|
1385
1402
|
@severity("high")
|
|
1386
1403
|
@tags("category:trust-safety,threat:harmful,detection:ml")
|
|
1387
1404
|
@reject_message("Prompt blocked: content high-confidence classified into a restricted topic (illegal activity, fraud, social engineering).")
|
|
1388
1405
|
forbid (
|
|
1389
1406
|
principal,
|
|
1390
|
-
action
|
|
1407
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
1391
1408
|
resource
|
|
1392
1409
|
)
|
|
1393
1410
|
when {
|
|
@@ -1489,13 +1506,13 @@ when {
|
|
|
1489
1506
|
|
|
1490
1507
|
@id("agent-identity.block-autonomous-injection")
|
|
1491
1508
|
@name("Block injection on autonomous agents")
|
|
1492
|
-
@description("Blocks process_prompt when agent_type is \\"autonomous\\" and injection_score >= 51.")
|
|
1509
|
+
@description("Blocks process_prompt and process_response when agent_type is \\"autonomous\\" and injection_score >= 51.")
|
|
1493
1510
|
@severity("high")
|
|
1494
|
-
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,owasp:llm01")
|
|
1511
|
+
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,surface:process-response,owasp:llm01")
|
|
1495
1512
|
@reject_message("Prompt blocked: lower injection threshold applies to autonomous agents and was exceeded.")
|
|
1496
1513
|
forbid (
|
|
1497
1514
|
principal is AgentOps::Agent,
|
|
1498
|
-
action
|
|
1515
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
1499
1516
|
resource
|
|
1500
1517
|
)
|
|
1501
1518
|
when {
|
|
@@ -1689,13 +1706,14 @@ const AGENT_OPS_SECURITY_CHAT_ASSISTANT_CEDAR = `// ============================
|
|
|
1689
1706
|
|
|
1690
1707
|
@id("security.chat-block-injection")
|
|
1691
1708
|
@name("Block injection (chat profile)")
|
|
1692
|
-
@description("Blocks process_prompt and call_tool when injection_score >= 71 (lower threshold for public chat).")
|
|
1709
|
+
@description("Blocks process_prompt, process_response, and call_tool when injection_score >= 71 (lower threshold for public chat).")
|
|
1693
1710
|
@severity("high")
|
|
1694
1711
|
@tags("category:security,threat:injection,detection:ml,owasp:llm01")
|
|
1695
1712
|
@reject_message("Prompt blocked: prompt injection detected with high confidence (chat profile).")
|
|
1696
1713
|
forbid (
|
|
1697
1714
|
principal,
|
|
1698
|
-
action in [AgentOps::Action::"process_prompt",
|
|
1715
|
+
action in [AgentOps::Action::"process_prompt",
|
|
1716
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
1699
1717
|
resource
|
|
1700
1718
|
)
|
|
1701
1719
|
when {
|
|
@@ -1704,13 +1722,13 @@ when {
|
|
|
1704
1722
|
|
|
1705
1723
|
@id("security.chat-block-jailbreak")
|
|
1706
1724
|
@name("Block jailbreak (chat profile)")
|
|
1707
|
-
@description("Blocks process_prompt when jailbreak_score >= 66 (lower threshold for public chat).")
|
|
1725
|
+
@description("Blocks process_prompt and process_response when jailbreak_score >= 66 (lower threshold for public chat).")
|
|
1708
1726
|
@severity("high")
|
|
1709
1727
|
@tags("category:security,threat:jailbreak,detection:ml,owasp:llm02")
|
|
1710
1728
|
@reject_message("Prompt blocked: jailbreak attempt detected with high confidence (chat profile).")
|
|
1711
1729
|
forbid (
|
|
1712
1730
|
principal,
|
|
1713
|
-
action
|
|
1731
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
1714
1732
|
resource
|
|
1715
1733
|
)
|
|
1716
1734
|
when {
|
|
@@ -1738,13 +1756,13 @@ const AGENT_OPS_TRUST_SAFETY_CHAT_ASSISTANT_CEDAR = `// ========================
|
|
|
1738
1756
|
|
|
1739
1757
|
@id("trust-safety.chat-block-toxicity")
|
|
1740
1758
|
@name("Block toxicity (chat profile)")
|
|
1741
|
-
@description("Blocks process_prompt when any toxicity score is >= 71 (lower threshold for public chat).")
|
|
1759
|
+
@description("Blocks process_prompt and process_response when any toxicity score is >= 71 (lower threshold for public chat).")
|
|
1742
1760
|
@severity("critical")
|
|
1743
1761
|
@tags("category:trust-safety,threat:harmful,threat:hate-speech,detection:ml,compliance:eu-ai-act")
|
|
1744
1762
|
@reject_message("Prompt blocked: toxic content detected at the chat-profile threshold.")
|
|
1745
1763
|
forbid (
|
|
1746
1764
|
principal,
|
|
1747
|
-
action
|
|
1765
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
1748
1766
|
resource
|
|
1749
1767
|
)
|
|
1750
1768
|
when {
|
|
@@ -1756,13 +1774,14 @@ when {
|
|
|
1756
1774
|
|
|
1757
1775
|
@id("trust-safety.chat-block-restricted-topics")
|
|
1758
1776
|
@name("Block restricted topics (chat profile)")
|
|
1759
|
-
@description("Blocks process_prompt and call_tool when topic_confidence >= 71 and content_topics contains a restricted category.")
|
|
1777
|
+
@description("Blocks process_prompt, process_response, and call_tool when topic_confidence >= 71 and content_topics contains a restricted category.")
|
|
1760
1778
|
@severity("high")
|
|
1761
1779
|
@tags("category:trust-safety,threat:harmful,detection:ml,compliance:eu-ai-act")
|
|
1762
1780
|
@reject_message("Prompt blocked: content discusses a topic restricted for chat assistants.")
|
|
1763
1781
|
forbid (
|
|
1764
1782
|
principal,
|
|
1765
|
-
action in [AgentOps::Action::"process_prompt",
|
|
1783
|
+
action in [AgentOps::Action::"process_prompt",
|
|
1784
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
1766
1785
|
resource
|
|
1767
1786
|
)
|
|
1768
1787
|
when {
|
|
@@ -2272,7 +2291,7 @@ const AGENT_OPS_DATA_PROTECTION_DATA_PIPELINE_CEDAR = `// ======================
|
|
|
2272
2291
|
|
|
2273
2292
|
@id("data-protection.data-pipeline-block-secrets")
|
|
2274
2293
|
@name("Block secrets in data pipeline")
|
|
2275
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secrets_detected is true.")
|
|
2294
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secrets_detected is true.")
|
|
2276
2295
|
@severity("critical")
|
|
2277
2296
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
2278
2297
|
@reject_message("Request blocked: secrets detected in a data pipeline — any credential exposure is unacceptable here.")
|
|
@@ -2280,6 +2299,7 @@ forbid (
|
|
|
2280
2299
|
principal,
|
|
2281
2300
|
action in [
|
|
2282
2301
|
AgentOps::Action::"process_prompt",
|
|
2302
|
+
AgentOps::Action::"process_response",
|
|
2283
2303
|
AgentOps::Action::"call_tool",
|
|
2284
2304
|
AgentOps::Action::"read_file",
|
|
2285
2305
|
AgentOps::Action::"write_file"
|
|
@@ -2325,13 +2345,14 @@ const AGENT_OPS_SECURITY_DATA_PIPELINE_BLOCK_INJECTION_CEDAR = `// =============
|
|
|
2325
2345
|
|
|
2326
2346
|
@id("security.data-pipeline-block-injection")
|
|
2327
2347
|
@name("Block pipeline injection (data-pipeline profile)")
|
|
2328
|
-
@description("Blocks process_prompt and call_tool when injection_score >= 66 (lower threshold for data pipelines).")
|
|
2348
|
+
@description("Blocks process_prompt, process_response, and call_tool when injection_score >= 66 (lower threshold for data pipelines).")
|
|
2329
2349
|
@severity("high")
|
|
2330
2350
|
@tags("category:security,threat:injection,detection:ml,owasp:llm01")
|
|
2331
2351
|
@reject_message("Request blocked: prompt injection detected at the data-pipeline threshold — RAG inputs are high-risk for indirect injection.")
|
|
2332
2352
|
forbid (
|
|
2333
2353
|
principal,
|
|
2334
|
-
action in [AgentOps::Action::"process_prompt",
|
|
2354
|
+
action in [AgentOps::Action::"process_prompt",
|
|
2355
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
2335
2356
|
resource
|
|
2336
2357
|
)
|
|
2337
2358
|
when {
|
|
@@ -2479,13 +2500,13 @@ when {
|
|
|
2479
2500
|
|
|
2480
2501
|
@id("agent-identity.multi-agent-autonomous-injection")
|
|
2481
2502
|
@name("Block injection on autonomous agents (stricter)")
|
|
2482
|
-
@description("Blocks process_prompt when agent_type is \\"autonomous\\" and injection_score >= 51.")
|
|
2503
|
+
@description("Blocks process_prompt and process_response when agent_type is \\"autonomous\\" and injection_score >= 51.")
|
|
2483
2504
|
@severity("high")
|
|
2484
|
-
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,owasp:llm01")
|
|
2505
|
+
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,surface:process-response,owasp:llm01")
|
|
2485
2506
|
@reject_message("Prompt blocked: lower injection threshold applies to autonomous agents and was exceeded.")
|
|
2486
2507
|
forbid (
|
|
2487
2508
|
principal is AgentOps::Agent,
|
|
2488
|
-
action
|
|
2509
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
2489
2510
|
resource
|
|
2490
2511
|
)
|
|
2491
2512
|
when {
|
|
@@ -2495,13 +2516,13 @@ when {
|
|
|
2495
2516
|
|
|
2496
2517
|
@id("agent-identity.multi-agent-autonomous-jailbreak")
|
|
2497
2518
|
@name("Block jailbreak on autonomous agents (stricter)")
|
|
2498
|
-
@description("Blocks process_prompt when agent_type is \\"autonomous\\" and jailbreak_score >= 51.")
|
|
2519
|
+
@description("Blocks process_prompt and process_response when agent_type is \\"autonomous\\" and jailbreak_score >= 51.")
|
|
2499
2520
|
@severity("high")
|
|
2500
|
-
@tags("category:agent-identity,threat:jailbreak,detection:ml,surface:process-prompt,owasp:llm02")
|
|
2521
|
+
@tags("category:agent-identity,threat:jailbreak,detection:ml,surface:process-prompt,surface:process-response,owasp:llm02")
|
|
2501
2522
|
@reject_message("Prompt blocked: lower jailbreak threshold applies to autonomous agents and was exceeded.")
|
|
2502
2523
|
forbid (
|
|
2503
2524
|
principal is AgentOps::Agent,
|
|
2504
|
-
action
|
|
2525
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
2505
2526
|
resource
|
|
2506
2527
|
)
|
|
2507
2528
|
when {
|
|
@@ -2705,13 +2726,14 @@ const AGENT_OPS_AGENT_IDENTITY_A2A_CROSS_ORIGIN_CEDAR = `// ====================
|
|
|
2705
2726
|
|
|
2706
2727
|
@id("agent-identity.a2a-block-cross-origin-critical")
|
|
2707
2728
|
@name("Block critical cross-origin from any agent")
|
|
2708
|
-
@description("Blocks process_prompt and call_tool when cross_origin_detected is true and cross_origin_score >= 80.")
|
|
2729
|
+
@description("Blocks process_prompt, process_response, and call_tool when cross_origin_detected is true and cross_origin_score >= 80.")
|
|
2709
2730
|
@severity("critical")
|
|
2710
2731
|
@tags("category:agent-identity,threat:supply-chain,detection:ml,owasp:llm08")
|
|
2711
2732
|
@reject_message("Request blocked: high-confidence cross-origin trust-boundary violation detected — confused-deputy attack.")
|
|
2712
2733
|
forbid (
|
|
2713
2734
|
principal is AgentOps::Agent,
|
|
2714
|
-
action in [AgentOps::Action::"process_prompt",
|
|
2735
|
+
action in [AgentOps::Action::"process_prompt",
|
|
2736
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
2715
2737
|
resource
|
|
2716
2738
|
)
|
|
2717
2739
|
when {
|
|
@@ -2722,13 +2744,14 @@ when {
|
|
|
2722
2744
|
|
|
2723
2745
|
@id("agent-identity.a2a-block-cross-origin-unverified")
|
|
2724
2746
|
@name("Block cross-origin from unverified agents")
|
|
2725
|
-
@description("Blocks process_prompt and call_tool when agent_trust_level is \\"unverified\\", cross_origin_detected is true, and cross_origin_score >= 60.")
|
|
2747
|
+
@description("Blocks process_prompt, process_response, and call_tool when agent_trust_level is \\"unverified\\", cross_origin_detected is true, and cross_origin_score >= 60.")
|
|
2726
2748
|
@severity("high")
|
|
2727
2749
|
@tags("category:agent-identity,threat:supply-chain,scope:per-agent,detection:ml,owasp:asi03")
|
|
2728
2750
|
@reject_message("Request blocked: unverified agent attempted cross-origin activity — no trust attestation across trust domains.")
|
|
2729
2751
|
forbid (
|
|
2730
2752
|
principal is AgentOps::Agent,
|
|
2731
|
-
action in [AgentOps::Action::"process_prompt",
|
|
2753
|
+
action in [AgentOps::Action::"process_prompt",
|
|
2754
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
2732
2755
|
resource
|
|
2733
2756
|
)
|
|
2734
2757
|
when {
|
|
@@ -2840,13 +2863,13 @@ when {
|
|
|
2840
2863
|
|
|
2841
2864
|
@id("agent-identity.a2a-block-deep-context-injection")
|
|
2842
2865
|
@name("Block multi-turn progressive injection")
|
|
2843
|
-
@description("Blocks process_prompt when agent_trust_level is not \\"first_party\\", multi_turn_detection is true, and injection_deep_context_score >= 60.")
|
|
2866
|
+
@description("Blocks process_prompt and process_response when agent_trust_level is not \\"first_party\\", multi_turn_detection is true, and injection_deep_context_score >= 60.")
|
|
2844
2867
|
@severity("high")
|
|
2845
|
-
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,owasp:llm01")
|
|
2868
|
+
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,surface:process-response,owasp:llm01")
|
|
2846
2869
|
@reject_message("Prompt blocked: multi-turn progressive injection detected by the deep-context model across conversation history.")
|
|
2847
2870
|
forbid (
|
|
2848
2871
|
principal is AgentOps::Agent,
|
|
2849
|
-
action
|
|
2872
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
2850
2873
|
resource
|
|
2851
2874
|
)
|
|
2852
2875
|
when {
|
|
@@ -2857,13 +2880,13 @@ when {
|
|
|
2857
2880
|
|
|
2858
2881
|
@id("agent-identity.a2a-block-deep-context-jailbreak")
|
|
2859
2882
|
@name("Block multi-turn progressive jailbreak")
|
|
2860
|
-
@description("Blocks process_prompt when agent_trust_level is not \\"first_party\\", multi_turn_detection is true, and jailbreak_deep_context_score >= 60.")
|
|
2883
|
+
@description("Blocks process_prompt and process_response when agent_trust_level is not \\"first_party\\", multi_turn_detection is true, and jailbreak_deep_context_score >= 60.")
|
|
2861
2884
|
@severity("high")
|
|
2862
|
-
@tags("category:agent-identity,threat:jailbreak,detection:ml,surface:process-prompt,owasp:llm02")
|
|
2885
|
+
@tags("category:agent-identity,threat:jailbreak,detection:ml,surface:process-prompt,surface:process-response,owasp:llm02")
|
|
2863
2886
|
@reject_message("Prompt blocked: multi-turn progressive jailbreak detected by the deep-context model across conversation history.")
|
|
2864
2887
|
forbid (
|
|
2865
2888
|
principal is AgentOps::Agent,
|
|
2866
|
-
action
|
|
2889
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
2867
2890
|
resource
|
|
2868
2891
|
)
|
|
2869
2892
|
when {
|
|
@@ -2878,13 +2901,14 @@ when {
|
|
|
2878
2901
|
|
|
2879
2902
|
@id("agent-identity.a2a-block-encoded-injection")
|
|
2880
2903
|
@name("Block encoded payload delivery between agents")
|
|
2881
|
-
@description("Blocks process_prompt and call_tool when agent_id is non-empty, encoded_content_detected is true, and encoded_score >= 60.")
|
|
2904
|
+
@description("Blocks process_prompt, process_response, and call_tool when agent_id is non-empty, encoded_content_detected is true, and encoded_score >= 60.")
|
|
2882
2905
|
@severity("high")
|
|
2883
2906
|
@tags("category:agent-identity,threat:encoded-payload,detection:pattern,owasp:llm01")
|
|
2884
2907
|
@reject_message("Request blocked: encoded payload detected in agent communication — agents should exchange plaintext, not encoded content.")
|
|
2885
2908
|
forbid (
|
|
2886
2909
|
principal is AgentOps::Agent,
|
|
2887
|
-
action in [AgentOps::Action::"process_prompt",
|
|
2910
|
+
action in [AgentOps::Action::"process_prompt",
|
|
2911
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
2888
2912
|
resource
|
|
2889
2913
|
)
|
|
2890
2914
|
when {
|
|
@@ -3126,13 +3150,14 @@ const AGENT_OPS_AGENT_IDENTITY_A2A_ESCALATION_CEDAR = `// ======================
|
|
|
3126
3150
|
|
|
3127
3151
|
@id("agent-identity.a2a-block-session-injection-peak")
|
|
3128
3152
|
@name("Block agents at high session injection peak")
|
|
3129
|
-
@description("Blocks call_tool and process_prompt when agent_trust_level is not \\"first_party\\" and session_max_injection_score >= 70.")
|
|
3153
|
+
@description("Blocks call_tool and process_prompt and process_response when agent_trust_level is not \\"first_party\\" and session_max_injection_score >= 70.")
|
|
3130
3154
|
@severity("critical")
|
|
3131
3155
|
@tags("category:agent-identity,threat:injection,scope:per-agent,detection:aggregate,owasp:llm01")
|
|
3132
3156
|
@reject_message("Request blocked: this session previously crossed the injection peak threshold; non-first-party agents are restricted.")
|
|
3133
3157
|
forbid (
|
|
3134
3158
|
principal is AgentOps::Agent,
|
|
3135
|
-
action in [AgentOps::Action::"call_tool", AgentOps::Action::"process_prompt"
|
|
3159
|
+
action in [AgentOps::Action::"call_tool", AgentOps::Action::"process_prompt",
|
|
3160
|
+
AgentOps::Action::"process_response"],
|
|
3136
3161
|
resource
|
|
3137
3162
|
)
|
|
3138
3163
|
when {
|
|
@@ -3142,13 +3167,13 @@ when {
|
|
|
3142
3167
|
|
|
3143
3168
|
@id("agent-identity.a2a-block-session-jailbreak-peak")
|
|
3144
3169
|
@name("Block agents at high session jailbreak peak")
|
|
3145
|
-
@description("Blocks process_prompt when agent_trust_level is not \\"first_party\\" and session_max_jailbreak_score >= 70.")
|
|
3170
|
+
@description("Blocks process_prompt and process_response when agent_trust_level is not \\"first_party\\" and session_max_jailbreak_score >= 70.")
|
|
3146
3171
|
@severity("critical")
|
|
3147
3172
|
@tags("category:agent-identity,threat:jailbreak,scope:per-agent,detection:aggregate,owasp:llm02")
|
|
3148
3173
|
@reject_message("Request blocked: this session previously crossed the jailbreak peak threshold; non-first-party agents are restricted.")
|
|
3149
3174
|
forbid (
|
|
3150
3175
|
principal is AgentOps::Agent,
|
|
3151
|
-
action
|
|
3176
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
3152
3177
|
resource
|
|
3153
3178
|
)
|
|
3154
3179
|
when {
|
|
@@ -3217,7 +3242,7 @@ const AGENT_OPS_DATA_PROTECTION_ADVANCED_SECRETS_CEDAR = `// ===================
|
|
|
3217
3242
|
|
|
3218
3243
|
@id("data-protection.advanced-block-high-risk-secrets")
|
|
3219
3244
|
@name("Block high-risk credential types")
|
|
3220
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secret_types contains a cloud, GitHub, SSH, or database credential.")
|
|
3245
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secret_types contains a cloud, GitHub, SSH, or database credential.")
|
|
3221
3246
|
@severity("critical")
|
|
3222
3247
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
3223
3248
|
@reject_message("Content blocked: high-risk credentials detected (cloud keys, GitHub tokens, SSH keys, or database URLs).")
|
|
@@ -3225,6 +3250,7 @@ forbid (
|
|
|
3225
3250
|
principal,
|
|
3226
3251
|
action in [
|
|
3227
3252
|
AgentOps::Action::"process_prompt",
|
|
3253
|
+
AgentOps::Action::"process_response",
|
|
3228
3254
|
AgentOps::Action::"call_tool",
|
|
3229
3255
|
AgentOps::Action::"read_file",
|
|
3230
3256
|
AgentOps::Action::"write_file"
|
|
@@ -3247,7 +3273,7 @@ when {
|
|
|
3247
3273
|
|
|
3248
3274
|
@id("data-protection.advanced-block-api-tokens")
|
|
3249
3275
|
@name("Block API keys and bearer tokens")
|
|
3250
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secret_types contains api_key, bearer_token, jwt_token, or OAuth credentials.")
|
|
3276
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secret_types contains api_key, bearer_token, jwt_token, or OAuth credentials.")
|
|
3251
3277
|
@severity("high")
|
|
3252
3278
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
3253
3279
|
@reject_message("Content blocked: API keys, bearer tokens, or OAuth credentials detected.")
|
|
@@ -3255,6 +3281,7 @@ forbid (
|
|
|
3255
3281
|
principal,
|
|
3256
3282
|
action in [
|
|
3257
3283
|
AgentOps::Action::"process_prompt",
|
|
3284
|
+
AgentOps::Action::"process_response",
|
|
3258
3285
|
AgentOps::Action::"call_tool",
|
|
3259
3286
|
AgentOps::Action::"read_file",
|
|
3260
3287
|
AgentOps::Action::"write_file"
|
|
@@ -3296,7 +3323,8 @@ const AGENT_OPS_PRIVACY_ADVANCED_PII_CEDAR = `// ===============================
|
|
|
3296
3323
|
@reject_message("Content blocked: national identifier (SSN, passport, or driver's license) patterns detected.")
|
|
3297
3324
|
forbid (
|
|
3298
3325
|
principal,
|
|
3299
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3326
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3327
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3300
3328
|
resource
|
|
3301
3329
|
)
|
|
3302
3330
|
when {
|
|
@@ -3318,7 +3346,8 @@ when {
|
|
|
3318
3346
|
@reject_message("Content blocked: credit card number patterns detected.")
|
|
3319
3347
|
forbid (
|
|
3320
3348
|
principal,
|
|
3321
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3349
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3350
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3322
3351
|
resource
|
|
3323
3352
|
)
|
|
3324
3353
|
when {
|
|
@@ -3337,7 +3366,8 @@ when {
|
|
|
3337
3366
|
@reject_message("Content blocked: bank account (IBAN) number patterns detected.")
|
|
3338
3367
|
forbid (
|
|
3339
3368
|
principal,
|
|
3340
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3369
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3370
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3341
3371
|
resource
|
|
3342
3372
|
)
|
|
3343
3373
|
when {
|
|
@@ -3359,7 +3389,8 @@ when {
|
|
|
3359
3389
|
@reject_message("Content blocked: medical record identifier patterns detected.")
|
|
3360
3390
|
forbid (
|
|
3361
3391
|
principal,
|
|
3362
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3392
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3393
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3363
3394
|
resource
|
|
3364
3395
|
)
|
|
3365
3396
|
when {
|
|
@@ -3383,7 +3414,8 @@ when {
|
|
|
3383
3414
|
@reject_message("Content blocked: tax identifier (ITIN or EIN) patterns detected.")
|
|
3384
3415
|
forbid (
|
|
3385
3416
|
principal,
|
|
3386
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3417
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3418
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3387
3419
|
resource
|
|
3388
3420
|
)
|
|
3389
3421
|
when {
|
|
@@ -3403,7 +3435,8 @@ when {
|
|
|
3403
3435
|
@reject_message("Content blocked: credential or API key patterns detected.")
|
|
3404
3436
|
forbid (
|
|
3405
3437
|
principal,
|
|
3406
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3438
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3439
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3407
3440
|
resource
|
|
3408
3441
|
)
|
|
3409
3442
|
when {
|
|
@@ -3434,7 +3467,8 @@ when {
|
|
|
3434
3467
|
@reject_message("Content blocked: cryptocurrency wallet address patterns detected.")
|
|
3435
3468
|
forbid (
|
|
3436
3469
|
principal,
|
|
3437
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3470
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3471
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3438
3472
|
resource
|
|
3439
3473
|
)
|
|
3440
3474
|
when {
|
|
@@ -3453,7 +3487,8 @@ when {
|
|
|
3453
3487
|
@reject_message("Content blocked: personal name patterns detected.")
|
|
3454
3488
|
forbid (
|
|
3455
3489
|
principal,
|
|
3456
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3490
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3491
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3457
3492
|
resource
|
|
3458
3493
|
)
|
|
3459
3494
|
when {
|
|
@@ -3472,7 +3507,8 @@ when {
|
|
|
3472
3507
|
@reject_message("Content blocked: email address patterns detected.")
|
|
3473
3508
|
forbid (
|
|
3474
3509
|
principal,
|
|
3475
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3510
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3511
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3476
3512
|
resource
|
|
3477
3513
|
)
|
|
3478
3514
|
when {
|
|
@@ -3491,7 +3527,8 @@ when {
|
|
|
3491
3527
|
@reject_message("Content blocked: phone number patterns detected.")
|
|
3492
3528
|
forbid (
|
|
3493
3529
|
principal,
|
|
3494
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3530
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3531
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3495
3532
|
resource
|
|
3496
3533
|
)
|
|
3497
3534
|
when {
|
|
@@ -3510,7 +3547,8 @@ when {
|
|
|
3510
3547
|
@reject_message("Content blocked: date or time patterns detected.")
|
|
3511
3548
|
forbid (
|
|
3512
3549
|
principal,
|
|
3513
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3550
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3551
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3514
3552
|
resource
|
|
3515
3553
|
)
|
|
3516
3554
|
when {
|
|
@@ -3532,7 +3570,8 @@ when {
|
|
|
3532
3570
|
@reject_message("Content blocked: URL patterns detected.")
|
|
3533
3571
|
forbid (
|
|
3534
3572
|
principal,
|
|
3535
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3573
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3574
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3536
3575
|
resource
|
|
3537
3576
|
)
|
|
3538
3577
|
when {
|
|
@@ -3551,7 +3590,8 @@ when {
|
|
|
3551
3590
|
@reject_message("Content blocked: street address or location patterns detected.")
|
|
3552
3591
|
forbid (
|
|
3553
3592
|
principal,
|
|
3554
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3593
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3594
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3555
3595
|
resource
|
|
3556
3596
|
)
|
|
3557
3597
|
when {
|
|
@@ -3572,7 +3612,8 @@ when {
|
|
|
3572
3612
|
@reject_message("Content blocked: organization name patterns detected.")
|
|
3573
3613
|
forbid (
|
|
3574
3614
|
principal,
|
|
3575
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3615
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3616
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3576
3617
|
resource
|
|
3577
3618
|
)
|
|
3578
3619
|
when {
|
|
@@ -3591,7 +3632,8 @@ when {
|
|
|
3591
3632
|
@reject_message("Content blocked: occupation patterns detected.")
|
|
3592
3633
|
forbid (
|
|
3593
3634
|
principal,
|
|
3594
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3635
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3636
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3595
3637
|
resource
|
|
3596
3638
|
)
|
|
3597
3639
|
when {
|
|
@@ -3610,7 +3652,8 @@ when {
|
|
|
3610
3652
|
@reject_message("Content blocked: username patterns detected.")
|
|
3611
3653
|
forbid (
|
|
3612
3654
|
principal,
|
|
3613
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3655
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3656
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3614
3657
|
resource
|
|
3615
3658
|
)
|
|
3616
3659
|
when {
|
|
@@ -3629,7 +3672,8 @@ when {
|
|
|
3629
3672
|
@reject_message("Content blocked: employee or customer identifier patterns detected.")
|
|
3630
3673
|
forbid (
|
|
3631
3674
|
principal,
|
|
3632
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3675
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3676
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3633
3677
|
resource
|
|
3634
3678
|
)
|
|
3635
3679
|
when {
|
|
@@ -3650,7 +3694,8 @@ when {
|
|
|
3650
3694
|
@reject_message("Content blocked: device or network identifier patterns detected.")
|
|
3651
3695
|
forbid (
|
|
3652
3696
|
principal,
|
|
3653
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3697
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3698
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3654
3699
|
resource
|
|
3655
3700
|
)
|
|
3656
3701
|
when {
|
|
@@ -3677,7 +3722,8 @@ when {
|
|
|
3677
3722
|
@reject_message("Content blocked: vehicle identifier (VIN or plate) patterns detected.")
|
|
3678
3723
|
forbid (
|
|
3679
3724
|
principal,
|
|
3680
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3725
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3726
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3681
3727
|
resource
|
|
3682
3728
|
)
|
|
3683
3729
|
when {
|
|
@@ -3697,7 +3743,8 @@ when {
|
|
|
3697
3743
|
@reject_message("Content blocked: salary or financial amount patterns detected.")
|
|
3698
3744
|
forbid (
|
|
3699
3745
|
principal,
|
|
3700
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3746
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3747
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3701
3748
|
resource
|
|
3702
3749
|
)
|
|
3703
3750
|
when {
|
|
@@ -3718,7 +3765,8 @@ when {
|
|
|
3718
3765
|
@reject_message("Content blocked: sensitive attribute (ethnicity, religion, etc.) patterns detected.")
|
|
3719
3766
|
forbid (
|
|
3720
3767
|
principal,
|
|
3721
|
-
action in [AgentOps::Action::"process_prompt",
|
|
3768
|
+
action in [AgentOps::Action::"process_prompt",
|
|
3769
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool", AgentOps::Action::"read_file", AgentOps::Action::"write_file"],
|
|
3722
3770
|
resource
|
|
3723
3771
|
)
|
|
3724
3772
|
when {
|
|
@@ -3756,13 +3804,13 @@ const AGENT_OPS_SECURITY_ADVANCED_BLOCK_CRITICAL_SEVERITY_CEDAR = `// ==========
|
|
|
3756
3804
|
|
|
3757
3805
|
@id("security.advanced-block-critical-severity")
|
|
3758
3806
|
@name("Block critical-severity threats")
|
|
3759
|
-
@description("Blocks process_prompt when highest_severity equals \\"critical\\".")
|
|
3807
|
+
@description("Blocks process_prompt and process_response when highest_severity equals \\"critical\\".")
|
|
3760
3808
|
@severity("critical")
|
|
3761
|
-
@tags("category:security,detection:aggregate,surface:process-prompt,posture:catch-all,compliance:nist-si-3")
|
|
3809
|
+
@tags("category:security,detection:aggregate,surface:process-prompt,surface:process-response,posture:catch-all,compliance:nist-si-3")
|
|
3762
3810
|
@reject_message("Prompt blocked: a critical-severity threat was reported by at least one detector.")
|
|
3763
3811
|
forbid (
|
|
3764
3812
|
principal,
|
|
3765
|
-
action
|
|
3813
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
3766
3814
|
resource
|
|
3767
3815
|
)
|
|
3768
3816
|
when {
|
|
@@ -3942,13 +3990,13 @@ when {
|
|
|
3942
3990
|
|
|
3943
3991
|
@id("semantic.block-sql-injection-prompt")
|
|
3944
3992
|
@name("Block SQL injection in prompts")
|
|
3945
|
-
@description("Blocks process_prompt when detected_threats contains \\"sql_injection\\".")
|
|
3993
|
+
@description("Blocks process_prompt and process_response when detected_threats contains \\"sql_injection\\".")
|
|
3946
3994
|
@severity("high")
|
|
3947
|
-
@tags("category:semantic,threat:sql-injection,detection:pattern,surface:process-prompt")
|
|
3995
|
+
@tags("category:semantic,threat:sql-injection,detection:pattern,surface:process-prompt,surface:process-response")
|
|
3948
3996
|
@reject_message("Prompt blocked: SQL injection pattern detected.")
|
|
3949
3997
|
forbid (
|
|
3950
3998
|
principal,
|
|
3951
|
-
action
|
|
3999
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
3952
4000
|
resource
|
|
3953
4001
|
)
|
|
3954
4002
|
when {
|
|
@@ -3991,13 +4039,14 @@ when {
|
|
|
3991
4039
|
|
|
3992
4040
|
@id("semantic.block-injection-ml")
|
|
3993
4041
|
@name("Block injection (ML)")
|
|
3994
|
-
@description("Blocks process_prompt and call_tool when injection_score >= 75.")
|
|
4042
|
+
@description("Blocks process_prompt, process_response, and call_tool when injection_score >= 75.")
|
|
3995
4043
|
@severity("critical")
|
|
3996
4044
|
@tags("category:semantic,threat:injection,detection:ml,owasp:llm01,mitre:atlas-t0051")
|
|
3997
4045
|
@reject_message("Request blocked: prompt injection detected by ML classifier with high confidence.")
|
|
3998
4046
|
forbid (
|
|
3999
4047
|
principal,
|
|
4000
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4048
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4049
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4001
4050
|
resource
|
|
4002
4051
|
)
|
|
4003
4052
|
when {
|
|
@@ -4006,13 +4055,14 @@ when {
|
|
|
4006
4055
|
|
|
4007
4056
|
@id("semantic.block-jailbreak-ml")
|
|
4008
4057
|
@name("Block jailbreak (ML)")
|
|
4009
|
-
@description("Blocks process_prompt and call_tool when jailbreak_score >= 75.")
|
|
4058
|
+
@description("Blocks process_prompt, process_response, and call_tool when jailbreak_score >= 75.")
|
|
4010
4059
|
@severity("critical")
|
|
4011
4060
|
@tags("category:semantic,threat:jailbreak,detection:ml,owasp:llm02,mitre:atlas-t0054")
|
|
4012
4061
|
@reject_message("Request blocked: jailbreak attempt detected by ML classifier with high confidence.")
|
|
4013
4062
|
forbid (
|
|
4014
4063
|
principal,
|
|
4015
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4064
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4065
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4016
4066
|
resource
|
|
4017
4067
|
)
|
|
4018
4068
|
when {
|
|
@@ -4043,13 +4093,14 @@ const AGENT_OPS_TRUST_SAFETY_DEFAULTS_CEDAR = `// ==============================
|
|
|
4043
4093
|
|
|
4044
4094
|
@id("trust-safety.block-violence")
|
|
4045
4095
|
@name("Block violent content")
|
|
4046
|
-
@description("Blocks process_prompt and call_tool when violence_score >= 80.")
|
|
4096
|
+
@description("Blocks process_prompt, process_response, and call_tool when violence_score >= 80.")
|
|
4047
4097
|
@severity("critical")
|
|
4048
4098
|
@tags("category:trust-safety,threat:violence,detection:ml,compliance:nist-si-4,compliance:iso-42001")
|
|
4049
4099
|
@reject_message("Content blocked: violent content detected.")
|
|
4050
4100
|
forbid (
|
|
4051
4101
|
principal,
|
|
4052
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4102
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4103
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4053
4104
|
resource
|
|
4054
4105
|
)
|
|
4055
4106
|
when {
|
|
@@ -4058,13 +4109,14 @@ when {
|
|
|
4058
4109
|
|
|
4059
4110
|
@id("trust-safety.block-weapons")
|
|
4060
4111
|
@name("Block weapons content")
|
|
4061
|
-
@description("Blocks process_prompt and call_tool when weapons_score >= 80.")
|
|
4112
|
+
@description("Blocks process_prompt, process_response, and call_tool when weapons_score >= 80.")
|
|
4062
4113
|
@severity("critical")
|
|
4063
4114
|
@tags("category:trust-safety,threat:weapons,detection:ml,compliance:nist-si-4")
|
|
4064
4115
|
@reject_message("Content blocked: weapons-related content detected (manufacturing, procurement, or specifications).")
|
|
4065
4116
|
forbid (
|
|
4066
4117
|
principal,
|
|
4067
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4118
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4119
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4068
4120
|
resource
|
|
4069
4121
|
)
|
|
4070
4122
|
when {
|
|
@@ -4073,13 +4125,14 @@ when {
|
|
|
4073
4125
|
|
|
4074
4126
|
@id("trust-safety.block-hate-speech")
|
|
4075
4127
|
@name("Block hate speech")
|
|
4076
|
-
@description("Blocks process_prompt and call_tool when hate_speech_score >= 75.")
|
|
4128
|
+
@description("Blocks process_prompt, process_response, and call_tool when hate_speech_score >= 75.")
|
|
4077
4129
|
@severity("critical")
|
|
4078
4130
|
@tags("category:trust-safety,threat:hate-speech,detection:ml,compliance:nist-si-4,compliance:eu-ai-act")
|
|
4079
4131
|
@reject_message("Content blocked: hate speech or discriminatory content detected.")
|
|
4080
4132
|
forbid (
|
|
4081
4133
|
principal,
|
|
4082
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4134
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4135
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4083
4136
|
resource
|
|
4084
4137
|
)
|
|
4085
4138
|
when {
|
|
@@ -4088,13 +4141,14 @@ when {
|
|
|
4088
4141
|
|
|
4089
4142
|
@id("trust-safety.block-crime")
|
|
4090
4143
|
@name("Block criminal content")
|
|
4091
|
-
@description("Blocks process_prompt and call_tool when crime_score >= 80.")
|
|
4144
|
+
@description("Blocks process_prompt, process_response, and call_tool when crime_score >= 80.")
|
|
4092
4145
|
@severity("high")
|
|
4093
4146
|
@tags("category:trust-safety,threat:crime,detection:ml,compliance:nist-si-4")
|
|
4094
4147
|
@reject_message("Content blocked: criminal activity content detected (illegal activity, fraud, or related).")
|
|
4095
4148
|
forbid (
|
|
4096
4149
|
principal,
|
|
4097
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4150
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4151
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4098
4152
|
resource
|
|
4099
4153
|
)
|
|
4100
4154
|
when {
|
|
@@ -4103,13 +4157,14 @@ when {
|
|
|
4103
4157
|
|
|
4104
4158
|
@id("trust-safety.block-sexual")
|
|
4105
4159
|
@name("Block sexual content")
|
|
4106
|
-
@description("Blocks process_prompt and call_tool when sexual_score >= 80.")
|
|
4160
|
+
@description("Blocks process_prompt, process_response, and call_tool when sexual_score >= 80.")
|
|
4107
4161
|
@severity("high")
|
|
4108
4162
|
@tags("category:trust-safety,threat:sexual,detection:ml,compliance:eu-ai-act,compliance:iso-42001")
|
|
4109
4163
|
@reject_message("Content blocked: sexually explicit content detected.")
|
|
4110
4164
|
forbid (
|
|
4111
4165
|
principal,
|
|
4112
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4166
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4167
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4113
4168
|
resource
|
|
4114
4169
|
)
|
|
4115
4170
|
when {
|
|
@@ -4118,13 +4173,14 @@ when {
|
|
|
4118
4173
|
|
|
4119
4174
|
@id("trust-safety.block-profanity")
|
|
4120
4175
|
@name("Block excessive profanity")
|
|
4121
|
-
@description("Blocks process_prompt and call_tool when profanity_score >= 90.")
|
|
4176
|
+
@description("Blocks process_prompt, process_response, and call_tool when profanity_score >= 90.")
|
|
4122
4177
|
@severity("medium")
|
|
4123
4178
|
@tags("category:trust-safety,threat:profanity,detection:ml")
|
|
4124
4179
|
@reject_message("Content blocked: excessive profanity detected — please rephrase in professional language.")
|
|
4125
4180
|
forbid (
|
|
4126
4181
|
principal,
|
|
4127
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4182
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4183
|
+
AgentOps::Action::"process_response", AgentOps::Action::"call_tool"],
|
|
4128
4184
|
resource
|
|
4129
4185
|
)
|
|
4130
4186
|
when {
|
|
@@ -4445,12 +4501,13 @@ permit (
|
|
|
4445
4501
|
|
|
4446
4502
|
@id("organization.allow-support-project-read")
|
|
4447
4503
|
@name("Permit support project read-only access")
|
|
4448
|
-
@description("Permits process_prompt and read_file actions on resources scoped to Project::\\"support-project\\".")
|
|
4504
|
+
@description("Permits process_prompt, process_response, and read_file actions on resources scoped to Project::\\"support-project\\".")
|
|
4449
4505
|
@severity("medium")
|
|
4450
4506
|
@tags("category:organization,scope:per-tool,posture:deny-default")
|
|
4451
4507
|
permit (
|
|
4452
4508
|
principal,
|
|
4453
|
-
action in [AgentOps::Action::"process_prompt",
|
|
4509
|
+
action in [AgentOps::Action::"process_prompt",
|
|
4510
|
+
AgentOps::Action::"process_response", AgentOps::Action::"read_file"],
|
|
4454
4511
|
resource in AgentOps::Project::"support-project"
|
|
4455
4512
|
);
|
|
4456
4513
|
`;
|
|
@@ -4474,11 +4531,11 @@ const AGENT_OPS_AGENT_IDENTITY_CLAUDE_BLOCK_INJECTION_CEDAR = `// ==============
|
|
|
4474
4531
|
@name("Block injection on Claude agent")
|
|
4475
4532
|
@description("Blocks process_prompt for the Claude agent when detected_threats contains \\"prompt_injection\\".")
|
|
4476
4533
|
@severity("critical")
|
|
4477
|
-
@tags("category:agent-identity,threat:injection,scope:per-agent,detection:rule,surface:process-prompt,owasp:llm01")
|
|
4534
|
+
@tags("category:agent-identity,threat:injection,scope:per-agent,detection:rule,surface:process-prompt,surface:process-response,owasp:llm01")
|
|
4478
4535
|
@reject_message("Prompt blocked: prompt injection detected for the Claude agent.")
|
|
4479
4536
|
forbid (
|
|
4480
4537
|
principal == AgentOps::Agent::"claude",
|
|
4481
|
-
action
|
|
4538
|
+
action in [AgentOps::Action::"process_prompt", AgentOps::Action::"process_response"],
|
|
4482
4539
|
resource
|
|
4483
4540
|
)
|
|
4484
4541
|
when {
|