Skip to content

aleapc/thunderbird-guardian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thunderbird Guardian

MailExtension de segurança para Thunderbird 115+. Análise local de mensagens — nada sai da máquina.

Status

  • Fase 1 — Anti-phishing: implementada
    • Headers: SPF / DKIM / DMARC, DKIM-Signature ausente, Reply-To / Return-Path / Sender em domínios diferentes, Received ausente, Date no futuro
    • URLs: IP cru, punycode, encurtadores, texto do link diferente do destino
    • Domínios: lookalike de marcas (Itaú, Bradesco, Nubank, gov.br, PayPal, Google, etc.), IDN, free-mail se passando por empresa
    • Scoring: agrega em safe / warn / danger, badge no botão de mensagem
    • Banner injetado em mensagens warn ou danger
    • Notificação desktop para danger na chegada
  • Fase 2 — Anexos: implementada
    • Listas: executáveis, scripts, Office com macros, containers, web carriers, scripting Unix
    • Detecção de extensão dupla (fatura.pdf.exe)
    • Hash SHA-256 calculado sob demanda (ou sempre, opcional)
    • Identificação de tipo real via magic bytes — flag se EXE/ELF/Mach-O se passa por PDF/DOC etc
    • VirusTotal opcional (lookup de hash, sem upload) — habilitar em Opções
    • Lista de anexos no popup com hash copiável e badge VT por arquivo
  • Fase 3 — Auditoria de regras e contas: implementada (usa Experiment API, pode quebrar em TB futuros)
    • Contas IMAP/POP3/NNTP: detecta sem TLS, STARTTLS opcional, auth em texto puro
    • Servidores SMTP: mesmos critérios
    • Identidades: mismatch entre domínio do e-mail e domínio do SMTP (informativo)
    • Regras de filtro: forward automático (sinal de comprometimento), regra que esconde mensagens com palavras sensíveis (boleto/pix/senha), regra silenciosa (mark-read + move)
    • Resultado em Opções → seção "Auditoria do sistema"
  • Fase 4 — Auditor de OpenPGP/S-MIME: implementada (parcial — limitada pela API)
    • Detecção por mensagem: identifica multipart/encrypted (PGP/S-MIME) e multipart/signed no Content-Type — adiciona finding info
    • Auditoria de identidades: lista chaves OpenPGP configuradas, certificados S/MIME (assinatura e criptografia)
    • Detecta: identidade sem cripto alguma, chave PGP configurada mas sem assinar por padrão, S/MIME só de criptografia (sem assinatura)
    • Não substitui o gerenciador de chaves nativo do Thunderbird — só audita o estado atual

Como carregar no Thunderbird

  1. Tools → Developer Tools → Debug Add-ons (about:debugging#/runtime/this-thunderbird)
  2. Load Temporary Add-on…
  3. Selecione manifest.json em D:\dev\_projects\thunderbird-guardian\
  4. Abra uma mensagem qualquer — o ícone do Guardian aparece na barra do leitor com o veredito

A extensão fica carregada até o Thunderbird ser fechado.

Empacotar como .xpi

pwsh ./tools/build-xpi.ps1

Gera dist/thunderbird-guardian-{version}.xpi. O arquivo é um ZIP com manifest.json na raiz.

Instalar o .xpi permanentemente

Limitação importante: Thunderbird Release (estável) recusa extensões não assinadas. Opções:

  1. Submeter à ATN (addons.thunderbird.net) — passa por revisão. Caminho oficial.
  2. Thunderbird Daily / Developer Edition — em about:config, mude xpinstall.signatures.required para false. Funciona só nos canais não-release.
  3. Continuar usando Load Temporary Add-on — caminho atual, perde a extensão no restart, mas funciona em qualquer canal.

Para uso pessoal sem submeter à ATN, o caminho 3 é o mais simples. Pra automatizar, dá pra criar atalho que recarrega após o TB abrir, mas é gambiarra.

Estrutura

thunderbird-guardian/
├── manifest.json
├── background.js            # orquestra análise + listeners
├── src/
│   ├── lib/
│   │   ├── log.js
│   │   ├── utils.js         # parsing de endereços, domínios, Levenshtein, IDN
│   │   ├── store.js         # cache de vereditos em storage.local
│   │   └── brands.js        # marcas monitoradas e encurtadores
│   ├── analyzers/
│   │   ├── headers.js       # SPF/DKIM/DMARC, mismatches
│   │   ├── urls.js          # extração e validação de URLs
│   │   ├── domains.js       # lookalike, IDN, free-mail corporativo
│   │   └── score.js         # agregação em veredito
│   └── ui/
│       ├── banner.js        # script injetado no leitor de mensagem
│       ├── banner.css
│       ├── popup.html       # popup do botão do leitor
│       ├── popup.js
│       └── popup.css
└── icons/                   # SVG (escudo + estados)

Customizar marcas monitoradas

Edite src/lib/brands.js. Cada item de monitored tem name (display) e domains (lista de domínios oficiais). O detector marca como suspeito qualquer domínio com Levenshtein ≤ 2 do base name ou que contenha o nome da marca sem ser o oficial.

Depuração

Em about:debuggingInspect ao lado da extensão abre o devtools do background. Os logs vêm com prefixo [Guardian]. Habilite debug com:

Guardian.config = { debug: true };

no console do background.

Permissões

Permissão Por quê
messagesRead ler corpo e headers das mensagens
messagesModify reservado p/ fase 3 (tags / mover)
messagesTags reservado p/ tag de "suspeito"
accountsRead reservado p/ fase 3 (auditoria de contas)
storage cachear vereditos
notifications alertar na chegada de mensagens perigosas

Nenhuma permissão de rede. Toda análise é local.

About

Thunderbird MailExtension for local phishing/attachment/account/crypto analysis. Privacy-first.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors