GNU/Linux >> Tutoriales Linux >  >> Linux

Detecte bibliotecas compartidas obsoletas en la memoria con UChecker

Este tutorial explica qué es UChecker y cómo detectar bibliotecas compartidas obsoletas en la memoria con UChecker en sistemas operativos Linux.

Introducción

Las organizaciones de TI que confían en el software libre y de código abierto (FOSS) enfrentan una lucha constante para procesar bibliotecas compartidas sin parches. No es un problema trivial, ya que las bibliotecas compartidas son una superficie de ataque ampliamente dirigida. Por ejemplo, la investigación sugiere que OpenSSL es el software más específico del mundo y representa 19 % de la actividad hostil a nivel mundial. .

Si es responsable de las bibliotecas OpenSSL y GNU C (glibc), entre muchos conjuntos de códigos de fuente abierta comparables, está obligado a realizar actualizaciones y administrar parches de manera oportuna. El enfoque tradicional para actualizar las bibliotecas implica reiniciar todo el servidor o reiniciar todos los procesos si no hay forma de identificar qué procesos todavía usan las bibliotecas obsoletas. Sin embargo, los reinicios del sistema causan complicaciones y riesgos propios. Gracias a KernelCare equipo, podemos resolver este problema fácilmente con un simple script llamado UChecker .

¿Qué es UChecker?

UChecker, abreviatura de Userspace Checker , es un escáner gratuito y de código abierto que identifica cuáles de sus procesos todavía usan bibliotecas obsoletas y necesitan un reinicio. Fue creado durante el desarrollo de parches en vivo para bibliotecas compartidas por KernelCare. Con Uchecker, puede identificar bibliotecas FOSS vulnerables y parchearlas. Deberá reiniciar los procesos afectados (a menos que esté utilizando servicios de actualización de biblioteca sin reinicio), pero al buscar vulnerabilidades, puede determinar qué procesos necesitan atención y cuáles no.

Como resultado, evita reinicios innecesarios del servidor que dan como resultado degradaciones y/o interrupciones del servicio, así como la creación de ventanas de vulnerabilidad, ya que las bibliotecas permanecen sin parches hasta que se puede programar el reinicio. De hecho, es posible que ni siquiera sepa qué servicios usan qué bibliotecas, por lo que es tentador reiniciar todo el servidor para actualizarlos o reiniciar los servicios principales. Esta práctica también puede ser tan disruptiva como un reinicio.

Cómo funciona UChecker

Uchecker funciona con todas las distribuciones modernas de Linux, a partir de la sexta versión. Es un software libre, construido con JSON y abierto a redistribución y/o modificación bajo los términos de la Licencia Pública General GNU. Uchecker detecta procesos que utilizan bibliotecas compartidas antiguas (es decir, sin parches). Detecta e informa bibliotecas compartidas no actualizadas que están siendo utilizadas por procesos en ejecución. Sus capacidades de detección se basan en la comparación de BuildID. Como resultado, conocen los archivos eliminados o reemplazados.

La siguiente ilustración gráfica muestra cómo funciona Uchecker.

La herramienta Uchecker puede detectar el ID y el nombre del proceso, así como los nombres de las bibliotecas compartidas que no están parcheadas, junto con sus ID de compilación. Uchecker obtiene los últimos BuildID de los recursos de KC. Luego toma un proceso en ejecución iterando sobre /proc/ y obtiene una biblioteca compartida vinculada de /proc/<pid>/maps . En ese momento, Uchecker pregunta si la biblioteca compartida no se reemplazó o eliminó. Según la respuesta, el software analizará ELF del sistema de archivos o analizará ELF de la memoria asignada. Luego, Uchecker recopila el BuildID de .note.gnu.build-id .

Detecta bibliotecas compartidas obsoletas en la memoria con UChecker

¡No se requiere instalación! Simplemente ejecute el script de Uchecker para encontrar las bibliotecas sin parchear en su servidor Linux:

# curl -s -L https://kernelcare.com/checker | python

El comando anterior escanea sus sistemas de servidor Linux en busca de bibliotecas compartidas obsoletas vinculadas a python procesa y los enumera en la salida estándar.

Luego puede actualizar esas bibliotecas sin parches utilizando el administrador de paquetes predeterminado de su sistema.

Mire la demostración visual de cómo funciona Uchecker en el siguiente video:

Conclusión

Uchecker le permite mantener sus bibliotecas FOSS parcheadas y actualizadas. Puede evitar la molestia común de tener que reiniciar los servidores porque no sabe qué procesos deben reiniciarse. Esto es relevante para las bibliotecas OpenSSL y GNU C (glibc), entre otras. Con tecnologías como KernelCare+, ahora incluso es posible realizar un parche en vivo de vulnerabilidades en bibliotecas de espacio de usuario esenciales además de las del kernel de Linux. Puede actualizar aplicaciones sin afectar su estado operativo. No se requieren reinicios ni reinicios.


Linux
  1. Error al cargar bibliotecas compartidas libcrypto.so.1.1 – OpenSSL [Fijar]

  2. ¿"cuál" equivalente para bibliotecas compartidas?

  3. Comando libre en Linux explicado con ejemplos

  4. 10 ejemplos de comandos IPCS (con introducción IPC)

  5. Introducción a las bibliotecas compartidas de Linux (Cómo crear bibliotecas compartidas)

Cómo enumerar las bibliotecas compartidas utilizadas por los ejecutables en Linux

Manejo de memoria con struct epoll_event

Memoria compartida de Linux:shmget() vs mmap()?

Detectar si la conexión actual se mide con NetworkManager

¿Por qué la memoria compartida del kernel es 0 en Ubuntu 12.04?

rkhunter:segmentos sospechosos de memoria compartida