Cómo Homebrew puede afectar la seguridad de su Mac [duplicado]

4

Leí ( aquí y aquí ) que Homebrew (el administrador de paquetes de Unix) es un riesgo importante para la seguridad de Mac. Se permite un ataque porque Homebrew hace que /usr/local/bin se pueda escribir sin privilegios de usuario root, lo que permite que otro proceso Homebrew escriba un proceso malicioso en este árbol de directorios. El árbol /usr/local/bin está prefijado de forma predeterminada antes de /usr/bin en la ruta del shell. Como tal, un atacante podría inyectar un binario malicioso para cambiar el reloj o robar la contraseña de un administrador (por ejemplo, sudo malicioso).

¿Hay alguien por ahí consciente de estas vulnerabilidades? ¿Alguien tiene un mejor método para obtener acceso a los comandos críticos de Unix sin afectar la seguridad del terminal del usuario final (MacBook con OSX, por ejemplo)? ¿Utiliza Macports que se basa en un administrador de paquetes que se instala con privilegios de root para / opt? ¿Realiza todo el trabajo de shell de Unix en un emulador como Virtual Box o VMWare?

Sé que hay muchos agujeros de seguridad que comienzan con la fabricación y tan pronto como se instala una aplicación de software. Tengo mucha curiosidad sobre las mejores prácticas de un experto en seguridad en esto.

ACTUALIZACIÓN 2018-11-07

Verifiqué con la lista de correo de macports y recibí respuestas rápidas y detalladas. Desafortunadamente, no hay respuesta con detalles sobre la funcionalidad del foro Homebrew. En este punto, sospecho que macports tiene una mejor funcionalidad de seguridad. Siempre puede haber un agujero en algún lugar y para ser realmente seguro, consideraré instalar estas aplicaciones de código abierto en un contenedor emulado autónomo. Por ejemplo, utilizando VirtualBox, VMWare o Parallels. De esta manera, si hay un problema de seguridad, estará contenido y no expondrá el acceso al llavero de Mac u otros datos críticos.

ACTUALIZACIÓN recibida de la lista de correo de macports

La instalación de MacPorts mediante el paquete del instalador publicado en nuestra página web requiere una contraseña de administrador, y los archivos y directorios que instala son propiedad de root, lo que significa que nadie más que un administrador puede cambiarlos. También crea una cuenta de usuario normal sin privilegios llamada "macports" para que MacPorts la use más adelante.

El uso de MacPorts como se instala de esta manera también requiere una contraseña de administrador. Los archivos que los puertos de MacPorts instalan generalmente son propiedad de la raíz, aunque los puertos individuales pueden tomar sus propias decisiones al respecto. Por ejemplo, un puerto de servidor de base de datos puede crear una cuenta de usuario especial para ser utilizada por el servidor de base de datos cuando se está ejecutando, y puede instalar un directorio vacío donde puedan vivir los archivos que escribirá el servidor de base de datos, y el propietario de ese directorio se establecerá en esa nueva cuenta de usuario.

Cuando invoca el comando "puerto" con "sudo" y proporciona la contraseña de administrador, MacPorts cambia al usuario "macports" sin privilegios. En ese momento, ya no tiene privilegios de raíz, por lo que incluso si se cometiera un archivo de acceso malicioso que intentara hacerlo, no podría modificar los archivos fuera de su directorio de compilación. MacPorts se eleva de nuevo a los privilegios de raíz cuando hace algo que requiere acceso de raíz, por ejemplo, para el paso final que realmente instala los archivos en el prefijo / opt / local.

Es posible compilar MacPorts desde una fuente configurada para no usar el acceso de root, y si lo hace, no obtendrá las protecciones anteriores. No recomendamos hacer esto.

MacPorts realiza un seguimiento de los archivos que instala cada puerto y no permite que un puerto sobrescriba los archivos de otro puerto (a menos que el usuario lo solicite mediante el uso del indicador -f, por lo que el usuario debe abstenerse de utilizar este indicador de forma habitual).

Otra publicación

También se debe tener en cuenta que Homebrew no puede cambiar repentinamente para ofrecer este grado de seguridad sin una repetición bastante completa de la forma en que funciona, y la mayoría / muchas / todas de sus "ventajas" de instalar en / usr / los locales que han servido para hacerlo popular se perderían totalmente, y lo más probable es que muchas / la mayoría / todas sus fórmulas deban reescribirse para adaptarse a este cambio. Muchos de ellos en la actualidad asumen que las cosas se encuentran automáticamente en / usr / local.

homebrew ha sido popular porque es "fácil": sus archivos en / usr / local se encuentran sin la intervención de ningún compilador o shell. Sin embargo, eso no viene sin costes.

MacPorts requiere más trabajo para incluir específicamente ciertas rutas incluidas, rutas de biblioteca y rutas ejecutables, pero eso incluye cierto conocimiento de lo que realmente está obteniendo y la seguridad de saber que no se puede desordenar sin él. tu permiso.

    
pregunta Nick 06.11.2018 - 07:44
fuente

1 respuesta

0

Puede cambiar el orden de su ruta en /etc/paths para evitar dicho comportamiento malicioso. Sin embargo, $PATH podría ser anulado en el script de shell (como .bash_profile o .zshrc ), así que también puede marcarlos / cambiarlos.

Respecto a Macports: prefiero ejecutar software no confiable en un espacio de usuario con privilegios mínimos, por lo que Homebrew es más adecuado.

Con respecto al shell de Unix: simplemente cree una cadena de confianza, es decir, use un shell de confianza en un terminal de confianza. Además, he reforzado mi Mac con las herramientas de Patrick Wardle porque son de código abierto y ofrecen los controles de acceso a la red y al sistema necesarios. .

    
respondido por el odo 06.11.2018 - 15:35
fuente

Lea otras preguntas en las etiquetas