Dentro de macOS: qué es la carpeta PrivilegedHelperTools

De forma predeterminada, las aplicaciones se ejecutan bajo el usuario que ha iniciado sesión y cuando me refiero a las aplicaciones, me refiero a las que están dentro de la carpeta Aplicaciones  u otras aplicaciones dependientes de ellas.

Diferentes usuarios tienen diferentes derechos cuando se trata de acceder a los archivos, cambiar la configuración de todo el sistema, etc., dependiendo de si son usuarios administrativos o usuarios ordinarios. Algunas tareas requieren privilegios adicionales por encima y más allá de lo que incluso un usuario administrador puede hacer por defecto. Se dice que una aplicación u otro proceso con tales derechos adicionales se ejecuta con privilegios elevados. Ejecutar código con privilegios de root o administrativos puede intensificar los peligros que plantean las vulnerabilidades de seguridad. Así cuando una aplicación requiere de esos privilegios elevados, requiere de un soporte especial que se inicia en esta carpeta y que hace referencia a la aplicación. [note]Elevar privilegios no está permitido en las aplicaciones enviadas al Mac App Store (y no es posible en iOS) por lo que cualquier archivo que haga referencia a una aplicación en esta carpeta será a aplicaciones que hemos instalado fuera del entorno de la Mac App Store.[/note]

Pero pongamos un ejemplo típico: dentro de la carpeta PrivilegedHelperTools yo tengo un archivo llamado com.barebones.authd que hace referencia a BBEdit, un editor de textos utilizado con frecuencia por ejemplo para trabajar con archivos del sistema. Una de las ventajas de BBEdit[note]Que también estaba disponible en su ahora desaparecido hermano menor Textwrangler[/note] es que cuando tienes que editar un archivo para el que no tienes permisos[note]Porque pertenece al sistema, u otro usuario[/note] la propia aplicación se encarga de poder asignarle permisos de acceso, lectura y escritura[note]Previa introducción de tu contraseña de administrador[/note] para que puedas trabajar con el archivo y luego, una vez guardado, devolverle los permisos originales. Esto, por defecto, no debería poder hacerlo una aplicación normal, pero al disponer de privilegios elevados, pues… ahí está.

Independientemente de si un usuario ha iniciado sesión como administrador, es posible que un programa tenga que obtener privilegios administrativos o de root para realizar una tarea. Ejemplos de tareas que requieren privilegios elevados incluyen:

  • manipular permisos de archivos, propiedad
  • crear, leer, actualizar o borrar archivos de sistema y de usuario
  • abrir puertos privilegiados (aquellos con números de puerto inferiores a 1024) para conexiones TCP y UDP
  • Apertura de raw sockets
  • gestión de procesos
  • leer el contenido de la memoria virtual
  • Cambiar la configuración del sistema
  • Carga de extensiones de kernel

Apple recomienda a los desarrolladores que si tienen que realizar una tarea dentro de una aplicación que requiere privilegios elevados, deben tener en cuenta el hecho de que al ejecutar con privilegios elevados significa que si hay vulnerabilidades de seguridad en su aplicación, un atacante también puede obtener privilegios elevados y, a continuación, podrá realizar cualquiera de las operaciones enumeradas anteriormente[note]Lo que es un grave problema de seguridad, pero no por eso debemos dejar de utilizar las aplicaciones a las que se hace referencia dentro de esta carpeta, amiguitos[/note]

El principio del menor privilegio

Cualquier programa puede ser atacado, y probablemente lo será. De forma predeterminada, cada proceso se ejecuta con los privilegios del usuario o proceso que lo inició. Como resultado, si un atacante usa un desbordamiento de búfer u otra vulnerabilidad de seguridad para ejecutar código en el equipo de otra persona, generalmente puede ejecutar su código con los privilegios que tenga el usuario conectado.

Si un usuario ha iniciado sesión con privilegios restringidos, el programa debe ejecutarse con esos privilegios restringidos. Esto limita efectivamente la cantidad de daño que un atacante puede hacer, incluso si ataca con éxito una aplicación y a través de ella consigue ejecutar código malicioso. El desarrollador debe asumir que el usuario ha iniciado sesión con privilegios de administrador; debe estar preparado para ejecutar una aplicación de ayuda con privilegios elevados si necesita realizar una tarea. Sin embargo, hay que tener en cuenta que, si el desarrollador eleva los privilegios de su proceso para que se ejecute como root, un atacante puede obtener esos privilegios elevados y potencialmente asumir el control de todo el sistema.

Si un atacante puede obtener privilegios de administrador, puede elevarse a privilegios de root y obtener acceso a cualquier dato en el ordenador del usuario. Por lo tanto, es una buena práctica de seguridad iniciar sesión como administrador sólo cuando se realizan las tareas que requieren privilegios de administrador. Debido a que la configuración predeterminada para macOS es convertir al propietario del equipo en administrador, Los usuarios [note]Al menos, los menos experimentados[/note], deberían crear un inicio de sesión independiente como no administrador y utilizarlo para su trabajo diario. Además, si es posible, no debería requerir privilegios de administrador para instalar el software[note]Aunque esto no siempre es posible, pero es el método que se utiliza para las aplicaciones de la Mac App Store, que no pertenecen al usuario, sino al sistema[/note].

La idea de limitar el riesgo limitando el acceso se remonta a la política de “necesidad de saber” seguida por las agencias de seguridad del gobierno[note]No importa cuál sea su autorización de seguridad, no se le da acceso a la información a menos que tenga una necesidad específica de conocer esa información[/note]. En la seguridad del software, esta política es a menudo llamada el principio del menor privilegio.

Cada programa y cada usuario del sistema debe operar usando el mínimo conjunto de privilegios necesarios para completar el trabajo. Salzer, J. H. AND Schroeder, M. D.,”The Protection of Information in Computer Systems,” Proceedings of the IEEE, vol. IEEE, Vol. 63, no. 9, septiembre 1975.

En términos prácticos, el principio del privilegio mínimo significa que debe evitar ejecutarse como root o, si es absolutamente necesario ejecutarlo como root para realizar alguna tarea, debe ejecutar una aplicación de ayuda separada para realizar la tarea privilegiada… y es aquí donde entra en acción las aplicaciones bajo la carpeta PrivilegedHelperTools. Además, en la medida de lo posible, el software o partes del mismo debería ejecutarse en una sandbox que restrinja aún más sus privilegios, como pasa en las aplicaciones descargadas desde la Mac App Store.

 

Siguientes pasos

Bueno, si eres un usuario del sistema, no hay muchos siguientes pasos a seguir salvo echar un vistazo a la carpeta e identificar algún helper abandonado por alguna aplicación que ni tan siquiera está instalada en el sistema[note]En mi caso,  un helper de TeamViewer, por ejemplo[/note] para eliminarlo a continuación, te hará falta la contraseña de administrador. Evidentemente hay que tener muy claro qué borras y por qué.

Para desarrolladores de aplicaciones macOS[note]¿Hay de esos en España?¿Y en Latinoamérica? Que levanten el dedo[/note] sí hay que seguir adelante con este tema con la documentación de Apple. [note]Que he traducido parcialmente, reescrito y revaluado para explicar todo este asunto para humanos[/note] en la que se explica con bastante profundidad como funcionan estas aplicaciones que permiten elevar privilegios para algunas acciones de esas aplicaciones.

0 0 votos
Article Rating
Subscribe
Notify of
5 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Juan Miguel Escribano
Juan Miguel Escribano
6 years ago

A colación con lo que comentas sobre utilizar el Mac con un usuario normal y no con un administrador, quería preguntarte: si mi usuario de trabajo es administrador ¿habría algún problema en quitarle los privilegios de administrador, sobre todo en lo que se refiere a acceso a aplicaciones, iCloud, Fotos, etc? ¿o todo seguiría funcionando igual?
Muchas gracias

Mandibul
Mandibul
6 years ago

Muy interesante. Muchas gracias.

Como humilde propietario de un MacBook siempre he usado la cuenta principal con todos los súper poderes.
Estoy dispuesto a seguir la profilaxis indicada en este artículo, pero necesito que -por favor- me enlaces (o generes) a algún artículo donde se muestren los pasos para trasvasar y/o compartir la información entre dos usuarios de un Mac (por ejemplo correo, iTunes, photos, etc.)

Gracias de nuevo

Mandibul
Mandibul
Responder a  Carlos Burges Ruiz de Gopegui
6 years ago

Pues es verdad.
Muchas gracias de nuevo.

5
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x