¡Bienvenido a la primera publicación de nuestra serie basada en el Podcast de seguridad de Ubuntu! Soy Alex Murray, caudillo técnico del equipo de seguridad de Ubuntu en Canonical. Cada mes, cubriré las correcciones de seguridad más interesantes en Ubuntu, así como una discusión en profundidad de las diferentes vulnerabilidades que hemos estado abordando. Igualmente hablaré un poco más sobre algunos de los otros servicios relacionados con la seguridad con Ubuntu, como parches en vivo del kernel, mantenimiento de seguridad extendido y más.
Tabla de Contenidos
Apport: regulador de fallos de Ubuntu actualizado
Esta puesta al día se refiere a Apport, el regulador de fallos de Ubuntu. Cuando una aplicación error, Apport se conecta al kernel para vigilar qué proceso dejó de funcionar correctamente. Luego, el kernel puede ejecutar el regulador de fallas para encontrar información sobre el proceso defectuoso y producir un documentación de fallas que se puede destinar a los desarrolladores. Regalado que Apport se ejecuta como root por el kernel, necesita eliminar los privilegios para que no sobrepase los límites del favorecido cuya aplicación falló y sin darse cuenta recopila más información privilegiada o habilita un posible ataque de escalamiento de privilegios de root. Eso es lo que las diferentes vulnerabilidades a menudo intentan explotar, y la que arreglamos recientemente estaba en la misma trayecto.
Como dije, cuando se ejecuta Apport, intenta deletrear información sobre el proceso y los diversos archivos en el sistema de archivos proc. Se da cuenta de cosas como con qué ID de favorecido se está ejecutando el proceso, y luego descarta los privilegios para ejecutarse como ese favorecido ayer de descubrir otros detalles sobre el proceso. Desafortunadamente, los atacantes se dieron cuenta de que si podía manipular ciertos archivos allí, incluso cosas como el nombre del proceso, Apport se confundiría al tratar de vigilar cuáles eran los detalles del proceso y, al final, no eliminaría correctamente los privilegios. Como resultado, un atacante podría obtener la ejecución de código como root.
Trabajamos con los investigadores que encontraron esta vulnerabilidad posteriormente de que nos informaron a través de Launchpad. En particular, el ingeniero senior Marc Deslauriers de nuestro equipo trabajó con ellos para mitigar estas vulnerabilidades en Apport.
Libgcrypt
Desbordamiento del montón
La otra cosa de la que quería cuchichear en este episodio era una puesta al día que se anunció recientemente para Libgcrypt, una biblioteca de criptografía que enviamos en Ubuntu. Normalmente, este es el tipo de cosas para las que en efectividad publicaríamos actualizaciones, pero por un shock de suerte, esta vez, Ubuntu no se ha pasado afectado por esta.
La vulnerabilidad fue encontrada en la última interpretación de Libgcrypt 1.9.0 por Tavis Ormandy de Google Project Zero. El problema surgió de un desbordamiento del búfer de pila donde un favorecido podría sobrescribir el búfer contenido adentro de otra estructura que fue seguida por un puntero de función. Como tal, regalado que un atacante podría sobrepasar los límites de ese búfer, continúe pasando el final de eso y luego sobrescriba el puntero de la función. Como Libgcrypt candela automáticamente a este puntero de función, y el atacante puede reescribirlo para apuntar a otro espacio, podrían fácilmente obtener la ejecución remota de código si libgcrypt estuviera descifrando datos controlados por el atacante.
Por fortuna, Ubuntu no se ha pasado afectado por esto ya que esta vulnerabilidad solo existe en la última interpretación de libgcrypt 1.9.0 que se lanzó a principios de enero de 2021. Incluso en la interpretación de mejora contemporáneo de Ubuntu 21.04, Hirsute Hippo, solo usamos la interpretación 1.8. 7. Así que tuvimos suerte de no vernos afectados por esto.
Días cero y parches faltantes: un compromiso
Para continuar con la discusión preparatorio sobre libgcrypt, es interesante considerar que la mayoría de las vulnerabilidades generalmente afectan más que las últimas versiones. Sin incautación, todavía hay algunos de ellos, como este, que solo afectan a la última interpretación. Esto conduce a un interesante prueba mental: si está ejecutando la última interpretación de todo lo que puede, esto debería significar que está parcheado contra todas las vulnerabilidades que se han antitético en el pasado. Pero ahora asimismo está ejecutando el postrero código más holgado que puede tener vulnerabilidades recientemente introducidas que aún no se han descubierto acechando en él, asimismo conocido como. vulnerabilidades de día cero. Y esa es una amenaza potencial.
Sin incautación, si piensa en la otra opción, en la que está ejecutando versiones anteriores de software y no las está parcheando ni actualizando, nunca obtendrá correcciones y, por lo tanto, obviamente estará peor.
El mejor espacio aquí podría ser adoptar una organización similar a la que hacemos con Ubuntu: elegimos una interpretación estable de poco, lo que significa que el favorecido final no obtiene constantemente nuevas actualizaciones de interpretación que requerirían que las aplicaciones se reescriban para manejar con cambios de comportamiento o regresiones. Luego, parcheamos las vulnerabilidades que se ven afectadas y las seguimos parcheando a medida que se descubren. Este enfoque de camino intermedio garantiza que las personas que usan Ubuntu estén lo más seguras posible.
El podcast de seguridad de Ubuntu
Si desea obtener el desglose completo de nuestras últimas actualizaciones y parches, consulte el Podcast de seguridad de Ubuntu en Spotify, Apple Podcast, Google Podcast y Pocket Casts. Y si quieres ponerte en contacto con nosotros, puedes encontrarnos en Twitter en @ubuntu_sec.