SlideShare una empresa de Scribd logo
1 de 5
TOC TOC, TOCANDO A LA PUERTA DEL SERVIDOR




                            Port Knocking – Securización de servidores
                              By: Ronnie A. Q. (ronixp@gmail.com)
INTRODUCCIÓN

       En la actualidad podemos notar un aumento en el uso de nuevas tecnologías, cada vez
más, las empresas apuestan por el uso de computadoras para la administración de sus datos,
recursos y dispositivos, por el uso de redes cableadas o inalámbricas para interconectar los
datos y centralizando así la información en servidores de uso general y de propósito múltiple.

       En este tipo de escenarios, muy comúnmente surge la necesidad de acceder
remotamente a los servidores (no necesariamente de oficina a oficina, sino hablamos de
estaciones de trabajo distanciadas de una ciudad a otro), para realizar tareas de
administración o de mantenimiento.

        Es aquí donde el tema de seguridad en el acceso a los servidores sugiere una mayor
preocupación. Por tal motivo en el resto de este documento se hablara de una técnica no muy
conocida y que aparentemente puede resultar muy sencilla pero su eficacia esta comprobada,
la técnica de seguridad denominada PORT-KNOCKING.

CONTENIDO

        Los administradores de sistemas, se enfrentan al reto de         Cliente puede ser tanto
equilibrar la flexibilidad y la seguridad a la hora de diseñar las       una persona como una
reglas para permitir el acceso de usuarios (en adelante clientes)        máquina que requiere
autorizados que requieren conectarse al servidor remoto. La              acceder a recursos y
                                                                         servicios brindados por
seguridad del servidor debe ofrecer protección contra clientes
                                                                         otro llamado servidor.
atacantes, y al mismo tiempo dar confianza para conectarse a
los clientes legítimos.

         Actualmente para permitir la conexión de un cliente legitimo al servidor, se realiza un
filtrado mediante las direcciones IP, o mediante el puerto al que esta acogida la conexión del
cliente. Lamentablemente, este tipo de filtrados no distingue a clientes atacantes que pueden
venir de direcciones IP de confianza. La flexibilidad es limitada por el echo de que ninguna IP
de las direcciones bloqueadas pueden conectarse, independientemente de la confianza o el
estatus que esta posea. Al mismo tiempo la protección se ve debilitada por el hecho de que
cualquiera de los rangos de IP bloqueados físicamente puede viajar y conectarse desde un
cliente que posea una IP sin filtrar.

        El uso de sistemas de detección de intrusos y mantenimiento de aplicaciones que hay
hasta la fecha, pueden ir a un largo camino hacia la prestación de la protección que ofrecen,
pero lo hacen solo en contra los ataques conocidos, derivados o previstos.

        Tener los puertos abiertos sigue siendo una vulnerabilidad necesaria, para que se
realice la conexión entre el cliente y el servidor, pero también puede convertirse en abrir las
puertas para el ataque. Al final siempre que los puertos permanezcan abiertos, las
aplicaciones de red son susceptibles a tener clientes atacantes.
Aquí es donde entra el Port-Knocking

        Para eliminar el riesgo asociado de tener los puertos
                                                                   Los knocks o golpes
abiertos, la técnica del Port-Knocking trabaja a través de puertos
                                                                   son       equivalentes a
cerrados, confía en todos los clientes e interactúa con los
                                                                   intentos de conexión
Knocks (en adelante “golpes”) que estos envían antes que se
                                                                   que son enviados por
lleve a cabo la autentificación, por lo que no hay discriminación
                                                                   algún cliente.
de clientes que intentan conectarse. Una vez que la técnica del
Port-Knocking ha aprobado la secuencia de golpes de un cliente, lo dirige hacia las
aplicaciones de seguridad que se encargaran de la autentificación del cliente, esto proporciona
un equilibrio entre la protección y la flexibilidad.

       Describamos como funciona esta técnica

        Para entender el concepto del Port-Knocking, recordemos las películas en donde un
sujeto golpea con una cierta secuencia de golpecillos la puerta de una taberna, y si la
secuencia era correcta, el tabernero abría una rendija para solicitarle una clave verbal y en el
caso de que la secuencia de golpes no era correcta, el tabernero no hacia nada, por lo que el
cliente pensaba que la taberna estaba cerrada. El concepto del Port-Knocking es exactamente
análogo.

        Al igual que en ejemplo, esta técnica se basa en aparentar que todo esta cerrado. El
cliente o KnockCliente es el responsable de generar la secuencia de golpes y tabernero o el
KnockDaemon es el responsable de escuchar los puertos del servidor, tener un registro de
golpes y de manipular los acciones.

       KnockCliente
       El KnockCliente es el responsable de enviar los golpes al servidor remoto donde un
       Knockdaemon esta escuchando. Su implementación puede ser tan simple como NETCAT o un
       programa modificado de PING o tan complicada como un generador de HASH CIFRADO. El
       KnockCliente codifica la información antes de enviarla. La secuencia de golpes sin codificar
       está compuesta generalmente de octetos: los primero cuatro octetos son de propiedad
       intelectual, es decir valores basados en la IP del cliente que envía el paquete en cuestión,
       seguidamente se encuentran octetos basados en el puerto, un FLAG o bandera, el tiempo de
       comprobación, y por ultimo factores basados en HASH CIFRADO.

       KnockDaemon
       - En primer lugar, el Knockdaemon crea un archivo de registro para controlar los golpes que
       reciben los puertos del servidor remoto.
       - En segundo lugar, el Knockdaemon requiere un método para extraer las secuencias de
       golpes a los puertos, ya sea desde del archivo registro o por la captura de paquetes y traducir
       su carga útil en información utilizable.
       - En este paso el Knockdaemon debe ser capaz de:
                    detectar cuándo una secuencia de golpes comienza y termina,
                    detectar correctamente la presencia de falsos golpes que no son parte de una
                    secuencia.
                    realizar un seguimiento de múltiples secuencias que llegan al mismo tiempo desde
                    diferentes direcciones IP remotas.
       - Por ultimo, cuando un formato de secuencia correcto sea recibido, el contenido de la
       información de la secuencia debe ser vinculada a una acción. La acción por lo general puede
       ser ejecutar algún comando específico o un grupo de comandos.

       El formato de la secuencia
       El formato de la secuencia correcta puede consistir en cualquier número de TCP, UDP, o
       incluso a veces ICMP y otros paquetes de protocolo, que estén dentro del rango de numeración
       de puertos de la máquina destino. La complejidad de la secuencia de golpes puede ser
       cualquier cosa como una simple lista ordenada (por ejemplo, el puerto TCP 1000, el puerto TCP
       2000, el puerto UDP 3000).
Consideremos el siguiente ejemplo aplicando el Port-Knocking

        El servidor con IP: 192.168.1.2, tiene seguridad Port-Knocking por consiguiente los
puertos están configurados para rechazar cualquier conexión TCP, y sin enviar paquetes
ICMP de error al cliente. El comando IPTABLES (IPCHAINS en versiones inferiores a Linux
2.4) procede a cerrar los puertos 1-1024 de la siguiente forma:
       iptables –A INPUT –s 0.0.0.0/0 -p tcp –i eth1 –-dport 1:1024 -j DROP
El cliente de IP: 192.168.1.5. En el primer caso, intentara conectarse sin saber de la
existencia del Port-Knocking por lo que su intento será fallido. En el Segundo caso,
conociendo de la existencia de esta técnica, intentara conectarse al servidor con la siguiente
secuencia de puertos TCP: 100-200-300 (Paso 1 en la figura Nº 1). Desde el punto de vista
del cliente, los intentos no producen ninguna respuesta y son en silencio:
       TCP_SYN al puerto 100
       TCP_SYN al puerto 200
       TCP_SYN al puerto 300
Sin embargo, en el servidor se registran todos los intentos de conexión; los datos del cliente y
los puertos utilizados en cada intento de conexión de la siguiente forma:
       May 15 20:13:26 ... input DROP ... 192.168.1.5:10002 port:100
       May 15 20:13:27 ... input DROP ... 192.168.1.5:10003 port:200
       May 15 20:13:27 ... input DROP ... 192.168.1.5:10004 port:300
El KnockDaemon que supervisa el archivo de registro puede detectar estos intentos de
conexión a los puertos 100, 200, 300 desde la misma dirección IP: 192.168.1.5. Esta
secuencia en particular podría hacer que el KnockDaemon abriera el puerto SSH (TCP/22)
para la IP: 192.168.1.5 y ejecutaría el siguiente comando: (Paso 2 en la figura Nº 1)
       iptables -i eth1 -I INPUT -s 192.168.1.5 -p tcp --dport 22 -j ACCEPT
Una vez abierto el puerto SSH (TCP/22), el cliente puede establecer conexión con el servidor
a través de dicho puerto. (Paso 3 en la figura Nº 1). Otra secuencia se puede utilizar para
cerrar el puerto. Por ejemplo, 300, 200, 100 podría ser usado para activar la supresión de la
regla que fue creada para permitir dinámicamente a la IP: 192.168.1.5 conectarse.
Hablemos de los Beneficios del Port-Knocking

        Una de las ventajas principales de esta técnica de seguridad es que la información
fluye en forma de intentos de conexión en lugar de los típicos paquetes de datos de carga útil.
Un atacante que ignore la existencia de esta técnica nunca podrá conectarse, o causar algún
daño al servidor. Incluso si supiera de la existencia de esta técnica, requeriría de un gran
esfuerzo de fuerza bruta para descubrir la secuencia, la mas simple secuencia de tres golpes
de tipo TCP (por ejemplo los puertos 700, 800, 900) requeriría que el atacante tenga que
probar con todas las combinaciones de tres puertos en el rango de 1-65535, y además de eso
escanear en cada una de las combinaciones si uno de los puertos por el que quiere entrar se
ah abierto. El puerto no se abrirá hasta que la secuencia correcta de golpes en los puertos
correctos sea recibida en orden por el KnockDaemon. Para minimizar el riesgo de una
interceptación de las partes de una secuencia funcional que se esta enviando, el contenido de
la información que contiene la IP remota en la secuencia puede ser encriptada.

       Otra ventaja importante es que el sistema es completamente personalizable, por lo que
no se limita a la apertura de un puerto especifico, sino que una secuencia de golpes esta
vinculada con una acción particular, como por ejemplo ejecutar un script shell, por lo que
cuando una secuencia especifica de golpes es detectada por el KnockDaemon, este
ejecutara el script.

       Provee de dinamismo a las tareas de administración, un cliente autorizado situado en
cualquier parte del mundo sería capaz de abrir el puerto en el que esta interesado por un
determinado periodo de tiempo sin necesidad de ayuda del administrador del servidor.
También podrá quot;cerrarquot; el puerto una vez que hayan terminado, con otra secuencia de golpes
y nunca mas abrirla para la misma IP remota.

       Una Importante aplicación de este sistema se expone en el uso del puerto SSH, puede
impedir ataques de fuerza bruta sobre la contraseña de acceso. El demonio del SSH ni
siquiera seria despertado con cualquier intento que se haga, hasta después que se haya
detectado una secuencia correcta de golpes.

        Otro punto a favor de esta técnica, es que el software necesario, ya sea en el servidor
o cliente final, es mínimo y, de hecho, puede aplicarse como un simple Script de shell para el
servidor o un archivo por lotes y una utilidad de línea de comandos de Windows para el cliente.
En términos de uso de tráfico, CPU y el consumo de memoria, el Port-Knocking utiliza un
mínimo absoluto. La implementación de KnockDaemon también tiende a ser tan simple que
cualquier tipo de vulnerabilidad seria evidente y el código es muy fácil de controlar.

       Cuando bebe ser utilizado el Port-Knocking

      Es recomendable usarlo en servicios de red que están destinados a ser utilizados por
unos pocos usuarios autorizados. Por ejemplo; Consolas de administración, Administración
basada en interfaces Web, SSH, bases de datos, etc.

       También para proteger servicios que se sabe tienen vulnerabilidades graves, pero por
alguna razón no se pueden desactivar,

       Cualquiera que quiera añadir otra capa de seguridad a los servicios críticos como SSH.

       Esta técnica no es recomendable utilizarla para servidores que serán utilizados por el
público en general, Por ejemplo; no seria una buena idea proteger un servidor Web público
con esta técnica. Por que todos los usuarios que querrían acceder a una página web tendrían
que usar un KnockCliente para establecer la conexión con el servidor web.
DISCUSIÓN

        Aunque parezca una medida un tanto paranoica, es recomendable utilizarla debido a
que la mayoría de aplicaciones tiene vulnerabilidades, los administradores de sistemas no
pueden basarse simplemente en la seguridad proporcionada por los fabricantes, los sistemas
críticos necesitan capas adicionales de seguridad, y merece la pena, aunque sea sólo para
ahorrarte los intentos de intrusión SSH con ataques por fuerza bruta.

       En temas de seguridad, no existen técnicas que garanticen realmente en un 100% la
protección que se ofrece. Tengamos en cuenta la Tercera Ley de Newton aplicada a la
seguridad: “Por cada Sistema o Protocolo de Seguridad, existe en su contraparte un truco
contrario”. Es por ello que se debe seguir investigando y dar propuestas para mejorar las
técnicas de seguridad utilizadas. Por ejemplo para esta técnica, seria conveniente el uso
adicional de datos basura dentro del paquete TCP, o incluso variar el TTL de cada paquete
puede ser usado para transmitir algún tipo simple de combinación de números.

       Por ultimo, mencionar que esta técnica de seguridad trabaja en el nivel de la capa de
enlace, siguiendo el modelo OSI. Se recomienda investigar más acerca de técnicas de
seguridad basados en la capa de aplicación.

BIBLIOGRAFÍA

         http://www.portknocking.org/
         http://www.portknocking.org/view/resources
         http://www.portknocking.org/view/implementations
         http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki
         http://es.wikipedia.org

RECURSOS

       ¿Port-Knocking... ofuscación o capa de seguridad?
                http://www.hispasec.com/unaaldia/3382/

       Cómo instalar y configurar knockd a modo de receta
                http://crysol.inf-cr.uclm.es/es/node/618

       Iptables:
                   http://es.wikipedia.org/wiki/Iptables

       Lista de Números de Puertos
                 http://es.wikipedia.org/wiki/Lista_de_números_de_puerto

       Recomendaciones de Seguridad
              www.fi.upm.es/docs/servicios/seguridad_informatica/371_recomendaciones.pdf

Más contenido relacionado

La actualidad más candente

Ataque man in-the-middle
Ataque man in-the-middleAtaque man in-the-middle
Ataque man in-the-middleTensor
 
DHCP Spoofing STP Mangling (CORP. ARMAS)
DHCP Spoofing STP Mangling (CORP. ARMAS)DHCP Spoofing STP Mangling (CORP. ARMAS)
DHCP Spoofing STP Mangling (CORP. ARMAS)Corp. Weapon's
 
Tecnicas de escaneo de puertos
Tecnicas de escaneo de puertosTecnicas de escaneo de puertos
Tecnicas de escaneo de puertosFrancisco Vergara
 
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A Pf
C L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A PfC L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A Pf
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A PfDanica M
 
Solucion ejercicios tema 6. telnet
Solucion ejercicios tema 6.  telnetSolucion ejercicios tema 6.  telnet
Solucion ejercicios tema 6. telneteinhasad
 
servicios de red telnet y SSH
servicios de red telnet y SSHservicios de red telnet y SSH
servicios de red telnet y SSHGustavo Guerra
 
Criptografia simetrica
Criptografia simetricaCriptografia simetrica
Criptografia simetricaBaruch Ramos
 
Testing Redes Inalambricas wifiway (Definiciones))
Testing Redes Inalambricas wifiway (Definiciones))Testing Redes Inalambricas wifiway (Definiciones))
Testing Redes Inalambricas wifiway (Definiciones))begolnx
 
Manual tecnicas de_scaning
Manual tecnicas de_scaningManual tecnicas de_scaning
Manual tecnicas de_scaningmillor2005
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesESPE
 
Articulo nmap pvalera
Articulo nmap pvaleraArticulo nmap pvalera
Articulo nmap pvaleraguest30c8e1
 
Escaneo, enumeración de puertos en la red. OMHE
Escaneo, enumeración de puertos en la red. OMHEEscaneo, enumeración de puertos en la red. OMHE
Escaneo, enumeración de puertos en la red. OMHEHéctor López
 
T C P Ilegitimo
T C P  IlegitimoT C P  Ilegitimo
T C P IlegitimoDanica M
 

La actualidad más candente (20)

Ataque man in-the-middle
Ataque man in-the-middleAtaque man in-the-middle
Ataque man in-the-middle
 
Titulacion 2 1 Nmap
Titulacion 2 1   NmapTitulacion 2 1   Nmap
Titulacion 2 1 Nmap
 
DHCP Spoofing STP Mangling (CORP. ARMAS)
DHCP Spoofing STP Mangling (CORP. ARMAS)DHCP Spoofing STP Mangling (CORP. ARMAS)
DHCP Spoofing STP Mangling (CORP. ARMAS)
 
Tecnicas de escaneo de puertos
Tecnicas de escaneo de puertosTecnicas de escaneo de puertos
Tecnicas de escaneo de puertos
 
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A Pf
C L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A PfC L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A Pf
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A Pf
 
Solucion ejercicios tema 6. telnet
Solucion ejercicios tema 6.  telnetSolucion ejercicios tema 6.  telnet
Solucion ejercicios tema 6. telnet
 
Introducción a la Criptografia
Introducción a la CriptografiaIntroducción a la Criptografia
Introducción a la Criptografia
 
Ssh telnet
Ssh telnetSsh telnet
Ssh telnet
 
Crack Distribuido Atabuido
Crack Distribuido AtabuidoCrack Distribuido Atabuido
Crack Distribuido Atabuido
 
servicios de red telnet y SSH
servicios de red telnet y SSHservicios de red telnet y SSH
servicios de red telnet y SSH
 
Criptografia simetrica
Criptografia simetricaCriptografia simetrica
Criptografia simetrica
 
Testing Redes Inalambricas wifiway (Definiciones))
Testing Redes Inalambricas wifiway (Definiciones))Testing Redes Inalambricas wifiway (Definiciones))
Testing Redes Inalambricas wifiway (Definiciones))
 
Capa4cabece
Capa4cabeceCapa4cabece
Capa4cabece
 
Manual tecnicas de_scaning
Manual tecnicas de_scaningManual tecnicas de_scaning
Manual tecnicas de_scaning
 
Taller SITEC 2010
Taller SITEC 2010Taller SITEC 2010
Taller SITEC 2010
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtuales
 
Articulo nmap pvalera
Articulo nmap pvaleraArticulo nmap pvalera
Articulo nmap pvalera
 
Escaneo, enumeración de puertos en la red. OMHE
Escaneo, enumeración de puertos en la red. OMHEEscaneo, enumeración de puertos en la red. OMHE
Escaneo, enumeración de puertos en la red. OMHE
 
T C P Ilegitimo
T C P  IlegitimoT C P  Ilegitimo
T C P Ilegitimo
 
Capa4
Capa4Capa4
Capa4
 

Similar a Port Knocking Securización De Servidores

1739221 seguridad-en-redes-y-servidores
1739221 seguridad-en-redes-y-servidores1739221 seguridad-en-redes-y-servidores
1739221 seguridad-en-redes-y-servidoresMarcelo QL
 
los seguridad puertos
 los seguridad  puertos  los seguridad  puertos
los seguridad puertos jhordy2000
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Alonso Caballero
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasRafael Seg
 
IPTABLES y SQUID‏
IPTABLES y SQUID‏IPTABLES y SQUID‏
IPTABLES y SQUID‏ingpuma
 
Redes Privadas Virtuales y cómo configurar routers de Teltonika
Redes Privadas Virtuales y cómo configurar routers de TeltonikaRedes Privadas Virtuales y cómo configurar routers de Teltonika
Redes Privadas Virtuales y cómo configurar routers de TeltonikaMonolitic, S.A.
 
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libreTesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libreLeidy Reyes Rodriguez
 
Airbase y KARMetasploit
Airbase y KARMetasploitAirbase y KARMetasploit
Airbase y KARMetasploitDaniel
 
Penetration testing
Penetration testingPenetration testing
Penetration testinggh02
 
D-Link: Seguridad Wifi
D-Link: Seguridad WifiD-Link: Seguridad Wifi
D-Link: Seguridad WifiChema Alonso
 
Protocolos De Seguridad En Redes
Protocolos De Seguridad En RedesProtocolos De Seguridad En Redes
Protocolos De Seguridad En RedesSHARITO21
 
Protocolos De Seguridad En Redes
Protocolos De Seguridad En RedesProtocolos De Seguridad En Redes
Protocolos De Seguridad En RedesSHARITO21
 
Sockets en delphi
Sockets en delphiSockets en delphi
Sockets en delphijairoj2012
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Marcelo Venegas Zúñiga
 
Exploracion de puertos de redes
Exploracion de puertos de redesExploracion de puertos de redes
Exploracion de puertos de redesgiulianaCh
 

Similar a Port Knocking Securización De Servidores (20)

Ataques Informáticos
Ataques InformáticosAtaques Informáticos
Ataques Informáticos
 
1739221 seguridad-en-redes-y-servidores
1739221 seguridad-en-redes-y-servidores1739221 seguridad-en-redes-y-servidores
1739221 seguridad-en-redes-y-servidores
 
los seguridad puertos
 los seguridad  puertos  los seguridad  puertos
los seguridad puertos
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemas
 
IPTABLES y SQUID‏
IPTABLES y SQUID‏IPTABLES y SQUID‏
IPTABLES y SQUID‏
 
Redes Privadas Virtuales y cómo configurar routers de Teltonika
Redes Privadas Virtuales y cómo configurar routers de TeltonikaRedes Privadas Virtuales y cómo configurar routers de Teltonika
Redes Privadas Virtuales y cómo configurar routers de Teltonika
 
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libreTesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
 
Airbase y KARMetasploit
Airbase y KARMetasploitAirbase y KARMetasploit
Airbase y KARMetasploit
 
Penetration testing
Penetration testingPenetration testing
Penetration testing
 
D-Link: Seguridad Wifi
D-Link: Seguridad WifiD-Link: Seguridad Wifi
D-Link: Seguridad Wifi
 
Seguridad en la red
Seguridad en la redSeguridad en la red
Seguridad en la red
 
Protocolos De Seguridad En Redes
Protocolos De Seguridad En RedesProtocolos De Seguridad En Redes
Protocolos De Seguridad En Redes
 
Protocolos De Seguridad En Redes
Protocolos De Seguridad En RedesProtocolos De Seguridad En Redes
Protocolos De Seguridad En Redes
 
Hacking wireless by Alberto García
Hacking wireless by Alberto GarcíaHacking wireless by Alberto García
Hacking wireless by Alberto García
 
Sockets en delphi
Sockets en delphiSockets en delphi
Sockets en delphi
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
 
Protocolos FTP y SFTP
Protocolos FTP y SFTPProtocolos FTP y SFTP
Protocolos FTP y SFTP
 
Exploracion de puertos de redes
Exploracion de puertos de redesExploracion de puertos de redes
Exploracion de puertos de redes
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Port Knocking Securización De Servidores

  • 1. TOC TOC, TOCANDO A LA PUERTA DEL SERVIDOR Port Knocking – Securización de servidores By: Ronnie A. Q. (ronixp@gmail.com) INTRODUCCIÓN En la actualidad podemos notar un aumento en el uso de nuevas tecnologías, cada vez más, las empresas apuestan por el uso de computadoras para la administración de sus datos, recursos y dispositivos, por el uso de redes cableadas o inalámbricas para interconectar los datos y centralizando así la información en servidores de uso general y de propósito múltiple. En este tipo de escenarios, muy comúnmente surge la necesidad de acceder remotamente a los servidores (no necesariamente de oficina a oficina, sino hablamos de estaciones de trabajo distanciadas de una ciudad a otro), para realizar tareas de administración o de mantenimiento. Es aquí donde el tema de seguridad en el acceso a los servidores sugiere una mayor preocupación. Por tal motivo en el resto de este documento se hablara de una técnica no muy conocida y que aparentemente puede resultar muy sencilla pero su eficacia esta comprobada, la técnica de seguridad denominada PORT-KNOCKING. CONTENIDO Los administradores de sistemas, se enfrentan al reto de Cliente puede ser tanto equilibrar la flexibilidad y la seguridad a la hora de diseñar las una persona como una reglas para permitir el acceso de usuarios (en adelante clientes) máquina que requiere autorizados que requieren conectarse al servidor remoto. La acceder a recursos y servicios brindados por seguridad del servidor debe ofrecer protección contra clientes otro llamado servidor. atacantes, y al mismo tiempo dar confianza para conectarse a los clientes legítimos. Actualmente para permitir la conexión de un cliente legitimo al servidor, se realiza un filtrado mediante las direcciones IP, o mediante el puerto al que esta acogida la conexión del cliente. Lamentablemente, este tipo de filtrados no distingue a clientes atacantes que pueden venir de direcciones IP de confianza. La flexibilidad es limitada por el echo de que ninguna IP de las direcciones bloqueadas pueden conectarse, independientemente de la confianza o el estatus que esta posea. Al mismo tiempo la protección se ve debilitada por el hecho de que cualquiera de los rangos de IP bloqueados físicamente puede viajar y conectarse desde un cliente que posea una IP sin filtrar. El uso de sistemas de detección de intrusos y mantenimiento de aplicaciones que hay hasta la fecha, pueden ir a un largo camino hacia la prestación de la protección que ofrecen, pero lo hacen solo en contra los ataques conocidos, derivados o previstos. Tener los puertos abiertos sigue siendo una vulnerabilidad necesaria, para que se realice la conexión entre el cliente y el servidor, pero también puede convertirse en abrir las puertas para el ataque. Al final siempre que los puertos permanezcan abiertos, las aplicaciones de red son susceptibles a tener clientes atacantes.
  • 2. Aquí es donde entra el Port-Knocking Para eliminar el riesgo asociado de tener los puertos Los knocks o golpes abiertos, la técnica del Port-Knocking trabaja a través de puertos son equivalentes a cerrados, confía en todos los clientes e interactúa con los intentos de conexión Knocks (en adelante “golpes”) que estos envían antes que se que son enviados por lleve a cabo la autentificación, por lo que no hay discriminación algún cliente. de clientes que intentan conectarse. Una vez que la técnica del Port-Knocking ha aprobado la secuencia de golpes de un cliente, lo dirige hacia las aplicaciones de seguridad que se encargaran de la autentificación del cliente, esto proporciona un equilibrio entre la protección y la flexibilidad. Describamos como funciona esta técnica Para entender el concepto del Port-Knocking, recordemos las películas en donde un sujeto golpea con una cierta secuencia de golpecillos la puerta de una taberna, y si la secuencia era correcta, el tabernero abría una rendija para solicitarle una clave verbal y en el caso de que la secuencia de golpes no era correcta, el tabernero no hacia nada, por lo que el cliente pensaba que la taberna estaba cerrada. El concepto del Port-Knocking es exactamente análogo. Al igual que en ejemplo, esta técnica se basa en aparentar que todo esta cerrado. El cliente o KnockCliente es el responsable de generar la secuencia de golpes y tabernero o el KnockDaemon es el responsable de escuchar los puertos del servidor, tener un registro de golpes y de manipular los acciones. KnockCliente El KnockCliente es el responsable de enviar los golpes al servidor remoto donde un Knockdaemon esta escuchando. Su implementación puede ser tan simple como NETCAT o un programa modificado de PING o tan complicada como un generador de HASH CIFRADO. El KnockCliente codifica la información antes de enviarla. La secuencia de golpes sin codificar está compuesta generalmente de octetos: los primero cuatro octetos son de propiedad intelectual, es decir valores basados en la IP del cliente que envía el paquete en cuestión, seguidamente se encuentran octetos basados en el puerto, un FLAG o bandera, el tiempo de comprobación, y por ultimo factores basados en HASH CIFRADO. KnockDaemon - En primer lugar, el Knockdaemon crea un archivo de registro para controlar los golpes que reciben los puertos del servidor remoto. - En segundo lugar, el Knockdaemon requiere un método para extraer las secuencias de golpes a los puertos, ya sea desde del archivo registro o por la captura de paquetes y traducir su carga útil en información utilizable. - En este paso el Knockdaemon debe ser capaz de: detectar cuándo una secuencia de golpes comienza y termina, detectar correctamente la presencia de falsos golpes que no son parte de una secuencia. realizar un seguimiento de múltiples secuencias que llegan al mismo tiempo desde diferentes direcciones IP remotas. - Por ultimo, cuando un formato de secuencia correcto sea recibido, el contenido de la información de la secuencia debe ser vinculada a una acción. La acción por lo general puede ser ejecutar algún comando específico o un grupo de comandos. El formato de la secuencia El formato de la secuencia correcta puede consistir en cualquier número de TCP, UDP, o incluso a veces ICMP y otros paquetes de protocolo, que estén dentro del rango de numeración de puertos de la máquina destino. La complejidad de la secuencia de golpes puede ser cualquier cosa como una simple lista ordenada (por ejemplo, el puerto TCP 1000, el puerto TCP 2000, el puerto UDP 3000).
  • 3. Consideremos el siguiente ejemplo aplicando el Port-Knocking El servidor con IP: 192.168.1.2, tiene seguridad Port-Knocking por consiguiente los puertos están configurados para rechazar cualquier conexión TCP, y sin enviar paquetes ICMP de error al cliente. El comando IPTABLES (IPCHAINS en versiones inferiores a Linux 2.4) procede a cerrar los puertos 1-1024 de la siguiente forma: iptables –A INPUT –s 0.0.0.0/0 -p tcp –i eth1 –-dport 1:1024 -j DROP El cliente de IP: 192.168.1.5. En el primer caso, intentara conectarse sin saber de la existencia del Port-Knocking por lo que su intento será fallido. En el Segundo caso, conociendo de la existencia de esta técnica, intentara conectarse al servidor con la siguiente secuencia de puertos TCP: 100-200-300 (Paso 1 en la figura Nº 1). Desde el punto de vista del cliente, los intentos no producen ninguna respuesta y son en silencio: TCP_SYN al puerto 100 TCP_SYN al puerto 200 TCP_SYN al puerto 300 Sin embargo, en el servidor se registran todos los intentos de conexión; los datos del cliente y los puertos utilizados en cada intento de conexión de la siguiente forma: May 15 20:13:26 ... input DROP ... 192.168.1.5:10002 port:100 May 15 20:13:27 ... input DROP ... 192.168.1.5:10003 port:200 May 15 20:13:27 ... input DROP ... 192.168.1.5:10004 port:300 El KnockDaemon que supervisa el archivo de registro puede detectar estos intentos de conexión a los puertos 100, 200, 300 desde la misma dirección IP: 192.168.1.5. Esta secuencia en particular podría hacer que el KnockDaemon abriera el puerto SSH (TCP/22) para la IP: 192.168.1.5 y ejecutaría el siguiente comando: (Paso 2 en la figura Nº 1) iptables -i eth1 -I INPUT -s 192.168.1.5 -p tcp --dport 22 -j ACCEPT Una vez abierto el puerto SSH (TCP/22), el cliente puede establecer conexión con el servidor a través de dicho puerto. (Paso 3 en la figura Nº 1). Otra secuencia se puede utilizar para cerrar el puerto. Por ejemplo, 300, 200, 100 podría ser usado para activar la supresión de la regla que fue creada para permitir dinámicamente a la IP: 192.168.1.5 conectarse.
  • 4. Hablemos de los Beneficios del Port-Knocking Una de las ventajas principales de esta técnica de seguridad es que la información fluye en forma de intentos de conexión en lugar de los típicos paquetes de datos de carga útil. Un atacante que ignore la existencia de esta técnica nunca podrá conectarse, o causar algún daño al servidor. Incluso si supiera de la existencia de esta técnica, requeriría de un gran esfuerzo de fuerza bruta para descubrir la secuencia, la mas simple secuencia de tres golpes de tipo TCP (por ejemplo los puertos 700, 800, 900) requeriría que el atacante tenga que probar con todas las combinaciones de tres puertos en el rango de 1-65535, y además de eso escanear en cada una de las combinaciones si uno de los puertos por el que quiere entrar se ah abierto. El puerto no se abrirá hasta que la secuencia correcta de golpes en los puertos correctos sea recibida en orden por el KnockDaemon. Para minimizar el riesgo de una interceptación de las partes de una secuencia funcional que se esta enviando, el contenido de la información que contiene la IP remota en la secuencia puede ser encriptada. Otra ventaja importante es que el sistema es completamente personalizable, por lo que no se limita a la apertura de un puerto especifico, sino que una secuencia de golpes esta vinculada con una acción particular, como por ejemplo ejecutar un script shell, por lo que cuando una secuencia especifica de golpes es detectada por el KnockDaemon, este ejecutara el script. Provee de dinamismo a las tareas de administración, un cliente autorizado situado en cualquier parte del mundo sería capaz de abrir el puerto en el que esta interesado por un determinado periodo de tiempo sin necesidad de ayuda del administrador del servidor. También podrá quot;cerrarquot; el puerto una vez que hayan terminado, con otra secuencia de golpes y nunca mas abrirla para la misma IP remota. Una Importante aplicación de este sistema se expone en el uso del puerto SSH, puede impedir ataques de fuerza bruta sobre la contraseña de acceso. El demonio del SSH ni siquiera seria despertado con cualquier intento que se haga, hasta después que se haya detectado una secuencia correcta de golpes. Otro punto a favor de esta técnica, es que el software necesario, ya sea en el servidor o cliente final, es mínimo y, de hecho, puede aplicarse como un simple Script de shell para el servidor o un archivo por lotes y una utilidad de línea de comandos de Windows para el cliente. En términos de uso de tráfico, CPU y el consumo de memoria, el Port-Knocking utiliza un mínimo absoluto. La implementación de KnockDaemon también tiende a ser tan simple que cualquier tipo de vulnerabilidad seria evidente y el código es muy fácil de controlar. Cuando bebe ser utilizado el Port-Knocking Es recomendable usarlo en servicios de red que están destinados a ser utilizados por unos pocos usuarios autorizados. Por ejemplo; Consolas de administración, Administración basada en interfaces Web, SSH, bases de datos, etc. También para proteger servicios que se sabe tienen vulnerabilidades graves, pero por alguna razón no se pueden desactivar, Cualquiera que quiera añadir otra capa de seguridad a los servicios críticos como SSH. Esta técnica no es recomendable utilizarla para servidores que serán utilizados por el público en general, Por ejemplo; no seria una buena idea proteger un servidor Web público con esta técnica. Por que todos los usuarios que querrían acceder a una página web tendrían que usar un KnockCliente para establecer la conexión con el servidor web.
  • 5. DISCUSIÓN Aunque parezca una medida un tanto paranoica, es recomendable utilizarla debido a que la mayoría de aplicaciones tiene vulnerabilidades, los administradores de sistemas no pueden basarse simplemente en la seguridad proporcionada por los fabricantes, los sistemas críticos necesitan capas adicionales de seguridad, y merece la pena, aunque sea sólo para ahorrarte los intentos de intrusión SSH con ataques por fuerza bruta. En temas de seguridad, no existen técnicas que garanticen realmente en un 100% la protección que se ofrece. Tengamos en cuenta la Tercera Ley de Newton aplicada a la seguridad: “Por cada Sistema o Protocolo de Seguridad, existe en su contraparte un truco contrario”. Es por ello que se debe seguir investigando y dar propuestas para mejorar las técnicas de seguridad utilizadas. Por ejemplo para esta técnica, seria conveniente el uso adicional de datos basura dentro del paquete TCP, o incluso variar el TTL de cada paquete puede ser usado para transmitir algún tipo simple de combinación de números. Por ultimo, mencionar que esta técnica de seguridad trabaja en el nivel de la capa de enlace, siguiendo el modelo OSI. Se recomienda investigar más acerca de técnicas de seguridad basados en la capa de aplicación. BIBLIOGRAFÍA http://www.portknocking.org/ http://www.portknocking.org/view/resources http://www.portknocking.org/view/implementations http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki http://es.wikipedia.org RECURSOS ¿Port-Knocking... ofuscación o capa de seguridad? http://www.hispasec.com/unaaldia/3382/ Cómo instalar y configurar knockd a modo de receta http://crysol.inf-cr.uclm.es/es/node/618 Iptables: http://es.wikipedia.org/wiki/Iptables Lista de Números de Puertos http://es.wikipedia.org/wiki/Lista_de_números_de_puerto Recomendaciones de Seguridad www.fi.upm.es/docs/servicios/seguridad_informatica/371_recomendaciones.pdf