Mitigar los riesgos asociados con la deserialización insegura es fundamental para asegurar la seguridad de una aplicación web. Implementando medidas de defensa efectivas, las organizaciones pueden reducir significativamente la probabilidad de explotación


Perspectiva de Red Teamer / Pentester

  • Análisis de Código Base: Realiza una revisión de los mecanismos de serialización de la app. Identifica puntos potenciales de deserialización y serialización.
  • Identificación de Vulnerabilidades: Usa herramientas de anális estático para detectar vulnerabilidades de deserialización insegura.
  • Fuzzeo y Análisis Dinámico: Emplea técnicas de fuzzeo para generar información de input errónea o no esperada. Usa herramientas de análisis dinámico para monitorizar el comportamiento de la aplicación en su periodo de ejecución.
  • Evaluación de Manejo de Errores: Evalúa cómo la aplicación maneja errores durante la deserialización. Busca mensajes de errores pontenciales o trazas que revelen detalles del sistema.

Perspectiva de Programador Seguro

  • Evitar Formatos de Serialización Inseguros: Evita usar formatos inseguros de serialización como Java serialisation. Elige alternativas más seguras como JSON o XML.
  • Evitar eval y exec: Evita usar las funciones eval() y exec() ya que pueden ejecutar código arbitrario.
  • Validar el Input y Encodear el Output: Implementa validación estricta de input para asegurar que sólo la información pretendida es aceptada. Aplica técnicas de encoding de output para sanitizar la información antes de la serialización.
  • Prácticas de Programación Seguras: Sigue las prácticas seguras de programación recomendadas por los estándares de ciberseguridad. Adopta principios como least privilege, defence in depth y fail-safe defaults.
  • Adherencia a Guías: Guías de programación establecidas para frameworks específicos.