Riesgo A8 en OWASP - Deserialización insegura

Author
By Darío Rivera
Posted on 2021-12-05 in OWASP

En nuestro post Qué es OWASP y por qué todo desarrollador debería conocerlo vimos una introducción a OWASP y por qué es tan importante en el desarrollo de aplicaciones web. Dentro del proyecto TOP TEN, vamos a ahondar un poco en cada una de los diez riesgos de seguridad más críticos en aplicaciones web. Hoy es el turno del Riesgo A8 - Deserialización insegura.

Definición

La serialización es el proceso de transformación de un objeto o estructura de datos a un formato en el que pueda ser guardado y transportado para su posterior reconstrucción. Este proceso puede ser engañado por un atacante de dos formas. La primera consiste en modificar la lógica de la aplicación o lograr una ejecución remota de código. La segunda consiste en manipular los datos que se transportan en la serialización.

Ejemplo

- Un sitio que guarda en una cookie un objeto serializado con el id de usuario, el rol del usuario, hash de la contraseña, entre otros datos. un atacante modifica la cookie para darse permisos así mismo como administrador y obtener el control total.

Prevención

- Se debe implementar verificaciones de integridad tales como firmas digitales en cualquier objeto serializado con el fin de detectar modificaciones no autorizadas.
- Durante la deserialización es recomendable verificar el tipo de dato ya que por lo general se espera un tipo de dato o clase concreta después de la deserialización.
- El código que realiza la deserialización se debe ejecutar en un entorno conlos mínimos privilegios posibles.
- Se debe registrar cualquier falla en la deserialización y generar alertas de seguridad que indiquen un posible ataque.
- Se debe restringir y monitorear las conexiones (I/O) de red en los servidores o contenedores que utilizan funciones de deserialización.


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.