Lenovo e Intel se niegan a resolver una vulnerabilidad de 2019 en equipos que se encuentran sin soporte

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Los investigadores de Binarly Research dieron a conocer recientemente, la detección de una vulnerabilidad antigua en Lighttpd que está presente en dispositivos como los BMC de AMI, incluyendo productos de Lenovo e Intel. Se menciona que esta vulnerabilidad permite a un atacante no autenticado leer de manera remota el contenido de la memoria del proceso que respalda la interfaz web.

La vulnerabilidad ha estado presente en el firmware desde el año 2019 y se origina en el uso de una versión desactualizada del servidor HTTP Lighttpd, que contiene una vulnerabilidad sin corregir y que su presencia de momento afecta a plataformas de servidores de Lenovo e Intel.

Sobre la vulnerabilidad

Se menciona que la gravedad de la vulnerabilidad radica en que esta permite la lectura de memoria fuera del búfer asignado, originada por un error en el código de combinación de encabezados HTTP al especificar múltiples instancias del encabezado «If-Modified-Since».

Al procesar la segunda instancia del encabezado, Lighttpd asignaba un nuevo búfer para contener el valor combinado y liberaba el búfer que contenía el valor del primer encabezado. Sin embargo, el puntero con->request.http_if_modified_since no se actualizaba y seguía apuntando al área de memoria ya liberada.

La situación se agrava debido a que este puntero se empleaba en operaciones que comparaban el contenido del encabezado If-Modified-Since, y el resultado de estas comparaciones influía en la generación de distintos códigos de retorno. Por lo tanto, un atacante podía, mediante fuerza bruta, inferir el nuevo contenido de la memoria que antes ocupaba el primer búfer. Esta vulnerabilidad puede combinarse con otras para, por ejemplo, determinar el diseño de la memoria y eludir mecanismos de seguridad como ASLR (Aleatorización del Espacio de Direcciones).

vulnerabilidad en Lighttpd

vulnerabilidad en Lighttpd fue descubierta y corregida en 2018, pero no se asignó una CVE

La corrección para esta vulnerabilidad se implementó en el código base de Lighttpd en 2018, específicamente en la versión 1.4.51. Sin embargo, esta corrección no recibió un identificador CVE y no se publicó un informe detallando la naturaleza de la vulnerabilidad. La nota de la versión mencionaba correcciones de seguridad, pero se centraba en una vulnerabilidad en mod_userdir relacionada con el uso de caracteres como «..» y «.» en el nombre de usuario.

El equipo de Binarly REsearch dirigió la divulgación coordinada de esta vulnerabilidad a los PSIRT de Intel y Lenovo. Ambos se negaron a arreglar o reconocer el informe de vulnerabilidad porque los productos asociados recientemente alcanzaron el estado de fin de vida y ya no recibirán correcciones de seguridad.

Llamamos a esto los errores para siempre que perseguirán la cadena de suministro de software durante mucho tiempo. Decidimos documentar esta falla de seguridad de la cadena de suministro de software para ayudar al ecosistema a recuperarse de estos fallas de seguridad de firmware repetibles.

Aunque la lista de cambios también señalaba un problema en el procesamiento de encabezados HTTP, los desarrolladores del firmware no incluyeron esta corrección en el producto. Ademas las empresas han mencionado que no tienen planes de lanzar actualizaciones de firmware debido a que los productos que utilizan estos firmwares han alcanzado el final de su período de soporte, además de considerar que la gravedad de la vulnerabilidad es baja.

Las plataformas que actualmente son afectadas por la vulnerabilidad son: Intel M70KLP y Lenovo HX3710, HX3710-F y HX2710-E (la vulnerabilidad está presente, entre otras cosas, en las últimas versiones de firmware Lenovo 2.88.58 e Intel 01.04.0030). Además, se informa que la vulnerabilidad en Lighttpd también afecta al firmware de equipos Supermicro, así como a servidores que emplean controladores BMC de Duluth y ATEN.

Además de la vulnerabilidad en Lighttpd, el informe menciona otras vulnerabilidades críticas, como la Heap Out-of-bounds read (CWE-125) en el módulo Lighttpd utilizado en dispositivos Intel, así como vulnerabilidades en el Intel M70KLP BMC firmware y servidores Lenovo HX3710, HX3710-F y HX2710-E BMC firmware.

Finalmente, cabe mencionar que en el informe Binarly Research destaca la necesidad de una divulgación responsable de las vulnerabilidades detectadas, así como la colaboración con fabricantes y partes relevantes (como Intel y Lenovo), para mitigar riesgos, ya que la presencia de «bugs eternos» en dispositivos que están llegando al fin de su ciclo de vida no es algo nuevo y es necesario ofrecer a los usuarios la capacidad de poder implementar parches o soluciones por su cuenta, esto claro cuando el fabricante indique que ha finalizado por su parte el soporte.

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/0h9lXjY
via IFTTT

DTrace una excelente utilidad para el monitoreo del sistema y aplicaciones

DTrace es un framework de rastreo y monitoreo

DTrace

DTrace es un framework de rastreo y monitoreo completo y dinámico desarrollado para diagnosticar problemas en el kernel y aplicaciones en sistemas de producción en tiempo real. Inicialmente creado para Solaris, DTrace ha sido portado a otros sistemas operativos tipo Unix.

DTrace fue desarrollado para apoyar a los administradores de sistemas en la resolución de problemas de seguimiento dinámico en el kernel y las aplicaciones finales en el sistema operativo Solaris y es compatible con kernels de Linux estándar que admitan BPF. Para su funcionamiento, requiere la biblioteca libctf compatible con el formato de depuración CTF incluida en el paquete binutils o la biblioteca libdtrace-ctf, portada desde Solaris.

Esta herramienta permite a los administradores del sistema y a los desarrolladores:

  • Monitoreo del sistema: DTrace proporciona al usuario información detallada sobre el uso de recursos como del equipo, como lo es el CPU, la memoria y el almacenamiento, lo que permite identificar cuellos de botella y mejorar la eficiencia del sistema.
  • Depurar problemas de rendimiento: Permite identificar y diagnosticar problemas de rendimiento en tiempo real, lo que facilita la resolución de problemas y la optimización del sistema.
  • Optimizar el funcionamiento: Al proporcionar información detallada sobre el comportamiento de las aplicaciones, DTrace permite a los desarrolladores optimizar el rendimiento de sus programas y mejorar la eficiencia del sistema en general.

Hasta hace algunos años Oracle brindo el soporte de DTrace para Linux y la herramienta se ofrece como una implementación de un proceso de espacio de usuario que utiliza el subsistema eBPF y los mecanismos de seguimiento estándar proporcionados por el kernel de Linux. En términos de funcionalidad, esta implementación de DTrace basada en eBPF se asemeja a la primera versión de DTrace para Linux, que estaba implementada como un módulo de kernel.

Sobre DTrace 2.0.0-1.14

Actualmente, DTrace se encuentra en su versión 2.0.0-1.14 se distribuye en forma de dos parches opcionales para el kernel 6.7 que permiten utilizar funciones avanzadas para obtener datos adicionales sobre los módulos y el kernel, ademas el proveedor pid, utilizado para rastrear procesos en el espacio del usuario, ahora cuenta con soporte para rastrear la ejecución de instrucciones según su desplazamiento en el código.

Cuenta con soporte para utilizar las funciones stack() y ustack() para agregar datos recopilados, capacidad de eliminar elementos de cualquier tipo de matrices asociativas asignando el literal 0, facilitando la gestión de datos en matrices.

DTrace 2.0.0-1.14 ofrece una gama de opciones para diferentes aspectos del sistema, incluyendo contadores de rendimiento de la CPU, límites de funciones, bloqueos, ciclo de vida de procesos y se ha incluido una nueva acción de impresión para generar datos estructurados con anotaciones de tipo, mejorando la presentación de los resultados del seguimiento.

Ademas de ello permite realizar agregaciones de datos de trazado y ejecutar acciones basadas en los resultados con las nuevas funciones integradas cleanpath(), d_path() y link_ntop() y se ha proporcionado la capacidad de guardar datos de seguimiento del proceso (USDT) entre reinicios de dtprobed, asegurando la continuidad del seguimiento incluso después de reinicios.

Por otra parte, también se destaca que se ha añadido el parámetro «-xcpu», que permite vincular comprobaciones a CPU específicas, se ha introducido la opción «-xlockmem» para limitar el tamaño de la memoria utilizada, optimizando el rendimiento del sistema.

Se ha añadido soporte para el mecanismo BTF, que proporciona información de verificación de tipos en pseudocódigo BPF y ahora es posible utilizar el script de configuración para construir, simplificando el proceso de configuración y personalización del kit de herramientas de depuración.

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

Obtener DTrace

Para los interesados en la herramienta, deben saber que Oracle ofrece los paquetes de espacio de usuario x86_64 y aarch64 DTrace prediseñados para Oracle Linux 9 (kernel UEK7), Oracle Linux 8 (kernel UEK7 o UEK6) y Oracle Linux 7 (kernel UEK6).

Mientras que para las demás distribuciones, debes de contar con una serie de dependencias, las cuales puedes consultar en este enlace y que son necesarias antes de que compiles el código fuente por tu cuenta.

from Linux Adictos https://ift.tt/6e7NIVl
via IFTTT

La OpenSSF ha detectado intentos de ingeniería social para obtener el control de proyectos de código abierto

Pingüino (tux) hacker en linux con cara malévola

Tux-hacker

El incidente en XZ sin dudas dejará una huella la cual será recordada durante muchos años y es que, como mencione en su momento en uno de los artículos donde compartimos el seguimiento del incidente, «el trabajo realizado por Jia Tan es uno de los mejores ejemplos de ingeniería social aplicada» y que será la base de muchos otros intentos y casos que se lleguen a dar a conocer a futuro.

Esto es algo que tienen muy en claro en este momento tanto desarrolladores, como proyectos y fundaciones, y que a pesar de los grandes esfuerzos y cambios que lleguen a implementar, existen muchos paquetes y proyectos que carecen de personal y los mantenedores que tienen pueden caer en algo similar a lo que le sucedió a XZ.

Estos casos ya se han comenzado a dar y la OpenSSF (Open Source Security Foundation, una entidad creada bajo los auspicios de la Fundación Linux para mejorar la seguridad del software de código abierto) ya ha comenzado a notar este tipo de actividad, pues hace poco emitió una advertencia a la comunidad sobre actividades preocupantes relacionadas con intentos de tomar el control de proyectos populares de código abierto.

En un incidente similar al ataque a xz, se descubrió que individuos desconocidos previamente en el desarrollo de código abierto intentaron manipular y controlar proyectos de software de código abierto. Estos individuos utilizaron métodos de ingeniería social para comunicarse con miembros del consejo de gobierno de la Fundación OpenJS, una plataforma neutral para el desarrollo de proyectos de JavaScript.

Estos individuos incluía a desarrolladores externos con historiales dudosos en el desarrollo de código abierto. En sus mensajes, intentaban persuadir a la gerencia de OpenJS sobre la necesidad urgente de actualizar uno de los proyectos populares de JavaScript. Alegaron que la actualización era necesaria para agregar protección contra vulnerabilidades críticas, aunque no proporcionaron detalles específicos sobre estas vulnerabilidades.

Para implementar los cambios propuestos, el desarrollador sospechoso ofreció incluirse entre los mantenedores del proyecto, a pesar de haber tenido un rol limitado en el desarrollo hasta ese momento. Además, se detectaron casos similares de intentos sospechosos de introducir código en otros dos proyectos JavaScript populares no asociados con OpenJS.

Es por ello que la OpenSSF (Open Source Security Foundation) y OpenJS (OpenJS Foundation) han emitido una advertencia a todos los desarrolladores y mantenedores de proyectos open source, a estar atentos a los siguientes patrones sospechosos que podrían indicar un intento de tomar el control del proyecto.

¿Cómo proteger tu proyecto open source?

La OpenSSF menciona que debido a la naturaleza colaborativa que hay en los proyectos open source, esto hace que sean propensos a una serie de vulnerabilidades que los atacantes pueden aprovechar, es por ello que comparte una lista de las vulnerabilidades más comunes que aprovechan los atacantes para aplicar la ingería social:

Patrones sospechosos en los intentos:

  • Dependencias desactualizadas: Una de las vulnerabilidades más comunes es el uso de dependencias desactualizadas.

  • Comportamiento amistoso pero agresivo y persistente: Un miembro de la comunidad relativamente desconocido busca perseguir al mantenedor o a la entidad que lo aloja (fundación o empresa).

  • Solicitud para ser elevado de rango: Personas nuevas o desconocidas solicitan ser ascendidas sin tener un historial significativo de contribuciones al proyecto.

  • Respaldo de otros miembros desconocidos de la comunidad: Los atacantes pueden utilizar identidades falsas para respaldar sus solicitudes y generar una falsa sensación de confianza.

  • Pull Requests: Los archivos maliciosos pueden estar ocultos dentro de archivos binarios o blobs, dificultando su detección.

  • Código fuente intencionadamente ofuscado o difícil de entender: El objetivo es dificultar la revisión del código y ocultar posibles vulnerabilidades.

  • Escalada gradual de los problemas de seguridad: El atacante puede comenzar introduciendo vulnerabilidades menores para luego escalar a problemas más graves.

  • Desviación de las prácticas típicas de compilación, construcción e implementación del proyecto: Estas desviaciones pueden permitir la inserción de código malicioso en los binarios.

  • Falsa sensación de urgencia: El atacante puede crear un ambiente de urgencia para presionar al maintainer a realizar una revisión superficial del código.

Estos ataques de ingeniería social buscan aprovecharse del sentido del deber que tienen los mantenedores con sus proyectos y comunidades para manipularlos, ya que al generar una presión sobre la introduccion de cambios, solución de vulnerabilidades o dar una mayor confianza a algún miembro de una forma muy insistente, hacen que la persona o personas a cargo terminen por ceder antes de verificar o realizar las pruebas pertinentes.

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

from Linux Adictos https://ift.tt/1RNncqM
via IFTTT