Todas las lecciones Read in English

Seguridad a fondo · Unidad 20 · Lección 8 de 27

Fronteras de confianza del servidor

Comprende descargas de URL, plantillas, XML y deserialización como decisiones distintas.

9 minlista

Para prepararteHTTP y proxies

Después de esta lección puedes

  • separar alcance de red y credenciales de aplicación
  • explicar fronteras de descargadores y motores de plantillas
  • elegir controles sin asumir que una opción protege todos los motores

Una función útil puede cruzar fronteras por el usuario: descargar imágenes, generar documentos o reconstruir objetos. La ubicación y permisos del servidor pueden ser distintos. Un diseño seguro delimita el trabajo permitido, sin entregar toda esa autoridad a cualquier petición.

Limita el trabajo delegadoTrabajo solicitado: Descargar, presentar o analizar. Frontera explícita: Destino, plantilla o política de datos. Ejecución limitada: Credenciales y recursos restringidosLimita el trabajo delegado1Trabajo solicitadoDescargar, presentar o analizar2Frontera explícitaDestino, plantilla o política de datos3Ejecución limitadaCredenciales y recursos restringidos
Cada operación necesita su propia política y un componente limitado.

Alcance de red no equivale a identidad

SSRF trata de solicitudes de servidor no previstas, no de toda función que acepta una URL. Una descarga puede salir de una red privilegiada sin llevar credenciales de aplicación. Otros servicios añaden credenciales, usan un proxy o asumen una identidad de carga de trabajo. Origen de red e identidad autenticada son hechos separados.

Permite solo esquemas y destinos necesarios. Considera resolución DNS, rangos de direcciones, redirecciones y diferencias entre validación y conexión real. Desactiva redirecciones innecesarias o aplica la misma política a cada destino. Limita además red y credenciales del componente. La guía SSRF de OWASP explica por qué comprobar únicamente la URL puede ser insuficiente.

Un servicio de metadatos que exige un token adicional puede bloquear ciertas solicitudes. Recibir un error no demuestra exposición de credenciales ni confirma que toda la función sea segura.

Escenario: la vista previa del boletín

El boletín descarga imágenes mediante un proceso restringido y genera contenido usando una plantilla fija con datos suministrados. Una descarga falla. El equipo registra qué componente la rechazó y por qué; no deduce acceso interno o robo de credenciales solo del estado.

En plantillas, importa separar datos e instrucciones. El escape automático ayuda con el HTML generado, pero no evita evaluar código de plantilla no confiable. Capacidades e impacto dependen del motor y su configuración.

Inclusiones y XML necesitan controles propios

SSI se interpreta en un servidor de origen configurado; ESI puede procesarse en un proxy, caché u otro componente. Su presencia no demuestra automáticamente descarga arbitraria ni ejecución.

XXE se relaciona con entidades externas XML. XSLT transforma XML y puede tener funciones separadas de acceso a recursos o extensiones. Desactivar DTD no desactiva necesariamente importaciones de hojas de estilo ni toda descarga externa. Revisa opciones concretas de analizador y transformador, límites y versiones compatibles.

Deserialización: la autenticidad es una parte

Al reconstruir objetos, algunos deserializadores invocan comportamiento de la aplicación. Prefiere formatos de datos simples y esquemas explícitos a aceptar grafos arbitrarios de objetos. Una firma bien verificada protege integridad, pero no vuelve seguro un deserializador peligroso para cualquier productor confiable o valor permitido.

Revisa productor, integridad, tipos permitidos, acciones resultantes y autoridad por separado. Una conclusión sólida nombra frontera y conducta observada, sin asumir que cualquier problema de análisis produce ejecución de código.

Lee los registros de límites de una vista previa

El boletín ficticio solo permite obtener imágenes de su catálogo de medios aprobado. El propietario aporta tres registros: S1 valida el destino inicial; S2 sigue redirecciones sin volver a aplicar esa política; S3 muestra que el trabajador no lleva cookies de sesión de clientes. Una plantilla fija recibe el texto del boletín como datos.

S1 establece una comprobación inicial. S2 deja los destinos posteriores fuera de ella. S3 limita una forma de exposición de credenciales, pero no restringe dónde puede conectarse el trabajador. Son controles distintos: selección de destino, alcance de red, identidad adjunta e interpretación.

PrediceEl trabajador no envía cookies de clientes. ¿Puede el revisor aprobar por ello su restricción de destinos?

La ausencia de cookies no establece la aplicación de destinos. La función debe evitar redirecciones innecesarias o aplicar la política en cada paso seguido, con acceso de red del trabajador limitado de forma correspondiente.

El propietario aporta después una validación nueva: el trabajador rechaza una redirección fuera del catálogo antes de conectarse a su destino y registra el motivo de política. Esto sustenta la aplicación para ese caso y configuración. No demuestra todos los casos de resolución, todas las redirecciones ni la ausencia histórica de peticiones no previstas. Declara el alcance de aceptación.

Aplica el mismo razonamiento a una conversión XML separada. Un registro que desactiva la carga de DTD externos responde una pregunta del analizador. No establece la política de importación de un procesador de hojas de estilo, sus extensiones ni su presupuesto de recursos. Revisa los componentes reales y el trabajo de cada uno.

Para plantillas, elige instrucciones fijas y pasa contenido del usuario como datos. Para reconstruir objetos, prefiere esquemas limitados y operaciones explícitas. Una firma válida puede establecer integridad bajo una clave confiable; no decide si cada productor permitido, tipo de objeto y operación resultante son apropiados.

El entregable es una tabla de límites: operación, recursos permitidos, identidad efectiva, intérprete y evidencia. Una afirmación genérica de seguridad ocultaría las partes pendientes.

Términos que viste

SSRFintermediario confundidoSSTIXXEdeserialización

Compruébate

Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.

  1. S1 comprueba el destino inicial, S2 sigue redirecciones sin comprobar y S3 no envía cookies de clientes. ¿Qué brecha está sustentada?

    Ver la respuesta

    Respuesta correcta: La política de destino no se aplica a todas las redirecciones seguidas. S2 deja un destino posterior fuera de la comprobación inicial, independientemente de la identidad adjunta.

  2. Después de corregir, el propietario registra una redirección rechazada fuera del catálogo. ¿Qué afirmación corresponde?

    Ver la respuesta

    Respuesta correcta: La política revisada rechazó ese caso aportado; queda por establecer la cobertura restante. Declara la aplicación observada y sus límites para completar la aceptación con los casos requeridos.

  3. ¿Qué acción de revisión corresponde a un procesador separado de hojas de estilo?

    Ver la respuesta

    Respuesta correcta: Examinar sus importaciones, extensiones, acceso a recursos externos y límites. El transformador puede tener capacidades y ajustes independientes de la política DTD del analizador XML.

  4. El texto del boletín recibe escape automático HTML. ¿Qué sigue siendo importante para las instrucciones de plantilla?

    Ver la respuesta

    Respuesta correcta: Mantener controladas las instrucciones y pasar el texto como datos a la plantilla prevista. Seleccionar instrucciones y tratar la salida renderizada son límites distintos.

  5. ¿Qué enfoque de aceptación corresponde a la garantía limitada de una firma válida?

    Ver la respuesta

    Respuesta correcta: Comprobar productor, esquema, tipos y operaciones resultantes contra la política del servicio. Un mensaje auténtico aún debe corresponder al trabajo y autoridad permitidos del receptor.

Pruébalo

  • EscribeConvierte S1, S2 y S3 en una tabla de límites. Indica qué requisito sustenta cada uno o deja pendiente. Añade criterios para redirecciones y para la conversión XML separada, y declara los límites del único rechazo aportado.
Referencias