Si tiene un servidor web Apache con una configuración estándar y un script cgi que utiliza bash, la entrada de registro para una solicitud puede parecer idéntica en los siguientes tres casos:
- Se realiza una solicitud legítima.
- Se realiza un ataque exitoso.
- Un intento de ataque falla porque se actualizó a una versión
bash
que deshabilita la función vulnerable.
La única diferencia necesaria para convertir una solicitud legítima en un ataque es la modificación de uno de los encabezados de solicitud, que se coloca en una variable de entorno.
Si el encabezado User-agent
se usa para realizar el ataque, será bastante visible en el registro de acceso de registro, ya que ese encabezado se registra. Pero hay otros encabezados que se pueden usar para realizar el ataque, que no se registran de forma predeterminada.
Si un intento de ataque falló debido a que bash
se actualizó a la versión intermedia que corrigió el error pero aún permitía que las funciones se especificaran a través del entorno, vería advertencias en el registro de errores. Pueden verse así:
[Thu Sep 25 20:46:51.483207 2014] [cgi:error] [pid 26424] [client 10.82.90.125:55631] AH01215: /bin/bash: warning: HTTP_ACCEPT_LANGUAGE: ignoring function definition attempt
[Thu Sep 25 20:46:51.483316 2014] [cgi:error] [pid 26424] [client 10.82.90.125:55631] AH01215: /bin/bash: error importing function definition for 'HTTP_ACCEPT_LANGUAGE'