GNU/Linux, Open Source, Cloud Computing, DevOps y más...

Todavía sin solución la seria vulnerabilidad Shellshock en Bash que afecta a Linux, Unix y Mac OS X

No hay comentarios

Menos de dos días después de que fuera detectada una importante vulnerabilidad (CVE-2014-6271) que afecta a la shell Bash de Linux, Unix y Mac OS X, se ha publicado un parche que la soluciona sólo parcialmente, lo cual obligó a reportar una nueva vulnerabilidad (CVE-2014-7169), que es la que continúa pendiente de solución. Este fallo rápidamente ha cobrado un nombre más sencillo por el que se le recordará durante mucho tiempo: Shellshock, o también Shell Shock.

Antecedentes

El problema fue descubierto por Stephane Chazelas, un administrador de sistemas Unix y Linux de Akamai al detectar que introduciendo una cadena especialmente manipulada en la línea de comandos de la shell, en lugar de tratar dicha cadena como datos, Bash la interpreta erróneamente como un comando y ejecutará cualquier cosa que aparezca después de ella. Esto permite que cualquier asaltante pueda ejecutar comandos en nuestro servidor de forma arbitraria. Es cierto que no podrá hacerlo como root, pero hay muchas acciones nefastas que se pueden llevar a cabo sin privilegios de root.


Error: Your Requested widget " ai_widget-6" is not in the widget list.
  • [do_widget_area above-nav-left]
    • [do_widget_area above-nav-right]
      • [do_widget_area footer-1]
        • [do_widget id="wpp-4"]
      • [do_widget_area footer-2]
        • [do_widget id="recent-posts-4"]
      • [do_widget_area footer-3]
        • [do_widget id="recent-comments-3"]
      • [do_widget_area footer-4]
        • [do_widget id="archives-4"]
      • [do_widget_area logo-bar]
        • [do_widget id="oxywidgetwpml-3"]
      • [do_widget_area menu-bar]
        • [do_widget id="search-3"]
      • [do_widget_area sidebar]
        • [do_widget id="search-4"]
        • [do_widget id="ai_widget-2"]
        • [do_widget id="categories-5"]
        • [do_widget id="ai_widget-3"]
        • [do_widget id="ai_widget-4"]
        • [do_widget id="ai_widget-5"]
      • [do_widget_area sub-footer-1]
        • [do_widget id="text-4"]
      • [do_widget_area sub-footer-2]
        • [do_widget_area sub-footer-3]
          • [do_widget_area sub-footer-4]
            • [do_widget_area upper-footer-1]
              • [do_widget id="search-2"]
              • [do_widget id="recent-posts-2"]
              • [do_widget id="recent-comments-2"]
              • [do_widget id="archives-2"]
              • [do_widget id="categories-2"]
              • [do_widget id="meta-2"]
            • [do_widget_area upper-footer-2]
              • [do_widget_area upper-footer-3]
                • [do_widget_area upper-footer-4]
                  • [do_widget_area widgets_for_shortcodes]
                    • [do_widget id="search-5"]
                    • [do_widget id="ai_widget-6"]
                  • [do_widget_area wp_inactive_widgets]
                    • [do_widget id="wpp-2"]
                    • [do_widget id="text-1"]
                    • [do_widget id="recent-posts-3"]
                    • [do_widget id="categories-3"]
                    • [do_widget id="archives-3"]
                    • [do_widget id="icl_lang_sel_widget-3"]

                  Consecuencias

                  Veamos algunos de los ejemplos más críticos de vectores de ataque y sistemas que se pueden ver afectados:

                  • Apache: los servidores Apache, que son los servidores web más extendidos de Internet, pueden verse afectados si usan mod_cgi o mod_cgid si alguno de esos scripts están escritos en Bash.
                  • ForceCommand: esta vulnerabilidad también puede ser explotada para saltarse a ForceCommand en algunas configuraciones del demonio sshd. Se supone que ForceCommand limita la ejecución de código remoto, pero este fallo permite saltarse esta protección.
                  • DHCP: el protocolo DHCP que permite que los ordenadores y dispositivos conectados a una red obtengan automáticamente su dirección IP y otra información necesaria para el correcto funcionamiento de dicha red, es otro servicio que se podría ver afectado según Red Hat, ya que como este protocolo permite al servidor DHCP pasar variables de entorno a sus clientes, un atacante podría conseguir que esas variables fueran interpretadas como comandos en lugar de como meros datos de configuración, lo cual permitiría atacar a cualquiera de los puestos de la red con sólo tomar el control del servidor, lo cual sería fatal en muchos casos, grandes empresas por ejemplo.
                  • SSH: otro punto vulnerable a explotar es OpenSSH a través del uso de variables AcceptEnv, TERM y SSH_ORIGINAL_COMMAND. Una variable de entorno con nombre arbitrario puede incluir una función maligna capaz de explotar la vulnerabilidad y realizar un ataque a través de la red.
                  • GIT: otros servicios como Git que ofrecen shells restringidas a sus usuarios podrían verse afectados por esta vulnerabilidad, que permitiría saltarse todas esas restricciones y tomar un completo control del servidor.

                  Teniendo en cuenta que Bash es uno de los intérpretes de comandos más extendidos, no hay duda de que más y más ejemplos de otros vectores de ataque irán surgiendo en los próximos días y semanas, por lo que aplicar una solución a este fallo cuanto antes se hace imprescindible para todos los administradores de sistemas afectados en todo el mundo.


                  Error: Your Requested widget " ai_widget-6" is not in the widget list.
                  • [do_widget_area above-nav-left]
                    • [do_widget_area above-nav-right]
                      • [do_widget_area footer-1]
                        • [do_widget id="wpp-4"]
                      • [do_widget_area footer-2]
                        • [do_widget id="recent-posts-4"]
                      • [do_widget_area footer-3]
                        • [do_widget id="recent-comments-3"]
                      • [do_widget_area footer-4]
                        • [do_widget id="archives-4"]
                      • [do_widget_area logo-bar]
                        • [do_widget id="oxywidgetwpml-3"]
                      • [do_widget_area menu-bar]
                        • [do_widget id="search-3"]
                      • [do_widget_area sidebar]
                        • [do_widget id="search-4"]
                        • [do_widget id="ai_widget-2"]
                        • [do_widget id="categories-5"]
                        • [do_widget id="ai_widget-3"]
                        • [do_widget id="ai_widget-4"]
                        • [do_widget id="ai_widget-5"]
                      • [do_widget_area sub-footer-1]
                        • [do_widget id="text-4"]
                      • [do_widget_area sub-footer-2]
                        • [do_widget_area sub-footer-3]
                          • [do_widget_area sub-footer-4]
                            • [do_widget_area upper-footer-1]
                              • [do_widget id="search-2"]
                              • [do_widget id="recent-posts-2"]
                              • [do_widget id="recent-comments-2"]
                              • [do_widget id="archives-2"]
                              • [do_widget id="categories-2"]
                              • [do_widget id="meta-2"]
                            • [do_widget_area upper-footer-2]
                              • [do_widget_area upper-footer-3]
                                • [do_widget_area upper-footer-4]
                                  • [do_widget_area widgets_for_shortcodes]
                                    • [do_widget id="search-5"]
                                    • [do_widget id="ai_widget-6"]
                                  • [do_widget_area wp_inactive_widgets]
                                    • [do_widget id="wpp-2"]
                                    • [do_widget id="text-1"]
                                    • [do_widget id="recent-posts-3"]
                                    • [do_widget id="categories-3"]
                                    • [do_widget id="archives-3"]
                                    • [do_widget id="icl_lang_sel_widget-3"]

                                  Diagnóstico

                                  Para comprobar si tu shell Bash es vulnerable a este problema ejecuta estos comandos:

                                  ~$ env x='() { :;}; echo vulnerable' bash -c "echo Test 1"
                                  ~$ env X='() { (a)=>\' sh -c "echo vulnerable"; bash -c "echo Test 2"
                                  

                                  Si la salida de alguno de ellos (o de ambos) muestra la palabra vulnerable, efectivamente tu versión de Bash es vulnerable:

                                  ~$ env x='() { :;}; echo vulnerable' bash -c "echo Test 1"
                                  vulnerable
                                  Test 1
                                  ~$ env X='() { (a)=>\' sh -c "echo vulnerable"; bash -c "echo Test 2"
                                  vulnerable
                                  Test 2
                                  

                                  El parche que soluciona este problema debe asegurarse de que no se permita ningún comando después del final de una función. Por tanto, si ejecutas el mismo comando en una versión parcheada de Bash deberías obtener una salida como la siguiente:

                                  ~$ env x='() { :;}; echo vulnerable'  bash -c "echo Test 1"
                                  bash: warning: x: ignoring function definition attempt
                                  bash: error importing function definition for `x'
                                  Test 1
                                  

                                  Solución

                                  Si tu sistema es vulnerable la solución pasa por instalar la versión más reciente del paquete Bash, aunque como decía al principio, la solución publicada es sólo parcial. No obstante Red Hat aconseja aplicar el parche que soluciona la primera vulnerabilidad, ya que la segunda (CVE-2014-7169) no es tan seria:

                                  Debian y Ubuntu
                                  ~# apt-get update && apt-get upgrade bash
                                  
                                  Red Hat y CentOS
                                  ~# yum update bash
                                  

                                  Enlaces de interés e información adicional

                                  https://access.redhat.com/articles/1200223
                                  https://access.redhat.com/articles/1212303
                                  https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7169

                                   

                                  Sobre el autor

                                  Daniel López Azaña
                                  Arquitecto de soluciones Cloud AWS & Linux Sysadmin Freelance

                                  Emprendedor, generador de ideas y mente inquieta. Apasionado de las nuevas tecnologías, especialmente de los sistemas Linux y del software libre. Me gusta escribir además sobre actualidad tecnológica, Cloud Computing, AWSi, DevOps, DevSecOps, seguridad, desarrollo web y programación, SEO, ciencia, innovación, emprendimiento, etc.

                                  DanielTodavía sin solución la seria vulnerabilidad Shellshock en Bash que afecta a Linux, Unix y Mac OS X

                                  Deja una respuesta

                                  Tu dirección de correo electrónico no será publicada.