Mastodon Mastodon Mastodon Mastodon

Enlace simbólico

Actualizado: · CyberSecureFox Editorial Team

Un enlace simbólico (symlink) es un objeto del sistema de archivos que apunta a otro archivo o directorio mediante su ruta, de modo que los programas que abren el enlace son redirigidos de forma transparente al destino.

Cómo funcionan los enlaces simbólicos

Un enlace simbólico solo almacena la ruta de su destino. En Linux y macOS se crea con ln -s; Windows usa mklink y además tiene uniones NTFS (junctions) y otros puntos de reanálisis. A diferencia de un enlace duro, un symlink puede apuntar a otro sistema de archivos o a un destino que todavía no existe. Se usan para gestionar versiones de software, configuraciones compartidas y directorios.

Por qué los enlaces simbólicos importan para la seguridad

El problema surge cuando un programa privilegiado sigue un enlace del atacante, debilidad catalogada como CWE-59 (Improper Link Resolution Before File Access, «link following»). Escenarios típicos:

  • Archivos temporales: un proceso de root escribe en un archivo predecible de /tmp donde el atacante ha colocado un symlink a /etc/passwd u otro archivo sensible, que acaba sobrescrito.
  • Time-of-check to time-of-use: el archivo se sustituye por un enlace entre la comprobación de seguridad y su uso, una condición de carrera (CWE-367).
  • Abuso de servicios de Windows: las uniones y los enlaces del administrador de objetos llevan a instaladores, actualizadores e incluso antivirus a borrar o escribir archivos arbitrarios como SYSTEM, una vía habitual de escalada de privilegios local.
  • Archivos comprimidos maliciosos: los ZIP o tar que contienen symlinks pueden hacer que las herramientas de extracción escriban fuera de la carpeta de destino, de forma parecida al path traversal.

Cómo prevenir los ataques con enlaces simbólicos

  • En Linux, mantener activado el parámetro del kernel fs.protected_symlinks.
  • Crear los archivos temporales de forma segura (por ejemplo, con mkstemp) y abrir archivos con indicadores como O_NOFOLLOW.
  • Evitar que servicios privilegiados operen en directorios donde escriben los usuarios.
  • Validar los destinos de enlaces al descomprimir.
Sinónimos:
symlink, enlace blando, soft link