¿Es una vulnerabilidad el seguimiento de la pila de una aplicación del servidor?

15

En relación con mi pregunta en programmers.stackexchange.com .

¿Es un riesgo para la seguridad que su aplicación muestre un seguimiento completo de la pila al usuario cuando las cosas se caen? Algunas auditorías de seguridad por las que pasó nuestra aplicación dicen que sí. Estoy en desacuerdo. No veo cómo eso podría ayudar a un atacante de ninguna manera.

Por supuesto, existe el principio de "decir lo menos posible", pero eso también debe equilibrarse con el sentido común, y creo que hay mayor beneficio de tener esa información fácilmente disponible que el riesgo de que se abuse de ella. .

¿Ha habido algún estudio sobre esto? ¿Alguna evidencia en absoluto que sugiera que esto es un riesgo de seguridad? ¿O es esta una aplicación overzealos del principio anterior?

    
pregunta Vilx- 23.08.2012 - 16:29
fuente

3 respuestas

15

Un seguimiento de pila es una fuga de información, que revela información sobre su implementación. Si bien no es una vulnerabilidad grave, le permite a un atacante obtener cierta información sobre su sistema. También puede permitirles usar un enfoque basado en la depuración para explotar fallas en su sitio.

Uno podría argumentar que el seguimiento de la pila en sí mismo es una vulnerabilidad, ya que nadie debería poder bloquear su sitio de esa manera.

Ignorando las implicaciones de seguridad, no es exactamente una confianza para que sus clientes vean un seguimiento de pila. Asumirán que el sitio está roto (lo que realmente es) y se preocuparán de si su transacción funcionará, o tal vez incluso piensen que el sitio ha sido pirateado.

Más información: ¿Es una vulnerabilidad mostrar los mensajes de excepción en una página de error?

    
respondido por el Polynomial 23.08.2012 - 16:40
fuente
6

Una traza de pila generalmente no es una vulnerabilidad en sí misma. Sin embargo, puede filtrar cierta información sobre el diseño del software, lo que puede ser útil para el atacante (por ejemplo, revelar versiones de bases de datos, nombres de tablas, nombres de archivo de código, etc.). Por lo tanto, generalmente no es una buena idea revelar el seguimiento de la pila.

La forma estándar de lidiar con esto es: desactivar los rastros de pila en los servidores de producción. Puedes activar los seguimientos de pila en las construcciones de depuración que no están expuestas al mundo exterior, para ayudarte a depurar fallos, pero cuando lo muevas a producción, desactiva los rastreos de pila.

El web2py web framework tiene un forma aún más elegante de tratar este problema . web2py nunca revela rastros de pila a los visitantes. En cambio, si se produce una excepción no detectada, web2py construye un nuevo "ticket", revela un número de ticket al visitante y guarda los detalles del error (por ejemplo, el seguimiento de la pila, etc.) asociado con ese ticket en una base de datos interna. Los visitantes normales no pueden ver los detalles del ticket, pero un administrador sí puede. Un administrador puede ver la lista de todas las entradas. Además, dado un número de ticket, el administrador puede buscar los detalles de ese ticket y ver, por ejemplo, el seguimiento de la pila. Desde una perspectiva de seguridad, este es un gran enfoque.

(Por cierto, web2py es un marco elegante que ha pensado mucho en hacer que la seguridad sea por defecto y fácil para los desarrolladores. web2py intenta eliminar las trampas de seguridad y hacer que su servicio sea seguro por defecto, en la medida de lo posible. Si está creando un servicio web que necesita ser seguro, eche un vistazo a web2py!)

    
respondido por el D.W. 24.08.2012 - 05:57
fuente
2

Sí, lo es.

La mejor fue una que encontré que reveló TODAS las credenciales de la base de datos en un servidor web. Sí, puede acceder de forma remota a la base de datos y ejecutar consultas en él. Lo que probablemente significa que alguien podría hacer algo desagradable como DROP "databasename" o, mejor dicho, desviar todos los datos de la base de datos.

Otra de las que notifiqué al propietario fue una sesión registrada en la que el seguimiento de la pila mostraba el nombre de inicio de sesión de la administración y la contraseña sin cifrar.

La mayoría de los rastros de pila son simplemente filtraciones de información que ayudarán a alguien en sus actividades nefastas, no tan flagrantes como los dos primeros ejemplos dados.

    
respondido por el Fiasco Labs 24.08.2012 - 04:23
fuente

Lea otras preguntas en las etiquetas