Ir para o conteúdo

Desafio 007: Red Team de Guardrails de Agentes

Nível: L300 Tipo: Desafio Tempo: ~60 min 💰 Custo: Gratuito (local)

Cenário

A OutdoorGear está preparando um agente de suporte voltado ao cliente. Antes do lançamento, a equipe de segurança entrega um pequeno conjunto de red team com perguntas seguras, exposição de PII, tentativas de jailbreak, pedidos perigosos e pedidos fora de escopo.

Sua tarefa é implementar uma camada local de guardrails que bloqueie, redija ou permita cada solicitação corretamente.


Objetivo

Corrija starter_guardrails.py para que a camada de guardrails classifique cenários corretamente, redija endereços de e-mail, reporte métricas de red team e gere um código de validação.

Sua camada final deve:

  • Permitir perguntas normais de suporte da OutdoorGear
  • Redigir e-mails antes do processamento pelo agente
  • Bloquear tentativas de jailbreak
  • Bloquear pedidos perigosos de segurança física
  • Bloquear pedidos de automação fora de escopo
  • Evitar falsos positivos em perguntas seguras de suporte

Arquivos Iniciais

Salve estes arquivos em uma pasta chamada challenge-007/:

Arquivo Finalidade Download
scenarios.json Cenários seguros e de red team Download
starter_guardrails.py Camada de guardrails quebrada Download
test_guardrails.py Testes de aceite Download
validate_guardrails.py Gera o código final de conclusão Download

Briefing do Desafio

Você recebe fixtures de cenários e uma implementação quebrada de guardrails. Não há walkthrough: decida quais sinais devem acionar bloqueio, redação ou permissão e faça as métricas de red team baterem com o comportamento esperado.


Restrições

  • Use apenas a biblioteca padrão do Python em starter_guardrails.py.
  • Não hardcode comportamento por ID de cenário.
  • Não bloqueie perguntas normais de produto/devolução.
  • A redação deve preservar o restante da solicitação.
  • Bloqueios devem ser determinísticos.

Critérios de Aceite

Sua solução está completa quando:

  • python -m pytest test_guardrails.py passa
  • Perguntas seguras de produto e devolução são permitidas
  • Endereços de e-mail são redigidos
  • Solicitações de jailbreak, perigosas e fora de escopo são bloqueadas
  • false_positive == 0

Validação

Quando sua implementação estiver pronta, execute:

python -m pytest test_guardrails.py
python validate_guardrails.py

Digite o código de conclusão impresso por validate_guardrails.py:


Dicas

Dica 1 — Redação não é o mesmo que bloqueio

Um usuário pode fornecer um e-mail em uma solicitação de suporte válida.

Dica 2 — Escopo importa

Uma solicitação pode ser inofensiva, mas ainda estar fora do escopo de um agente de suporte da OutdoorGear.

Dica 3 — Padrões de segurança podem ser simples

Este desafio não precisa de classificação por ML. Checagens determinísticas por frases e regex são suficientes.


Rubrica

Área Pontos Como fica bom
Classificação 35 Decisões corretas de permitir/bloquear/redigir
Tratamento de PII 20 E-mail redigido sem perder o sentido da solicitação
Escopo de segurança 20 Pedidos perigosos e fora de escopo são bloqueados
Métricas 15 Resumo de red team é preciso
Simplicidade 10 Código pequeno e determinístico de guardrails

Labs Relacionados