Todas las lecciones Read in English

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

Archivos, cargas y límites de rutas

Sigue el contenido desde su nombre hasta almacenamiento, procesamiento y descarga autorizada.

9 minlista

Para prepararteHTTP y proxies

Después de esta lección puedes

  • distinguir riesgos de traversal, inclusión y carga
  • explicar por qué un prefijo textual no confina rutas
  • diseñar controles separados de almacenamiento, procesamiento y entrega

Un archivo es más que su nombre. La aplicación puede guardarlo, extraerlo, analizarlo, generar una vista previa y entregarlo a otra persona. Cada operación introduce una decisión de seguridad distinta.

Sigue el ciclo del archivoRecibir: Identidad, tipo, tamaño y finalidad. Guardar y procesar: Confinamiento, aislamiento y límites. Entregar: Permiso sobre el objeto y presentaciónSigue el ciclo del archivo1RecibirIdentidad, tipo, tamaño y finalidad2Guardar y procesarConfinamiento, aislamiento y límites3EntregarPermiso sobre el objeto ypresentación
La seguridad de una carga incluye recepción, procesamiento y entrega autorizada.

Distingue los problemas

Traversal cruza una frontera de rutas prevista. La inclusión carga un archivo mediante un mecanismo que puede interpretar código. Una descarga normal lee datos; no es automáticamente inclusión de código. Las cargas pueden causar divulgación indebida, sobrescritura, procesamiento dañino o agotamiento de recursos aunque nada se ejecute.

Usar un nombre aportado por el usuario no es automáticamente vulnerable. Importa si se conserva como metadato visual o si permite elegir un objeto sensible del sistema de archivos.

Las rutas tienen estructura

Comparar un prefijo textual no demuestra que la ruta resuelta quede dentro del directorio permitido. Dos nombres pueden compartir prefijo sin pertenecer al mismo directorio. Los enlaces simbólicos y cambios concurrentes también pueden invalidar una comprobación anterior.

Prefiere identificadores controlados por la aplicación y asociados a objetos permitidos. Cuando hagan falta rutas, utiliza comprobaciones por componentes adecuadas a la plataforma y API que mantengan el confinamiento durante la operación real. Entradas de archivos comprimidos, destinos de enlaces y tamaños de extracción requieren controles equivalentes. La documentación de openat2 ilustra esta relación entre resolución y operación.

Escenario: el portal de tareas

El portal genera nombres de almacenamiento, guarda documentos fuera del contenido web ejecutable y conserva el nombre original solo como metadato. Un proceso de vista previa recibe acceso limitado y límites de recursos. Las descargas comprueban el permiso sobre cada objeto.

El nombre aleatorio reduce colisiones y descubrimiento accidental, pero no autoriza acceso. Un compañero que lo conozca debe seguir sin poder descargar. Quitar bits de ejecución tampoco impide que un intérprete lea un archivo como código: importa la configuración.

Valida contenido y consumidores

Extensiones, MIME declarado y firmas de archivo son señales útiles, no pruebas completas de seguridad. Aplica tipos permitidos adecuados a la función, analizadores mantenidos, límites y aislamiento. El análisis antimalware reduce riesgos sin garantizar que todo archivo aceptado sea inocuo.

Entrega contenido no confiable con tipos y disposición intencionales. Considera un origen separado que no reciba credenciales de la aplicación. Mantén autorización para descargas sensibles, sea cual sea el almacenamiento.

Evidencia para una revisión útil

Documenta tipos aceptados, asociación de almacenamiento, sobrescritura, permisos de procesamiento, extracción, origen de entrega y público autorizado. Revisa el conjunto: guardar bien no compensa una descarga abierta, y un nombre seguro no corrige un analizador vulnerable.

Sigue un documento durante su ciclo de vida

El portal ficticio de tareas define tres estados: en cuarentena, aprobado y eliminado. Los estudiantes solo pueden descargar documentos propios aprobados; el profesor puede leer documentos aprobados de su clase actual. La vista previa es un objeto derivado separado que hereda la audiencia del documento.

El propietario aporta estos registros: F1 es una versión aprobada del documento de Jo. F2 es su vista previa, con identificador aleatorio. F3 es una versión de reemplazo pendiente de revisión. El portal comprueba aprobación y audiencia permitida en las descargas originales, pero la ruta de vista previa solo comprueba que exista el identificador.

Predice¿La comprobación de la descarga original establece que F2 está bien protegido?

F2 tiene otra ruta de entrega. Su identificador aleatorio selecciona un objeto sin probar la relación del solicitante. La vista previa debe aplicar la audiencia aprobada, incluida la pertenencia actual a la clase cuando corresponda.

La aprobación también pertenece a contenido concreto. El análisis de F1 no aprueba los bytes diferentes de F3. Mantén una relación inequívoca entre versión, resultados de procesamiento, estado de publicación y vistas previas. De otro modo, podría usarse un resultado antiguo para liberar contenido nuevo.

Separar carga, procesamiento y entrega facilita el razonamiento. La aceptación puede comprobar tipos y tamaño; el procesamiento puede limitar autoridad y recursos; la entrega puede aplicar la audiencia vigente. Un archivo analizado correctamente puede seguir siendo confidencial, y una descarga autorizada puede contener material que aún no debía publicarse.

Para eliminar, define qué ocurre con originales, vistas previas, temporales y copias retenidas. Quitar una fila de base de datos no demuestra que desaparecieran todas las copias. La verificación debe seguir la política de retención e identificar cualquier eliminación diferida, sin recopilar archivos reales del estudiante.

Términos que viste

traversal de rutasinclusión de archivoscarga de archivosenlace simbólicoconfinamiento de rutas

Compruébate

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

  1. La ruta de F2 solo comprueba que exista su identificador aleatorio. ¿Qué falta según la política?

    Ver la respuesta

    Respuesta correcta: Comprobar la audiencia del documento y el lector actual para la vista previa. Es contenido derivado con su propia entrega y debe conservar la audiencia aprobada.

  2. F1 pasó revisión; F3 es un reemplazo pendiente. ¿Qué decisión corresponde?

    Ver la respuesta

    Respuesta correcta: Mantener F3 sin publicar hasta que los resultados requeridos correspondan a esa versión. Vincula la aprobación al contenido realmente procesado y entregado, incluidas las vistas previas.

  3. Extensión, tipo declarado y firma del archivo coinciden. ¿Qué establece?

    Ver la respuesta

    Respuesta correcta: Evidencia útil de tipo; quedan por revisar el analizador, la política y los recursos. Esas señales ayudan a aceptar, pero no establecen que todos los consumidores manejen el contenido de forma segura.

  4. La descarga original aplica correctamente la propiedad. ¿Qué implica para la vista previa?

    Ver la respuesta

    Respuesta correcta: Su ruta debe aplicar la audiencia requerida o usar de forma fiable el mismo control que decide. Verifica la entrega real en vez de inferir permisos desde la ruta del original.

  5. Eliminar quitó la fila del documento en la base de datos. ¿Qué evidencia respaldaría el cumplimiento de retención?

    Ver la respuesta

    Respuesta correcta: Registros de originales, derivados, temporales y cualquier eliminación diferida documentada. El cierre sigue el alcance de la política, incluidas las copias que permanecen y su motivo.

Pruébalo

  • EscribeEscribe la regla de permiso para F2 y la de publicación para F3. Dibuja original, vista previa y reemplazo como objetos distintos relacionados por versión. Propón una política de retención con plazo de eliminación y excepciones explícitas, marcándolos como tus supuestos. Indica la evidencia para verificar lectores permitidos y rechazados y la eliminación según esa política propuesta.
Referencias