Guias e Tutoriais

Extensão não basta: como verificar o tipo real de um arquivo antes de usar IA

Ilustração editorial de um arquivo passando por leitura hexadecimal, identificação de formato e revisão antes de chegar a uma IA

Um arquivo chamado relatorio.pdf pode não ser um PDF. Trocar o nome ou a extensão não converte o conteúdo, apenas muda a indicação que o Windows e os aplicativos usam para decidir como tratá-lo. Antes de enviar um anexo desconhecido a uma IA, abrir o arquivo por tentativa e erro é justamente o atalho que convém evitar.

Este guia mostra uma triagem local e reversível no Windows. Você vai tornar a extensão visível, preservar o original, ler somente os primeiros bytes, comparar a assinatura com alguns formatos comuns e, quando necessário, consultar um registro técnico. O processo ajuda a detectar inconsistências, mas não prova que um arquivo é seguro.

Regra prática: nome, ícone, extensão, tipo MIME e assinatura interna são evidências diferentes. Uma assinatura compatível aumenta a confiança sobre o formato, mas não substitui antivírus, sandbox, validação estrutural nem revisão de conteúdo.

Resultado esperado

Ao final, você terá uma cópia de análise, a extensão completa do arquivo, os primeiros 16 bytes em hexadecimal e uma conclusão limitada a uma destas três classes:

  • compatível: extensão e assinatura conhecida apontam para o mesmo formato;
  • incompatível: a assinatura observada contradiz a extensão;
  • inconclusivo: o formato não tem assinatura simples, usa um contêiner compartilhado ou exige uma ferramenta especializada.

“Compatível” não significa “livre de malware”. A própria OWASP recomenda validação em camadas, porque extensão, cabeçalho de tipo e assinatura podem ser falsificados ou insuficientes quando usados isoladamente.

Pré-requisitos

  • Windows 10 ou 11;
  • PowerShell 7 para o comando mais curto, ou Windows PowerShell 5.1 para a alternativa incluída;
  • permissão para analisar o arquivo;
  • uma pasta separada, sem sincronização automática e sem dados de produção;
  • o hash ou uma cópia preservada do arquivo original;
  • um ambiente isolado se o arquivo veio de remetente desconhecido ou fonte não confiável.

Não execute, visualize, descompacte nem habilite conteúdo ativo durante a triagem. Para arquivos recebidos como código ou instalador, prefira um ambiente descartável. O guia do Bastidores sobre Windows Sandbox com rede desligada ajuda a reduzir o impacto, mas não transforma o arquivo em seguro.

Passo 1: preserve o original antes de investigar

Copie o arquivo para uma pasta de análise e não altere o original. Registre o hash SHA-256 da cópia:

$arquivo = 'C:\Analise\anexo-recebido.bin'
Get-FileHash -LiteralPath $arquivo -Algorithm SHA256

O hash não identifica o formato e não avalia segurança. Ele serve para confirmar que todas as observações seguintes se referem aos mesmos bytes. Se o hash mudar, trate o resultado anterior como pertencente a outro arquivo.

Use -LiteralPath para que caracteres como colchetes no nome não sejam interpretados como curingas. Não cole caminhos confidenciais em uma conversa com IA. Se precisar compartilhar o procedimento, troque o caminho real por um exemplo neutro.

Passo 2: mostre a extensão completa no Explorador

No Windows 11, abra o Explorador de Arquivos e escolha Exibir > Mostrar > Extensões de nomes de arquivos. No Windows 10, a opção equivalente aparece na guia Exibir. A documentação da Microsoft reforça que mudar a extensão não altera o formato do conteúdo.

Observe o nome inteiro. orcamento.pdf.exe não é um PDF só porque “pdf” aparece no meio. Espaços, múltiplos pontos e extensões duplas merecem atenção. O ícone também não é prova, pois depende da associação de aplicativos do sistema.

Passo 3: registre tamanho, nome e extensão sem abrir

No PowerShell, consulte os metadados básicos do sistema de arquivos:

Get-Item -LiteralPath $arquivo |
  Select-Object Name, Extension, Length, LastWriteTime

Esses campos ajudam a detectar incoerências, mas não validam conteúdo. Um arquivo de zero bytes, por exemplo, não é um PDF válido apenas porque termina em .pdf. Da mesma forma, um tamanho plausível não confirma que o arquivo esteja íntegro.

Passo 4: leia somente os primeiros 16 bytes

No PowerShell 7, Format-Hex aceita -Count, o que permite limitar a leitura exibida:

Format-Hex -LiteralPath $arquivo -Count 16

O resultado mostra os bytes em hexadecimal e uma representação de caracteres quando possível. A Microsoft documenta esse uso para ajudar a determinar o tipo de um arquivo corrompido ou sem extensão.

No Windows PowerShell 5.1, onde -Count não está disponível, leia um bloco pequeno com um fluxo de arquivo:

$fluxo = [System.IO.File]::OpenRead($arquivo)
try {
  $buffer = New-Object byte[] 16
  $lidos = $fluxo.Read($buffer, 0, $buffer.Length)
  ($buffer[0..($lidos - 1)] | ForEach-Object {
    $_.ToString('X2')
  }) -join ' '
}
finally {
  $fluxo.Dispose()
}

Se o arquivo estiver vazio, a alternativa precisa ser interrompida antes de acessar o intervalo. Confira Length no passo anterior. Essa leitura não executa o arquivo, mas ainda deve ocorrer em uma cópia autorizada e isolada.

Passo 5: compare com assinaturas comuns

Alguns formatos começam com sequências reconhecíveis. Use a tabela apenas como triagem:

Formato provável Início hexadecimal comum Leitura
PDF 25 50 44 46 corresponde a %PDF
PNG 89 50 4E 47 0D 0A 1A 0A assinatura fixa do formato
JPEG FF D8 FF marcador inicial comum
GIF 47 49 46 38 começa com GIF8
ZIP e contêineres baseados em ZIP 50 4B 03 04 início comum de uma entrada ZIP
Executável portátil do Windows 4D 5A cabeçalho MZ

Se um arquivo chamado foto.png começa com 4D 5A, a extensão e o conteúdo entram em conflito. Não renomeie para testar e não envie à IA. Preserve a evidência e encaminhe o caso para o processo de segurança da organização.

Ausência de uma sequência conhecida não prova fraude. Arquivos de texto, variantes antigas e muitos formatos especializados podem não ter uma assinatura curta ou exclusiva. Nesse caso, classifique como inconclusivo.

Passo 6: trate DOCX, XLSX e PPTX como contêineres

Os formatos Open XML modernos do Word, Excel e PowerPoint são pacotes baseados em ZIP. Por isso, .docx, .xlsx, .pptx e um .zip comum podem começar com os mesmos bytes 50 4B. O cabeçalho inicial sozinho não distingue esses formatos.

Em uma cópia isolada e somente se a política permitir, liste os nomes internos sem extrair o conteúdo:

Add-Type -AssemblyName System.IO.Compression.FileSystem
$pacote = [System.IO.Compression.ZipFile]::OpenRead($arquivo)
try {
  $pacote.Entries |
    Select-Object -First 30 -ExpandProperty FullName
}
finally {
  $pacote.Dispose()
}

Um pacote Open XML costuma incluir [Content_Types].xml. Pastas como word/, xl/ ou ppt/ indicam a família do aplicativo. Isso ainda não valida todos os relacionamentos internos nem remove conteúdo ativo.

A Microsoft diferencia extensões com suporte a macro por uma letra m, como .docm, .xlsm e .pptm. Se o arquivo é do Office, continue com o guia sobre como inspecionar um arquivo sem liberar macros por impulso.

Passo 7: use PRONOM ou DROID quando a triagem for inconclusiva

O PRONOM, mantido pelo The National Archives do Reino Unido, reúne informações técnicas e assinaturas internas e externas de mais de dois mil formatos. O DROID usa essas assinaturas para identificação automatizada de arquivos.

Para um caso pontual, pesquise no PRONOM pela extensão ou pelo nome do formato e compare a descrição técnica. Para lotes ou acervos, avalie o DROID conforme a documentação oficial da instituição. Baixe ferramentas somente da origem oficial, verifique os requisitos e não instale nada apenas porque uma resposta de IA sugeriu um link.

O identificador produzido por uma ferramenta é evidência técnica, não autorização de uso. Um arquivo pode estar corretamente identificado e ainda conter dados pessoais, material sigiloso, conteúdo corrompido ou elementos ativos.

Passo 8: decida se o arquivo pode ser enviado à IA

Antes do upload, responda separadamente:

  1. O formato identificado é aceito pela ferramenta?
  2. Você tem autorização para compartilhar o conteúdo?
  3. Há dados pessoais, segredos, credenciais ou propriedade intelectual?
  4. O destino, a conta e a política de retenção foram confirmados?
  5. Existe uma versão minimizada ou sintética suficiente para a tarefa?

Se qualquer resposta estiver indefinida, pare antes do upload. A IA não precisa receber o arquivo completo para ajudar com toda tarefa. Em muitos casos, uma amostra sintética, um trecho já revisado ou apenas a descrição do formato resolve a etapa inicial.

Erros comuns

Confiar no ícone do aplicativo

O ícone mostra a associação configurada no Windows. Ele não examina os bytes e pode acompanhar uma extensão enganosa.

Renomear e abrir para ver se funciona

Renomear não converte o conteúdo. Abrir por tentativa pode acionar um interpretador, visualizador vulnerável ou conteúdo ativo.

Tratar 50 4B como prova de DOCX

Essa sequência aparece em ZIP e em vários formatos baseados em ZIP. É preciso verificar a estrutura interna e, quando o risco justificar, usar um identificador especializado.

Confundir assinatura de formato com assinatura digital

A assinatura de formato é um padrão de bytes usado na identificação. Uma assinatura digital envolve criptografia, identidade do signatário e integridade. Uma não substitui a outra.

Declarar o arquivo seguro após encontrar o cabeçalho esperado

Assinaturas podem ser imitadas e arquivos válidos podem carregar conteúdo malicioso. Mantenha antivírus, sandbox, validação estrutural e menor privilégio conforme o risco.

Solução de problemas

Format-Hex não reconhece -Count

Você provavelmente está no Windows PowerShell 5.1. Use a alternativa com FileStream ou abra o PowerShell 7. Confirme a versão com $PSVersionTable.PSVersion.

O arquivo começa com 50 4B, mas não abre como ZIP

O pacote pode estar corrompido, protegido, truncado ou usar uma estrutura que exige outro leitor. Não force a extração e não conclua que é um documento do Office. Registre como inconclusivo.

A assinatura não aparece no início

Nem todo formato usa uma assinatura fixa no byte zero. Consulte um registro como PRONOM ou use uma ferramenta especializada. Não invente uma extensão com base em aparência ou tamanho.

Extensão e assinatura entram em conflito

Não abra o arquivo. Preserve a cópia e o hash, registre o conflito e siga o procedimento de segurança ou descarte autorizado da organização.

O arquivo parece correto, mas contém dados sensíveis

Identificação de formato não é revisão de conteúdo. Minimize, anonimize ou substitua os dados conforme a finalidade e a política aplicável antes de qualquer envio.

O que esta triagem não garante

O procedimento não detecta todo conteúdo malicioso, não valida a integridade completa da estrutura, não confirma autoria e não substitui análise antimalware. Também não avalia se você pode compartilhar o conteúdo com um fornecedor de IA.

Arquivos poliglotas podem ser interpretados de mais de uma maneira, e um cabeçalho esperado pode coexistir com conteúdo indevido. Se o risco for relevante, use ferramentas corporativas de segurança, um ambiente isolado e revisão especializada.

Checklist antes do upload

  • A extensão completa está visível?
  • O original foi preservado e o hash registrado?
  • O arquivo foi analisado sem execução e sem extração desnecessária?
  • Extensão e assinatura interna são compatíveis?
  • Contêineres ZIP foram tratados como inconclusivos até a inspeção estrutural?
  • A conclusão evita chamar o arquivo de seguro?
  • Autorização, sensibilidade e destino do upload foram confirmados?
  • Uma amostra menor ou sintética foi considerada?
  • Links e ferramentas vieram de fontes oficiais?
  • O resultado foi registrado como compatível, incompatível ou inconclusivo?

Ilustração editorial exclusiva do Bastidores da IA. Não é captura de tela de produto ou sistema real.

Fontes consultadas em 8 de setembro de 2026

RADAR BASTIDORES

IA muda rápido. Critério não.

Estamos preparando uma seleção editorial de novidades, ferramentas e guias que realmente merecem atenção.

Escolha apenas o canal pelo qual deseja receber novidades. Nome e demais campos são opcionais.

Os dados ficam privados no WordPress e não são vendidos. Informe ao menos e-mail, celular ou rede social.