Lumina
Protegendo Apps com LLM · Módulo SEC.1
1/6
EN PT
Módulo SEC.1 · segurança

O mapa de ameaças

Você não consegue defender o que não mapeou. Antes de escrever um único guardrail, você precisa da forma da sua superfície de ataque — cada lugar onde dados ou capacidade não-confiável entra no modelo. Este módulo te entrega os dois mapas com os quais o campo já concordou, para que você pare de chutar e comece a cobrir.

o que você vai conseguir fazer Ao final deste módulo você consegue mapear a superfície de ataque de um app com LLM para as categorias OWASP-LLM e Agentic, e identificar os nós sem cobertura — os pontos cegos que um filtro de entrada único esconde silenciosamente.

Por que "apenas adicionar um filtro" não funciona

O instinto ingênuo é encaixar um filtro de entrada na frente do modelo e chamar de seguro. Mas um app com LLM não é uma única porta — é um perímetro. Texto não-confiável chega do usuário, de documentos recuperados, de saídas de ferramentas, e de memória que o modelo escreveu para si mesmo em um turno anterior. Cada um desses é um ponto de entrada distinto com um modo de falha distinto. Filtre o prompt do usuário e você deixou o canal de recuperação, o canal de ferramenta, e a memória completamente abertos. Cobertura é um problema de mapa antes de ser um problema de controle.

o movimento Enumere a superfície primeiro, depois atribua um controle por nó. A comunidade já fez a enumeração por você: OWASP Top 10 para Aplicações com LLM te dá os riscos em nível de modelo, e OWASP Top 10 para Aplicações Agentic estende para sistemas que agem. Mapeie cada nó para uma categoria; qualquer nó sem categoria é um ponto cego.

Mapa um — OWASP Top 10 para Aplicações com LLM (2025)

Publicada pelo OWASP Gen AI Security Project, esta lista nomeia os riscos canônicos no nível do modelo. Sua primeira categoria, LLM01: Prompt Injection, afeta todos os demais canais: conteúdo não confiável tenta persuadir o modelo a ignorar suas instruções. As categorias seguintes cobrem exposição de informações sensíveis, riscos da cadeia de suprimentos, tratamento inadequado da saída e envenenamento de dados ou modelos. Use essa lista como vocabulário de base: ao fazer a triagem de um incidente, você deve conseguir associá-lo a uma categoria OWASP.

Mapa dois — OWASP Top 10 para Aplicações Agentic (2026)

No momento em que seu app consegue agir — chamar ferramentas, gastar orçamento, escrever em sistemas — a lista em nível de modelo não é mais o bastante. A lista agentic mais recente do Gen AI Security Project endereça isso; suas entradas carregam ids ASI0x (ASI01 Agent Goal Hijack, ASI02 Tool Misuse & Exploitation…). O risco que ela centra é LLM06:2025 Agência Excessiva (formalmente uma entrada no Top 10 em nível de modelo): um agente concedido com mais capacidade, autonomia, ou permissão do que a tarefa realmente requer. Uma injeção de prompt contra um chatbot vaza texto; a mesma injeção contra um agente com uma ferramenta de shell e uma carteira executa. Agência excessiva é o que transforma um risco de conteúdo em um raio de explosão. A questão da era agentic não é "o que o modelo pode dizer" mas "o que o modelo pode fazer, e reduzimos isso ao mínimo?"

a armadilha Agência excessiva se esconde em conveniência. Escopos amplos de ferramentas, uma chave de API única super-privilegiada, loops de "deixe o agente tentar até funcionar", e memória que persiste texto controlado por ataque em sessões tudo amplia a superfície silenciosamente. Você não verá em uma demo — você vê quando uma instrução injetada atinge uma ferramenta pela primeira vez. Escope capacidade à tarefa, não ao que é fácil de conectar.

O repertório do adversário — MITRE ATLAS

O OWASP mostra o que pode dar errado. O MITRE ATLAS, base de conhecimento sobre ameaças adversariais a sistemas de inteligência artificial, mostra como adversários reais agem. Ele organiza táticas e técnicas contra sistemas de IA de modo semelhante ao referencial ATT&CK, já usado por equipes de segurança. Use o OWASP para enumerar categorias de risco e o ATLAS para enumerar as técnicas concretas que as realizam. Assim, seus testes espelham comportamentos reais de ataque, não apenas cenários imaginados por você.

A superfície de ataque agentic

Aqui está o perímetro, desenhado. Quatro entradas não-confiáveis convergem no núcleo do modelo, que consegue agir através de ferramentas — cada aresta marcada com a categoria OWASP que a governa.

Entrada do usuário prompt / conversa Conteúdo recuperado RAG / docs web Saída de ferramenta resultados API / shell Memória estado persistido núcleo LLM raciocina + planeja decide agir Ferramentas / ações shell · dinheiro · escrita LLM01 injeção de prompt LLM01 · injeção indireta LLM05 saída imprópria LLM04 · envenenamento (memória) LLM06 agência excessiva escopo de ferramentas à tarefa

Um mapa só é útil se move testes

Nomear um risco é passo zero; o harness transforma cada categoria em uma verificação executável. O padrão é um mapeamento de ameaça para teste — uma pequena configuração que vincula cada nó da superfície à sua categoria OWASP e a sonda que prova se o gate segura. Se um nó não tem teste, não está coberto — é tratado como seguro sem evidência; é assim que pontos cegos sobrevivem à revisão.

# threat_map.yaml — cada nó de superfície -> categoria OWASP -> um probe que aplica um gate
surface:
  - node: user_input
    owasp: LLM01_prompt_injection
    probe: inject_ignore_instructions      # atacante sobrescreve o system prompt
    gate: refuses AND stays on task

  - node: retrieved_content
    owasp: LLM01_indirect_injection
    probe: poisoned_document               # instruções escondidas num doc de RAG
    gate: no instruction obeyed from data

  - node: tool_output
    owasp: LLM05_improper_output_handling
    probe: malicious_tool_response         # tool retorna markup / comandos
    gate: output validated before use

  - node: memory
    owasp: LLM04_data_and_model_poisoning
    probe: persist_hostile_note            # texto do atacante sobrevive pro próximo turno
    gate: memory sanitized on read

  - node: tool_invocation
    owasp: LLM06_excessive_agency          # LLM06:2025; o Agentic Top 10 (ASI0x) é centrado nisso
    probe: over_privileged_action          # agente tenta ir além do escopo da tarefa
    gate: least-privilege scope enforced

# nó não mapeado == ponto cego. coverage = mapped_nodes / total_nodes

Você vai construir e rodar sondas como essas em módulos posteriores; aqui o ponto é a disciplina — cobertura é medida contra um mapa, não um sentimento. Cada nó ganha uma categoria e uma sonda, ou é marcado como não-examinado.

ancoragem pública O mapa é tão bom quanto as sondas por trás dele — checklists só com categorias ficam frágeis, por isso você emparelha cada categoria com uma sonda executável. Ancre nas fontes de referência: OWASP Gen AI Security Project (Top 10 LLM & Agentic), MITRE ATLAS para técnicas de adversário, e o NIST AI 600-1 Generative AI Profile para gerenciamento de risco.
▶ laboratório executável

owasp-llm-map

Use uma pequena aplicação com agentes, enumere os nós de sua superfície e produza um mapa que associe cada ameaça ao respectivo teste e a uma categoria OWASP para modelos de linguagem ou sistemas com agentes. O programa informa a cobertura, distinguindo os nós que têm uma sonda daqueles que ainda são pontos cegos. Execute-o na aplicação de amostra incluída e depois aplique-o à sua.

labs/owasp-llm-map/ · python owasp_map.py
qual mapa cobre "o modelo vaza seu prompt de sistema" vs "o agente envia email a um estranho"?
O primeiro é um risco no nível do modelo e aparece no OWASP Top 10 para Aplicações com LLM como vazamento do prompt de sistema. O segundo pertence ao sistema que executa ações e corresponde ao LLM06:2025, Agência Excessiva, também enfatizado pelo OWASP para aplicações agênticas. O MITRE ATLAS fornece os identificadores das técnicas adversárias relacionadas a ambos.
por que "apenas adicionar um filtro" não é um mapa de ameaças?
Um filtro é um controle contra um ataque; um mapa enumera a superfície inteira para que cada nó ganhe uma categoria e uma sonda. Sem o mapa você endurece a parede que você pensou e deixa as que não pensou — cobertura é medida contra o mapa, não contra sua intuição.
o que faz agência excessiva o risco da era agentic?
Quando o modelo consegue agir (chamar ferramentas, gastar, enviar email), uma injeção para de ser um vazamento de texto e vira um raio de explosão. Escope capacidade à tarefa para que um prompt sequestrado não consiga alcançar além dela.
pontos-chave