Recientemente, ha habido noticias sobre "CVE-2014-6271" (ver USN-2362-1 ), que es una vulnerabilidad en Bash. ¿Cómo sé si esto me afecta, cómo puedo solucionarlo y por qué debería importarme?
Esto está diseñado como una respuesta canónica para esta vulnerabilidad, debido a su alcance y gravedad.
bash
security
shellshock
ζ--
fuente
fuente
Respuestas:
¿Qué es bash?
Bash es el shell interactivo predeterminado en Ubuntu. Cuando está interactuando con el terminal (ya sea a través del emulador de terminal, a través de un tty o ssh), generalmente está escribiendo comandos que
bash
leerán y ejecutarán. Incluso si no usa el terminal en absoluto, todavía tiene Bash.En Ubuntu,
/bin/sh
no es bash (es guión). Solo bash se ve afectado por esta vulnerabilidad.¿Cómo me afecta el exploit?
Bash y el sistema operativo realizan un seguimiento de un conjunto de variables de entorno que describen el usuario conectado actualmente, dónde buscar programas en el disco duro y otras funciones similares. Al crear una variable de entorno con una estructura específica, un atacante podría ejecutar código la próxima vez que comience Bash.
El atacante puede establecer esa variable de entorno de varias maneras:
ForceCommand
opción sshd es un vector de ataque. Las cuentas cuyo shell no es bash no se ven afectadas.Una vez que establezcan esta variable, la próxima vez que se
bash
abra por cualquier motivo, se ejecutará el código de su atacante. Esto es especialmente temiblesudo -s
, ya que genera bash como el superusuario (una regla de usuario administrativo que tiene control total sobre los datos y programas de su computadora). Incluso si solo comienza bash como usuario estándar, los archivos de ese usuario se pueden eliminar.Es importante tener en cuenta que incluso si no utiliza bash usted mismo, muchos programas generarán bash por sí mismos como parte de su operación. Incluso en este caso, eres vulnerable. Sin embargo, Ubuntu
/bin/sh
no es bash, por lo que solo se ven afectados los programas que invocan explícitamente bash y no el shell de secuencias de comandos predeterminado.Según Mitre:
¿Soy vulnerable?
Use dpkg para verificar la versión de su paquete instalado:
Esto buscará información en su
bash
paquete y filtrará la salida para mostrarle solo la versión. Las versiones fijos son4.3-7ubuntu1.4
,4.2-2ubuntu2.5
, y4.1-2ubuntu3.4
.Por ejemplo, veo:
y puedo determinar que no soy vulnerable.
¿Cómo actualizo?
El administrador de actualizaciones estándar le ofrecerá esta actualización. Este es un excelente ejemplo de cómo las actualizaciones de seguridad son importantes, sin importar qué sistema operativo use o qué tan bien mantenido esté.
El Boletín de USN establece que se han lanzado nuevas versiones para Ubuntu 14.04 Trusty Tahr, 12.04 Precise Pangolin y 10.04 Lucid Lynx. Si no está en una de estas versiones LTS, pero está en una versión razonablemente reciente, lo más probable es que pueda encontrar un paquete parcheado.
Primero, verifica si
Si es vulnerable, primero debe tomar las listas de paquetes más recientes:
El primer comando se asegura de que tiene la lista de paquetes más reciente que incluye la versión fija, y el segundo comando instala la versión más nueva (fija) de bash.
Si bien el error solo parece entrar en juego cuando se genera bash, sigue siendo una buena idea reiniciar de inmediato si es posible.
fuente
Robó esto de cft en Hacker News . Si tiene problemas con sus repositorios como yo (Odroid-XU), entonces esto debería funcionar bien si desea parchear / construir desde la fuente.
Entonces corre:
Y si obtienes:
¡Entonces estás todo bien!
ADVERTENCIA: ¡ make install instalará bash in
/usr/local/bin
, por/bin/bash
lo que no se modifica y se puede invocar desde curl!fuente
Nota: El parche de seguridad para CVE-2014-7169 se lanzó como una actualización de seguridad estándar. No es necesario agregar ppa adicionales para recibir este parche. Solo se necesita lo siguiente.
Para asegurarse de que ha parcheado bash correctamente, ejecute el siguiente comando
Si tiene 14.04 LTS, debería ver una salida de:
Si está en 12.04 LTS, su salida debería ser:
fuente
Si está en 11.04: use los pasos a continuación (funcionó para mí)
si no se descarga el parche requerido, instale el paquete ftp
Para ver si se aplicó el parche:
fuente
Estoy usando Natty 11.04, que es EOL (y he actualizado /etc/apt/sources.list para usar old-releases.ubuntu.com), así que tengo que construir desde la fuente. Quería construir un .deb, por lo que al menos el administrador de paquetes es "consciente" de que la versión bash no es la predeterminada. No tengo éxito al 100%, sin embargo, el paquete está registrado como "más nuevo" y el
bash
binario termina arreglado, así que esto es lo que hice:Ahora, en el (sub) directorio
bash-4.2/
, hay: un archivobash-4.2.tar.xz
, que necesita ser desempaquetado para llegar a labash
fuente; y un subdirectorio llamadodebian
.Hice los siguientes cambios para evitar dependencias de
texlive
: enbash-4.2/debian/control
:... y en
bash-4.2/debian/rules
:Para cambiar la versión, en este
bash-4.2/
directorio, haga:... y complete las notas en el registro de cambios cuando se le solicite. Esto asegurará que se llame al .deb (y los metadatos relacionados) (en mi caso)
bash_4.2-0ubuntu3patchCVE1_i386.deb
.Entonces puedes intentar construir con
dpkg-buildpackage -us -uc
odebuild
comando. Nota: cualquiera de estos volverá a desempaquetar la fuente del archivo zip, anulando cualquier parche que haya tenido. Aún así, ejecute uno de estos una vez para que la fuente se desempaque ydebuild
compile (la nota puede fallar al final debido a texlive, pero debe desempaquetar y compilar la fuente).Luego, aplique los parches; tenga en cuenta que debe usar
-p1
aquí, porque actualmente está en elbash-4.2/
directorio:Luego reconstruya la versión parcheada ejecutando:
Esto reconstruiría el ejecutable; para probarlo:
Para compilar los archivos .deb, ejecute:
Esto guardará los archivos .deb en el directorio principal; para enumerar sus contenidos:
Para instalar el .deb:
Sin embargo, por alguna razón, este .deb contiene un binario no parcheado (?!), Así que tuve que hacer además:
... y después de eso, la prueba comenzó a pasarme correctamente:
fuente