Se dieron a conocer los resultados del análisis del backdoor en XZ

backdoor XZ

backdoor XZ

Sin dudas el caso del backdoor que fue detectado en la utilidad XZ, es uno de los casos que pasara a la historia de Linux y es que no es por nada, pero todo el trabajo realizado por Jia Tan es uno de los mejores ejemplos de ingeniería social aplicada, ya que el trabajo realizado sin dudas es de admirar por la cantidad de tiempo invertido, pues no hablamos de semanas o meses, al menos dos años.

Este caso ha llamado la atención de muchos y se han comenzado a realizar análisis de ingeniería inversa, los cuales según sus resultados preliminares revelan la presencia de un backdoor incrustado en liblzma como parte de una campaña para infiltrar el paquete XZ. Este backdoor está diseñado específicamente para afectar a sistemas x86_64 con el kernel de Linux y la biblioteca Glibc C, donde se aplica un parche adicional a sshd para vincularlo con libsystemd.

Los investigadores mencionan que inicialmente se creyó que el backdoor podría evadir la autenticación sshd y obtener acceso al sistema a través de SSH, pero al realizar un análisis más detallado se reveló que el backdoor permite la ejecución de código arbitrario en el sistema sin dejar rastros en los registros sshd.

La función RSA_public_decrypt es interceptada por el backdoor para verificar la firma del host usando la clave fija Ed448. Si la verificación es exitosa, se ejecuta el código transmitido por el host externo utilizando la función system() antes de que sshd restablezca los privilegios. Los datos del código a ejecutar se extraen del parámetro «N» pasado a la función RSA_public_decrypt y se verifican y descifran utilizando la clave predefinida ChaCha20.

Para activar el backdoor en sshd, se utiliza el mecanismo estándar de intercambio de claves de host y responde únicamente a la clave preparada por el atacante y correspondiente a la clave fija predefinida Ed448. Si la verificación de la firma de la clave pública falla o si no se confirma la integridad de los datos de ejecución, el backdoor devuelve el control a las funciones SSH estándar.

La clave privada del atacante sigue siendo desconocida, lo que imposibilita la implementación de un código de verificación para activar el backdoor desde fuentes externas o para desarrollar un escáner que detecte hosts comprometidos en la red. Sin embargo, los investigadores han desarrollado un script que muestra cómo se puede sustituir una clave pública en un certificado OpenSSH transmitido por un cliente SSH, lo cual es procesado por la función RSA_public_decrypt interceptada por el backdoor

Además, los investigadores descubrieron la existencia de un mecanismo para neutralizar el backdoor (killswitch) en el sistema local mediante la configuración de una variable de entorno antes de iniciar sshd. También se ha realizado un análisis detallado de compilaciones de shell utilizadas para confundir el proceso de extracción de un archivo objeto con un backdoor y reemplazarlo en la biblioteca liblzma.

Durante la compilación del paquete XZ, se ejecutó un código desde el script «build-to-host.m4» que manipuló un archivo de prueba y realizó ciertas modificaciones en los caracteres y lo transformó en un archivo intacto, del cual se extrajo el script de shell. El script de shell resultante fue capaz de extraer gradualmente otro script de shell del contenido, omitiendo ciertas secuencias con los comandosy reemplazando caracteres.

Como resultado de este proceso, se creó un script de shell bastante complejo y extenso que extrajo directamente el archivo con el backdoor del archivo good-large_compressed.lzma, lo descifró y lo insertó en liblzma. Este script también incluía una implementación del mecanismo de complemento, que permitía la entrega de componentes ejecutables adicionales posteriormente al colocar nuevos archivos de prueba sin alterar good-large_compressed.lzma y bad-3-corrupt_lzma2.xz, mediante una búsqueda de firmas. El código también incorporaba un descifrador basado en el algoritmo RC4, implementado en el lenguaje AWK

Por otra parte, cabe mencionar que en base al incidente, se ha desarrollado un conjunto de herramientas llamado xzbot, que incluye:

  • Un honeypot para crear servidores ficticios que simulan ser vulnerables para detectar intentos de conexión de atacantes.
  • Un parche para reemplazar la clave pública en la puerta trasera dentro de liblzma.so con una propia (para conectarse a la puerta trasera usando la clave privada correspondiente).
  • Una demostración para iniciar la ejecución de código en una puerta trasera modificada utilizando la clave privada correspondiente.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/4AdSxh8
via IFTTT

WINE 9.6 llega con más efectos Direct2D, compatibilidad con el relleno RSA OAEP en BCrypt y algo más de cien cambios

WINE 9.6

Algo más pronto de lo habitual, que suele ser ya por la noche en España, WineHQ ha lanzado hace unos instantes WINE 9.6. Es una nueva versión de desarrollo las que lanzan cada dos semanas, y ha llegado quince días después de la anterior v9.5. Si atendemos a los números, podemos pensar que la mayoría de colaboradores se han tomado un descanso por la semana santa, ya que las cifras son de las más bajas que se recuerdan.

En total, la lista de cambios recoge «sólo» 162. Está por debajo de la media, que suele estar por encima de los 200 y en muchas ocasiones superando los 300. La lista de novedades más destacadas menciona que se ha añadido compatibilidad con funciones AVX avanzadas en contextos de registro, más efectos Direct2D. soporte para relleno RSA OAEP en BCrypt y corrección del modo interpretado en WIDL, a lo que se le suma el habitual punto de varios bugs corregidos (18).

Bugs corregidos en WINE 9.6

  • Mozart 10/11: No se puede guardar gif jpg o tiff, png + bmp están vacíos, emf sólo parcial.
  • Los botones del depurador TI-83 Plus Flash no son visibles.
  • «Text Service and Input Languages» necesita función no implementada USER32.dll.LoadKeyboardLayoutEx llamada.
  • SolidWorks 2016 se bloquea al iniciarse.
  • ChessBase 14 – se bloquea nada más iniciarse.
  • Trackmania Unlimiter 1.3.x para TrackMania United Forever 2.11.26 se bloquea en la pantalla de selección de cuenta (diferencias en el gestor de montón, suposiciones incorrectas del mod en las estructuras de datos internas del motor del juego).
  • nProtect GameGuard Personal/Anti-Virus/Spyware 3.x/4.x se bloquea debido a que el módulo PE ‘winedevice’ no tiene tabla de exportación.
  • nProtect Anti-Virus/Spyware 4.0 ‘tkpl2k64.sys’ se bloquea al no implementarse la función ‘fltmgr.sys.FltBuildDefaultSecurityDescriptor’.
  • Múltiples aplicaciones de 32 bits fallan debido al manejo incorrecto de la clave ‘HKLM\Software\Classes’ en WINEPREFIX de 64 bits (clave compartida bajo Windows 7+ WOW64)(Autocad 2005).
  • [Regresión] La novela visual Shin Koihime Eiyuutan se bloquea después de abrir la película.
  • VrtuleTree llama a la función no implementada ntoskrnl.exe.ExGetPreviousMode.
  • d2d1:d2d1 falla con frecuencia en GitLab CI.
  • Nerf Arena Blast Demo sólo muestra una pantalla negra.
  • Final Fantasy XI Online: El cursor del ratón/puntero se activa en momentos no deseados.
  • Múltiples juegos tienen fallos de textura (Iron Harvest, The Hong Kong Massacre).
  • configure establece incorrectamente el valor ac_cv_lib_soname_vulkan en macOS.
  • wshom comprueba el tiempo de espera en Wine.
  • CryptStringToBinary no añade CR antes de los bytes de relleno en algunos casos.

Lista traducida con DeepL.

WINE 9.6 ya está disponible y se puede descargar desde el siguiente botón. En su página de descargas hay también información sobre cómo instalar esta y otras versiones en sistemas operativos Linux y otros como macOS e incluso Android.

Dentro de dos semanas llegará WINE 9.7 con cientos de retoques para seguir preparando la versión estable de 2024.

.boton {color: white; background-color: grey; padding: 20px; font-size: 2rem; text-decoration: none; border-radius: 10px; position: relative; top: 15px; border: 4px solid #555;}.boton:hover {box-shadow:1px 1px 2.5px black !important;}

from Linux Adictos https://ift.tt/96AhWlJ
via IFTTT