| « Justiça seja feita | Certificação Digital sem o devido cuidado » |
Porque não carregar imagens em e-mail
Participando da lista do Mozilla, vez por outra aparece um usuário querendo saber como exibir automaticamente imagens de um e-mail. O Thunderbird apresenta a mensagem "Para proteger sua privacidade, o Thunderbird bloqueou as imagens externas desta mensagem", sendo necessário autorizar manualmente a visualização. Postura esta repetida pela imensa maioria dos clientes de e-mail e webmails.
Mas qual o motivo do bloqueio?
O primeiro motivo é que já aconteceram falhas de segurança no simples fato de exibir uma imagem. Ou seja, dependendo do Sistema Operacional e do nível de atualizações, a ação automática de carregar um e-mail com imagens poderia gerar riscos ao sistema.
O segundo, e principal, é que o carregamento de imagens externas podem dar muitas informações ao rementente do e-mail como explico a seguir:
Conceito de uso de e-mail para capturar informações
Normalmente o código HTML de um e-mail que requisita uma imagem é similar ao abaixo:
<img src="http://www.navegantes.org/imagem.jpg" width="100" height="100">
Porém é possível chamar, ao invés de uma imagem, um arquivo com alguma linguagem de programação:
<img src="http://www.navegantes.org/imagem.php?email=fulano@provedor.com" width="1" height="1">
Note que a extensão do arquivo é .php e no caso o rementente pode formar imagens passando dados do usuário (no caso "email=fulano@provedor.com"). O script PHP no servidor poderia ter um conteúdo semelhante a:
<?php
header("Content-type: image/png");
$im = imagecreatefrompng("branco.png");
imagepng($im);
imagedestroy($im);
(...)
?>
Que retornaria uma imagem em branco pré-existente, que pode ser até invisível ao leitor, mas poderia gerar uma série de comandos no script requisitado.
Traduzindo:
- O cliente de e-mail faz a requisição da imagem no endereço http://(...)/imagem.php?email=fulano@provedor.com
- O script PHP informa ao requerente "Oi, eu sou imagem", retorna uma imagem qualquer e captura os dados informados "email=fulano@provedor.com"
- Como o dado enviado (o e-mail) pode-se utilizar para agregar valores possíveis de serem capturados pelo script (versão do Sistema Operacional, versão do programa, data de leitura, etc).
Com estes dados o remetente pode ter certeza da existência de um e-mail, ser informado de usuários que utilizam versões desatualizadas de softwares e promover ataques específicos, fazer estatística de campanhas de SPAM com maior sucesso, capturar características de quais horários o destinatário costuma receber mensagens, entre outras informações que, com certeza, não gostaríamos de fornecer a qualquer estranho.
Dá para evitar isso? Se o cliente de e-mail/navegador proibir o carregamento de formatos de imagens fora dos padrões, o servidor onde a imagem estaria localizada poderia, por exemplo, executar um arquivo jpg como script php (é... dá pra fazer isso).
Dá para avançar na segurança, mas não dá para banir este risco. Então, vamos deixar a opção de bloquear imagens externas ligada. Se for de remetente conhecido* libere-as.
Leitura Relacionada:
* Conhecido é um termo perigoso já que forjar o remetente de um e-mail é uma tarefa bem simples.
Endereço de trackback para este post
Trackback URL (clique direito e copie atalho/localização do link)
3 comentários, 1 trackback
Maysa
"O porquê da não exibição automática de imagens externas ao e-mail"