Dos herramientas para Sysadmins: Ninja y KSplice

Navegando por ahí, me acabo de encontrar con dos herramientas interesantes, que me interesa compartir…

Ninja


La primera llamada Ninja, que viene a ser algo así (traducido de su página web):

Ninja es un sistema de detección y prevención de escaladas de privilegios para GNU/Linux. Mientras está corriendo, monitorea las actividades de los procesos locales por un lado, y de los procesos corriendo como root por el otro. Si un proceso lanza a otro nuevo con UID o GID cero (root), Ninja va a loguear la información necesaria acerca del mismo, y opcionalmente lo puede finalizar si fue creado por un usuario (es decir, un proceso de un usuario) sin autorización.

En mi opinión, si bien hay herramientas más complejas para hacer este tipo de cosas con servicios en producción, parece un buen complemento cuando se necesita algo más sencillo y no tan crítico, como dar acceso de terminal o X  a usuarios finales. Acá hay un post sobre cómo instalarlo en Ubuntu.

KSplice


La otra herramienta, promete algo que sería la salvación para todos los sysadmins: aplicar actualizaciones al núcleo de un SO sin reiniciar el equipo, «al vuelo», en forma transparente. Esta herramienta de salvación para todos nosotros se llama KSplice, es abierta, y fue tema de investigación y desarrollo por gente del MIT. Si realmente anda bien y funciona, sólo falta que salga en Slashdot (no creo que tarde mucho…).

KSplice funciona creando actualizaciones (aplicables instantáneamente) para el kernel en ejecución. Estas actualizaciones son igual de efectivas que las estándar (supongamos las que provee la distribución que estamos utilizando), con la diferencia de que no hace falta reiniciar para que entren en funcionamiento.

Para esto, necesita el código fuente de la actualización (un parche para el kernel que se está corriendo), más el código fuente del kernel en ejecución. El núcleo no necesita ser modificado por adelantado para que esto funcione (sólo x86 y x86_64).  El proceso de creación y aplicación de un parche es bastante sencillo, y ¡hasta se puede deshacer!

Por el momento sólo funciona con Linux x86, x86_64 y ARM, que su código se puede bajar en forma de fuente, agregar los repositorios GIT, y también descargar una versión binaria para instalar en cualquier distro GNU/Linux.

Las únicas desventajas (si cabe) en cuanto a lo técnico que le veo es que:

  • Sólo aplica parches que no cambien la semántica del núcleo (supongo que esto quiere decir que no hacen que cambie su ABI). Sin embargo, ellos mismos afirman que el 88% de los parches de seguridad para núcleo publicados entre Mayo de 2005 y Mayo de 2008 eran aplicables perfectamente con KSplice. Esto hace que sirva en primera instancia para parches de seguridad, y para corrección de fallos en segundo lugar.
  • No hay información sobre qué pasa si reinicio el equipo efectivamente con parches aplicados vía KSplice (supongo que todos los cambios se deshacen, ya que esto es al vuelo y no hay modificación sobre la imagen binaria del núcleo en sí mismo).
  • Es necesaria la misma versión de compilador (o casi, ya que no hace un chequeo por número estricto de versión, sino que hace un chequeo de posibles conflictos y aborta en caso de detectar uno, afirmando en su web que esto es seguro).

Por otra parte, próximamente van a ofrecer el servicio de actualizaciones, esperemos que cumplan lo que prometen, a mí me cuesta creer que esto sea así de fácil. Sería bueno que todas las distros lo incluyeran e integraran…

Bueno, es todo por ahora.

¡Saludos!

Marcelo


Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *