DevSecOps

18 jan, 2016

Feedback Loops e os desafios da segurança no envio de e-mails em uma empresa

Publicidade

Nos tempos atuais, a atividade digital de troca de mensagens está cada vez mais rápida e os serviços que facilitam tal atividade estão cada vez mais abrangentes. Isso graças às altas velocidades dos links de Internet, Internet Móvel, dispositivos móveis e facilidade de acesso à ferramentas que, há 10 anos, não existiam. Com isso, trocar mensagens tornou-se cada vez mais ubíquo no cotidiano das pessoas.

Entretanto, o primeiro método de troca de mensagens, conhecido como correio eletrônico (do inglês e-mail), ainda é amplamente utilizado no relacionamento digital entre as pessoas. Paralelamente, graças aos mesmos motivos que aceleraram a troca de mensagens, a utilização de e-mail também tornou-se rotineira. Provavelmente, é o método mais utilizado no meio corporativo, tanto para interação empresa/cliente, como para interação entre empresa/empresa. Mesmo assim, ninguém se pergunta como as mensagens trafegam na Internet, como saem de sua origem (dinâmica, do ponto de vista de rede) e chegam em seu destino (também dinâmico, do ponto de vista de rede). Queremos apenas utilizar da tecnologia, o que é um comportamento natural.

Hoje, dentre outros termos utilizados para problemas com e-mails, um dos mais conhecidos é o SPAM, popularmente definido por “mensagens indesejadas”. O significado deste termo é um tanto quanto obscuro, podendo significar desde “Sending and Posting Advertisement in Mass” a “Stupid Pointless Annoying Messages”, porém a versão do significado do termo mais difundida (definida na RFC2635) é a de que originou-se da marca SPAM, um tipo de carne suína enlatada da Hormel Foods Corporation, e foi associado ao envio de mensagens não solicitadas devido a um quadro do grupo de humoristas ingleses Monty Python.

Todos nós recebemos essas mensagens, por mais que criemos uma conta de e-mail em algum serviço e não a divulguemos a ninguém ou associemos essa conta de e-mail a nenhum comércio eletrônico ou lista de discussão. Querendo ou não, o SPAM estará presente, porém devidamente filtrado pelo serviço que estamos utilizando.

Mas e se você tem uma ideia milionária e decide abrir uma empresa, porém sua ideia é completamente baseada na troca de e-mails entre você e seu cliente? Como serão feitos tais envios de e-mail? A princípio, você pode contratar um serviço de terceiros para facilitar a divulgação da sua ideia. Há vários serviços muito bons que podem realizar o envio de e-mails individuais ou em massa, fazendo com que suas informações cheguem até o público-alvo. Contudo, se o público-alvo – apesar de caracterizado como tal – nem conhece sua marca, não vai desejar receber mensagens suas. Isso caracteriza SPAM. Como resolver?

Assim começa a árdua tarefa de um departamento, muitas vezes responsável por múltiplas funções, para realizar envios de mensagens via e-mail com sucesso, tratando os casos de mensagens indesejadas pelo destinatário, endereços de e-mails fora de padrão de sintaxe, domínios mal configurados. Ou seja, deve-se permitir que o destinatário possa escolher entre receber sua mensagem ou não, sem que ele marque-a como SPAM. É importante ressaltar, neste ponto, que o texto corrente trata apenas do envio de mensagens e não do recebimento, o que caracteriza outros conhecimentos, cuidados e configurações.

Para início de conversa, é necessário saber que a troca de mensagens eletrônicas utiliza o protocolo SMTP (Simple Mail Transfer Protocol), que é baseado em texto pleno, contendo um cabeçalho com informações de origem e destino, bem como assunto, remetente, destinatário, conteúdo, dentre vários outros que podem ser personalizados por cada servidor. No entanto, esse protocolo apresenta algumas brechas evidenciadas pela simplicidade do mesmo, facilitando o surgimento e o desenvolvimento das primeiras técnicas de SPAM. Com estas, surgiram também as técnicas ANTISPAM, destinadas a corrigir tais brechas do protocolo SMTP.

O SPAM pode acontecer de várias formas, dentre elas:

  • Remetente conhecido, enviando mensagens não solicitadas;
  • Remetente desconhecido, enviando mensagens não solicitadas;
  • Remetente disfarçado de um remetente conhecido, enviando mensagens solicitando dados pessoais, bancários, etc. Seja qual for o tipo, se identificado (ou pelo serviço, ou marcado como SPAM pelo endereço de e-mail que recebeu a mensagem), trará prejuízos a empresa que enviou a mensagem.

Quando se utiliza um serviço de envio de e-mail de terceiros (envios comuns, não tratando de e-mail marketing), é necessário saber que aquele serviço possui servidores de e-mail. A facilidade é realista, você apenas consome uma API RESTful ou conecta no servidor SMTP do serviço e já está funcionando. Basta adquirir créditos ou inserir os dados do seu cartão de crédito no painel do serviço. No entanto, isso não isenta o departamento responsável de gerenciar e validar endereços de e-mail para que o terceiro não bloqueie as suas atividades.

A validação de endereços de e-mail é algo um tanto quanto complicada. O domínio do e-mail (parte após o @) é uma parte que pode ser facilmente verificada antes do envio da mensagem, pois todo domínio de endereço de e-mail possui um servidor de e-mail configurado no DNS, ou seja, deve haver um registro do tipo MX no DNS autoritativo do domínio, o que pode ser investigado por qualquer linguagem de programação. Além disso, o servidor do registro MX deve possuir portas correspondentes ao protocolo SMTP abertas publicamente, do contrário a mensagem não será entregue.

A parte difícil é a parte do usuário (ou conta) no serviço de e-mail, ou seja, a parte antes do @. Há métodos que verificam se um usuário (parte antes do @) existe em um servidor de e-mail, mesmo sem enviar a mensagem. Contudo, estes métodos ferem normas de segurança dos principais serviços de e-mail na Internet, causando o bloqueio do IP que realizou tal tentativa, o que não é viável se a empresa realiza muitos envios de mensagens, para diferentes endereços de e-mail, diferentes serviços de e-mail, etc. A única forma segura de saber se um usuário está funcionando corretamente é enviando uma mensagem e aguardar a resposta de sucesso do servidor de destino.

Com a validação do endereço de e-mail do destinatário, é possível realizar o envio da mensagem, desde que no corpo dessa mensagem haja informações para que o destinatário possa escolher não receber mais essas mensagens, sem marcar esta mensagem como SPAM (pelo bem da própria empresa). Há alguns serviços que aceitam cabeçalhos devidamente formatados e, ao exibirem a mensagem para o destinatário, criam um botão que permite que o destinatário não mais receba aquelas mensagens. Esse botão pode enviar uma mensagem, com os dados do destinatário que não quer mais receber, ou pode realizar requisições web em um determinado domínio especificado pela codificação no momento do envio inicial.

Quando o destinatário marca, efetivamente, a mensagem como SPAM, ele está colaborando para um grande estrago para a empresa que enviou esta mensagem, por isso surgiram as Feedback Loops, que são uma maneira de cada serviço de reportar a marcação de SPAM diretamente ao domínio que realizou o envio da mensagem. Assim, por mais que o destinatário marque como SPAM, será possível a empresa ser notificada sobre tal marcação e se prevenir de alguma forma para não enviar novamente aquela mensagem, entrar em contato entrevistando o usuário, ou qualquer outra ação.

A maioria das Feedback Loops são baseadas em mais envios de mensagens. É possível automatizar esse processo criando um servidor de e-mail que receba tais mensagens via SMTP e filtre-as de acordo com os critérios de cada Feedback Loop. Ou seja, se a decisão da empresa ou do departamento responsável foi de ter um serviço de e-mail próprio, essas implementações são mandatórias. De todos os grandes serviços de e-mail conhecidos mundialmente, apenas o Gmail não oferece um serviço de Feedback Loop, que notifica o domínio do remetente sobre uma possível marcação de SPAM. Contudo o Gmail aceita cabeçalhos com conteúdos personalizados que dão a opção ao destinatário de não mais receber mensagens. Esses conteúdos dos cabeçalhos podem ser, principalmente, um campo “mailto”, com destinatário e assunto, o que facilita o controle por parte da empresa para não mais enviar mensagens àquele destinatário.