Análisis posterior: lo que se sabe sobre el último ataque a la red de servidores de claves criptográficas SKS Keyserver

Los hackers aprovecharon una característica del protocolo OpenPGP, conocida desde hace más de diez años.

Vamos a explicar de qué se trata y por qué no se puede cerrar.

Análisis posterior: lo que se sabe sobre el último ataque a la red de servidores de claves criptográficas SKS Keyserver
/ Unsplash / Chunlea Ju

Problemas en la red

A mediados de junio, desconocidos lanzaron un ataque a la red de servidores de claves criptográficas SKS Keyserver, construida sobre la base del protocolo OpenPGP. Este es un estándar IETF (RFC 4880), que se utiliza para el cifrado de correos electrónicos y otros mensajes. La red SKS fue creada hace treinta años para la distribución de certificados públicos. Herramientas como GnuPG se conectan a ella para cifrar datos y crear firmas digitales electrónicas.

Los hackers comprometieron los certificados de dos mantenedores del proyecto GnuPG: Robert Hansen y Daniel Gillmor. La descarga de un certificado corrupto del servidor provoca una falla en GnuPG: el sistema simplemente se cuelga. Hay razones para creer que los delincuentes no se detendrán aquí y que el número de certificados comprometidos solo aumentará. Hasta el momento, la magnitud del problema sigue siendo desconocida.

La esencia del ataque

Los hackers aprovecharon una vulnerabilidad en el protocolo OpenPGP. Esta es conocida por la comunidad desde hace varias décadas. Incluso en GitHub se pueden encontrar exploits correspondientes. Pero hasta ahora nadie ha asumido la responsabilidad de cerrar la 'brecha' (hablaremos de las razones más adelante).

Un par de recopilaciones de nuestro blog en Habr:

Según la especificación de OpenPGP, cualquiera puede agregar firmas digitales a los certificados para confirmar su propietario. Además, no hay un límite en el número máximo de firmas. Y aquí surge el problema: la red SKS permite colocar hasta 150 mil firmas en un certificado, pero GnuPG no admite tal cantidad. Así, al cargar un certificado, GnuPG (como, de hecho, otras implementaciones de OpenPGP) se congela.

Uno de los usuarios realizó un experimento — la importación del certificado le tomó aproximadamente 10 minutos. El certificado tenía más de 54 mil firmas y su peso fue de 17 MB:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: clave F20691179038E5C6: 4 firmas duplicadas eliminadas
gpg: clave F20691179038E5C6: 54614 firmas no verificadas debido a claves faltantes
gpg: clave F20691179038E5C6: 4 firmas reordenadas
gpg: clave F20691179038E5C6: clave pública "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" importada
gpg: no se encontraron claves de confianza definitiva
gpg: Total procesado: 1
gpg: importado: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 Jul 16:30 pubring.gpg

La situación se agrava debido a que los servidores de claves de OpenPGP no eliminan la información sobre los certificados. Esto se hace para poder rastrear la cadena de todas las acciones con los certificados y evitar su sustitución. Por lo tanto, no se pueden eliminar los elementos comprometidos.

En esencia, la red SKS es un gran "servidor de archivos" al que cualquier persona puede escribir datos. Para ilustrar el problema, el año pasado un residente de GitHub creó un sistema de archivos, que almacena documentos en una red de servidores de claves criptográficas.

Por qué no se cerró la vulnerabilidad

No había motivo para cerrar la vulnerabilidad. Anteriormente, no se había utilizado para realizar ataques de hackers. Aunque la comunidad de TI hace tiempo que solicita a los desarrolladores de SKS y OpenPGP que presten atención al problema.

A fin de cuentas, hay que señalar que en junio ellos lanzaron implementaron un servidor de claves experimental keys.openpgp.org. Este servidor cuenta con protección contra este tipo de ataques. Sin embargo, su base de datos se llena desde cero, y el servidor no forma parte de SKS. Por lo tanto, pasará tiempo antes de que se pueda utilizar.

Análisis posterior: lo que se sabe sobre el último ataque a la red de servidores de claves criptográficas SKS Keyserver
/ Unsplash / Rubén Bagüés

En cuanto al bug en el sistema original, corregirlo es complicado debido a un mecanismo complejo de sincronización. La red de servidores de claves se escribió originalmente como prueba de concepto para proteger la disertación doctoral de Yaron Minsky. Además, se seleccionó un lenguaje bastante específico, OCaml. Según palabras el mantenedor Robert Hansen, es difícil entender el código, por lo que solo se realizan pequeñas correcciones. Para modificar la arquitectura de SKS, tendría que reescribirse desde cero.

En cualquier caso, en GnuPG no creen que la red pueda corregirse alguna vez. En una publicación en GitHub, los desarrolladores incluso mencionaron que no recomiendan trabajar con el servidor de claves SKS. De hecho, esta es una de las principales razones por las que iniciaron la migración al nuevo servicio keys.openpgp.org. Solo nos queda observar el desarrollo de los acontecimientos.

Un par de artículos de nuestro blog corporativo:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster