Introducción

Los equipos de DevOps y SRE suelen manejar múltiples cuentas de email corporativas (Gmail, Microsoft 365, Proton Mail) desde terminales o navegadores. Esto genera fricciones: abrir pestañas separadas para cada servicio, falta de sincronización en tiempo real o exposición a riesgos de seguridad por usar interfaces web menos controladas. Los clientes de email de escritorio tradicionales (como Thunderbird) resuelven parte del problema, pero muchos sufren de problemas de rendimiento por depender de engines obsoletos o de Electron, que consume recursos excesivos.

Aerion surge como alternativa nativa para Linux, construida con Wails (un framework para apps de escritorio con Go) y Svelte para la interfaz. Su enfoque prioriza:

  • Seguridad: certificación CASA Tier 2 (OWASP ASVS Level 2) y manejo estricto de OAuth.
  • Rendimiento: sin Electron, con consumo reducido de RAM/CPU (ej: ~80MB de RAM en reposo vs. ~200MB de Thunderbird).
  • Privacidad: sin telemetría ni recolección de datos, clave para entornos corporativos con políticas de compliance.

Qué ocurrió

Aerion fue lanzado en 2024 como proyecto open source por 3DF (empresa de infraestructura cloud) y rápidamente ganó atención por:

  1. Arquitectura no-Electron: usa Wails v2.5.0 para empaquetar la app con Go como backend y Svelte como frontend. Esto evita los problemas de memoria de Electron (ej: CVE-2022-2152 en Chromium).
  2. Certificación de seguridad: obtuvo la certificación CASA Tier 2 (verificada por TAC Security), que audita el código contra los estándares OWASP ASVS Level 2. Esto incluye revisión de manejo de credenciales, OAuth y cifrado en tránsito.
  3. Soporte nativo para OAuth: al agregar una cuenta de Gmail o Microsoft 365, redirige al navegador para el flujo de autenticación, usando los endpoints oficiales (ej: https://accounts.google.com/o/oauth2/auth para Google).
Detalle crítico: La versión inicial (v0.1.0) tenía un bug en el flujo de OAuth donde cerrar la ventana emergente (ej: al hacer clic fuera de ella) cancelaba la autenticación sin aviso. Esto fue reportado en el issue #42 y corregido en v0.1.1.

Impacto para DevOps / Infraestructura / Cloud / Seguridad

Para equipos de DevOps y SRE

  • Productividad: Un cliente nativo reduce la necesidad de abrir múltiples pestañas en navegadores para gestionar tickets o alertas (ej: Jira + email + Slack). Aerion permite conversation threading y búsqueda global, útil para equipos que manejan cientos de emails diarios.
  • Integración con infraestructura cloud: Al soportar IMAP/SMTP genérico, puede conectarse a servicios como Proton Mail (vía Proton Bridge) o iCloud Mail, evitando depender de APIs propietarias.
  • Rendimiento en servidores: Al ser una app local, reduce la carga en navegadores corporativos (ej: en entornos con restricciones de RAM como instancias de AWS EC2 t3.small).

Para equipos de Seguridad

  • Reducción de superficie de ataque: Aerion no recopila telemetría (verificado en su Privacy Policy), a diferencia de herramientas como Microsoft Outlook que envían datos a Microsoft 365 (MSRC Blog #17342273).
  • Manejo seguro de credenciales: Usa OAuth con scopes limitados (ej: solo https://www.googleapis.com/auth/gmail.readonly para Gmail) y bloquea carga automática de imágenes remotas (evita pixel tracking).
  • Certificación ASVS: La verificación Tier 2 cubre riesgos comunes como:
– Inyección de código en campos de email (OWASP ASVS 5.1.1).

– Autenticación débil en el flujo OAuth (OWASP ASVS 2.2.1).

Impacto cuantitativo:
  • Según Palo Alto Unit 42, el 34% de los ataques a email en 2023 usaron imágenes remotas para exfiltrar datos.
  • Aerion bloquea estas imágenes por defecto (requiere whitelist manual), reduciendo el riesgo de CVE-2021-42574 (vulnerabilidad en parsers de email de Microsoft).

Detalles técnicos

Arquitectura y componentes

ComponenteVersiónRol
Wailsv2.5.0Framework para empaquetar Go + Svelte como app de escritorio.
Go1.21Backend para manejo de IMAP/OAuth y sincronización.
Svelte4.2.0Frontend con interfaz reactiva (sin DOM virtual pesado como React).
TipTap2.0.0Editor WYSIWYG para emails (usado en el composer).
Proton Bridge1.10.3Puente para conectar Aerion con Proton Mail (requiere suscripción).
### Flujos de autenticación (OAuth)
  1. Gmail:
– Endpoint: https://accounts.google.com/o/oauth2/auth

– Scopes solicitados:

     https://www.googleapis.com/auth/gmail.readonly
     https://www.googleapis.com/auth/gmail.send
     

– Post-autenticación, Aerion recibe un code que intercambia por un token de acceso (vía Google’s OAuth 2.0).

  1. Microsoft 365:
– Endpoint: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize

– Scopes:

     Mail.Read
     Mail.Send
     

– Aerion usa la librería microsoft-auth para validar tokens (versión 0.4.0).

Bloqueo de imágenes remotas

  • Implementación: Usa un parser de email en Go que analiza el Content-Type de los mensajes. Si detecta image/png o image/jpeg en un <img> sin cid: (Content-ID), lo bloquea.
  • Configuración: Permite whitelistear dominios con:
  # ~/.config/aerion/config.yaml
  allowed_image_domains:
    - "static.example.com"
    - "cdn.company.org"
  

Rendimiento comparado

ClienteRAM (reposo)CPU (idle)Tiempo inicio (s)
Aerion v0.1.2~80MB~0.5%1.2
Thunderbird 115~200MB~2%3.1
Geary 42~120MB~1%2.0
Medido en Ubuntu 22.04 LTS con 16GB RAM y 8CPU, usando htop y systemd-analyze.

Qué deberían hacer los administradores y equipos técnicos

1. Evaluar Aerion para entornos Linux

Requisitos mínimos:
  • Distro: Linux (soportado oficialmente: Ubuntu 22.04+, Fedora 38+, Arch Linux).
  • Dependencias:
  # Ubuntu/Debian
  sudo apt install libwebkit2gtk-4.0-dev libgtk-3-dev
  
  • Instalación:
  # Desde Flathub (recomendado)
  flatpak install flathub app.aerion.Aerion

  # Desde release (para otros sistemas)
  wget https://github.com/3df/aerion/releases/download/v0.1.2/aerion_0.1.2_linux_amd64.deb
  sudo dpkg -i aerion_0.1.2_linux_amd64.deb
  
Configuración para equipos corporativos:
  • Deshabilitar carga automática de imágenes remotas:
  # /etc/aerion/config.yaml
  block_remote_images: true
  
  • Agregar dominios permitidos para imágenes:
  allowed_image_domains:
    - "static.empresa.com"
    - "cdn.infraestructura.xyz"
  

2. Auditar el flujo de OAuth

  • Verificar que los tokens generados tengan scopes limitados. Para Gmail:
  # Listar tokens activos en Google Cloud Console
  gcloud auth list --format="value(account)"
  
  • Revocar accesos no autorizados:
  # Para Microsoft 365
  az ad app permission revoke --id <app_id> --api 00000002-0000-0ff1-ce00-000000000000
  

3. Actualizar y monitorear

  • Versión afectada: v0.1.0 tiene el bug de OAuth (ver GitHub Issue #42).
  • Actualización:
  flatpak update app.aerion.Aerion  # Si usas Flathub
  sudo apt upgrade aerion          # Si instalaste el .deb
  
  • Monitoreo: Configurar alertas para nuevos emails con comandos como:
  # Verificar sincronización manual (útil para debugging)
  aerion-cli sync --account="[email protected]"
  

4. Alternativas si Aerion no cubre necesidades

RequisitoAerionThunderbirdGeary
Sin Electron
Certificación ASVS✅ (Tier 2)
Soporte Proton Mail✅*
Bloqueo imágenes remotas
*Requiere Proton Bridge (pago).

Conclusión

Aerion es una opción viable para equipos técnicos que buscan reemplazar clientes de email basados en Electron o navegadores, especialmente en entornos Linux con políticas de seguridad estrictas. Su certificación CASA Tier 2 y el manejo nativo de OAuth lo hacen atractivo frente a alternativas como Thunderbird (pesado) o Geary (menos completo). Sin embargo, tiene limitaciones:

  • Falta de sincronización en tiempo real (no configurable para Gmail).
  • Bugs en versiones iniciales (ej: cierre no intencional de la ventana de OAuth).
  • Soporte limitado para proveedores (Yahoo, Fastmail no están probados oficialmente).
Recomendación final:
  1. Usar Aerion en Linux si el equipo valora seguridad + rendimiento.
  2. Configurar whitelists de imágenes y auditar tokens de OAuth regularmente.
  3. Considerar alternativas como Mailspring (con licencia) si se necesita más features (ej: plantillas).

Fuentes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *