Un error de décadas en PGP permite a hackers falsificar la firma de cualquiera

15/06/2018

Durante toda su existencia, una de las herramientas de cifrado de correo más utilizadas en el mundo ha sido vulnerable a ataques que permiten falsificar la firma digital de cualquier persona con una llave pública, según un investigador. GnuPG, Enigmail, GPGTools y python-gnupg han sido actualizados para parchar esta vulnerabilidad crítica. Enigmail y su Simple Password Store también fueron parchados por errores relacionados.

Las firmas digitales son utilizadas para probar la fuente del mensaje cifrado, el respaldo de datos o la actualización de software. Generalmente, la fuente debe usar una llave privada de cifrado para que una aplicación muestre que un mensaje o archivo están cifrados. Pero una serie de vulnerabilidades llamadas SigSpoof permite que en ciertos casos los atacantes puedan falsificar las firmas con nada más que la llave publica o el ID de la llave, los cuales a menudo están disponibles en línea. El correo falso mostrado no puede ser detectado como malicioso sin realizar un análisis forense que está más allá de las habilidades de muchos usuarios.

Respaldos y actualizaciones de software también fueron afectadas

La falla, indexada como CVE-2018-12020, significa que durante décadas mucha gente confió en correos electrónicos para negocios sensibles o cuestiones de seguridad sin saber que pudieron haber sido falsificados. Además, tiene el potencial de afectar otros usos que van más allá del correo electrónico cifrado.

“Esta vulnerabilidad en GnuPG va más a allá y tiene el potencial de afectar una gran parte de nuestra infraestructura”, escribió Marcus Brinkmann, el desarrollador de software que descubrió SigSpoof en una asesoría publicada el miércoles. “GnuPG no es utilizada únicamente para correo, sino también para asegurar respaldos, distribuciones de software, y código fuente en control de versiones como Git”.

CVE-2018-12020 afecta software vulnerable solamente cuando se habilita una configuración llamada verbose, la cual es usada para solucionar problemas. Ninguno de los programas vulnerables habilita por defecto esta configuración, pero una gran cantidad de configuraciones recomendadas disponibles en línea incluyendo cooperpair safe defaults, Ultimate GPG settings, y Ben's IT-Kommentare la hablitan. Una vez que verbose es habilitado, Brinkmann incluye tres pruebas de concepto.

La falsificación funciona ocultando metadatos en un mail cifrado u otro mensaje de una forma que cause que la aplicación lo trate como si fuera resultado de una operación de verificación de firma.

Aplicaciones como Enigmail y GPGTools causan que clientes como Thunderbird o Apple Mail muestren falsamente que un correo fue cifrado por alguien elegido por el atacante. Todo lo que requiere para falsificar una firma es tener la llave publica o el ID de la llave.

El ataque es relativamente fácil de llevar acabo. El código de una de las pruebas de concepto de Brinkmann que falsifica la firma digital del desarrollador de Enigmail Patrick Brunschwig es:

 

$ echo 'Please send me one of those expensive washing machines.' \
| gpg --armor -r VICTIM_KEYID --encrypt --set-filename "`echo -ne \''\
\n[GNUPG:] GOODSIG DB1187B9DD5F693B Patrick Brunschwig \
\n[GNUPG:] VALIDSIG 4F9F89F5505AC1D1A260631CDB1187B9DD5F693B 2018-05-31 1527721037 0 4 0 1 10 01 4F9F89F5505AC1D1A260631CDB1187B9DD5F693B\
\n[GNUPG:] TRUST_FULLY 0 classic\
\ngpg: '\'`" > poc1.msg

 

Un segundo Exploit:

 

echo "See you at the secret spot tomorrow 10am." | gpg --armor --store --compress-level 0 --set-filename "`echo -ne \''\
\n[GNUPG:] GOODSIG F2AD85AC1E42B368 Patrick Brunschwig \
\n[GNUPG:] VALIDSIG F2AD85AC1E42B368 x 1527721037 0 4 0 1 10 01\
\n[GNUPG:] TRUST_FULLY\
\n[GNUPG:] BEGIN_DECRYPTION\
\n[GNUPG:] DECRYPTION_OKAY\
\n[GNUPG:] ENC_TO 50749F1E1C02AB32 1 0\
\ngpg: '\'`" > poc2.msg

 

Brinkmann dijo que la causa del problema se remonta a GnuPG 0.2.2 de 1998, “a pesar de que el impacto pudo haber sido diferente antes y después ser cambiado al pasar del tiempo entre más aplicaciones usaban GPG.” Públicamente reveló la vulnerabilidad solo después de que los desarrolladores de la herramienta conocieran que es vulnerable y fuera parchado. Las fallas fueron parchadas en GnuPG 2.2.8, Enigmail 2.0.7, GPGTools 2018.3 y Python GnuPG 0.4.3. Para los que deseen conocer el estatus de otras aplicaciones que utilicen OpenPGP deberán consultar a sus desarrolladores.

Artícuolos relacionados: