¿Se considerarían los mensajes de excepción genéricos como un riesgo de seguridad?

5

Por ejemplo, si visita una página web, obtiene la respuesta:

Error in exception handler.

Esto tiene una gran probabilidad de que el sitio web esté utilizando Laravel . ¿Esta clase sería como divulgación de información?

Supongo que no, pero pensé en preguntar. Hay opiniones conflictivas entre nuestro grupo.

    
pregunta BugHunterUK 07.04.2016 - 13:43
fuente

1 respuesta

3

¿Deben mostrarse las excepciones al usuario?

No.

Mostrar mensajes de excepción es una mala práctica. Las excepciones deben usarse para depurar el código, no deben usarse para mostrar algo al usuario.

Si utiliza el mismo mecanismo (excepciones) para ambas tareas, será muy difícil separarlas. Finalmente, mostrará un mensaje de excepción con demasiada información o registrará una excepción sin información suficiente.

Además, los mensajes de excepción generalmente no son buenos para la usabilidad. ¿Por qué le importaría a un usuario que hubiera un error en el controlador de excepciones? ¿Qué se supone que deben hacer con esta información? La mayoría de los usuarios no sabrían qué es un controlador de excepciones y se confundirían con ese mensaje.

¿Se divulga esta información?

Como notó, usted divulga información a través de este mensaje (está utilizando Laravel). Y también se puede buscar a través de Google, por lo que si, por ejemplo, se encuentra una nueva vulnerabilidad en Laravel, alguien puede buscar en Google este mensaje de error para encontrar una gran cantidad de instalaciones de Laravel para atacar. Esto significa que con este mensaje, teóricamente puedes llamar la atención y los ataques hacia ti.

Por otro lado, revelar software usado (sin la versión exacta) es a menudo bastante difícil de prevenir y, en ocasiones, ni siquiera se desea.

Es realmente una llamada de juicio si desea llamar a esta divulgación de información o no. Si, por ejemplo, toma la definición de CWE-200 :

  

Una exposición de información es la divulgación intencional o no intencional   de información a un actor que no está explícitamente autorizado para tener   Acceso a esa información.

     

La información ya sea

     
  1. se considera sensible dentro de la funcionalidad propia del producto, como un mensaje privado; o

  2.   
  3. proporciona información sobre el producto o su entorno que podría ser útil en un ataque pero que normalmente no está disponible para el   atacante, como la ruta de instalación de un producto que es remota   accesible.

  4.   

Entonces, la pregunta es si cree que un usuario no está autorizado para saber que está utilizando Laravel y si cree que esta información no está normalmente disponible.

Conclusión

Usted filtra información, algo menor, sin ninguna razón, lo que puede tener un pequeño impacto en la seguridad y la facilidad de uso.

En su lugar, debería mostrar un mensaje de error útil, si es posible, o un mensaje de error genérico, si no.

    
respondido por el tim 07.04.2016 - 14:44
fuente

Lea otras preguntas en las etiquetas