🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónDeserialización insegura vista en el código
5 tareas · 40 min · Principiante
Serializar es convertir una estructura en memoria en una secuencia de bytes que se puede guardar o enviar; deserializar es el camino de vuelta. Hay formatos que solo transportan datos y hay formatos que reconstruyen objetos del lenguaje, y ahí está la diferencia que decide el hallazgo. Esta sala lee el inventario de conversiones de Editorial Cachipay —qué formato usa cada punto, de dónde llega el dato y qué se comprueba antes— y aprende a valorar cada uno por su origen y su control, sin construir ni enviar nada.
Objetivo de la sala
Serializar es convertir una estructura en memoria en una secuencia de bytes que se puede guardar o enviar; deserializar es el camino de vuelta. Hay formatos que solo transportan datos y hay formatos que reconstruyen objetos del lenguaje, y ahí está la diferencia que decide el hallazgo. Esta sala lee el inventario de conversiones de Editorial Cachipay —qué formato usa cada punto, de dónde llega el dato y qué se comprueba antes— y aprende a valorar cada uno por su origen y su control, sin construir ni enviar nada.Un formato de solo datos entrega al programa una estructura simple —textos, números, listas— y el programa decide qué hacer con ella. Un formato que reconstruye objetos del lenguaje hace algo distinto: al leer, crea instancias de tipos y les devuelve su estado, y en varios lenguajes eso ejecuta código de inicialización del propio tipo. Lo hace antes de que el programa mire nada.
Esa es la causa: la decisión sobre qué se construye la toma el contenido del dato, no el programa. Por eso la debilidad de MITRE, CWE-502, no habla de un formato concreto sino de deserializar datos en los que no se confía.
Responde para continuar
¿Dónde está exactamente el riesgo al deserializar un formato que reconstruye objetos?
Ver pista de ayuda
Pregúntate quién toma la decisión y en qué momento la toma.
El inventario marca, por cada punto donde la plataforma convierte bytes en estructuras, si el formato se limita a transportar datos o si además reconstruye objetos. Empieza por ahí: los puntos de solo datos se descartan en esta sala y los otros se revisan uno por uno.
Responde para continuar
¿Cuántos puntos del inventario reconstruyen objetos del lenguaje al leer?
Ver pista de ayuda
Ejecuta `SELECT id, componente, origen_del_dato, control FROM conversiones WHERE reconstruye_objetos = 'si'` y cuenta las filas.
Reconstruir objetos no es por sí solo un hallazgo: muchas plataformas lo hacen entre sus propios servicios y está bien. Lo que convierte un punto en hallazgo es la combinación de tres cosas: el formato reconstruye objetos, el dato llega por un camino que alguien de fuera controla, y no hay nada que se compruebe antes de leerlo.
Busca el único punto del inventario donde se cumplen las tres.
Responde para continuar
Escribe el identificador del punto que reconstruye objetos con un dato del navegador y sin ninguna comprobación previa.
Ver pista de ayuda
Ejecuta `SELECT * FROM conversiones` y cruza las tres últimas columnas.
Los otros dos puntos que reconstruyen objetos no se escriben igual. Uno acepta cualquier tipo pero exige que el archivo venga firmado por operaciones, así que quien no tenga la firma no llega a la lectura. El otro acepta solo tres tipos propios declarados en su configuración, y cualquier otro se rechaza antes de construir nada.
Los dos controles son válidos y protegen por razones distintas: uno comprueba quién manda el dato, el otro limita qué se puede construir con él.
Responde para continuar
¿Cómo tratas en el informe los dos puntos que reconstruyen objetos con control?
Ver pista de ayuda
Mira qué protege cada control y qué pasaría si mañana cambiara el origen del dato.
La corrección de fondo es cambiar el formato: si lo que viaja son preferencias, un formato de solo datos con una conversión explícita a los campos que el programa espera resuelve el problema entero y no se puede volver a encender por descuido.
Cuando el formato no se puede cambiar a corto plazo, las dos medidas que valen son una lista cerrada de tipos admitidos y una firma que se comprueba antes de leer. Y una que no vale: intentar reconocer contenidos peligrosos dentro del dato antes de deserializarlo, porque para saber qué trae hay que leerlo, que es justo lo que se quería evitar.
Responde para continuar
¿Qué recomiendas para el panel de preferencias?
Ver pista de ayuda
Una de las tres exige leer el dato para decidir si se puede leer.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.