¿Que es un ataque de tipo “Parameter Tampering” y como puede evitarse?

Tampering significa en idioma inglés, manipulación, manoseo, intromisión. Los ataques parameter tampering en aplicaciones web consisten en  la modificación de los parámetros que se envían al servidor web como puntos de entrada de la aplicación, ya sea los que viajan en los formularios o en la propia URL.

parameter-tampering-hacker

Figura 1. Ataque Parameter Tampering mediante campos de formularios ocultos. Tomado de www.cloudbric.com

Sin lugar a dudas, estamos en presencia de un meta-ataque pues la manipulación de los parámetros  es esencial para que los ciberdelincuentes puedan lograr sus objetivos.

El ataque consta de tres fases:

  1. El atacante captura una transacción HTTP normal de la aplicación web. Esta captura puede ser tan sencilla como disponer de un acceso como usuario de la aplicación web objetivo o un poco más elaborada como la realización de un ataque MitM.
  2. El ciberatacante modifica los parámetros de su interés en la aplicación web, ya sea en la URL, campos ocultos en formularios que son enviados como partes de peticiones POST, etc.
  3. Por último, realiza el envío de la petición modificada al servidor web, esperando lograr sus objetivos.

Algunos ejemplos

El parámetro [‘id’] que se envía a través del método GET es proporcionado por el usuario y no se realizan los controles necesarios para validarlos. El atacante simplemente solo tendría que modificar el parámetro [‘id’] en su navegador para acceder a otros recursos:

¿Por qué ocurre esto? Miren este código fuente:

codigo-vulnerable

Figura 2. No existe un mecanismo para comprobar si el usuario está autorizado a acceder a este recurso.

¿Cual sería una variante adecuada para evitar un ataque de modificación de parámetros?

3

Figura 3. Código para sortear la vulnerabilidad.

Si eres programador de seguro te estas haciendo esta pregunta ¿Cómo evito que en el lado cliente hagan un parameter tampering?, por supuesto, ya sabes la respuesta: Es imposible. No hay forma de controlar las peticiones que te van a enviar a tu aplicación  web. Lo que si es posible evitar son las malas prácticas en el diseño de la aplicación web como estas:

Para evitar estas vulnerabilidades en el código fuente, puede aplicarse los 10 Principales Controles Proactivos de OWASP, sobre todo aquellos asociados a la validación de todas las entradas y a la aplicación de controles de acceso.

En el portal de OWASP hay varios ejemplos de parameter tampering, en el blog también aparecen varias demostraciones, sobre todo en el dedicado a la prueba de seguridad OTG-AUTHZ-004

OWASP tiene un interesante artículo que puedes consultar aquí. Puedes ver otro didáctico ejemplo en el siguiente enlace.

Espero que te haya resultado provechosa esta entrada y te ayude a mantener o mejorar la seguridad de tus aplicaciones web.

S4lud0s y h4st4 el próx1m0 p0st!!!

Anuncios

Un comentario en “¿Que es un ataque de tipo “Parameter Tampering” y como puede evitarse?

  1. Pingback: Configurando Burp Suite en modo proxy man-in-the-middle con Firefox, Foxy Proxy y Kali Linux | Behique Digital

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s