Un estudio de seguridad ha demostrado una vez más que la mayoría de los ataques a la seguridad de las aplicaciones web (aproximadamente el 85% según Gartner y NIST) se generan desde la capa de aplicación. Siempre ha sido un desafío para los desarrolladores validar los parámetros de la URL, el encabezado HTTP, la solicitud HTP y los campos no editables de la página. También observamos muchas irregularidades a la hora de corregir la vulnerabilidad de manipulación de parámetros, es decir, cuando un atacante accede a los datos de otros usuarios o en nombre de otros usuarios. La solución tradicional sugerida e implementada consiste en mapear el rol del usuario con alguna variable oculta y, a continuación, validarla en el servidor. Sin embargo, esta solución no funciona bien para todos.
Un marco de seguridad de aplicaciones web JAVA, es decir HDIV (HTTP Data Integrity Validator) está disponible para aplicaciones JAVA que utilizan Struts 1.x, Struts 2.x, Spring MVC y JSTL. El marco garantiza la integridad, la confidencialidad y la protección contra el ataque CSRF. El marco divide la solicitud HTTP en dos partes:
·Datos editables: incluye cuadro de texto y área de texto
·Datos no editables: incluye enlaces, campos ocultos, valores combinados, opciones de radio, botones, páginas de destino, cookies, etc.)
Trabajando
HDIV añade un parámetro de estado (_HDIV_State) con un valor de token aleatorio para cada solicitud enviada al cliente. El valor de este token se calcula en función de la estrategia de trabajo elegida, es decir, Hash/Cipher/Memory. El token valida todo el contenido de la página no editable en el servidor. Una solicitud HTTP HDIV parece
como: http://www.host.com/page.do?param1=0&_HDIV_STATE_=46bdsd687ajldfg9100
Y lo que es más importante, HDIV también puede ocultar/enmascarar el valor original del parámetro. Supongamos que tenemos una aplicación en la que un parámetro reconoce el rol de usuario administradorrole=1001;ahora, después de implementar HDIV, el valor del parámetro se verá asírol = 1(cualquier valor aleatorio). Esta técnica evita que el atacante adivine el valor original del parámetro.
HDIV también permite usar validaciones personalizadas para los campos de entrada de una página que están configurados en formato XML. Además, la instalación de HDIV no afecta a la configuración de la aplicación.
Rendimiento
El rendimiento es el criterio más importante cuando decidimos implementar algo adicional en nuestra aplicación/servidor. Como era de esperar, el HDIV también consume algunos megabytes adicionales de espacio en la memoria del servidor, pero si tiene un servidor de configuración decente, el tiempo de respuesta es imperceptible. El rendimiento del HDIV depende de la estrategia de trabajo elegida.
Espero que esto ayude a su desarrollador a solucionar muchos de los problemas de seguridad de sus aplicaciones web.
¡¡¡Feliz lectura!!!
Suscríbase a nuestro boletín hoy mismo y mejore sus conocimientos con información valiosa. ¡Es rápido, fácil y gratuito!