3 votos

¿Se puede sustituir bash por completo en OS X?

Debido a CVE-2014-6271 y CVE-2014-7169 en OS X me preguntaba: ¿se puede sustituir bash por completo por otro shell no afectado (por ejemplo, dash u otros)?

6voto

Christopher Allen Puntos 160

En primer lugar, no necesita hacer esto a menos que esté ofreciendo servicios web a la Internet pública desde su Mac. Si no es así, espere hasta que haya una actualización de seguridad oficial de Apple.

Sin embargo, si ofrece servicios web, es posible que quiera actualizarse.

Parche oficial

Apple ha lanzado un Actualización oficial de seguridad de Bash aquí

Comprobar si eres vulnerable

En primer lugar, confirme que está utilizando un bash obsoleto:

$ which bash
/bin/bash
$ /bin/bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

El bash más actual es el 4.3.25

Si no tiene instalado Xcode, necesitará las herramientas de línea de comandos de Xcode, que pueden instalarse mediante

$ xcode-select --install

O de la portal para desarrolladores .

Para instalar Brew ( http://brew.sh ):

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Entonces hazlo:

$ brew doctor

Siga las instrucciones si hay problemas. Muchos problemas comunes se abordan aquí .

A continuación, actualice Brew con la última lista de paquetes:

$ brew update

Para obtener la última versión de bash 4.3.25:

$ brew install bash

Esto instala bash en /usr/local/Cellar/bash/4.3.25/bin/bash

El viejo bash y sh todavía existe en /bin Así, después de la instalación, se cambiará el nombre de los antiguos ejecutables a un nuevo archivo.

$ sudo mv /bin/bash /bin/bash_old
$ sudo mv /bin/sh /bin/sh_old

Si eres muy paranoico, puedes eliminar los permisos de ejecución en el bash_old

$ sudo chmod a-x /bin/bash_old /bin/sh_old

A continuación, crear un enlace simbólico a la nueva bash 4.3.25 que brew instalado.

$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/bash
$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/sh

Reinicia y está completo.

Una advertencia - esto puede romper algunos shell scripts existentes que podrían depender de bash 3.2 o las diferencias que el Mac sh tiene sobre el linux sh . Hay una respuesta mucho más sofisticada para reemplazar bash y sh desde las fuentes en este puesto.

En la mayoría de los casos es mejor esperar a las actualizaciones oficiales.

3voto

juffel Puntos 6

Como dijo @webmarc, no. Puedes reemplazar /bin/bash con algún otro shell pero seguramente romperás algunos programas porque bash tiene varias diferencias en su sintaxis que lo hacen incompatible. No pude encontrar un shell alternativo compatible con bash. Sin embargo, he enlazado simbólicamente dash con /bin/sh y no he encontrado ningún problema hasta ahora.

En cuanto al DHCP aquí hay un ataque de prueba de concepto. El artículo trata de dhcpcd (un cliente de Linux). No estoy seguro sobre Mac OS X. En el debate en Hacker News dicen que el cliente de OS X no usa bash en absoluto.

Otro vector podría ser sshd . Pero el ataque requiere autenticación. Así que, a menos que esté ejecutando algún servicio ssh como un git servidor debería estar a salvo.

1voto

shsteimer Puntos 8749

dash contiene sólo un pequeño subconjunto de los comandos que se encuentran en bash e incluso sh (que a su vez es un subconjunto de cosas en bash ). Sustituyendo cualquiera de los dos por dash seguramente producirá scripts en su sistema y posiblemente romperá su sistema más de lo que lo protege.

Puedes recompilar bash para mitigar parte (en el momento en que se escribió esto) del peligro potencial o esperar a que Apple publique una solución oficial.

1voto

webmarc Puntos 999

Desafortunadamente, no... varios shells tienen diferentes sintaxis haciendo que los scripts escritos para un shell sean posiblemente incompatibles con otro shell.

No he visto la infección basada en DHCP de la que hablas, ¿puedes proporcionar un enlace en tu pregunta?

0voto

Fred Daoud Puntos 2174

algunos sitios indican que se puede infectar a través de un cliente DHCP.

Este no se aplican a OS X. En los sistemas Linux, se suele llamar a un shell script después de recibir un contrato de arrendamiento DHCP del servidor. Este no es el caso en OS X.

A menos que esté ejecutando un servidor web en su Mac que sirva scripts, tiene pocas razones para preocuparse.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X