El demonio FTP vsftpd (o Very Secure FTP Daemon) está diseñado desde la base para ser rápido, estable y lo más importante, seguro. Su habilidad para manejar grandes números de conexiones de forma eficiente y segura es lo que hace que vsftpd sea el único FTP independiente distribuido. El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales:
Procesos separados manejan tareas diferentes y cada uno de estos procesos se ejecuta con los privilegios mínimos requeridos para la tarea.
Las tareas que requieren altos privilegios son manejadas por procesos con los mínimos privilegios necesarios Influenciando las compatibilidades encontradas en la biblioteca libcap, las tareas que usualmente requieren privilegios de superusuario se pueden ejecutar de forma más segura desde un proceso menos privilegiado.
La mayoría de los procesos se ejecutan enjaulados en un ambiente chroot Siempre que sea posible, se cambia la raíz de los procesos al directorio compartido; este directorio se considera luego como la jaula chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio compartido principal, vsftpd reasigna /var/ftp/ al nuevo directorio raíz, conocido como /. Esto previene actividades maliciosas de cualquier hacker potencial en algún directorio que no están por debajo del nuevo directorio root. El uso de estas prácticas de seguridad tiene el efecto siguiente en como vsftpd trata con las peticiones:
El proceso padre se ejecuta con el mínimo de privilegios requerido
El proceso padre calcula dinámicamente el nivel de privilegios requerido para minimizar el nivel de riesgos.
Los procesos hijo manejan la interacción directa con los clientes FTP y se ejecutan casi sin ningún privilegio.
Todas las operaciones que requieren altos privilegios son manejadas por un pequeño proceso padre Similar a Servidor Apache HTTP, vsftpd lanza procesos hijos sin privilegios para manejar las conexiones entrantes. Esto permite al proceso padre privilegiado, ser tan pequeño como sea posible y manejar relativamente pocas tareas. El proceso padre no confía en ninguna de las peticiones desde procesos hijos sin privilegios.
Las comunicaciones con procesos hijos se reciben sobre un socket y la validez de cualquier información desde un proceso hijo es verificada antes de proceder. La mayor parte de la interacción con clientes FTP la manejan procesos hijo sin privilegios en una jaula chroot. Debido a que estos procesos hijo no tienen privilegios y solamente tienen acceso al directorio que está siendo compartido, cualquier proceso fallido solamente permitir al atacante acceder a los archivos compartidos.
No hay comentarios:
Publicar un comentario