Cuando se presentó Shellshock, ¿qué tan malo fue ** entonces **?

6

El error de shellshock y la característica subyacente que permite la Importación de Funciones desde el Ambiente (lo llamo FIE), han estado en bash desde al menos 1993, antes del aumento de CGI.

En ese momento, el resto del entorno Unix / Linux / GNU era muy diferente.

Así que en ese momento en la historia:

  • ¿Se permitieron los scripts de setuid en ese momento?
  • ¿Fueron los scripts setuid parte de la configuración predeterminada en ese momento?
  • ¿Las llamadas system(3) y popen(3) fueron usadas rutinariamente por los binarios setuid en ese momento?
    • los usos comunes son para expandir globos de shell ( less parece usarlo para esto, pero no está configurado) y ejecutar comandos externos
  • ¿Era común en ese momento heredar el entorno cuando su -ing?
  • ¿Se podría propagar el entorno con elementos como rlogin etc? (Creo que telnet propagó DISPLAY por defecto).
  • ¿Hay alguna característica que haga que el error de la FIE sea más problemático en ese entonces?

Entonces, ¿qué tan grave fue este error de escalada de privilegios y ejecución de código, que se ha ocultado a simple vista durante más de veinte años, cuando se introdujo originalmente ?

    
pregunta Ben 30.09.2014 - 11:45
fuente

1 respuesta

5

¿Qué tan mal? No muy.

Cuando se introdujo el error, no existía ninguno de los vectores de ataque remoto comunes: el error de análisis "shellshock" es anterior a CGI y DHCP alrededor de un año, y es anterior a SSH entre dos y tres años. Los programas de acceso remoto como telnet y rsh no tienen la capacidad de restricción de comandos que SSH tiene, por lo que aunque un ataque "shell shock" probablemente se pueda montar contra ellos, no ganaría un atacante nada que no pudieran " t simplemente iniciando sesión normalmente.

En cuanto a los ataques locales de escalada de privilegios, por lo que puedo decir, Linux nunca ha soportado los scripts de setuid. No hay muchos programas setuid: en ese momento, habrían sido lo que ahora son los paquetes "util-linux" y "shadow". Estos programas forman parte de la especificación POSIX y no han cambiado en su funcionamiento fundamental en los últimos 20 años. De ellos, solo su , mount y umount son setuid y llaman a otros programas, y todos ellos lo hacen a través de exec*() . su pasó y aún pasa el entorno si se invoca sin - , pero no es un vector de ataque fácil de usar: necesita que su objetivo lo ejecute con un entorno bajo su control, y lo invoque como su - (que limpia el entorno) es una segunda naturaleza para muchos administradores de sistemas.

El gran comodín es otro de los sistemas similares a * nix. El territorio de usuario de GNU fue un reemplazo popular para los programas de proveedores de baja calidad, y algunos de los sistemas operativos similares a * nix soportaron scripts de setuid.

    
respondido por el Mark 30.09.2014 - 13:58
fuente

Lea otras preguntas en las etiquetas