Antes de enviar um anexo para uma automação com IA, compare a extensão, o tipo MIME declarado e o formato identificado nos bytes. Depois, abra o arquivo com um analisador apropriado em ambiente limitado. A concordância entre essas verificações permite escolher o processamento correto; não demonstra que o conteúdo seja seguro.
Essa etapa deve acontecer antes da extração de texto, do reconhecimento de imagens e da chamada ao modelo. O foco aqui são arquivos individuais, como PDF, PNG e texto. Pacotes compactados exigem controles adicionais, descritos no guia sobre anexos compactados em automações com IA.
Resumo rápido
- Trate nome e tipo informado pelo remetente como declarações.
- Compare sinais independentes antes de selecionar o analisador.
- Assinatura de formato não é assinatura digital nem certificado de segurança.
- Recuse formatos fora da política e separe divergências para revisão.
- Registre a decisão sem copiar o documento inteiro para os logs.
O que extensão, MIME e assinatura realmente dizem
A extensão é a parte final do nome, como .pdf. Ela ajuda pessoas e sistemas a escolher um aplicativo, mas pode ser alterada sem mudar o arquivo. Um documento chamado pedido.pdf não passa a ser PDF porque recebeu esse nome.
MIME é uma forma padronizada de descrever tipos de conteúdo, como image/png. A RFC 2046 apresenta a estrutura de tipos e subtipos. O registro da IANA permite conferir nomes registrados. Isso padroniza o vocabulário; não verifica o conteúdo recebido.
A assinatura de formato, também chamada de magic bytes, é um padrão de bytes reconhecível. A especificação PNG do W3C, por exemplo, define uma assinatura inicial seguida pela estrutura de blocos da imagem. Encontrar o começo esperado ainda deixa outras perguntas abertas: a estrutura está completa, os tamanhos são coerentes e o decodificador consegue ler o conteúdo?
Evite misturar essa assinatura com assinatura digital de um contrato. Uma identifica indícios do formato; a outra pertence a uma verificação criptográfica com objetivos próprios. No painel operacional, prefira o campo “formato detectado” para reduzir a possibilidade de alguém interpretar o resultado como autenticidade do documento.
Monte uma política pequena de formatos aceitos
Comece pela tarefa de negócio. Se a automação só lê comprovantes em PDF e fotografias em PNG, não existe motivo operacional para aceitar todo arquivo que o navegador consegue selecionar. Documente os formatos permitidos e o destino de cada um. Essa decisão torna os testes menores e a comunicação com fornecedores mais clara.
| Sinal | Uso adequado | Limitação |
|---|---|---|
| Extensão | Conferir nome e orientar o usuário | Pode ser trocada pelo remetente |
| MIME declarado | Comparar a intenção do envio | Não prova o formato real |
| Assinatura detectada | Escolher uma família de analisadores | Não valida todo o documento |
| Análise estrutural | Confirmar leitura pelo componente permitido | O próprio componente precisa de isolamento |
| Política de negócio | Autorizar o próximo passo | Precisa considerar origem e finalidade |
Para cada formato, determine tamanho máximo, responsável pela manutenção do analisador e comportamento diante de arquivos protegidos por senha. Defina também prazo de retenção da quarentena. Os valores devem vir da capacidade do serviço e de amostras reais da operação, não de um limite copiado de outra empresa.
Registre separadamente formato não aceito, arquivo corrompido e divergência entre declaração e detecção. Eles pedem respostas diferentes. O primeiro pode exigir conversão pelo remetente; o segundo, um novo envio; o terceiro merece revisão antes de qualquer tentativa de reparo automático. Uma mensagem genérica de erro torna o suporte mais lento e esconde padrões de falha.
Organize a verificação antes da IA
Uma sequência recomendada começa pela autenticação da origem e pela autorização do envio. Em seguida, receba os bytes com limite de tamanho, atribua um identificador interno e guarde o objeto em área privada. Só então compare os sinais de formato. Não construa caminhos de armazenamento diretamente com o nome fornecido pelo cliente.
A orientação de upload da OWASP recomenda combinar validações e alerta que o Content-Type enviado pelo usuário pode ser falsificado. A assinatura também não deve ser uma defesa isolada. O texto trata ainda de limites, nomes gerados pela aplicação e armazenamento fora da área pública do servidor.
Depois da identificação inicial, execute o analisador escolhido com tempo, memória e permissões limitados. Essa é uma proposta de arquitetura: o processo que lê um documento não precisa ter acesso às credenciais de envio de e-mail ou à base inteira de clientes. Se ele travar ou encerrar com erro, registre a falha e não encaminhe bytes incompletos como se fossem texto válido.
Autorize a etapa de IA apenas após uma decisão explícita. Um registro pode dizer “PDF permitido, análise concluída, extração autorizada”. Outro pode dizer “tipo desconhecido, revisão necessária”. Estados explícitos ajudam a evitar um desvio comum: um ramo de erro do fluxo acaba conectado à mesma chamada de IA usada pelo caminho aprovado.
Associe o resultado da validação ao objeto efetivamente processado. Se alguém substituir o arquivo depois da checagem, a aprovação anterior deixa de representar a entrada atual. Um resumo criptográfico dos bytes pode ajudar a detectar essa troca; ele identifica conteúdo para comparação, sem certificar que o documento esteja livre de ameaças.
Trate divergências sem adivinhar o formato
Uma biblioteca que deduz MIME pelo nome não substitui uma inspeção do conteúdo. A documentação do módulo mimetypes do Python explica seu mapeamento de nomes e extensões. Portanto, usar essa saída como “detecção pelos bytes” daria ao controle uma garantia que ele não oferece.
Considere um anexo com extensão PNG, declaração de PDF e conteúdo não reconhecido. A decisão recomendada é interromper o processamento e pedir um arquivo compatível. Não escolha o sinal mais conveniente para conseguir continuar a automação. Se houver exceção operacional, ela precisa indicar quem revisou, o que foi verificado e qual objeto foi liberado.
Arquivos de texto merecem cuidado próprio: não há uma assinatura universal que resolva todos os casos. Defina codificações aceitas, tamanho de linha e tratamento de caracteres inválidos. Para CSV, valide também a estrutura esperada pela tarefa. Reconhecer que uma entrada é texto não permite concluir que ela corresponda ao relatório solicitado.
A classificação de formato também não resolve instruções maliciosas escritas no documento. Depois de uma extração autorizada, trate o texto como dado externo. O arquivo pode ser tecnicamente válido e pedir que o agente revele informações ou ignore procedimentos. A aprovação do formato libera leitura controlada, sem conceder autoridade ao conteúdo.
Para auditar a leitura posterior, conecte esse registro ao controle de versões de documentos citados pela IA. Assim, a equipe consegue investigar qual entrada foi aceita e qual versão embasou uma resposta, sem depender apenas de um nome que pode se repetir.
Exemplo: documentos de uma administradora em Curitiba
Imagine uma administradora de imóveis de Curitiba que recebe comprovantes e fotos de manutenção. O exemplo é ilustrativo. A equipe quer usar IA para sugerir a categoria do atendimento, mas a aprovação financeira continua com uma pessoa. O primeiro desenho da rotina aceita somente PDF e PNG enviados por um formulário autenticado.
Uma prestadora envia reparo.png. A declaração de MIME indica PNG, mas o detector não reconhece esse formato. O fluxo guarda o objeto na área privada, registra a divergência e apresenta uma instrução para exportar novamente a imagem. Nenhum resumo é produzido e nenhum chamado financeiro é atualizado com dados desse anexo.
Em outro atendimento, um PDF passa pelas verificações de formato, mas o analisador informa que está protegido por senha. A rotina usa um estado específico e pede uma versão que possa ser lida pelo processo autorizado. Ela não marca o arquivo como malicioso nem tenta contornar a proteção. O suporte tem informação suficiente para orientar o remetente.
Antes de liberar o fluxo, a administradora prepara amostras sintéticas: imagem válida, extensão trocada, arquivo vazio, documento truncado e tipo não permitido. Para cada amostra, escreve o estado esperado e a próxima ação permitida. O teste observa inclusive se o serviço de IA foi chamado indevidamente, não apenas se apareceu uma mensagem na tela.
O mesmo conjunto deve acompanhar mudanças de biblioteca ou infraestrutura. A equipe pode seguir o guia de testes de agentes antes da produção para transformar esses exemplos em cenários observáveis. Nenhum ganho de tempo ou redução de incidentes é presumido: o resultado precisa ser medido na operação.
Erros comuns
Renomear para liberar. Alterar a extensão para satisfazer a lista permitida apaga um indício sem converter o documento. Se houver conversão autorizada, trate o arquivo produzido como um novo objeto e valide sua saída antes de continuar.
Usar a IA como detector de segurança. Perguntar ao modelo se o anexo parece confiável não substitui os controles de entrada. A decisão de leitura deve existir antes de disponibilizar o objeto ao serviço que vai interpretá-lo.
Abrir a quarentena no computador do atendente. Um botão de prévia pode recriar o risco que o bloqueio tentou conter. Defina um procedimento de revisão com ferramenta e ambiente apropriados, além de orientação clara para o suporte.
Registrar o conteúdo inteiro no erro. Um documento rejeitado pode conter dados pessoais. Prefira identificador, tamanho, sinais de formato, componente utilizado e motivo da decisão. Controle acesso e retenção dos registros.
Confundir validação com execução segura. A CWE-434 da MITRE descreve o risco de uploads de tipos perigosos. Aprovar uma extensão não autoriza execução, publicação aberta ou acesso irrestrito ao arquivo.
Perguntas frequentes
Se extensão e MIME concordam, posso liberar?
Use essa concordância como sinal preliminar. A política proposta ainda exige inspeção pelos bytes e leitura estrutural controlada. Dois campos fornecidos pela mesma origem podem repetir a mesma informação errada.
Antivírus substitui a validação do formato?
São controles com objetivos diferentes. Um resultado de varredura não escolhe o analisador correto nem demonstra compatibilidade com a tarefa. Aplique as etapas previstas pela política e registre seus resultados separadamente.
Preciso guardar todos os anexos rejeitados?
Não necessariamente. Defina retenção conforme necessidade de investigação, privacidade e capacidade operacional. A quarentena precisa ter prazo e responsável, em vez de virar um arquivo permanente sem finalidade.
O detector deve corrigir divergências sozinho?
Prefira uma decisão explícita de bloqueio ou revisão. Correções automáticas só devem existir para casos definidos, testados e autorizados. Preserve a declaração original para que a equipe consiga explicar o ocorrido.
Como saber se o controle está funcionando?
Envie amostras com resultados esperados e acompanhe cada estado até o destino final. Confirme que entradas rejeitadas não chegam ao modelo, ao índice de busca ou ao sistema que executa ações.