viernes, 8 de diciembre de 2017

FTP ¿Cómo de seguro es?

Es muy frecuente ir a realizar una auditoria de seguridad y encontrarse con que la organización utiliza FTP para la transferencia de archivos. Esto es algo que poco a poco nos deberíamos ir acostumbrando a dejar de utilizar porque, en mi opinión, sus desventajas son mayores a sus ventajas.



¿Qué es FTP?

FTP es un protocolo de la capa de red para la transferencia de archivos entre equipos o sistemas conectados a la red TCP/IP y que está basada en la estructura cliente-servidor. Es más, si habéis utilizado FTP, conoceréis algunos servidores de FTP y sus programas clientes como puede ser el caso de Filezilla.

¿Qué ofrece?

FTP fue diseñado para ofrecer la mayor velocidad, pero no la mayor seguridad, ya que permite que cualquier posible atacante con acceso a la red, pueda capturar tráfico, conectarse y obtener acceso a los ficheros sin mayor problema.

¿Cómo funciona FTP?

Todo comienza cuando el Intérprete de Protocolo [PI en inglés] del usuario inicia la conexión de control por el puerto 21. Las órdenes estándar, son generadas por el usuario y se transmite al proceso servidor a través de la conexión de control. Estas órdenes representan por un lado los parámetros para la conexión de datos, y por otro lado la naturaleza de la operación sobre el sistema de archivos.

Las Respuestas Estándar son enviadas desde el PI servidor al PI cliente o usuario por la conexión de control como respuesta a las órdenes generadas anteriormente. Un proceso de transferencia de datos DTP u otro proceso, deberá esperar a que el servidor inicie la conexión al puerto de datos especificado y transferir datos en función de los parámetros especificados. Dichas transferencias pueden ser de subida o descarga de archivos.

Este proceso de comunicación es independiente al sistema de ficheros utilizado por cada cliente por lo cual no importa que cada equipo tenga un sistema operativo diferente.

¿Modos de acceder a un FTP?

Aquí comienzan los problemas si sois unos administradores de sistemas de moral distraída, ya que los modos de acceso son 2:

  • Anónimo: Es un modo de acceso que permite el acceso indiscriminado de usuarios sin necesidad de un user id ni de una password. Para lograr el acceso, los usuarios tendrán que escribir en el username el usuario anonymous y de contraseña la pueden dejar vacía, aunque mucha gente escribe su correo. Esta opción es verdad que te permite accede pero con menos permisos que si entras con un usuario normal, pero ojito a que muchos usuarios acceden de forma anónima para trollear o simplemente porque no se acuerdan de su contraseña; así que cuidadito con tener el FTP como un contenedor donde todo el mundo sube todo, que cualquiera podría acceder y obtener todos los datos.
  • Usuario: Esta forma de acceso, aporta más privilegios, pudiendo descargar y subir archivos. Para lograr el acceso solamente se requiere de un usuario y una contraseña que el servidor FTP almacenará para futuras conexiones.
¿Modos de conexión?

Hay mucha gente que confunde esto con los modos de acceso, pero no, no es lo mismo. Aquí teneos dos modos distintos.

  • Modo activo. El servidor creará siempre el canal de datos en el puerto 20, mientras que el cliente se asocia con un puerto aleatorio mayor de 1024, y aquí vienen los problemas de seguridad. El cliente deberá mandar al servidor un comando PORT para que el servidor establezca y pueda abrir la conexión por donde se podrán transferir datos. No obstante, es un gran problema de seguridad, ya que el cliente deberá dejar abiertos los puertos mayores de 1024 para posibles conexiones que no sabe por dónde se realizará ya que es un número aleatorio, por lo que esto lo podría aprovechar un atacante y capturar tráfico o hacerse con los datos transferidos. A mayores, muchos cortafuegos, rechazarán estas conexiones, por lo que se tuvo que diseñar el modo de conexión pasivo.
  • Modo Pasivo. El cliente enviará un comando PASV sobre el canal de control y el servidor le indicará por el canal de control el puerto al que se deberá conectar y el cliente establecerá la conexión en el puerto P+1, siendo P el número de puerto especificado anteriormente. Ese puerto será un número mayor a 1023.

Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control [PORT o PASV, según el modo], y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio [si está en modo pasivo] o por el 20 [si está en modo activo].

En futuras entradas se tratará un poco más en profundidad todo el tema de FTP, aunque ya tenéis una entrada sobre cómo comprometer un FTP.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...