¿Por qué una aplicación puede crear demonios sobre la marcha sin el permiso de sudo y cómo detenerlo?

5

Primero, vengo de Linux, así que hay muchas cosas que me confunden, como los demonios.

Instalé VOX.app y tiene algún tipo de agentes y procesos relacionados con la nube que se pueden iniciar automáticamente. No hay ninguna opción en la interfaz de usuario VOX que pueda deshabilitarlos. Intenté lo siguiente para eliminar esos demonios:

launchctl remove com.coppertino.VOXCloud
launchctl remove com.coppertino.VOXAgent

Los comandos anteriores ya son raros porque no necesitaba usar sudo . Lo más extraño es que lo que hice es aparentemente inútil, ya que cada vez que ejecuto VOX.app, puede crearlos una y otra vez. Esto es una locura.

Si este es el modelo de seguridad de macOS, ¿cómo puedo entender las cosas y quizás controlarlo?

    
pregunta sgon00 18.08.2018 - 10:37

2 respuestas

5

El modelo de seguridad general es que los usuarios normales pueden agregar cualquier elemento de inicio a su dominio (biblioteca de usuario para ellos) y no para el sistema, así que no permita que las personas tengan cuentas de administrador si no confía en que no se ejecuten software que instala los elementos de inicio a nivel del sistema.

No hay una manera fácil de evitar que un usuario administrador cambie el sistema. Puede imponer aplicaciones de controlador de acceso o firmadas, pero la mayoría de los usuarios de administración pueden omitir esa configuración. En el mejor de los casos, ralentizar un poco a un usuario de administración sin educación.

Trabajos por usuario y en todo el equipo

En macOS, launchd puede administrar procesos en segundo plano por usuario y en toda la computadora.

Los trabajos por usuario existen dentro de su sesión de usuario. Comienzan y se detienen con el inicio y el cierre de sesión de la computadora. Si los trabajos tienen tickets de trabajo asociados, los encontrará con la carpeta ~/Library/LaunchAgents y ~/Library/LaunchDaemons

Los trabajos en todo el equipo comienzan y terminan con el equipo. Estos trabajos se almacenan en /Library/LaunchAgents y /Library/LaunchDaemons .

Los trabajos en todo el equipo administrados por Apple se almacenan en /System/Library/LaunchAgents y /System/Library/LaunchDaemons .

Los trabajos por usuario no necesitan permiso de superusuario. Por lo tanto, no necesitaba sudo para detener los trabajos instalados en el nivel de usuario en vox.app .

Deshabilitando un trabajo launchd

Puedes descargar un trabajo launchd para bloquearlo y devolverlo:

  

Uso: launchctl unload <service-path, service-path2, ...>

     
  • -w Además, deshabilita el servicio, de modo que las futuras operaciones de carga resultarán en un servicio que se inicia y rastrea, pero que no se puede iniciar ni descubrir de ninguna manera.
  •   
  • -S <session> solo descarga los servicios asociados con la sesión especificada.
  •   
  • -D <domain> descarga archivos launchd.plist (5) del dominio especificado. Consulte la discusión sobre este mismo indicador cuando se le da al subcomando de carga para obtener más detalles.
  •   

El -w hace que la descarga se escriba en el disco y se mantenga durante las sesiones.

Para obtener más información sobre cómo detener, descargar y anular trabajos, consulte:

respondido por el Graham Miln 18.08.2018 - 14:26
1

El problema general se maneja en la respuesta de Graham Miln. Esta respuesta es solo una pequeña adición ejercida en la aplicación de ejemplo dada:

Versión corta: macOS tiene algunos directorios especiales para este tipo de comportamiento. Esas son las rutas globales y de usuario / biblioteca ya mencionadas en la respuesta de Graham. Pero hay una ruta menos visible y, por lo tanto, menos obvia dentro de cada paquete de aplicaciones.

Algunas aplicaciones son demasiado inteligentes. Vox es un buen ejemplo de esto. Estos agentes no están bien explicados, pero a menudo se quejan de un programa, aplicación o software potencialmente no deseado (PUPAS)

Esta aplicación activa una cadena de eventos cuando se copia en / Aplicaciones y nuevamente cuando se inicia por primera vez.

Dentro del paquete de paquetes están los elementos de inicio de sesión:

   /Volumes/VOX/VOX.app/Contents/Library/LoginItems
  ../Loop.app
  ../VOX Agent.app

Ambos son copiados / registrados por el propio DesktopServicesHelper del sistema como un "elemento de inicio de sesión del asistente de aplicaciones". Este tipo de "ayudantes" a menudo se encuentran en otras aplicaciones también y generalmente son simplemente engorrosas y causan molestias. Es posible que, en primer lugar, se les impida el registro preventivo mediante pequeñas aplicaciones prácticas, como BlockBlock .

Como estos aún están contenidos dentro del paquete de aplicaciones , tendrá que buscar o proporcionar la ruta dentro del paquete de aplicaciones.

La búsqueda de programas / ayudantes lanzados automáticamente debe incluir / Aplicaciones y ~ / Aplicaciones!

Luego se encuentra otra molestia dentro del paquete de aplicaciones :

 /Volumes/VOX/VOX.app/Contents/XPCServices 
 /Volumes/VOX/VOX.app/Contents/XPCServices/VOX\ Toolbox.xpc
 /Volumes/VOX/VOX.app/Contents/XPCServices/com.coppertino.Vox.GNTPClientService.xpc 

Una forma de evitar que estos procesos por usuario te molesten se describe en la respuesta de Graham, usando launchctl .
Solo necesitas buscar en / Aplicaciones también.
Otro método sería ir al paquete y simplemente eliminar estos elementos. - La mayoría de las veces, esas aplicaciones comienzan bien sin ellas, solo faltan las funciones respectivas. Vox fue una vez un pequeño y agradable reproductor de música. Funciona para eso sin esas molestias presentes en el disco.
A veces, las aplicaciones mejor diseñadas le ofrecen una opción para evitar que esos chanchullos en su diálogo de preferencias.

Favorito personal: en el caso de la aplicación en el ejemplo dado, sería mejor eliminar toda la aplicación.

Para responder directamente al encabezado de pregunta

  

¿Por qué una aplicación puede crear demonios sobre la marcha sin el permiso de sudo y cómo detenerlo?

Debido a que un usuario inicia la aplicación con sus privilegios, los demonios contenidos dentro de ese paquete de aplicaciones a veces están diseñados de forma bastante molesta para luego registrarse de forma muy transparente como "inicio automático" dentro del contexto de ese usuario y con los derechos de ese usuario. Para descargar o anular el registro no se requieren derechos o permisos sudo / administrativos. Si el delincuente se encuentra en / Aplicaciones, la eliminación puede depender de permisos más altos.

    
respondido por el LangLangC 18.08.2018 - 17:37

Lea otras preguntas en las etiquetas