Análisis del backdoor en xz
- Filippo Valsorda observó a varias personas haciendo ingeniería inversa del backdoor en xz y compartió los resultados iniciales del análisis.
- El hook de
RSA_public_decrypt verifica una firma de una clave Ed448 fija sobre la clave de host del servidor y entrega el payload al sistema.
- Esto no es una omisión de autenticación, sino ejecución remota de código (RCE), es de un solo uso y no puede reproducirse.
Ataque a la cadena de suministro
- Este podría ser el ataque a la cadena de suministro mejor ejecutado descrito públicamente hasta ahora: malicioso, competente y ocurrido en el upstream oficial de una biblioteca ampliamente utilizada.
- Parece que este ataque fue descubierto por accidente, y queda la duda de cuánto tiempo más habría tardado en detectarse de no haber sido así.
Extracción y verificación del payload
- El payload se extrae del valor N (clave pública) pasado a
RSA_public_decrypt, se revisa contra una huella simple y luego se descifra con una clave ChaCha20 fija antes de la verificación de la firma Ed448.
Función RSA_public_decrypt
RSA_public_decrypt realiza la función de verificación de firmas, aunque el nombre pueda sonar extraño.
- La verificación de firmas RSA realiza la misma operación que el cifrado RSA.
Certificados OpenSSH y control del atacante
- La clave pública de
RSA_public_decrypt puede ser controlada por el atacante antes de la autenticación mediante el uso de certificados OpenSSH.
- Los certificados OpenSSH incluyen la clave pública del firmante, y OpenSSH verifica la firma durante el parseo.
Script para enviar una clave pública personalizada al sistema con backdoor
- Mediante un script escrito por Keegan Ryan, es posible usar la función hook para insertar una clave pública personalizada en el certificado y hacerla llegar al sistema con backdoor.
Mecanismos de seguridad del backdoor
- El backdoor vuelve a su funcionamiento normal si el payload es incorrecto o si no se verifica la firma de la clave del atacante.
- Esto significa que, salvo que se encuentre un bug, no es posible escribir un escáner confiable y reutilizable a través de la red.
Opinión de GN⁺
- Este tipo de backdoors representa una amenaza grave para la seguridad de los sistemas, y su impacto puede ser aún mayor cuando se inserta en bibliotecas de uso extendido.
- Que el ataque haya sido descubierto por accidente deja en evidencia debilidades en los sistemas de seguridad y subraya la importancia del monitoreo y las auditorías continuas.
- Este artículo puede ayudar a crear mayor conciencia sobre la seguridad de la cadena de suministro de software y servir de alerta para desarrolladores y administradores de sistemas.
- Para responder a amenazas de seguridad como este backdoor, conviene usar herramientas de seguridad de código abierto o escáneres de vulnerabilidades. Por ejemplo, herramientas como OWASP ZAP o Nessus pueden ser útiles.
- Al adoptar nuevas tecnologías u open source, es importante revisar a fondo los aspectos de seguridad y tomar medidas adecuadas para proteger los sistemas frente a este tipo de ataques.
Aún no hay comentarios.