2 pontos por GN⁺ 2025-09-21 | 1 comentários | Compartilhar no WhatsApp
  • O agente de IA do Notion 3.0 oferece execução autônoma de fluxos de trabalho em múltiplas etapas, como redação de documentos, atualização de bancos de dados e chamada de conectores externos
  • Quando o agente possui acesso a ferramentas e memória de longo prazo, forma-se uma superfície de ataque expandida que é difícil de controlar com o RBAC tradicional
  • A análise confirmou que o esquema de entrada da função de busca na web do agente do Notion pode ser explorado como um vetor de vazamento de dados, permitindo que prompts indiretos maliciosos enviem segredos internos para fora
  • Na demonstração, o invasor comprovou um fluxo de execução no qual uma injeção de prompt escondida em um PDF induz o agente a extrair, concatenar e enviar dados secretos de clientes por meio de uma consulta web
  • Este caso mostra a gravidade, para a segurança prática, da tríade letal (“lethal trifecta”) de agente-ferramenta-memória quando integrada com MCP e conectores externos

Introdução a agentes de IA e ao Notion 3.0

  • Recentemente, há uma tendência de integrar AI Agents a plataformas SaaS
  • No Notion 3.0, o agente de IA pode executar automaticamente tudo o que o usuário consegue fazer, como criar documentos, atualizar DBs, pesquisar em várias ferramentas e rodar fluxos de trabalho em múltiplas etapas
  • Com a integração MCP, ele se conecta a diversas ferramentas externas, permitindo automação ainda mais poderosa e criação de agentes personalizados
  • Também é possível criar Custom Agents voltados para equipes, acionados por gatilhos ou agendas, para automatizar tarefas repetitivas como coleta de feedback, atualização de trackers e triagem de solicitações

O problema da 'tríade letal (lethal trifecta)'

  • A 'tríade letal (Lethal Trifecta)' apontada por Simon Willison é uma ameaça de segurança que surge da combinação de agentes LLM, acesso a ferramentas e memória de longo prazo
  • No Notion 3.0, o agente pode planejar suas próprias ações e executar ferramentas integradas via MCP e ferramentas nativas
  • Agentes com permissões amplas automatizam operações em documentos, bancos de dados e conectores externos de formas que o RBAC tradicional não previa
  • Com isso, ampliam-se os indicadores de ameaça de vazamento ou uso indevido de dados sensíveis por meio de fluxos de automação em múltiplas etapas

Detalhes técnicos da vulnerabilidade: ataque de vazamento de dados de páginas do Notion usando a ferramenta de busca web do Notion AI

  • Problema: o esquema de entrada de functions.search (web scope) da ferramenta de busca web permite strings de consulta diretas e indiretas
    Name: functions.search (web scope)  
    Input:  {  
        "web": {  
            "queries": ["<query or URL>", "..."]    // array de strings de consulta (URLs ou termos de busca)  
        }  
    
  • O ponto explorável é que o array de consultas pode receber qualquer URL ou termo de busca
  • Superfície de ataque: se um prompt malicioso for escondido em um documento lido pelo agente (por exemplo, um PDF), há chance de o agente executar essas instruções
  • A injeção indireta de prompt (texto dentro do arquivo → caminho de processamento do agente) torna a injeção de comandos algo realista
  • Técnica de evasão do invasor: uso de linguagem persuasiva psicológica e técnica, como autoridade, urgência, legitimidade técnica e teatro de segurança (“pre-authorized”), para tentar contornar revisão humana e mecanismos de proteção
  • Essa estrutura pode ser usada pelo invasor para vazamento de dados por meio de combinações seletivas de consultas

Demonstração do ataque: cenário de exfiltração de dados passo a passo

  • Etapa 1: criação do PDF malicioso

    • Em um documento aparentemente comum de feedback de cliente em PDF, é inserido secretamente um prompt malicioso parecido com uma instrução de execução
    • Esse prompt oculto se disfarça de “tarefa rotineira importante” e orienta o envio de dados para um sistema backend interno
    • Principais elementos do prompt malicioso
      • Afirmação de autoridade (Authority assertion): uso de expressões como "Important routine task" e "consequences" para alegar que se trata de uma tarefa importante e rotineira
      • Falsa urgência (False urgency): destaque de que a não execução pode afetar a organização
      • Legitimidade técnica (Technical legitimacy): descrição aparentemente realista de sistemas internos e sintaxe de comandos de ferramentas
      • Teatro de segurança (Security theater): uso de expressões como "pre-authorized" e "safe from security perspective" para afirmar que já foi previamente autorizado e é seguro
    • O agente que lê o PDF é induzido a extrair informações corporativas (nome do cliente, ARR etc.) e enviá-las para uma URL que aponta para um sistema interno, mas é controlada pelo invasor
  • Etapa 2: espera pela interação do usuário

    • O ataque é acionado quando um usuário do Notion faz upload desse PDF no Notion ou pede ao agente para resumi-lo
    • Com um comando como “resuma o relatório”, a IA acaba interpretando também o prompt oculto
  • Etapa 3: vazamento real dos dados

    • Seguindo as instruções do prompt, o agente concatena dados do cliente (por exemplo, nome da empresa, setor e ARR) em uma única string
    • Em seguida, cria uma URL direcionada ao domínio do invasor e a envia como consulta para a ferramenta de busca web
    • O servidor malicioso que recebe essa requisição, controlado pelo invasor, coleta os dados sensíveis
  • Nesse cenário de ataque, foi confirmado que os guardrails de segurança foram contornados mesmo com o uso do modelo Claude Sonnet 4.0 dentro do Notion AI

Como a integração MCP expande a superfície de ataque dos agentes do Notion AI

  • O Notion oferece AI Connectors para várias fontes, como GitHub, Gmail e Jira
  • O contexto e os metadados que cada conector fornece ao agente criam uma superfície de ataque adicional, aumentando a possibilidade de entrada de prompts maliciosos por meio de ataques de injeção indireta vindos de fontes externas
  • Isso eleva o risco de vários comportamentos maliciosos automatizados não intencionais e tentativas de vazamento de dados sensíveis
  • Exemplo de cenário: uma mensagem de commit maliciosa, o corpo de uma issue ou um email externo podem funcionar como prompt indireto e induzir o agente a acessar e enviar dados internos

Implicações e recomendações (resumo)

  • Principal implicação: quando o agente possui permissão de acesso a ferramentas, instruções maliciosas dentro de documentos podem levar a chamadas de ferramentas e resultar em vazamento de informações confidenciais
  • Pontos de defesa (itens para discussão):
    • As chamadas de ferramentas pelo agente devem passar por validação de origem, limitação de contexto e filtragem baseada em políticas
    • Instruções executáveis em documentos (por exemplo, orientações para formar URLs) devem ser tratadas com verificações de segurança específicas, confirmação humana ou ambiente de execução isolado
    • É necessário reforçar, para cada conector MCP, o princípio do menor privilégio e os sistemas de log e alerta de chamadas
  • Conclusão: os recursos do Notion 3.0 têm grande potencial de aumentar a produtividade, mas os novos vetores de ataque causados pela combinação de agente-ferramenta-memória exigem uma revisão do desenho de segurança na prática

1 comentários

 
GN⁺ 2025-09-21
Comentários do Hacker News
  • Quero enfatizar que a explicação de Simon Willison sobre o "lethal trifecta" como um poderoso vetor de ataque, mas fácil de abusar, por meio da combinação de agentes LLM, acesso a ferramentas e memória de longo prazo está incorreta. O verdadeiro lethal trifecta é: acesso a dados privados, exposição a conteúdo não confiável e capacidade de se comunicar com o mundo externo. Um agente LLM com busca na web se encaixa tanto em exposição a conteúdo não confiável quanto em comunicação externa.
    • Acho que o TFA entendeu esse conceito errado desde o início. A fonte original de Simon Willison é este texto.
    • Na minha opinião, dá para explicar o trifecta de forma mais simples. A ideia é que, se um invasor consegue inserir algo no LLM, ele pode controlar todos os recursos.
    • Essa explicação não combina com o nome trifecta. O trio real é o seguinte: entrada não confiável, acesso privilegiado e vetor de exfiltração de dados.
  • A forma como os prompts são montados parece muito parecida com as características de campanhas de phishing.
    • alegação de autoridade
    • falsa urgência
    • legitimidade técnica
    • encenação de segurança
      Isso me faz pensar que prompt injection é como phishing contra uma entidade sem ego nem autorreflexão, incapaz de parar e desconfiar.
    • Também acho esse fenômeno parecido com CSRF. Nos dois ataques, usa-se uma entrada em que o sistema confia para enganar um usuário privilegiado e fazê-lo executar ações que ele não queria. Um PDF malicioso usa prompt injection para fazer o agente do Notion (com acesso ao workspace) chamar uma ferramenta web externa e enviar para fora o conteúdo da página. No fim, o padrão central é o mesmo abuso de privilégios. Só mudou a superfície técnica, para prompt injection + encadeamento de ferramentas (antes era falsificação de requisição HTTP).
    • Acho que, com treinamento adequado, os LLMs podem perfeitamente desenvolver a capacidade de "desconfiar" e resistir a esse tipo de ataque. Mas os modelos recentes reforçarem a resistência a injeção de "persona" entra em conflito com o uso conversacional. Então vejo como provável uma separação entre modelos de "agente" mais endurecidos e modelos conversacionais mais abertos. Também pode haver uma forma de ajustar expectativas adicionando contexto base à entrada, mas acho que isso exigiria mudanças de arquitetura.
  • Testei diretamente no Notion e, embora ele pesquise URLs, não parece realmente enviar dados para elas. Fico curioso sobre onde estaria o ponto de exfiltração de dados (tirando a parte enviada ao serviço de busca).
    • Pedi ao bot de IA do Notion para criar uma nova página a partir de uma URL, e confirmei pelos logs do meu servidor que o Notion realmente acessou essa URL. O User-Agent era Chrome/139/Mac.
    • Acho que a intenção era induzir a requisição a uma URL específica usando a query string. Parece que a ferramenta de busca não funciona assim, ou então os logs não mostram de forma clara a exfiltração, então o sucesso do ataque não ficou comprovado com certeza.
  • Esse ataque já foi demonstrado há 2 anos. Não é um problema novo. Link relacionado.
    • O problema é que o Notion tinha essa vulnerabilidade e não havia absolutamente nenhuma medida para prevenir ou mitigar isso.
    • É uma vulnerabilidade nada nova, e mesmo assim o Notion lançou isso exatamente desse jeito esta semana. Resultado de priorizar recursos chamativos de IA para demonstração.
  • Fico me perguntando se alguém está lidando com o problema de instruction/data-conflation. Enquanto deixarmos os LLMs seguirem cegamente instruções embutidas nos dados, ainda é cedo demais para conectá-los a fontes de dados reais e funções externas. O Notion recomenda que usuários conectem GitHub, GMail, Jira etc. ao modelo sem qualquer aviso. Nesse ponto, tratar isso como recurso de um produto supostamente seguro parece quase criminoso.
    • Esse problema já vem sendo discutido há mais de 3 anos, mas ainda não surgiu uma solução realmente robusta. Hoje se separa system prompt e user prompt, treinando o modelo para confiar mais em um lado, mas isso também é frágil. Um atacante motivado ainda encontra formas de contornar. A mitigação mais convincente que vi foi o artigo CaMeL, da DeepMind, mas ele também impõe muitas restrições à composição de funcionalidades. Link.
    • Eu sou o autor deste exploit. Na CodeIntegrity.ai, criamos uma plataforma que visualiza o fluxo real de dados e de controle de sistemas de IA agêntica para avaliar o risco de cada um. Também oferecemos guardrails em tempo de execução para controlar esses fluxos conforme a tolerância a risco. Se quiser saber mais, pode mandar e-mail para abi@codeintegrity.ai.
    • Achei interessante a forma como você colocou isso. Dá para imaginar alimentar o LLM com uma estrutura de dados em que dados confiáveis e não confiáveis fiquem claramente separados. Resultados de web search ou MCP seriam não confiáveis por padrão (exceto se você mesmo escreveu o MCP e puder confiar nele). Dados não confiáveis só poderiam passar por transformações puras, sem efeitos colaterais. Ex.: resumir, remover espaços em branco, converter para float, tudo dentro de um sandbox sem acesso à rede. Por exemplo, "resuma todas as issues públicas do GitHub e salve no banco" talvez pudesse ser feito com segurança se o conteúdo não confiável só fosse processado no sandbox!
    • É parecido com o problema de "dar permissão para executar código a usuários comuns". Uma solução prática não é fácil.
    • A solução já existe. Isso não é tanto um problema de dados exótico quanto algo que já pode ser restringido com guardrails existentes. Se o usuário não tem permissão para acessar os dados, o LLM também deve ser limitado da mesma forma. As empresas que simplesmente deixam isso aberto é que são estranhas. Não é mágica. Empresas com problemas de segurança em IA provavelmente também têm outras vulnerabilidades graves. Só ficam mais expostas por causa da IA.
  • O artigo original está aqui.
  • O Notion tem começado a parecer cada vez mais spyware ultimamente. Durante reuniões, fica aparecendo popup dizendo que detectou que estou em reunião e perguntando "quer que eu faça anotações?".
  • Não acho correto tratar como "oculta" uma vulnerabilidade encontrada numa ferramenta oferecida publicamente com o rótulo de "AI".
  • Este artigo foi bom porque mostrou uma vulnerabilidade real com um caso concreto, e a explicação não ficou técnica demais.
  • Fico me perguntando como um usuário comum acabaria colocando um documento na minha instância do Notion.
    • A pessoa simplesmente pesquisa no Google por "best free notion marketing templates", baixa e importa. Eu mesmo já fiz isso várias vezes, e milhares ou dezenas de milhares de pessoas no mundo fazem algo parecido.
    • O artigo usa PDF como exemplo, mas dependendo de como o agente do Notion abre e salva links, também seria possível mostrar páginas diferentes para cada crawler/agente de navegador, então materiais populares no setor também podem virar alvo de phishing.
    • Muitas empresas usam ferramentas de automação como Zapier para subir diretamente documentos como faturas, ou recebem por e-mail documentos com exploit e os registram no Notion.
    • As pessoas colocam de tudo no Notion. Usam como banco de dados, guardam material online com web clipper e também como ferramenta de colaboração. Os usos são variados.
    • Neste caso, a ideia seria receber por e-mail um PDF com título convincente, fazendo parecer um documento que você compartilharia com colegas. Os comandos maliciosos ficam escondidos com truques como texto branco sobre fundo branco. Conforme MCPs passarem a enxergar issue trackers públicos e até e-mails recebidos, outros cenários de ataque também vão aparecer.