Skip to content

Releases: oscarhenriquezg/msgeater

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:45
a7a038e

Añadido

Analizador de línea de comandos (msgeater --analyze): el mismo análisis que muestra el panel de la aplicación —señales, ruta de entrega, indicadores y SHA-256 de los adjuntos— sin abrir ventana, con salida de texto o --json.

Abrir los correos de uno en uno no sirve para revisar un buzón entero.

  • No abre ventana ni necesita servidor gráfico: funciona por SSH, en un contenedor o desde un cron, con el mismo binario ya instalado — no hay un ejecutable aparte que instalar.
  • La bandera se atiende antes del bloqueo de instancia única, así que responde aunque haya una ventana abierta.
  • Códigos de salida pensados para scripts: 0 sin señales, 1 alguna señal, 2 algún archivo no se pudo analizar. 0 significa exactamente eso, no que el correo sea seguro.
  • No imprime el cuerpo del mensaje —solo el análisis— y no toca la red.
  • Neutraliza las secuencias de escape ANSI del asunto y de los nombres de adjunto (se cuelan codificadas en RFC 2047): en un terminal moverían el cursor y podrían tapar las señales dentro de la propia salida.

Ruta de entrega en el panel de análisis. La cadena Received —los servidores por los que pasó el correo— se muestra como una línea de tiempo legible, del origen declarado a la entrega final, con la IP de cada salto (copiable) y la demora del tramo. Antes ese dato solo estaba en el volcado técnico de Ctrl/Cmd+U.

  • Junto a la ruta se explica hasta dónde es fiable: cada servidor añade su línea sin poder comprobar las anteriores, así que los saltos de origen los puede haber escrito íntegramente quien envía el mensaje.
  • Por eso mismo no genera ninguna señal de riesgo: derivar un veredicto de la cadena sería acusar a partir de datos que controla el atacante.
  • El nombre inverso (rDNS) se muestra solo cuando no coincide con el nombre anunciado.

Corregido

  • El nombre del servidor receptor de cada salto arrastraba el ; que separa la fecha (mx.example.com;), tanto en la vista de código fuente como al copiarlo.

Verificar este release: docs/VERIFY-RELEASE.md · Changelog completo: CHANGELOG.md

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 04:25
7970fd8

Añadido

El panel de análisis es accesible en cualquier momento, con un botón nuevo en la barra de herramientas, la entrada Ver → Analizar el mensaje y el atajo Ctrl/Cmd+Shift+A.

Antes solo se podía abrir cuando el correo disparaba alguna señal de riesgo, lo que dejaba sin acceso a los indicadores y a los hashes de los adjuntos en un correo normal — y querer el SHA-256 de un adjunto no depende de que el mensaje sea sospechoso.

  • El aviso automático no cambia: sigue apareciendo solo cuando hay señales que reportar.
  • Al abrir el panel en un correo sin señales, se indica exactamente eso —que no se detectó ninguna de las señales comprobadas— junto con la advertencia de que no equivale a que el correo sea seguro.

Corregido

  • Con la ventana estrecha, la barra de herramientas dejaba Exportar y Acerca de fuera de la pantalla: seguían existiendo pero era imposible pulsarlos. Ocurría ya en el ancho mínimo que la propia aplicación permite (640 px). Ahora la barra se reorganiza en dos filas y esos botones se mantienen alineados a la derecha.

Verificar este release: docs/VERIFY-RELEASE.md · Changelog completo: CHANGELOG.md

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 02:06
da079cc

Añadido

Detección de macros en adjuntos ofimáticos. Si un .docm, .xls, .docx… trae un proyecto VBA, se añade una señal de riesgo: los documentos con macros son una vía de entrega de malware habitual y no se distinguen a simple vista de uno inofensivo.

  • Se comprueba sin abrir ni ejecutar el documento, buscando la huella del proyecto: vbaProject.bin en los formatos ZIP modernos, o una entrada de directorio _VBA_PROJECT/Macros en los .doc/.xls antiguos.
  • Se revisan también las extensiones que en teoría no llevan macros (.docx, .xlsx): si las llevan, es más sospechoso, no menos.
  • La extensión declarada en las propiedades MAPI la controla quien envía el correo, así que también se tiene en cuenta la del nombre visible del archivo.
  • No afecta al tiempo de apertura: solo se leen los bytes de los adjuntos ofimáticos, que en un correo normal son ninguno.

El escaneo de VirusTotal posterior a cada release propone ahora por pull request la actualización del resultado publicado en el README, conservando el del peor de los cinco instalables (no el más favorable).


Verificar este release: docs/VERIFY-RELEASE.md · Changelog completo: CHANGELOG.md

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 00:38
00972b5

Añadido

Triaje de phishing. Bajo los metadatos aparece un aviso —solo si hay algo que reportar— con las señales de riesgo detectadas: autenticación del remitente fallida (SPF/DKIM/DMARC), suplantación de dirección (From frente a Return-Path, Reply-To desviado), adjuntos que pueden ejecutar código, dominios con homografía IDN y enlaces acortados. Al pulsarlo se abre el detalle con la explicación de cada señal.

  • Indicadores del mensaje: URLs, dominios, IPs y direcciones extraídos y deduplicados, copiables por grupo para reportar un phishing sin recopilarlos a mano.
  • SHA-256 de los adjuntos, bajo demanda. Permiten consultar un archivo en un servicio de reputación buscando por hash, sin subirlo: el contenido del correo no sale del equipo.
  • Si no se detecta ninguna señal no se muestra nada: no detectar nada no equivale a que el correo sea seguro, así que la app no exhibe un indicador "en verde" que induzca confianza injustificada.

Además: pruebas basadas en propiedades (fast-check), procedencia también como .intoto.jsonl, escaneo automático con VirusTotal al publicar, CONTRIBUTING.md / CODE_OF_CONDUCT.md / guía de usuario / traducciones al inglés, badge passing de OpenSSF Best Practices y cobertura medida en CI.

Corregido

  • sameOrganization comparaba solo las dos últimas etiquetas del dominio: bank.co.uk y attacker.co.uk se trataban como la misma organización y se suprimían las señales de suplantación en un caso de phishing real.
  • La extracción de enlaces ignoraba atributos HTML sin comillas (<a href=https://...>), que siguen siendo clicables: esos enlaces evadían señales e indicadores.
  • Los adjuntos marcados inline quedaban fuera de la señal de ejecutable, aunque un .eml puede etiquetar así un archivo que la interfaz sigue ofreciendo para abrir y guardar.
  • El filtro interno de <script>/<style> no seguía la regla de cierre de HTML (</script >, </script/>).

Verificar este release: docs/VERIFY-RELEASE.md · Changelog completo: CHANGELOG.md

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 29 Aug 13:01
ccd1d53
v0.4.4

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 29 Aug 04:48

Añadido

  • Cada release incluye ahora SHA256SUMS y una GitHub Artifact Attestation (Sigstore) por artefacto, más un SBOM en formato SPDX generado desde el dependency graph nativo de GitHub. Ver docs/VERIFY-RELEASE.md para verificarlos.
  • CI: análisis estático con CodeQL, Dependency Review en PRs y evaluación independiente con OpenSSF Scorecard.

Corregido

  • CI llevaba roto varios commits (npm audit bloqueaba todo el job por vulnerabilidades HIGH reales en nodemailer/undici, dependencias de producción). Actualizadas.
  • Carrera en el test e2e de seguridad más importante del proyecto ("sin ejecución de scripts en el iframe").
  • SECURITY.md: tabla de versiones soportadas desactualizada.

Changelog completo: CHANGELOG.md

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 29 Aug 01:13

Corregido

  • Los iconos de la app (menú de aplicaciones, barra de tareas/ventana, diálogo "Acerca de") tenían fondo negro opaco en vez de transparente, por lo que se veían como un bloque invisible en launchers con tema oscuro. Se regeneraron build/icon.png, build/icon.icns, build/icons/* y los iconos embebidos del renderer desde el pack transparente actualizado en assets/icon-source/.

Cambiado

  • El estado vacío (arrastra un .msg) ahora muestra el tux comiéndose el sobre .msg en vez de un icono de sobre genérico.
  • README: captura de pantalla actualizada e icono de la app añadido bajo el título.

Changelog completo: CHANGELOG.md

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 29 Aug 00:30
v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 02:51

Arranque mucho más rápido

El tiempo desde el doble-clic hasta ver el mensaje baja de ~7 s a ~1,8 s en uso normal (y ~2,9 s en el primer arranque tras reiniciar, primer arranque se puede perciibr lento, pero luego mejora.). Tres mejoras:

  • Aceleración por hardware en macOS/Windows — antes se desactivaba en todas las plataformas por un workaround de Linux; ahora el render por software es solo Linux.
  • Precalentado del worker de parsing — sus librerías se cargan en otro hilo, en paralelo al arranque de la ventana.
  • Sanitización del cuerpo en el renderer (DOMPurify sobre el DOM nativo) — el worker deja de cargar jsdom, que era el grueso del coste. El parseo del primer mensaje pasó de ~2 s a ~0,1 s en macOS.

Seguridad

Sin cambios en el modelo de protección: el iframe sandbox + CSP siguen como defensa en profundidad, y la política de sanitización se unifica en una sola fuente de verdad (la usan el renderer al mostrar y el main en la vista de código fuente y al exportar). Las exportaciones sanitizan el cuerpo antes de emitir el archivo, con test de regresión.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 18:06

MSG Viewer v0.3.0

Seguridad

  • Detectar homografía IDN (punycode) en enlaces y resaltarlos.
  • Advertir y marcar adjuntos ejecutables al abrir/guardar.
  • Imágenes remotas bajo demanda y aviso de enlaces engañosos.

Interfaz

  • Rediseño de la barra: asunto copiable, atajos e iconos.
  • Menú único Exportar con 9 formatos; PNG con diálogo de destino.
  • Copiar con formato, zoom/oscurecer del cuerpo, fuente y atajos.
  • Diálogos in-app (salir del visor con la URL en caja).

Visor / parser

  • Decodificar cadenas ANSI (001E) con el codepage del mensaje.
  • Markdown, 'Guardar como' congruente con formatos de export.
  • Arrastrar-fuera de adjuntos.
  • Ofrecer asociar los tipos de archivos .msg al inicio.

Correcciones

  • Linux: evitar el diálogo de keyring al arrancar.
  • Arranque roto por el import de punycode.