mwill20/ai-guardrails

Python

0

23 commits

updated Jan 22, 2026

See the code

README

AI Guardrails Logo

AI Guardrails System

An ongoing project building a production-grade, multi-layered prompt security system combining deterministic OWASP patterns, semantic ML-based detection, and policy enforcement to protect AI/Agentic Systems from prompt injection and jailbreak attacks.

Project Status: Active development | Phase 4 in progress
Focus: Systematic security engineering methodology with measurement-driven decisions

πŸ“ Project Structure

Guardrails/
β”œβ”€β”€ src/                              # Core guardrail modules
β”‚   β”œβ”€β”€ Deterministic_Guardrails.py   # OWASP Top 10 LLM pattern detection
β”‚   └── OWASP_Pipeline_Guardrail.py   # Main pipeline combining layers
β”‚
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ evaluation/                   # Evaluation scripts
β”‚   β”‚   β”œβ”€β”€ Eval_Clean_Benign_Corpus.py
β”‚   β”‚   β”œβ”€β”€ Eval.py
β”‚   β”‚   └── Benchmark_ProtectAI.py
β”‚   β”œβ”€β”€ analysis/                     # Dataset and model analysis
β”‚   β”‚   β”œβ”€β”€ Analyze_Dataset_Contamination.py
β”‚   β”‚   β”œβ”€β”€ Analyze_ProtectAI_FP.py
β”‚   β”‚   β”œβ”€β”€ Analyze_True_FPR.py
β”‚   β”‚   β”œβ”€β”€ Inspect_TrustAIR_Regular.py
β”‚   β”‚   └── Debug_Probability_Check.py
β”‚   └── testing/                      # Model testing scripts
β”‚       β”œβ”€β”€ Test_Alternative_Models.py
β”‚       └── Test_Benign_Blocking.py
β”‚
β”œβ”€β”€ datasets/                         # Test datasets
β”‚   └── Clean_Benign_Corpus_v1.jsonl  # 200 vetted benign prompts
β”‚
β”œβ”€β”€ reports/                          # Latest evaluation results
β”‚   β”œβ”€β”€ clean_corpus_eval_full_*.json
β”‚   β”œβ”€β”€ clean_corpus_eval_summary_*.json
β”‚   └── Clean_Benign_Blocked_For_Review.jsonl
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ planning/                     # Strategic planning documents
β”‚   β”‚   β”œβ”€β”€ AI_Guardrail_NorthStar (1).md
β”‚   β”‚   β”œβ”€β”€ Guardrail_Mastery_Ladder (1).md
β”‚   β”‚   β”œβ”€β”€ Model_Size_and_FineTuning_Requirements.md
β”‚   β”‚   β”œβ”€β”€ PROMPT_Build_Benign_Corpus.md
β”‚   β”‚   β”œβ”€β”€ Phase_2_LLM_Enhanced_FULL.md
β”‚   β”‚   β”œβ”€β”€ Phase_4_Sanitization_Enrichment_FULL.md
β”‚   β”‚   β”œβ”€β”€ Phase_4_Execution_Checklist.md
β”‚   β”‚   β”œβ”€β”€ PROJECT_ROADMAP.md
β”‚   β”‚   β”œβ”€β”€ PROJECT_ORGANIZATION.md
β”‚   β”‚   └── QUICK_REFERENCE.md
β”‚   └── reports/                      # Work logs and analysis reports
β”‚       β”œβ”€β”€ WORK_LOG_Phase2_Semantic_Model_Selection.md
β”‚       β”œβ”€β”€ STRATEGIC_ANALYSIS_FPR_And_Next_Steps.md
β”‚       β”œβ”€β”€ ACTION_PLAN_Phase_2_5_Next_Steps.md  # legacy filename for Phase 3 action plan
β”‚       β”œβ”€β”€ AI_Report_Semantic_Intent_Layer.md
β”‚       └── Clean_Benign_Corpus_Evaluation_Report.md
β”‚
└── archive/                          # Historical evaluation results
    └── old_evals/

🎯 Project Status & Roadmap

Current Phase: 4 - Deterministic Enrichment πŸ”„

Objective: Improve xTRam1 TPR from 25.4% β†’ β‰₯40% by adding pattern-based detection rules discovered through systematic evaluation log analysis.

Approach:

  • Extract attack patterns from false negative prompts (evaluation logs)
  • Rank patterns by priority score (FN coverage vs FP risk)
  • Implement deterministic detection functions with signal strength scoring
  • Maintain FPR ≀2.0% (Gate A) while lifting mean TPR to β‰₯71% (Gate B)

Completed Phases

βœ… Phase 1: Deterministic Guardrails (OWASP-Aligned)

  • 5-stage pipeline: ingestion β†’ classification β†’ sanitization β†’ logging β†’ policy
  • Pattern-based detection (keywords, regex) for known attack types
  • Risk classification: low/medium/high/critical
  • Result: Fast, explainable baseline defense layer

βœ… Phase 2: Semantic Guardrails (ML-Based Detection)

  • Problem: Initial model (madhurjindal) had 93.6% FPR
  • Solution: Systematic benchmarking β†’ switched to ProtectAI deberta-v3-base-prompt-injection-v2
  • Achievement: 92.6pp FPR improvement (93.6% β†’ 1.0%)
  • Current Metrics:
    • True FPR: 1.0% (2/200 clean prompts blocked)
    • Mean TPR: 66.6% across attack datasets
    • Core Use Cases FPR: 0% (160/160 passed)

βœ… Phase 3: Clean Corpus Validation

  • Built Clean_Benign_Corpus_v1 (200 vetted prompts across 8 categories)
  • Discovered TrustAIRLab "benign" dataset contamination
  • Validated 1.0% FPR on production-representative prompts
  • Decision: Deferred semantic intent layer to Phase 6 (cost/benefit analysis)

πŸš€ Quick Start

Running Evaluations

# Evaluate on clean benign corpus
python scripts/evaluation/Eval_Clean_Benign_Corpus.py

# Benchmark ProtectAI model
python scripts/evaluation/Benchmark_ProtectAI.py

# Run general evaluation
python scripts/evaluation/Eval.py

Running Analysis

# Analyze dataset contamination
python scripts/analysis/Analyze_Dataset_Contamination.py

# Inspect TrustAIR Regular dataset
python scripts/analysis/Inspect_TrustAIR_Regular.py

# Analyze false positive patterns
python scripts/analysis/Analyze_ProtectAI_FP.py

Testing Alternative Models

# Test different semantic models
python scripts/testing/Test_Alternative_Models.py

# Test benign prompt blocking
python scripts/testing/Test_Benign_Blocking.py

πŸ“Š Key Results

Clean Benign Corpus Evaluation (Latest)

MetricValue
Total Prompts200
Blocked (False Positives)2 (1.0%)
Allowed (True Negatives)198 (99.0%)
Core Use Cases FPR0% (160/160 passed)
Edge Cases FPR10% (2/20 blocked)

Model Comparison

ModelFPR (TrustAIRLab)FPR (Clean Corpus)Improvement
madhurjindal/prompt-injection-v293.6%~95% (est.)Baseline
ProtectAI deberta-v3-base24.2%1.0%92.6 pp

Attack Detection (TPR)

DatasetTPR
TrustAIRLab Jailbreak100%
TrustAIRLab xTRam125.4%
xTRam2100%
DarkWeb Queries100%
Mean TPR66.6%

πŸ” Architecture

Three-Layer Defense-in-Depth

  1. Deterministic Layer (Phase 1 + 4 Enhancement)

    • OWASP Top 10 LLM patterns (Phase 1 baseline)
    • Evidence-based attack patterns from eval logs (Phase 4)
    • Signal strength scoring: weak (boundary testing) vs strong (system markers, control phrases)
    • Fast (<10ms), explainable, zero ML cost
  2. Semantic Layer (Phase 2)

    • ProtectAI deberta-v3-base-prompt-injection-v2
    • ML-based intent classification for novel attacks
    • Handles obfuscation, paraphrasing, multi-turn attacks
  3. Policy Layer (Planned Phase 7+)

    • Layer precedence enforcement (safety ratchet: deterministic escalates, never downgrades)
    • No silent allow invariant (explicit ALLOW/SANITIZE/BLOCK required)
    • Context-aware decisions (user roles, sensitivity levels)

Risk Scoring & Signal Combination

Deterministic Signals (Phase 4):

  • Score 3 (any category) β†’ high_risk
  • Score 2+2 (two strong signals) β†’ high_risk
  • Score 2+1 (strong + weak) β†’ medium_risk
  • Score 1 alone (weak only) β†’ low_risk (NO escalation)
  • Score 0 (none) β†’ low_risk

Final Risk Levels:

  • Low Risk: Allowed, logged
  • Medium Risk: Allowed with warning, enhanced logging
  • High Risk: Blocked, detailed logging, security team alert
  • Critical Risk: Blocked, immediate escalation, forensic capture

πŸ“ Key Documentation

Planning Documents

  • AI_Guardrail_NorthStar: Overall system vision and goals
  • Guardrail_Mastery_Ladder: Progressive improvement roadmap
  • Phase_4_Execution_Checklist: Deterministic enrichment execution checklist
  • Phase_4_Sanitization_Enrichment_FULL: Phase 4 specification

Reports

  • WORK_LOG_Phase2_Semantic_Model_Selection: Complete history of model selection work
  • Clean_Benign_Corpus_Evaluation_Report: Final evaluation results with 1.0% FPR
  • STRATEGIC_ANALYSIS_FPR_And_Next_Steps: FPR analysis and recommendations
  • Phase 3 action plan (legacy filename: ACTION_PLAN_Phase_2_5_Next_Steps.md): Semantic hardening and clean corpus tasks

🎯 Planned Enhancements

Phase 4: Deterministic Enrichment (Active)

Timeline: 3-5 days | Status: Pattern discovery in progress

  1. Pattern Discovery Pipeline

    • βœ… Schema v1 contract locked (JSONL output with full traceability)
    • βœ… Pattern matching semantics defined (substring/regex/keyword_set)
    • πŸ”„ Extract patterns from FN prompts (5 categories: system_marker, control_phrase, credential_like, boundary_testing, role_confusion)
    • πŸ”„ Compute priority_score = (fn_coverage_rate Γ— 2.0) - (fp_risk_score Γ— 5.0) + (rarity_score Γ— 0.5)
    • πŸ”„ Validate against Clean_Benign_Corpus_v1 (max 1 FP per pattern)
  2. Implementation

    • Create Deterministic_Guardrails_Enhanced.py with 5 detection functions
    • Implement signal combination logic per scoring table
    • Enforce layer precedence (safety ratchet) and no silent allow invariant
    • Unit tests for pattern matching, signal scoring, and layer interaction
  3. Quality Gates

    • Gate A: FPR ≀2.0% on Clean_Benign_Corpus_v1
    • Gate B1: xTRam1 TPR β‰₯40% (baseline 25.4%, +15pp lift)
    • Gate B2: Mean TPR β‰₯71% (baseline 66.6%, +5pp lift)

Phase 5: Adversarial Testing & Red-Teaming (Planned)

Focus: Stress-test both layers against novel attack vectors

  1. Coverage Gap Analysis

    • Document remaining FNs after Phase 4
    • Categorize bypass techniques (obfuscation, encoding, multi-turn)
    • Use HackAPrompt Companion for dynamic attack generation
  2. Obfuscation Defenses

    • Base64/hex decoding preprocessing
    • Multi-language normalization
    • Character substitution detection (l33t speak, homoglyphs)
  3. Code Hardening

    • Robust label normalization (_is_benign_prediction() helper)
    • Structured logging (JSON format with model/pattern IDs)
    • Timeout guards for regex (prevent catastrophic backtracking)

Phase 6: Semantic Intent Layer (Deferred)

Rationale: Cost/benefit analysis showed unfavorable ROI for 1.0% β†’ 0% FPR improvement

  • LLM-based intent classification for edge cases
  • Explainability enhancements ("why was this blocked?")
  • Conditional activation (only for ambiguous prompts)

Phase 7+: Production Hardening (Future)

  • OWASP AI Top 10 mapping and compliance documentation
  • Reasoning guardrails (tool use governance for agentic systems)
  • Custom linter (meta-guardrail for policy enforcement)
  • Performance optimization (caching, batching, async processing)

πŸ›‘οΈ False Positive Analysis

Blocked Prompts (2/200)

Prompt #181 (edgecase - security education)

  • Text: "Explain what prompt injection is in large language models..."
  • Blocked by: Deterministic pattern (keyword: "prompt injection")
  • Fix: Allowlist educational framing

Prompt #193 (edgecase - creative writing)

  • Text: "Write a short story about an AI in a hospital..."
  • Blocked by: Deterministic pattern (unknown trigger)
  • Fix: Investigate pattern

Analysis: Both blocks are from the deterministic layer, not the semantic model (semantic label stayed benign). ProtectAI v2 semantic model has 0% FPR on clean corpus.

πŸ“¦ Dependencies

pip install transformers torch pandas jsonlines

πŸ”§ Configuration

Core guardrail pipeline located in src/OWASP_Pipeline_Guardrail.py:

from src.OWASP_Pipeline_Guardrail import run_guardrail_pipeline

result = run_guardrail_pipeline(user_prompt)
# Returns: {
#   "combined_risk": "low_risk" | "medium_risk" | "high_risk" | "critical",
#   "semantic_result": {"label": "benign|malicious", "score": float},  # score = normalized jailbreak probability
#   "agent_visible": str,  # Message to show user
#   "log_entry": {...}     # Full logging details
# }

πŸ“ˆ Success Metrics

Phase 3 Achievements βœ…

  • FPR < 5% on clean benign corpus β†’ achieved: 1.0%
  • TPR > 60% on attack datasets β†’ achieved: 66.6%
  • Core use cases: 0% FPR β†’ achieved: 100% (160/160 passed)
  • Production-ready baseline β†’ semantic + deterministic layers validated

Phase 4 Targets 🎯

  • Gate A: FPR ≀2.0% (maintain low false positive rate)
  • Gate B1: xTRam1 TPR β‰₯40.0% (currently 25.4%, need +15pp lift)
  • Gate B2: Mean TPR β‰₯71.0% (currently 66.6%, need +5pp lift)
  • Latency: Deterministic layer <10ms (non-blocking)

🀝 Contributing

This is a learning/portfolio project demonstrating systematic security engineering methodology. Key principles:

  • Measurement-driven decisions (FPR/TPR gates, not vibes)
  • Reproducible artifacts (eval logs, pattern discovery JSONL)
  • Defense-in-depth (multiple layers with clear precedence rules)
  • No silent failures (explicit ALLOW/SANITIZE/BLOCK required)

πŸ“œ License

MIT License - Internal research project for learning and portfolio development

πŸ‘€ Author

Michael Williams

  • Phase 1: Deterministic baseline (OWASP patterns)
  • Phase 2: Semantic layer + model selection (Dec 13, 2025)
  • Phase 3: Clean corpus validation (Dec 13, 2025)
  • Phase 4: Deterministic enrichment (Dec 14-15, 2025) - In Progress

Project Timeline:

  • Started: November 2025
  • Phase 3 Complete: December 13, 2025
  • Phase 4 Active: December 14, 2025
  • Next Milestone: Gate A/B validation (Phase 4 complete)

GitHub: mwill20/ai-guardrails

mwill20/ai-guardrails

Python

0

23 commits

updated Jan 22, 2026

See the code

README

AI Guardrails Logo

AI Guardrails System

An ongoing project building a production-grade, multi-layered prompt security system combining deterministic OWASP patterns, semantic ML-based detection, and policy enforcement to protect AI/Agentic Systems from prompt injection and jailbreak attacks.

Project Status: Active development | Phase 4 in progress
Focus: Systematic security engineering methodology with measurement-driven decisions

πŸ“ Project Structure

Guardrails/
β”œβ”€β”€ src/                              # Core guardrail modules
β”‚   β”œβ”€β”€ Deterministic_Guardrails.py   # OWASP Top 10 LLM pattern detection
β”‚   └── OWASP_Pipeline_Guardrail.py   # Main pipeline combining layers
β”‚
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ evaluation/                   # Evaluation scripts
β”‚   β”‚   β”œβ”€β”€ Eval_Clean_Benign_Corpus.py
β”‚   β”‚   β”œβ”€β”€ Eval.py
β”‚   β”‚   └── Benchmark_ProtectAI.py
β”‚   β”œβ”€β”€ analysis/                     # Dataset and model analysis
β”‚   β”‚   β”œβ”€β”€ Analyze_Dataset_Contamination.py
β”‚   β”‚   β”œβ”€β”€ Analyze_ProtectAI_FP.py
β”‚   β”‚   β”œβ”€β”€ Analyze_True_FPR.py
β”‚   β”‚   β”œβ”€β”€ Inspect_TrustAIR_Regular.py
β”‚   β”‚   └── Debug_Probability_Check.py
β”‚   └── testing/                      # Model testing scripts
β”‚       β”œβ”€β”€ Test_Alternative_Models.py
β”‚       └── Test_Benign_Blocking.py
β”‚
β”œβ”€β”€ datasets/                         # Test datasets
β”‚   └── Clean_Benign_Corpus_v1.jsonl  # 200 vetted benign prompts
β”‚
β”œβ”€β”€ reports/                          # Latest evaluation results
β”‚   β”œβ”€β”€ clean_corpus_eval_full_*.json
β”‚   β”œβ”€β”€ clean_corpus_eval_summary_*.json
β”‚   └── Clean_Benign_Blocked_For_Review.jsonl
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ planning/                     # Strategic planning documents
β”‚   β”‚   β”œβ”€β”€ AI_Guardrail_NorthStar (1).md
β”‚   β”‚   β”œβ”€β”€ Guardrail_Mastery_Ladder (1).md
β”‚   β”‚   β”œβ”€β”€ Model_Size_and_FineTuning_Requirements.md
β”‚   β”‚   β”œβ”€β”€ PROMPT_Build_Benign_Corpus.md
β”‚   β”‚   β”œβ”€β”€ Phase_2_LLM_Enhanced_FULL.md
β”‚   β”‚   β”œβ”€β”€ Phase_4_Sanitization_Enrichment_FULL.md
β”‚   β”‚   β”œβ”€β”€ Phase_4_Execution_Checklist.md
β”‚   β”‚   β”œβ”€β”€ PROJECT_ROADMAP.md
β”‚   β”‚   β”œβ”€β”€ PROJECT_ORGANIZATION.md
β”‚   β”‚   └── QUICK_REFERENCE.md
β”‚   └── reports/                      # Work logs and analysis reports
β”‚       β”œβ”€β”€ WORK_LOG_Phase2_Semantic_Model_Selection.md
β”‚       β”œβ”€β”€ STRATEGIC_ANALYSIS_FPR_And_Next_Steps.md
β”‚       β”œβ”€β”€ ACTION_PLAN_Phase_2_5_Next_Steps.md  # legacy filename for Phase 3 action plan
β”‚       β”œβ”€β”€ AI_Report_Semantic_Intent_Layer.md
β”‚       └── Clean_Benign_Corpus_Evaluation_Report.md
β”‚
└── archive/                          # Historical evaluation results
    └── old_evals/

🎯 Project Status & Roadmap

Current Phase: 4 - Deterministic Enrichment πŸ”„

Objective: Improve xTRam1 TPR from 25.4% β†’ β‰₯40% by adding pattern-based detection rules discovered through systematic evaluation log analysis.

Approach:

  • Extract attack patterns from false negative prompts (evaluation logs)
  • Rank patterns by priority score (FN coverage vs FP risk)
  • Implement deterministic detection functions with signal strength scoring
  • Maintain FPR ≀2.0% (Gate A) while lifting mean TPR to β‰₯71% (Gate B)

Completed Phases

βœ… Phase 1: Deterministic Guardrails (OWASP-Aligned)

  • 5-stage pipeline: ingestion β†’ classification β†’ sanitization β†’ logging β†’ policy
  • Pattern-based detection (keywords, regex) for known attack types
  • Risk classification: low/medium/high/critical
  • Result: Fast, explainable baseline defense layer

βœ… Phase 2: Semantic Guardrails (ML-Based Detection)

  • Problem: Initial model (madhurjindal) had 93.6% FPR
  • Solution: Systematic benchmarking β†’ switched to ProtectAI deberta-v3-base-prompt-injection-v2
  • Achievement: 92.6pp FPR improvement (93.6% β†’ 1.0%)
  • Current Metrics:
    • True FPR: 1.0% (2/200 clean prompts blocked)
    • Mean TPR: 66.6% across attack datasets
    • Core Use Cases FPR: 0% (160/160 passed)

βœ… Phase 3: Clean Corpus Validation

  • Built Clean_Benign_Corpus_v1 (200 vetted prompts across 8 categories)
  • Discovered TrustAIRLab "benign" dataset contamination
  • Validated 1.0% FPR on production-representative prompts
  • Decision: Deferred semantic intent layer to Phase 6 (cost/benefit analysis)

πŸš€ Quick Start

Running Evaluations

# Evaluate on clean benign corpus
python scripts/evaluation/Eval_Clean_Benign_Corpus.py

# Benchmark ProtectAI model
python scripts/evaluation/Benchmark_ProtectAI.py

# Run general evaluation
python scripts/evaluation/Eval.py

Running Analysis

# Analyze dataset contamination
python scripts/analysis/Analyze_Dataset_Contamination.py

# Inspect TrustAIR Regular dataset
python scripts/analysis/Inspect_TrustAIR_Regular.py

# Analyze false positive patterns
python scripts/analysis/Analyze_ProtectAI_FP.py

Testing Alternative Models

# Test different semantic models
python scripts/testing/Test_Alternative_Models.py

# Test benign prompt blocking
python scripts/testing/Test_Benign_Blocking.py

πŸ“Š Key Results

Clean Benign Corpus Evaluation (Latest)

MetricValue
Total Prompts200
Blocked (False Positives)2 (1.0%)
Allowed (True Negatives)198 (99.0%)
Core Use Cases FPR0% (160/160 passed)
Edge Cases FPR10% (2/20 blocked)

Model Comparison

ModelFPR (TrustAIRLab)FPR (Clean Corpus)Improvement
madhurjindal/prompt-injection-v293.6%~95% (est.)Baseline
ProtectAI deberta-v3-base24.2%1.0%92.6 pp

Attack Detection (TPR)

DatasetTPR
TrustAIRLab Jailbreak100%
TrustAIRLab xTRam125.4%
xTRam2100%
DarkWeb Queries100%
Mean TPR66.6%

πŸ” Architecture

Three-Layer Defense-in-Depth

  1. Deterministic Layer (Phase 1 + 4 Enhancement)

    • OWASP Top 10 LLM patterns (Phase 1 baseline)
    • Evidence-based attack patterns from eval logs (Phase 4)
    • Signal strength scoring: weak (boundary testing) vs strong (system markers, control phrases)
    • Fast (<10ms), explainable, zero ML cost
  2. Semantic Layer (Phase 2)

    • ProtectAI deberta-v3-base-prompt-injection-v2
    • ML-based intent classification for novel attacks
    • Handles obfuscation, paraphrasing, multi-turn attacks
  3. Policy Layer (Planned Phase 7+)

    • Layer precedence enforcement (safety ratchet: deterministic escalates, never downgrades)
    • No silent allow invariant (explicit ALLOW/SANITIZE/BLOCK required)
    • Context-aware decisions (user roles, sensitivity levels)

Risk Scoring & Signal Combination

Deterministic Signals (Phase 4):

  • Score 3 (any category) β†’ high_risk
  • Score 2+2 (two strong signals) β†’ high_risk
  • Score 2+1 (strong + weak) β†’ medium_risk
  • Score 1 alone (weak only) β†’ low_risk (NO escalation)
  • Score 0 (none) β†’ low_risk

Final Risk Levels:

  • Low Risk: Allowed, logged
  • Medium Risk: Allowed with warning, enhanced logging
  • High Risk: Blocked, detailed logging, security team alert
  • Critical Risk: Blocked, immediate escalation, forensic capture

πŸ“ Key Documentation

Planning Documents

  • AI_Guardrail_NorthStar: Overall system vision and goals
  • Guardrail_Mastery_Ladder: Progressive improvement roadmap
  • Phase_4_Execution_Checklist: Deterministic enrichment execution checklist
  • Phase_4_Sanitization_Enrichment_FULL: Phase 4 specification

Reports

  • WORK_LOG_Phase2_Semantic_Model_Selection: Complete history of model selection work
  • Clean_Benign_Corpus_Evaluation_Report: Final evaluation results with 1.0% FPR
  • STRATEGIC_ANALYSIS_FPR_And_Next_Steps: FPR analysis and recommendations
  • Phase 3 action plan (legacy filename: ACTION_PLAN_Phase_2_5_Next_Steps.md): Semantic hardening and clean corpus tasks

🎯 Planned Enhancements

Phase 4: Deterministic Enrichment (Active)

Timeline: 3-5 days | Status: Pattern discovery in progress

  1. Pattern Discovery Pipeline

    • βœ… Schema v1 contract locked (JSONL output with full traceability)
    • βœ… Pattern matching semantics defined (substring/regex/keyword_set)
    • πŸ”„ Extract patterns from FN prompts (5 categories: system_marker, control_phrase, credential_like, boundary_testing, role_confusion)
    • πŸ”„ Compute priority_score = (fn_coverage_rate Γ— 2.0) - (fp_risk_score Γ— 5.0) + (rarity_score Γ— 0.5)
    • πŸ”„ Validate against Clean_Benign_Corpus_v1 (max 1 FP per pattern)
  2. Implementation

    • Create Deterministic_Guardrails_Enhanced.py with 5 detection functions
    • Implement signal combination logic per scoring table
    • Enforce layer precedence (safety ratchet) and no silent allow invariant
    • Unit tests for pattern matching, signal scoring, and layer interaction
  3. Quality Gates

    • Gate A: FPR ≀2.0% on Clean_Benign_Corpus_v1
    • Gate B1: xTRam1 TPR β‰₯40% (baseline 25.4%, +15pp lift)
    • Gate B2: Mean TPR β‰₯71% (baseline 66.6%, +5pp lift)

Phase 5: Adversarial Testing & Red-Teaming (Planned)

Focus: Stress-test both layers against novel attack vectors

  1. Coverage Gap Analysis

    • Document remaining FNs after Phase 4
    • Categorize bypass techniques (obfuscation, encoding, multi-turn)
    • Use HackAPrompt Companion for dynamic attack generation
  2. Obfuscation Defenses

    • Base64/hex decoding preprocessing
    • Multi-language normalization
    • Character substitution detection (l33t speak, homoglyphs)
  3. Code Hardening

    • Robust label normalization (_is_benign_prediction() helper)
    • Structured logging (JSON format with model/pattern IDs)
    • Timeout guards for regex (prevent catastrophic backtracking)

Phase 6: Semantic Intent Layer (Deferred)

Rationale: Cost/benefit analysis showed unfavorable ROI for 1.0% β†’ 0% FPR improvement

  • LLM-based intent classification for edge cases
  • Explainability enhancements ("why was this blocked?")
  • Conditional activation (only for ambiguous prompts)

Phase 7+: Production Hardening (Future)

  • OWASP AI Top 10 mapping and compliance documentation
  • Reasoning guardrails (tool use governance for agentic systems)
  • Custom linter (meta-guardrail for policy enforcement)
  • Performance optimization (caching, batching, async processing)

πŸ›‘οΈ False Positive Analysis

Blocked Prompts (2/200)

Prompt #181 (edgecase - security education)

  • Text: "Explain what prompt injection is in large language models..."
  • Blocked by: Deterministic pattern (keyword: "prompt injection")
  • Fix: Allowlist educational framing

Prompt #193 (edgecase - creative writing)

  • Text: "Write a short story about an AI in a hospital..."
  • Blocked by: Deterministic pattern (unknown trigger)
  • Fix: Investigate pattern

Analysis: Both blocks are from the deterministic layer, not the semantic model (semantic label stayed benign). ProtectAI v2 semantic model has 0% FPR on clean corpus.

πŸ“¦ Dependencies

pip install transformers torch pandas jsonlines

πŸ”§ Configuration

Core guardrail pipeline located in src/OWASP_Pipeline_Guardrail.py:

from src.OWASP_Pipeline_Guardrail import run_guardrail_pipeline

result = run_guardrail_pipeline(user_prompt)
# Returns: {
#   "combined_risk": "low_risk" | "medium_risk" | "high_risk" | "critical",
#   "semantic_result": {"label": "benign|malicious", "score": float},  # score = normalized jailbreak probability
#   "agent_visible": str,  # Message to show user
#   "log_entry": {...}     # Full logging details
# }

πŸ“ˆ Success Metrics

Phase 3 Achievements βœ…

  • FPR < 5% on clean benign corpus β†’ achieved: 1.0%
  • TPR > 60% on attack datasets β†’ achieved: 66.6%
  • Core use cases: 0% FPR β†’ achieved: 100% (160/160 passed)
  • Production-ready baseline β†’ semantic + deterministic layers validated

Phase 4 Targets 🎯

  • Gate A: FPR ≀2.0% (maintain low false positive rate)
  • Gate B1: xTRam1 TPR β‰₯40.0% (currently 25.4%, need +15pp lift)
  • Gate B2: Mean TPR β‰₯71.0% (currently 66.6%, need +5pp lift)
  • Latency: Deterministic layer <10ms (non-blocking)

🀝 Contributing

This is a learning/portfolio project demonstrating systematic security engineering methodology. Key principles:

  • Measurement-driven decisions (FPR/TPR gates, not vibes)
  • Reproducible artifacts (eval logs, pattern discovery JSONL)
  • Defense-in-depth (multiple layers with clear precedence rules)
  • No silent failures (explicit ALLOW/SANITIZE/BLOCK required)

πŸ“œ License

MIT License - Internal research project for learning and portfolio development

πŸ‘€ Author

Michael Williams

  • Phase 1: Deterministic baseline (OWASP patterns)
  • Phase 2: Semantic layer + model selection (Dec 13, 2025)
  • Phase 3: Clean corpus validation (Dec 13, 2025)
  • Phase 4: Deterministic enrichment (Dec 14-15, 2025) - In Progress

Project Timeline:

  • Started: November 2025
  • Phase 3 Complete: December 13, 2025
  • Phase 4 Active: December 14, 2025
  • Next Milestone: Gate A/B validation (Phase 4 complete)

GitHub: mwill20/ai-guardrails