Saltar a contenido

Insecure Object Serialization

Serialización de objetos insegura

Descripción

La aplicación utiliza un esquema de deserialización inseguro a partir de datos no confiables.

La deserialización de objetos insegura puede resultar en:

  • Ejecución remota de código (RCE) arbitraria
  • Modificación de la lógica de la aplicación
  • Manipulación de datos, como la evasión del control de acceso

La explotación de vulnerabilidades de deserialización es difícil debido a la ausencia de exploits listos para usar y la necesidad de ajustarlos para el exploit objetivo.

Recomendación

Para prevenir las vulnerabilidades de serialización de objetos, la aplicación debe:

  • Aceptar objetos serializados únicamente de fuentes de confianza.
  • Utilizar únicamente tipos de datos primitivos de serialización.

Si estas medidas no son posibles, considere lo siguiente:

  • Implementar controles de integridad, como firmas digitales en cualquier objeto serializado, para evitar la creación de objetos hostiles o la manipulación de datos.
  • Hacer cumplir restricciones de tipo estrictas durante la deserialización antes de la creación del objeto, ya que el código generalmente espera un conjunto definible de clases. Sin embargo, se han demostrado evasiones a esta técnica, por lo que no es aconsejable depender únicamente de ella.
  • Aislar y ejecutar el código que deserializa en entornos de bajos privilegios cuando sea posible.
  • Registrar (log) las excepciones y fallos de deserialización, como cuando el tipo entrante no es el tipo esperado o la deserialización lanza excepciones.
  • Restringir o monitorear la conectividad de red entrante y saliente de los contenedores o servidores que deserializan.
  • Monitorear la deserialización, alertando si un usuario deserializa constantemente.

Enlaces

Estándares

  • CWE_TOP_25:
    • CWE_502
  • OWASP_ASVS_L1:
    • V5_5_1
    • V5_5_3
  • OWASP_ASVS_L2:
    • V1_5_2
    • V5_5_1
    • V5_5_3
  • OWASP_ASVS_L3:
    • V1_5_2
    • V5_5_1
    • V5_5_3
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_6_4
    • REQ_11_3
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
    • SECURITY255
    • SECURITY258
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5