Nenhum arquivo é 100% seguro
Uma imagem parece inofensiva, mas abri-la significa que um programa analisa um formato binário complicado. Parsers são software, e software tem bugs. Um exemplo real: o CVE-2023-41064 é uma entrada no registro público do programa CVE, e o citamos como exemplo real de registro de vulnerabilidade em software que lida com imagens. Abra o registro para ver o fabricante, as versões afetadas e a descrição. Usamos o caso como exemplo de que esses problemas existem, sem afirmar nada sobre se o seu dispositivo é afetado hoje.
A lição prática não é evitar imagens. É manter o software atualizado e ter cuidado com onde arquivos não confiáveis são abertos.
Onde está o risco
A maior parte do risco está em decodificadores e parsers: código que lê cabeçalhos, tabelas e dados comprimidos, muitas vezes escrito em C ou C++ por velocidade. O HEIC acrescenta camadas: um contêiner (HEIF) com muitas estruturas, mais um codec derivado de vídeo. O projeto de código aberto libheif tem um SECURITY.md que descreve como os problemas de segurança são reportados, o que mostra que os mantenedores tratam isso como parte normal do trabalho. A libde265 é o decodificador H.265 que ela usa por padrão para HEIC.
Um arquivo quebrado ou hostil pode travar um programa ou, no pior caso, explorar um bug. Um arquivo apenas danificado não faz nenhuma das duas coisas, mas não abre.
Hábitos que ajudam
- Atualize seu sistema operacional e seus apps. As correções de parsers chegam por atualizações.
- Desconfie de remetentes desconhecidos. Abrir uma foto de um estranho é um risco menor que executar um programa, mas não é zero.
- Não confie em extensões. Um arquivo chamado
holiday.jpgpode ser qualquer coisa. O verificador de arquivos do FromHEIC lê o tipo pelo conteúdo e informa tamanho, dimensões, número de imagens, codec e integridade básica. - Prefira um ambiente isolado. Uma aba do navegador roda na sandbox do navegador, separada do resto do seu sistema.
- Guarde o original. Se algo der errado, você ainda tem a origem.
O que o FromHEIC faz para limitar a exposição
- Todo o processamento roda no seu navegador, dentro de um Web Worker. Os arquivos não são enviados.
- A Content-Security-Policy limita as conexões de rede à origem do próprio site e ao Google Analytics, que só carrega se você aceitar, o que reduz muito para onde um bug em um codec poderia enviar seu arquivo.
- Os codecs são módulos WebAssembly (libheif com libde265 para decodificação) servidos do mesmo domínio.
- A detecção de tipo é feita pelo conteúdo, e cada saída é analisada ou decodificada de novo antes de o download ser oferecido.
- Existem limites: 200 MB por arquivo, 100 megapixels por imagem, 200 arquivos por lote.
Isso reduz o risco; não o elimina. Um decodificador WebAssembly ainda pode ter bugs, e o navegador também. O objetivo é que uma falha fique dentro da aba. A página de Segurança deste site diz o mesmo com mais detalhes.
Inspecione antes de converter
Três ferramentas examinam um arquivo sem tentar repará-lo ou alterá-lo:
- A verificação de integridade detecta truncamento, extensão errada, contêiner inválido, codecs não suportados e EXIF malformado, e depois tenta uma decodificação real.
- O inspetor de HEIC mostra a estrutura: brands, codec, itens, miniaturas e assim por diante.
- O verificador de arquivos informa o tipo real e a integridade básica.
Se um arquivo é estranho, uma verificação que falha já é uma informação.
Metadados também são um risco de privacidade
Segurança não é só sobre execução de código. Fotos carregam dados pessoais. O ExifTool lista as tags GPS que um arquivo pode conter, como latitude e longitude. Antes de compartilhar, consulte o guia de metadados e considere o Remover metadados de HEIC. A Apple também observa que alguns métodos de compartilhamento podem converter a mídia para um formato mais compatível, o que não é um recurso de privacidade e não deve ser usado para remover nada.
Quando ter mais cuidado
- Um arquivo de origem desconhecida que você precisa abrir.
- Um arquivo que trava o software repetidamente.
- Uma “foto” com extensão ou tamanho inesperado.
Nesses casos, use um navegador atual, abra o arquivo nele em vez de em um programa de desktop mais antigo e, se puder evitar, não o abra em um dispositivo com dados sensíveis. Na dúvida, peça outra cópia ao remetente.
Reportando problemas
Se você acha que encontrou um problema no FromHEIC, veja a página de Contato. Para as bibliotecas subjacentes, siga o processo de reporte de cada projeto.