image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image
Gustavo Oliveira
Gustavo Oliveira14/01/2025 00:52
Share

PROTEÇÃO AUTOMÁTICA CONTRA PHISHING: Como detectar, proteger,e automatizar em e-mails usando Python

  • #AWS
  • #Python

Imagine receber um e-mail do seu banco pedindo uma atualização de senha urgente. Parece legítimo, certo? Agora imagine que, em um segundo de descuido, você perde acesso à sua conta e seus dados são vendidos na dark web. Esta é a realidade enfrentada por milhares de pessoas vítimas de phishing diariamente.

O phishing é uma das ameaças cibernéticas mais comuns e perigosas. Segundo relatórios recentes, ataques de phishing são responsáveis por mais de 90% das violações de dados, gerando prejuízos bilionários todos os anos. Neste artigo, exploraremos como criar uma solução automatizada para detectar e excluir e-mails maliciosos usando Python, além de integrar a solução à AWS para segurança em nuvem.

O Que é Phishing e Como Ele Funciona

Phishing é uma técnica de engenharia social em que cibercriminosos enganam as vítimas para que revelem informações confidenciais, como senhas ou dados bancários, geralmente através de e-mails falsos. Esses e-mails costumam imitar comunicações de fontes confiáveis, como bancos ou redes sociais, dificultando a sua detecção.

Exemplos de Phishing:

  1. E-mails Urgentes: “Sua conta será bloqueada. Atualize seus dados agora!”
  2. Ofertas Irresistíveis: “Ganhou um cupom de desconto de 90%. Clique aqui para resgatar.”
  3. Mensagens de Autoridade: “Recebemos uma tentativa de acesso suspeito. Verifique sua conta.”

As consequências do phishing vão desde fraudes financeiras até o roubo de identidade e danos à reputação.

A Importância da Automação na Proteção Contra Phishing

Em ambientes corporativos, milhares de e-mails são recebidos diariamente. Verificar cada um manualmente seria inviável e propenso a erros. A automação permite:

  • Identificação Rápida: Detectar padrões de phishing em segundos.
  • Resposta Imediata: Remover ou marcar e-mails suspeitos antes que cheguem ao usuário.
  • Redução de Custos: Economizar recursos humanos e financeiros, protegendo dados sensíveis.

Como Criar a Automção para Detectar e Excluir E-mails de Phishing

Passo 1: Configuração Inicial

1.1 Instalar as Bibliotecas Necessárias Certifique-se de ter o Python instalado. Em seguida, instale as bibliotecas necessárias:

pip install imaplib email

1.2 Criar o Arquivo de ConfiguraçãoArmazene as credenciais de e-mail em um arquivo config.json para maior segurança:

{
"email_accounts": [
  {
    "email": "seuemail@gmail.com",
    "password": "sua_senha"
  }
]
}

Passo 2: Desenvolver o Script Python

Aqui está o código comentado para automatizar a detecção e exclusão de phishing:

import imaplib
import email
from email.header import decode_header
import json
import re

def carregar_config():
  with open("config.json", "r") as f:
      return json.load(f)

def verificar_phishing(conteudo):
  palavras_chave = ['password', 'login', 'urgent', 'verify', 'confirm']
  return any(re.search(r'\b' + palavra + r'\b', conteudo, re.IGNORECASE) for palavra in palavras_chave)

def processar_email(usuario, senha):
  try:
      mail = imaplib.IMAP4_SSL("imap.gmail.com")
      mail.login(usuario, senha)
      mail.select("inbox")

      status, emails = mail.search(None, 'UNSEEN')
      for num in emails[0].split():
          status, dados = mail.fetch(num, "(RFC822)")
          for resposta in dados:
              if isinstance(resposta, tuple):
                  msg = email.message_from_bytes(resposta[1])
                  assunto, encoding = decode_header(msg["Subject"])[0]
                  if isinstance(assunto, bytes):
                      assunto = assunto.decode(encoding if encoding else "utf-8")

                  if msg.is_multipart():
                      corpo = "".join(parte.get_payload(decode=True).decode() for parte in msg.walk() if parte.get_content_type() == "text/plain")
                  else:
                      corpo = msg.get_payload(decode=True).decode()

                  if verificar_phishing(corpo):
                      print(f"[ALERTA] Phishing detectado: {assunto}")
                      mail.store(num, '+FLAGS', '\\Deleted')
                  else:
                      print(f"[OK] E-mail seguro: {assunto}")

      mail.expunge()
      mail.logout()
  except Exception as e:
      print(f"Erro ao processar: {e}")

def main():
  config = carregar_config()
  for conta in config["email_accounts"]:
      processar_email(conta["email"], conta["password"])

if __name__ == "__main__":
  main()

2.1 Explicação do Código

  • Carregar as Configurações: O script começa carregando o arquivo config.json, que contém as credenciais de e-mail.
  • Verificação de Phishing: A função verificar_phishing() usa uma expressão regular simples para detectar palavras-chave comuns em e-mails de phishing, como "password", "verify", e "confirm".
  • Processamento de E-mails: O script se conecta ao servidor IMAP do Gmail e busca por e-mails não lidos. Para cada e-mail, ele verifica o conteúdo em busca de sinais de phishing.
  • Ação Automática: Dependendo da detecção, o e-mail é marcado como não lido ou excluído.

imageimageimageimageimageimageimageimage

Passo 3: Agendar o Script

3.1 No Windows (Agendador de Tarefas)

  1. Abra o Agendador de Tarefas no Windows.
  2. Clique em Criar Tarefa.
  3. Dê um nome à tarefa, como “Detecção de Phishing”.
  4. Na aba Ações, clique em Novo e, em seguida, escolha Iniciar um programa.
  5. Selecione o arquivo python.exe localizado em (exemplo: C:\Python39\python.exe) e no campo Adicionar argumentos insira o caminho do seu script Python: (exemplo: C:\caminho\para\seu_script.py).
  6. Configure a frequência para execução conforme desejado (exemplo: a cada 30 minutos).

3.2 No Linux e macOS (Cron Jobs)

No Linux e macOS, você pode usar o cron para agendar o script. Execute crontab -e para editar o cron:

# Adiciona uma linha para rodar o script a cada 30 minutos
*/30 * * * * /usr/bin/python3 /caminho/para/o/script/processa_emails.py

Isso fará com que o script seja executado automaticamente a cada 30 minutos.

Como Integrar a Automação com a AWS

Se um cliente tiver seus serviços hospedados na AWS, a automação para detectar e-mails de phishing pode ser feita utilizando a infraestrutura de nuvem da AWS. O serviço Amazon SES (Simple Email Service) pode ser usado para enviar alertas sobre tentativas de phishing, enquanto o AWS Lambda pode ser usado para executar o script de forma serverless, respondendo automaticamente às ameaças detectadas sem a necessidade de servidores dedicados. O AWS SNS (Simple Notification Service) pode ser integrado para notificar administradores ou sistemas de monitoramento sempre que um ataque de phishing for detectado, permitindo uma resposta rápida e eficiente.

Integração com AWS (Opcional)

  • Crie uma função no AWS Lambda e faça upload do seu script Python.
  • Configure um gatilho (trigger) para que a função seja executada a cada 30 minutos, utilizando o Amazon CloudWatch Events.

Com isso, o script será executado sem a necessidade de um servidor dedicado, aproveitando os benefícios de escalabilidade e alta disponibilidade da AWS.

Com esses passos, você poderá automatizar a detecção e exclusão de e-mails de phishing, melhorar a segurança da sua organização e integrar a solução com a AWS para uma proteção em nuvem ainda mais robusta.

Conclusão

Em um mundo onde as ameaças cibernéticas estão em constante evolução, a automação se torna a linha de frente na proteção contra ataques de phishing. Integrar essas soluções em sua infraestrutura não é apenas uma questão de eficiência, mas de resiliência e segurança. Com ferramentas poderosas como Python e a robustez da AWS, é possível detectar, eliminar e prevenir ataques de forma ágil e escalável. Mais do que proteger dados, você estará liderando uma transformação no combate ao cibercrime, promovendo um futuro digital mais seguro e confiável. A cada solução implementada, damos um passo significativo para erradicar o phishing e fortalecer a confiança no ambiente digital. Seja proativo, seja inovador, e faça parte dessa mudança essencial.

Share
Comments (0)