prompt-injection-defense
Protege seu agente contra ataques maliciosos nas instruções. Ele usa controles de entrada e validação para manter a segurança e a integridade do sistema de IA.
O que ela faz
Esta ferramenta protege sistemas de inteligência artificial contra tentativas maliciosas de controle, conhecidas como 'injeção de prompt'. Ela faz isso verificando as entradas, controlando o que a IA pode fazer e validando as respostas.
Quando usar
- ✓Ao criar ou proteger aplicativos que usam IA.
- ✓Ao usar documentos de fontes não confiáveis com a IA.
- ✓Ao fazer a IA usar outras ferramentas ou funções.
Exemplo do que pedir para a IA
“Proteja este aplicativo contra instruções maliciosas escondidas em textos.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta verifica o texto que a IA recebe em busca de comandos perigosos. Ela também limita as ações que a IA pode realizar e garante que as respostas estejam seguras.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill prompt-injection-defenseOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/prompt-injection-defense/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Defesa Contra Injeção de Prompt
Mitigue injeções de prompt diretas e indiretas em aplicativos de chat, fluxos de trabalho de agentes e pipelines RAG.
Quando Usar Esta Habilidade
Use esta habilidade quando:
- Estiver construindo ou protegendo qualquer aplicativo baseado em LLM
- Estiver projetando pipelines RAG que ingerem documentos não confiáveis
- Estiver implementando fluxos de trabalho de agentes com capacidades de chamada de ferramentas
- Estiver respondendo a uma vulnerabilidade de injeção de prompt relatada
- Estiver realizando revisões de segurança de produtos integrados com IA
Pré-requisitos
- Python 3.10+ com
re,hashlib,jsonbibliotecas padrão - Acesso ao código-fonte ou configuração do aplicativo LLM
- Compreensão da arquitetura de prompt do aplicativo (limites de sistema/usuário/ferramenta)
- Ambiente de teste com entradas de usuário e documentos representativos
Superfície de Ataque
- Entrada do usuário tentando substituir instruções do sistema
- Documentos/páginas da web não confiáveis no contexto de recuperação
- Saída de ferramenta que contrabandeia instruções maliciosas
- Vazamento entre inquilinos (cross-tenant) através de janelas de contexto compartilhadas
- Injeção de Markdown ou HTML em saídas renderizadas
- Ataques de múltiplos turnos que mudam gradualmente o contexto
Padrão de Defesa em Profundidade
- Aplicação de hierarquia de instruções: sistema > desenvolvedor > usuário > saída da ferramenta.
- Segregação de contexto: isolar texto não confiável de instruções de controle.
- Permissão de ferramentas: lista explícita de permissões por tarefa e inquilino.
- Verificações de política de saída: validar esquema, redigir segredos, bloquear ações inseguras.
- Aprovação humana: necessária para operações de alto impacto.
Funções de Sanitização de Entrada
"""prompt_sanitizer.py - Input sanitization for LLM applications."""
import re
import hashlib
import json
from typing import Optional
# Patterns that commonly appear in injection attempts
INJECTION_PATTERNS = [
r"(?i)ignore\s+(all\s+)?previous\s+instructions",
r"(?i)disregard\s+(all\s+)?(above|previous|prior)",
r"(?i)you\s+are\s+now\s+(DAN|evil|unrestricted|jailbroken)",
r"(?i)system\s*:\s*override",
r"(?i)SYSTEM\s+OVERRIDE",
r"(?i)new\s+instructions?\s*:",
r"(?i)forget\s+(everything|all|your\s+instructions)",
r"(?i)act\s+as\s+if\s+you\s+have\s+no\s+(restrictions|limits|rules)",
r"(?i)pretend\s+(you\s+are|to\s+be)\s+.*(unrestricted|evil|without)",
r"(?i)BEGIN\s+(TRUSTED|SYSTEM|ADMIN)\s+(CONTEXT|PROMPT|OVERRIDE)",
r"(?i)```system",
r"(?i)\[INST\]",
r"(?i)<\|im_start\|>system",
]
COMPILED_PATTERNS = [re.compile(p) for p in INJECTION_PATTERNS]
def detect_injection(text: str) -> dict:
"""Verifica o texto em busca de padrões conhecidos de injeção de prompt.
Retorna:
dict com booleano 'detected', lista 'patterns' de descrições de padrões correspondentes,
e 'risk_score' float entre 0.0 e 1.0.
"""
matches = []
for i, pattern in enumerate(COMPILED_PATTERNS):
if pattern.search(text):
matches.append(INJECTION_PATTERNS[i])
risk_score = min(len(matches) / 3.0, 1.0)
return {
"detected": len(matches) > 0,
"patterns": matches,
"risk_score": risk_score,
"input_length": len(text),
}
def sanitize_input(text: str, max_length: int = 4096) -> str:
"""Sanitiza a entrada do usuário antes de passá-la para o LLM.
- Trunca para max_length
- Remove bytes nulos e caracteres de controle
- Remove truques de homóglifos Unicode
- Normaliza espaços em branco
"""
# Trunca
text = text[:max_length]
# Remove bytes nulos e a maioria dos caracteres de controle (mantém novas linhas e tabulações)
text = re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]', '', text)
# Normaliza confusões Unicode (conjunto básico)
confusable_map = {
'\u200b': '', # espaço de largura zero
'\u200c': '', # não-juntor de largura zero
'\u200d': '', # juntor de largura zero
'\u2060': '', # juntor de palavra
'\ufeff': '', # BOM
'\u00a0': ' ', # espaço inquebrável
}
for char, replacement in confusable_map.items():
text = text.replace(char, replacement)
# Colapsa espaços em branco excessivos
text = re.sub(r'\n{4,}', '\n\n\n', text)
text = re.sub(r' {10,}', ' ', text)
return text.strip()
def sanitize_retrieved_context(documents: list[str], source_label: str = "RETRIEVED") -> str:
"""Envolve documentos recuperados com marcadores de limite claros.
Isso torna mais difícil para instruções injetadas em documentos
serem interpretadas como mensagens do sistema ou do usuário.
"""
sanitized_parts = []
for i, doc in enumerate(documents):
doc_hash = hashlib.sha256(doc.encode()).hexdigest()[:8]
…
Perguntas frequentes
O que é 'injeção de prompt'?
É quando alguém tenta enganar a IA para que ela siga instruções secretas ou maliciosas, em vez das instruções originais.
Por que é importante se preocupar com isso?
A injeção de prompt pode fazer a IA vazar informações, realizar ações indesejadas ou se comportar de maneira insegura.
Como essa ferramenta ajuda?
Ela atua como um segurança, inspecionando as entradas e saídas da IA para impedir que comandos maliciosos sejam executados.
Detalhes
Descrição original do autor
Defend AI systems against prompt injection and indirect prompt attacks using input controls, tool permissions, output validation, and isolation boundaries.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3914
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC