Datos de error de registro en una aplicación cliente (de escritorio)

4

Tengo un debate sobre cómo registrar correctamente los errores para la parte del cliente (Java Swing) de una aplicación cliente-servidor desde un punto de vista de seguridad.

Creo que es de sentido común que exponer los detalles del error como excepciones y stacktraces a usuarios 'no confiables' es una mala práctica y al menos puede debilitar la seguridad de la aplicación mediante la divulgación de información (estructura interna, dependencias, etc.).

La solución en el lado del servidor puede resolverse asegurándose de no exponer ningún detalle de error a sus usuarios y almacenando los detalles de forma segura en el servidor. De esta manera los detalles del error se pueden consultar más adelante. por personas dedicadas durante una investigación cuando sea necesario.

Pero, ¿cómo puede lograr almacenar los detalles del error en el cliente sin exponerlo al usuario?

Algunas cosas me vinieron a la mente, pero cada una tiene fallas en ciertos puntos.

  1. Enviar detalles de error a un servidor dedicado donde se almacenan para una búsqueda posterior.
    • ¿Cómo enviar detalles de error para problemas en la capa de comunicación (no es posible ninguna comunicación externa)?
    • No se puede acceder a su servidor de registro desde la red del cliente (reglas de firewall, proxies, etc.).
  2. datos de error de cifrado asimétrico
    • Impacto potencial en el rendimiento durante el registro.
    • Los detalles del error se deben descifrar durante la investigación del error, lo que hace que el proceso sea más engorroso.

Por otro lado, puede argumentar que exponer los detalles de error de una aplicación cliente no es tan importante como para los detalles de error de una aplicación de servidor.

  • Los usuarios ya tienen acceso al binario del cliente que se puede usar para recopilar información interna (ingeniería inversa).
  • La mayoría de los detalles de comunicación se pueden recopilar detectando el tráfico entre el cliente y el servidor.
  • El conocimiento interno sobre una aplicación cliente no es (en la mayoría de los casos) tan valioso como sobre el servidor, porque el cliente actúa principalmente como una interfaz de usuario y la lógica empresarial esencial reside en el servidor.

¿Cuáles son las "mejores prácticas" o los mejores compromisos para almacenar los detalles de error en el cliente desde un punto de vista de seguridad? O para decirlo de otra manera, ¿vale la pena ocultar los detalles del error (excepciones, stacktraces, etc.) para una aplicación cliente?

    
pregunta lgraf 18.08.2016 - 10:40
fuente

0 respuestas

Lea otras preguntas en las etiquetas