macOS deep series: demonios y agentes

macOS deep series: demonios y agentes

RESUMEN

En esta entrada de nuestro blog, hablaremos de lo que para algunos pueden ser unos grandes desconocidos, pero que sin duda usan sin saberlo en sus ordenadores con MacOS. Se trata de los procesos que se ejecutan  en nuestro sistema, sin que nos demos cuenta, sin interfaz gráfica y que hacen que ocurran un montón de cosas en ellos sin percibirlos: los agentes de arranque y demonios.

Los sistemas operativos basados en UNIX, como macOS, tienen demonios o programas que se ejecutan como procesos en segundo plano en el contexto del sistema. Estos procesos se ejecutan la mayoría de las veces sin que nos demos cuenta en nuestros ordenadores. Muchos de ellos vienen  instalados con el sistema y otros se van sumando a medida que instalamos nuevas aplicaciones. Se pueden ejecutar con el arranque del sistema o cuando accedemos con nuestro usuario y contraseña en la pantalla de login. Pueden realizar todo tipo de tareas y sus cometidos pueden ser múltiples, pero la buena noticia es que siempre lo harán de la misma manera y con su alcance bien delimitado de antemano en función de si se trata de un demonio o un agente.

La mayoría de  aplicaciones que instalamos crean este tipo de procesos, sobretodo aquellas que gestionan servicios del sistema y cuando las desinstalamos, generalmente estos se suelen quedar instalados en nuestro equipo. Además, el malware suele instalar y lanzar launchAgents para que las aplicaciones dependientes del malware se ejecuten a plazos regulares  o en el arranque del sistema para recopilar información y enviarla a internet o para recibir órdenes de servidores externos.

Los administradores de sistemas macOS pueden aprovechar estos procesos para automatizar la ejecución de tareas, como scripts. Cualquier proceso o tarea que necesite ser ejecutado en un ordenador  administrado, generalmente se ejecuta de alguna forma automatizada. Ya sea un script, aplicado a través de políticas, o administrado a través de un servidor MDM, es mucho más sencillo ejecutar y reportar datos sobre tareas automatizadas configuradas correctamente que dejarlo al azar para ejecutar estas tareas en toda la flota sin confirmación de que se ha completado correctamente.

Un beneficio de automatizar tareas más allá de lo obvio es que las tareas automatizadas se ejecutan exactamente como se han diseñado e intencionado. Esto significa que, si se escribe un script para comprobar las actualizaciones del sistema al reiniciar, entonces se comprobará las actualizaciones del sistema cada vez que se reinicie el dispositivo. No se cancelará el proceso porque ahora no es el momento oportuno o porque simplemente necesita iniciar sesión para imprimir un documento rápidamente, por ejemplo.

Por lo tanto, automatizar tareas es importante para aquellos que administran una empresa o una gran cantidad de ordenadores. Esto ahorra tiempo y evita errores humanos que pueden comprometer la seguridad de los sistemas pudiendo  usar herramientas que ofrecen una visibilidad adicional sobre los dispositivos que supervisan, lo que brinda a los administradores una mejor comprensión del estado y los riesgos de seguridad de la red.

Los demonios también permiten a los administradores controlar y monitorear la actividad del sistema. Por ejemplo, un demonio puede estar configurado para revisar los archivos del sistema para detectar cambios y notificar al administrador de cualquier actividad inusual. Esto es útil para detectar posibles problemas de seguridad, malware o cualquier otro problema en el sistema. También pueden estar configurados para alertar al administrador sobre el estado de los recursos del sistema, como el espacio libre en disco. Esto ayuda a asegurar que el sistema funcione de forma óptima y minimiza el impacto de una posible falla.

¿Son los demonios lo mismo que los launch agents?

 

Los agentes de arranque o launch agents, comparten una gran similitud con los demonios en el sentido de que ambos ejecutan programas de manera automatizada en el dispositivo. Sin embargo, los demonios ejecutan estas tareas a nivel del sistema, mientras que los agentes ejecutan estas tareas dentro del contexto de la sesión interactiva del usuario. Ambos son útiles y poderosos por derecho propio, pero cada uno tiene sus propios usos específicos y deben tratarse como tales para evitar que las tareas que dependen del acceso a nivel de sistema se ejecuten en el espacio del usuario donde es posible que no tengan los derechos necesarios para realizar las tareas correctamente. Los trabajos que dependen del acceso de nivel de sistema deben ejecutarse como demonios en el contexto del sistema y los trabajos que no requieren acceso de nivel de sistema deben ejecutarse como agentes en el contexto del usuario.

Los agentes también difieren de los demonios en el sentido de que los agentes son básicamente capaces de realizar tareas reactivas, tales como monitorear un medio específico para detectar la aparición de un evento y entonces ejecutar una tarea específica como resultado. Los demonios, en cambio, suelen ejecutar sus tareas de manera programada y sin necesidad de reaccionar a los eventos que se producen a su alrededor. Esto significa que los agentes son esencialmente más flexibles y pueden ser programados para reaccionar a una variedad de eventos diferentes, mientras que los demonios sólo pueden ejecutar una tarea específica una vez que se produce un evento particular. Por esta razón, los agentes tienen un uso mucho más amplio que los demonios.

launchd es el programa administrador de demonios que se inicia por el kernel durante el proceso de inicio del sistema macOS. Gestiona procesos, tanto para el sistema en su conjunto como para los usuarios individuales. Ofrece los siguientes beneficios:

  • Simplifica el proceso de crear un demonio manejando muchas de las tareas administrativas estándar normalmente asociadas con el lanzamiento de un demonio.
  • Proporciona a los administradores de sistema un lugar central para administrar los demonios en el sistema.
  • Elimina la razón principal para ejecutar demonios como root. Debido a que launchd se ejecuta como root, puede crear sockets de escucha con números bajos de TCP / IP y entregarlos al demonio.
  • Simplifica la manipulación de errores y la gestión de dependencias para la comunicación entre demonios. Como los demonios se pueden lanzar bajo demanda, las solicitudes de comunicación no fallan si el demonio no se inicia. Simplemente se retrasan hasta que el demonio pueda iniciarse y procesarlos.

¿Donde puedo encontrar los demonios y launch agents?

 

Cuando presionas el botón de encendido, tu Mac se inicia con una serie de pasos y eventos que seguro que te resultan familiares:

  • Escuchas el clásico sonido de inicio.
  • Aparece el icono de la manzana, junto con la barra de progreso y el fondo negro.
  • Ves que la pantalla de inicio de sesión aparece cuando esto se completa (o el escritorio si tienes activada la inicio de sesión automático).

En paralelo, y sin que te des cuenta, macOS inicia el proceso launchd. Este es el responsable de iniciar, detener y administrar todo el resto de procesos, incluyendo el sistema y las cuentas de usuario individuales. El proceso está altamente optimizado y demora apenas unos segundos.
Podemos comprobar esto abriendo la aplicación Monitor de actividad y seleccionando Ver> Todos los procesos. En la parte superior, verás dos procesos principales: kernel_task y launchd, con su ID de proceso (PID) como 0 y 1.

Esto nos demuestra que launchd es el proceso principal padre cuando el sistema se inicia. También es el último proceso en salir cuando el sistema se apaga.

Los Demonios de arranque generalmente se ejecutan como root, lo que significa que funcionan independientemente de si un usuario está conectado o no. No pueden mostrar información usando la interfaz gráfica de usuario y afectan a todo el sistema macOS completo.

Por ejemplo, el proceso locationd detecta la ubicación geográfica del Mac, mientras que el proceso bluetoothd administra Bluetooth. La lista de daemons se encuentra en las siguientes ubicaciones:

 

  • /System/Library/LaunchDaemons para procesos nativos de macOS
  • /Library/LaunchDaemons para aplicaciones de terceros instaladas

 

Los Launch Agents por su parte, comienzan cuando un usuario accede al sistema. A diferencia de los daemons, pueden acceder a la interfaz de usuario y mostrar información en pantalla. Por ejemplo, una aplicación de calendario puede monitorear la cuenta de calendario del usuario para eventos y notificarle cuando ocurra el evento. Las listas de agentes se encuentran en las siguientes ubicaciones en nuestro Mac:

 

  • /Library/LaunchAgents para todas las cuentas de usuario
  • ~/Library/LaunchAgents para una cuenta de usuario específica
  • /System/Library/LaunchAgents sólo para macOS

Image link

¿El demonio o launch agent tienen algún formato específico?

 

Sí, estos procesos usan un archivo de lista de propiedades (plist) que contendrá la información específica que servirá como el eje principal de la tarea que desempeñan. A continuación veamos un ejemplo de lista de propiedades que revela tres categorías requeridas, conocidas como claves, necesarias para asegurar que funcione correctamente.

 

  • Label: Identifica de forma única una tarea para iniciar.
  • Program: Define la tarea que se ejecutará.
  • RunAtLoad: Especifica cuándo debe ejecutarse la tarea.

 

Todos estos elementos se unen con la sintaxis adecuada a través de una línea de lenguaje de programación XML para crear el archivo de lista de propiedades plist. Este lenguaje de programación está representado por una estructura jerárquica en la que cada elemento clave se basa en la característica deseada. Cada elemento clave es uno de los tres términos que se describían anteriormente.

También hay un número bastante grande de otros argumentos, como:

  • KeepAlive
  • RunAtLoad
  • WorkingDirectory
  • RootDirectory
  • StartInterval
  • StartCalendarInterval
  • WatchPaths

Monitorizando y bloqueando

 

Como hemos comentado, estos demonios y agentes pueden ser utilizados por el malware para mantener «despiertos» ciertos procesos sin que seamos conscientes en nuestros ordenadores con MacOS, para recopilar información, ralentizar el equipo o hacer que funcione de manera poco predecible y con errores. Por, además de visitar y revisar las carpetas del sistema que comentábamos antes, podemos utilizar las siguientes aplicaciones para ver el detalle sobre lo que se está ejecutando.

Una aplicación que nos permite ver y desactivar fácilmente estos procesos es Sensei Con una interfaz gráfica muy amigable, nos permite monitorizar un montón de aspectos hardware y software de nuestro mac. En el apartado de Optimizar, nos aparecerá una lista de todos los demonios y agentes que tenemos instalados en el mac, así como de elementos del inicio de sesión y con un click, podremos desactivarlos para siempre o eliminarlos.

Image link

Lingon X es una herramienta que te permite iniciar una aplicación, un script o ejecutar un comando automáticamente en una programación. También puede supervisar todas las carpetas de LaunchDaemons y LauchAgents en segundo plano y mostrar una notificación cuando algo cambia. Puedes ver todos los elementos gráficamente y ajustarlos según sea necesario.

Image link

EtreCheck es otra herramienta de diagnóstico de macOS que muestra el estado de carga de LaunchDaemons y LaunchAgents de terceros, entre otra información. Cuando ejecutas EtreCheck, recopila una variedad de información sobre tu Mac y la presenta en un informe fácil de leer. También tiene opciones de ayuda adicionales cuando se trata de adware, demonios y agentes sospechosos, archivos sin firmar y más.

Abre EtreCheck y haz clic en Escanear. Esto llevará unos minutos, y una vez hecho esto, verás un resumen completo de tu ordenador. Esto incluye problemas mayores y menores, especificaciones de hardware, problemas de compatibilidad de software, el estado de LaunchDaemons y LaunchAgents, y más.

Image link

El truco es supervisar estas carpetas y realizar comprobaciones de diagnóstico frecuentes. Si tienes dudas, busca siempre en Google los nombres de los procesos potencialmente maliciosos. Pero si evitas los errores que conducen al malware en tu Mac, no deberías tener que preocuparte ni por demonios ni por agentes!

Related Posts
Leave a Reply

Your email address will not be published.

Llámanos

Disponible de 9:30h. a 19:00h., de lunes a viernes.

+34 93 6940013
Mándanos un mensaje

Envía tu mensaje cuando quieras.

+34 618 503 805
Responderemos lo antes posible!
Whatsapp
Contacta

Nuestro equipo responderá lo antes posible.

    Respondemos en menos de 8 horas