Como estamos utilizando inteligência artificial para detectar phishing em +1.000.000.000 de e-mails

Francis Oliveira
Ship It!
Published in
6 min readSep 30, 2021

Inteligência Artificial e Machine Learning (aprendizado de máquina) são talvez os tópicos mais quentes do momento na área de tecnologia, e apesar de todo “hype” criado, essas tecnologias já são realidade em produtos utilizados por milhares de pessoas no mundo todo como navegação autônoma, sistemas de recomendação, biometria e até no espaço. Não há dúvidas de que a Inteligência Artificial é o presente e o futuro da área de tecnologia.

Aqui na RD Station o uso de Inteligência Artificial ainda está no começo, mas já temos algumas iniciativas importantes em andamento e uma delas irei abordar neste artigo.

Foto de cottonbro no Pexels

Nosso desafio

Nosso produto principal é o RD Station Marketing, que é uma ferramenta para automação de marketing e uma das suas principais funcionalidades é o disparo de e-mails em massa. Suportamos por mês +1.000.000.000 de e-mails disparados pelos nossos clientes e parceiros.

Os serviços provedores de email (ISPs), como o Gmail, Outlook, Yahoo, verificam diversas informações antes de entregar o e-mail recebido na caixa de entrada do usuário e possuímos uma infraestrutura bastante robusta para garantir a entrega de bilhões de mensagens. Entre as informações verificadas pelos provedores, existem algumas conhecidas como:

  • Reputação de domínios: É verificado a reputação do domínio utilizado pelo remetente do e-mail e também dos links que estão no conteúdo;
  • Reputação de ips: Averiguação da reputação do IP utilizado pelo servidor que enviou o e-mail;
  • Conteúdo do e-mail: Confere o conteúdo em busca de palavras que podem indicar spam ou phishing, por exemplo.

Como grande parte dos nossos clientes optam por contratar planos com infraestrutura compartilhada (pacotes de entrada), o comportamento de uma empresa pode afetar outras empresas que utilizam o mesmo ecossistema — o que pode ser bom e ruim dependendo da ação realizada. Falando especificamente de spam e phishing, esses são exemplos de ações maliciosas que prejudicam a reputação do domínio e IPs, afetando diretamente a entregabilidade dos e-mails de uma cadeia inteira de empresas.

O que é Phishing?

Phishing é uma técnica de engenharia social utilizada para enganar usuários e obter informações confidenciais tais como: números de cartão de crédito, dados bancários, login e senhas de diversos serviços e redes sociais. O phishing geralmente ocorre através do envio de e-mail em nome de uma empresa conhecida, mas que na verdade é falso, O objetivo dele é redirecionar o usuário para um site também falso para capturar os dados da vítima através de algum tipo de formulário.

Fluxo de ações realizadas em um ataque de phishing (Imagem de cloudflare)

O que é Inteligência Artificial e Machine Learning?

O termo “Inteligência Artificial” surgiu em 1956, introduzido por John McCarthy o qual concedeu a seguinte definição: “A ciência e a engenharia de construir máquinas inteligentes”. Machine learning é um ramo da Inteligência Artificial baseado na ideia de que sistemas podem aprender com dados, identificar padrões e tomar decisões com o mínimo de intervenção humana.

O processo de aprendizado é feito através de um “modelo”, que é o nome dado ao arquivo gerado pelo processo de treinamento para reconhecer determinados tipos de padrões. Você treina um modelo em um conjunto de dados, fornecendo a ele um algoritmo que pode ser usado para aprender com esses dados. Depois de treinar um modelo, você pode usá-lo para classificar e fazer previsões sobre dados que ele não viu antes.

Para se utilizar Machine Learning em sistemas reais, é preciso primeiro de muitos dados, que basicamente seriam exemplos de soluções para o problema que gostaríamos de resolver. Esses dados serão utilizados para treinar um modelo, que depois de treinado irá conseguir fazer predições sobre um problema a partir de um conjunto de informações recebidas. Geralmente é comum treinar diversos modelos e, após avaliação, escolher aquele com o melhor desempenho para utilizar em produção.

Fluxo para treinamento de um modelo

Como treinar modelos para detecção de phishing

Para se treinar um modelo com sucesso e atingir uma alta acurácia, precisamos de muitos dados. A acurácia indica uma performance geral do modelo: dentre todas as classificações, quantas o modelo classificou corretamente. Outros requisitos como extração/engenharia de características e escolha do melhor algoritmo para o problema também são muito importantes, mas sem uma grande quantidade de dados, dificilmente você conseguirá alcançar um bom resultado.

No contexto de phishing, a coleta de dados é uma das grandes dificuldades encontradas. Encontrar exemplos de sites legítimos é relativamente fácil, pois são a grande maioria encontrada na internet, por outro lado, encontrar exemplos de phishing é bem mais difícil, pois além de existirem em menor número, geralmente possuem uma vida curta (são desativados depois de encontrados).

Para solucionar esse problema, podemos recorrer a serviços que recebem denúncias de phishing e funcionam como uma espécie de “repositório”, permitindo a consulta de uma base de dados de sites que foram denunciados e verificados como phishing. Aqui na RD Station, por exemplo, consultamos os serviços phishtank e openphish, que possuem listas públicas com milhares de sites que fazem phishing e extraímos cerca de 5.000 URLs de phishing deles e mais 5.000 URLs de sites legítimos de outras fontes. Com esses dados “em mãos”, iniciamos o processo de treinamento do modelo, conforme ilustrado na figura abaixo:

Treinamento do modelo para detecção de phishing

Para treinar nosso modelo, extraímos algumas características importantes destes sites, como informações sobre o domínio, posição em rankings de classificação, quantidade de links no site que apontam para domínios externos, posição em mecanismos de busca como o Google, entre outros. Essas características são fundamentais para que o modelo consiga aprender as diferenças entre phishing e sites legítimos, e assim seja capaz de classificá-los corretamente.

Com o modelo pronto, criamos uma aplicação que utilizará esse modelo (batizada internamente de Holmes) e que será responsável por verificar o conteúdo dos e-mails enviados, buscando links maliciosos, nos alertando caso encontre algo suspeito. Assim conseguimos detectar casos de phishing o mais rápido possível e tomar as ações necessárias para bloquear os criminosos. Com base em informações internas, escolhemos algumas contas suspeitas e executamos o procedimento ilustrado na figura abaixo:

Envio de e-mail por conta suspeita

Nossos primeiros resultados

Esse experimento ainda está na fase inicial, mas já conseguimos colher resultados promissores: em 1 mês detectamos mais de 30 casos de phishing, até antes de aparecer em listas do Google ou sermos notificados pelo nosso provedor de e-mail. Mesmo com esses resultados positivos, continuamos trabalhando para evoluir o modelo e o sistema. Phishing é um problema delicado e que atinge milhares de pessoas ao redor do mundo e traz prejuízos milionários para as vítimas e também para as empresas. Ainda estamos longe de resolver o problema, porém cada dia mais perto de uma solução.

E você, quer nos ajudar a construir essa (e outras) soluções que ajudam empresas a escalarem seus negócios? Então veja nossas vagas faça parte do nosso time!

--

--