Marcio Cunha

Cómo auditar permisos peligrosos en Linux con el comando find

Aprende a rastrear brechas de seguridad en Linux usando el comando find. Descubre cómo localizar archivos SUID, SGID y directorios con escritura mundial.

Marcio Cunha•5 min
También disponible en:PortuguêsEnglish
Resumen
  • Permisos incorrectos en Linux crean brechas graves que facilitan intrusiones y escalada de privilegios.
  • El comando find permite escanear el sistema de archivos utilizando filtros avanzados de bits de permisos.
  • Identificar archivos SUID y SGID es crucial para evitar que usuarios comunes ejecuten tareas de superusuario.
  • Los directorios con permisos de escritura mundial exponen datos a cualquier usuario local malintencionado.
  • Las auditorías periódicas automatizadas evitan que cambios silenciosos comprometan la seguridad de la infraestructura.

Por qué los permisos mal configurados ponen tu Linux en riesgo

Administrar un servidor Linux exige atención constante a los detalles de seguridad. En la práctica, esto significa que un solo archivo con el permiso incorrecto puede servir como puerta de entrada para que intrusos tomen el control total de tu máquina. Al crear o mover archivos, no siempre notamos quién tiene derecho a leer, alterar o ejecutar cada elemento. Las herramientas automatizadas y los administradores descuidados a menudo dejan brechas que facilitan la vida a los usuarios malintencionados, permitiendo que los procesos obtengan superpoderes indebidos. Si administras servidores en producción, auditar estos accesos regularmente no es un lujo, sino una necesidad básica para mantener la integridad de los datos y evitar accesos no autorizados. Antes de profundizar en las herramientas, recuerda que, al igual que analizar cuellos de botella de disco en Linux ayuda a mantener el rendimiento, escanear permisos mantiene intacto tu blindaje operativo.

Comprendiendo los peligros de los permisos SUID y SGID

Para entender la magnitud del problema, debemos observar dos conceptos especiales de permisos: SUID (Set User ID) y SGID (Set Group ID). En la práctica, el bit SUID hace que un archivo se ejecute con los privilegios del propietario de ese archivo en lugar del usuario que lo llamó. Un ejemplo clásico y legítimo es el comando passwd, que necesita alterar el archivo de contraseñas del sistema y, por lo tanto, se ejecuta temporalmente como administrador. Sin embargo, si un binario vulnerable tiene SUID habilitado, un atacante común puede explotarlo para ejecutar comandos arbitrarios como root, el usuario supremo del sistema. SGID funciona de manera similar, pero aplicando permisos de grupo. Dejar archivos ejecutables desconocidos con estos bits habilitados es como dejar la llave de la puerta principal debajo del felpudo, esperando que alguien no deseado la encuentre.

Cómo rastrear archivos con SUID y SGID usando find

El comando find es la navaja suiza del administrador de Linux para ubicar archivos según criterios complejos, incluidos permisos exactos. Para cazar todos los archivos del sistema que tienen habilitado el permiso SUID, podemos construir una búsqueda dirigida. En la práctica, instruimos a la utilidad para buscar archivos cuyo modo de permiso contenga el bit especial correspondiente, ignorando errores de directorios inaccesibles para mantener el foco en lo importante. A continuación se muestra la estructura fundamental para realizar este análisis inicial en busca de posibles vectores de escalada de privilegios.

find / -type f -perm -4000 -ls 2>/dev/null

En esta sintaxis, la barra indica que la búsqueda comienza en la raíz del sistema, el parámetro menos cuatro mil filtra específicamente los archivos que contienen el bit SUID activo, y la redirección final oculta mensajes de error molestos de carpetas protegidas. El mismo razonamiento se aplica a SGID, simplemente cambiando el modificador numérico correspondiente para mapear binarios que heredan el grupo de ejecución del propietario original. Ejecutar esta rutina periódicamente ayuda a mapear cualquier modificación sospechosa en los paquetes del sistema operativo, funcionando junto con la práctica de auditar vulnerabilidades en imágenes Docker con Trivy en entornos contenerizados.

Buscando directorios con permisos de escritura mundial

Otro error común y peligroso en entornos Linux es la presencia de directorios con escritura mundial, conocidos en la jerga técnica como carpetas 777 o aquellas con el bit otm configurado. En la práctica, esto significa que cualquier usuario registrado en el servidor, incluso con el menor privilegio posible, puede crear, modificar o borrar archivos dentro de ese directorio. Si una carpeta compartida o un directorio crítico del sistema se configura de esta manera por error, un usuario malintencionado puede reemplazar archivos legítimos con versiones modificadas, creando trampas para otros usuarios o administradores. Para rastrear estas fallas estructurales, usamos find combinando filtros de tipo de directorio y permisos de escritura para todos.

find / -type d -perm -0002 -ls 2>/dev/null

El número dos al final de la máscara de permisos representa el permiso de escritura otorgado al grupo 'otros', es decir, cualquier persona con una cuenta en el sistema. Al escanear discos duros grandes, esta búsqueda puede tomar unos minutos, pero el resultado ofrece una valiosa radiografía de los puntos vulnerables donde falló la barrera de aislamiento entre usuarios. Si encuentras directorios del sistema con este permiso abierto indebidamente, el ajuste inmediato utilizando el comando chmod es obligatorio para detener el riesgo de manipulación de archivos.

Combinando filtros avanzados para una auditoría quirúrgica

En entornos de producción complejos, el comando find brilla cuando combinamos múltiples criterios para refinar la búsqueda y evitar falsos positivos. Por ejemplo, podemos buscar archivos que hayan sido modificados recientemente y también posean permisos peligrosos, o restringir la búsqueda a particiones específicas para acelerar el proceso. En la práctica, esto permite al administrador crear scripts de monitoreo automatizados que se ejecutan mediante cronjob todas las noches. Si surge alguna anomalía, se puede enviar una alerta al equipo de ingeniería antes de que un atacante descubra la brecha. La flexibilidad de find elimina la necesidad de instalar software pesado de terceros solo para verificar la integridad básica de los atributos de los archivos.

find /var/www -type f -mmin -60 -perm /6000 2>/dev/null

En el ejemplo anterior, limitamos la búsqueda al directorio de la aplicación web, buscamos archivos modificados en la última hora y verificamos cualquier combinación de SUID o SGID activo. Esta precisión quirúrgica es esencial para servidores que alojan múltiples aplicaciones y requieren un monitoreo constante contra cambios maliciosos en scripts o binarios compilados. Combinar estas mejores prácticas de endurecimiento con herramientas de diagnóstico de red, como inspeccionar rutas de red con el comando mtr, garantiza una postura de seguridad mucho más robusta en toda la infraestructura.

Consideraciones finales sobre seguridad y rutinas de auditoría

Auditar permisos de archivos en Linux utilizando find es una habilidad fundamental que todo administrador de sistemas debe dominar. Comprender la lógica detrás de los bits SUID, SGID y los permisos de escritura mundial permite anticiparse a las intrusiones y mantener el entorno corporativo protegido contra descuidos operativos. Automatizar estos escaneos garantiza que se mitigue el factor humano, alertando al equipo sobre cualquier desviación de los estándares de seguridad del sistema operativo. Implementa estas rutinas hoy mismo en tus servidores y convierte la inspección de archivos en un hábito continuo de blindaje tecnológico.