llm-app-security
Torna seu agente mais seguro ao lidar com aplicações de IA. Ele valida entradas, controla saídas e previne abusos para proteger os dados.
O que ela faz
Esta ferramenta ajuda a proteger aplicativos que usam inteligência artificial contra ataques e uso indevido. Ela verifica as entradas do usuário e controla as saídas para evitar que a IA seja manipulada ou vaze informações.
Quando usar
- ✓Ao criar um chatbot para atendimento ao cliente.
- ✓Ao integrar IA em um produto de software.
- ✓Ao usar IA para processar informações sensíveis.
Exemplo do que pedir para a IA
“Proteja meu aplicativo de IA contra ataques.”
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
Ela funciona verificando o que o usuário digita para garantir que não seja malicioso ou tente enganar a IA. Também controla o que a IA responde para que não revele dados confidenciais.
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 llm-app-securityOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/llm-app-security/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.
Segurança de Aplicações LLM
Fortaleça chatbots, pipelines RAG e funcionalidades de IA incorporadas em produtos SaaS contra injeção de prompt, vazamento de dados, abuso e violações de conformidade.
OWASP LLM Top 10 -- Mapa de Riscos e Mitigações
O OWASP Top 10 para Aplicações LLM (2025) define os riscos mais críticos. A tabela abaixo mapeia cada risco a controles concretos implementados posteriormente neste documento.
| # | Risco | Mitigação Chave | Seção |
|---|---|---|---|
| LLM01 | Injeção de Prompt | Validação de entrada, hierarquia de instruções | Validação de Entrada, Proteção de Prompt do Sistema |
| LLM02 | Tratamento Inseguro de Saída | Sanitização de saída, limpeza de PII | Segurança da Saída |
| LLM03 | Envenenamento de Dados de Treinamento | Escaneamento de ingestão de documentos | Pipeline RAG Seguro |
| LLM04 | Negação de Serviço de Modelo | Orçamentos de tokens por usuário, limitação de taxa | Limitação de Taxa |
| LLM05 | Vulnerabilidades na Cadeia de Suprimentos | Fixar versões de modelo, verificar checksums | Conformidade |
| LLM06 | Divulgação de Informações Sensíveis | Detecção de PII, isolamento de tenant | Segurança da Saída, Isolamento de Tenant |
| LLM07 | Design Inseguro de Plugin | Listas de permissão de ferramentas, validação de parâmetros | Proteção de Prompt do Sistema |
| LLM08 | Agência Excessiva | Escopos de ferramentas de menor privilégio | Proteção de Prompt do Sistema |
| LLM09 | Confiança Excessiva | Rastreamento de proveniência, pontuações de confiança | Pipeline RAG Seguro |
| LLM10 | Roubo de Modelo | Controles de acesso, rotação de chave de API | Limitação de Taxa, Conformidade |
Validação de Entrada
Cada mensagem do usuário deve ser validada antes de chegar ao LLM. A validação possui três camadas: verificações estruturais, detecção de injeção e moderação de conteúdo.
Verificações Estruturais (Python)
import re
from dataclasses import dataclass
@dataclass
class InputPolicy:
max_length: int = 4096
max_lines: int = 50
allowed_languages: set = None # None = all
def __post_init__(self):
if self.allowed_languages is None:
self.allowed_languages = {"en"}
def validate_structure(text: str, policy: InputPolicy) -> tuple[bool, str]:
"""Return (is_valid, reason)."""
if not text or not text.strip():
return False, "empty_input"
if len(text) > policy.max_length:
return False, f"exceeds_max_length_{policy.max_length}"
if text.count("\n") > policy.max_lines:
return False, f"exceeds_max_lines_{policy.max_lines}"
# Block null bytes and control characters (except newline/tab)
if re.search(r"[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]", text):
return False, "contains_control_characters"
return True, "ok"
Detecção de Injeção de Prompt (Python)
import re
from typing import Optional
# Patterns that signal an attempt to override system instructions
INJECTION_PATTERNS = [
# Direct instruction override
r"(?i)ignore\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?|rules?)",
r"(?i)disregard\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?)",
# System prompt extraction
r"(?i)(reveal|show|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions|rules)",
r"(?i)what\s+(are|were)\s+your\s+(initial\s+)?(instructions|rules|prompt)",
# Role override
r"(?i)you\s+are\s+now\s+(a|an|the)\s+",
r"(?i)(act|behave|respond)\s+as\s+(if\s+)?(you\s+)?(are|were)\s+",
# Delimiter injection
r"(?i)<\/?system>",
r"(?i)\[INST\]|\[\/INST\]",
r"(?i)###\s*(system|instruction|human|assistant)",
# Encoding evasion (base64 instructions)
r"(?i)decode\s+(the\s+)?following\s+(base64|hex|rot13)",
]
_compiled = [re.compile(p) for p in INJECTION_PATTERNS]
def detect_injection(text: str) -> Optional[str]:
"""Return the matched pattern name if injection is detected, else None."""
for pattern in _compiled:
match = pattern.search(text)
if match:
return pattern.pattern
return None
Detecção de Injeção de Prompt (Node.js)
const INJECTION_PATTERNS = [
/ignore\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?|rules?)/i,
/disregard\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?)/i,
/(reveal|show|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions|rules)/i,
/you\s+are\s+now\s+(a|an|the)\s+/i,
/<\/?system>/i,
/\[INST\]|\[\/INST\]/i,
/###\s*(system|instruction|human|assistant)/i,
];
function detectInjection(text) {
for (const pattern of INJECTION_PATTERNS) {
if (pattern.test(text)) {
return { detected: true, pattern: pattern.source };
}
}
…
Perguntas frequentes
O que é 'prompt injection'?
É quando alguém tenta dar comandos secretos para a IA, fazendo com que ela ignore as instruções originais e aja de forma indesejada.
O que é 'data leakage' (vazamento de dados)?
É quando a IA acidentalmente revela informações privadas ou confidenciais que não deveria compartilhar.
Como a ferramenta protege contra isso?
Ela usa regras e verificações para identificar e bloquear tentativas de ataque antes que cheguem à IA, e também filtra as respostas da IA.
Detalhes
Descrição original do autor
Secure LLM-powered applications with input validation, output controls, tenant isolation, and abuse prevention.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3463
- 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