<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
SEGURIDAD EN LOS PUERTOS DE COMUNICACIÓN.
Cuando cualquier ordenador establece una conexión con Internet pasa a formar parte de la inmensa red de ordenadores y se diferencia del resto por su dirección IP (Internet Protocole) un número formado por cuatro grupos de cuatro cifras del estilo xxx.xxx.xxx.xxx.
Ahora bien, dependiendo del servicio elegido (web, e-mail, FTP, etc.) la comunicación con el servidor se realiza abriendo un puerto de comunicación diferente en cada caso. Así por ejemplo, cuando se abre una página web, el servidor que contiene dicha página atiende la petición abriendo el puerto 80; cuando se establece conexión con un servidor de FTP, éste lo hace a través del puerto 21.
Por tanto, los puertos de comunicación o simplemente los puertos pueden definirse como los puntos de conexión que se establecen entre el ordenador que solicita información (cliente) y el ordenador encargado de proporcionarla (servidor). Ambos ordenadores, mediante el protocolo TCP/IP identifican las direcciones IP y, dependiendo del servicio, abren los puertos de comunicación correspondientes. Los puertos carecen de significación física y, por tanto, es inútil intentar localizarlos en cualquier parte del ordenador.
CLASIFICACIÓN DE LOS PUERTOS
Existen más de 65000 puertos diferentes que pueden clasificarse en tres grupos:
• Puertos IANA (Internet Assigned Number Authority). Son los primeros 1024 y se conocen por este nombre porque dicha asociación fue la que les asignó a cada uno de ellos, las características de comunicación (utilidad, protocolo, etc.). También se conocen como “puertos más conocidos” y en Internet encontramos listados de los mismos.
• Puertos registrados. Son los comprendidos entre el 1024 y el 49151. También poseen unas características definidas pero que no han sido estandarizadas por la IANA.
• Puertos dinámicos o privados. Son los comprendidos entre el 49151 y el 65535. No están asignados.
• Puertos de troyanos. Pertenecen a los tres tipos anteriores y reciben este nombre porque son los utilizados por defecto por este tipo de malware. Su número de asignación y los troyanos que tienden a utilizarlos pueden encontrarse en Internet.
Es conveniente tener un conocimiento de los mismos pues cualquier atacante que intente tener control sobre nuestro ordenador necesita tener a su disposición una puerta abierta para poder comunicarse, es decir, un puerto de comunicaciones abierto.
Un puerto puede estar en cualquiera de los tres estados siguientes:
• Abierto. En este estado, el puerto es capaz de aceptar conexiones. Hay una aplicación escuchando en este puerto lo que no significa que se tenga acceso a la aplicación, sólo que hay posibilidad de conectarse.
• Cerrado. En este estado, el puerto rechaza la conexión. Probablemente no hay aplicación escuchando en este puerto, o no se permite el acceso por alguna razón. Este es el comportamiento normal del sistema operativo.
• Bloqueado o Sigiloso. En este estado no hay respuesta por parte del puerto. Es el estado ideal para un cliente en Internet ya que, de esta forma, ni siquiera se sabe si el ordenador está conectado. Este comportamiento es debido a dos posibles causas: a la existencia de un cortafuegos o a que el ordenador se encuentra apagado.
En una URL (Universal Resource Locator) los puertos se identifican con los dos puntos ':' a continuación del nombre de la máquina, por ejemplo:
http://www.detodounpoco.es:80/agenda.html significa que el documento agenda.html es solicitado mediante el servicio http conectándose al puerto 80 de este servidor. Como 80 es el puerto por defecto utilizado para http puede omitirse sin problemas.
Tener un puerto abierto siempre es un peligro ya que los puertos son puntos de acceso a aplicaciones que pueden tener vulnerabilidades que pueden ser aprovechadas por otros usuarios. Por tanto, para tener un cierto nivel de seguridad hay que tener en cuenta el siguiente par de recomendaciones:
• Permitir el acceso sólo a los servicios que sean imprescindibles, dado que cualquier servicio expuesto a Internet es un punto de acceso potencial para intrusos. Por ejemplo, si no se va a utilizar el servicio FTP es conveniente tener cerrado el puerto 21 que es el que utiliza dicho servicio. Las aplicaciones de tipo cliente, como un navegador web, un cliente de correo electrónico, o de chat (IRC) no necesitan tener puertos abiertos.
• Mantener los puertos en funcionamiento sigiloso para no dar facilidades a los intrusos que suelen utilizar herramientas capaces de efectuar escaneos aleatorios de direcciones IP y puertos por Internet, intentando identificar las características de los sistemas conectados y creando bases de datos que más tarde serán vendidas a través de Internet.
Cuando descubren alguna vulnerabilidad, están en disposición de atacar rápidamente a las máquinas que se sabe que son del tipo vulnerable. Si los puertos no responden (estado de bloqueo) se frena el escaneo de los mismos ya que las herramientas de escaneo disponen de un límite de tiempo, una vez sobrepasado el cual, se descarta el intento de conexión.
Para asegurar el funcionamiento de los puertos de nuestro ordenador es preciso disponer de una información sobre los mismos que nos permita conocer si somos vulnerables a ataques remotos (puertos abiertos), o si alguna aplicación no deseada (como un caballo de Troya) esta utilizando nuestros puertos de forma inadvertida. Las dos acciones a realizar son las siguientes:
• Detectar el estado de los puertos.
• Defendernos de posibles ataques.
DETECCIÓN DEL ESTADO DE LOS PUERTOS
Para detectar el estado de los puertos de nuestro ordenador en un momento determinado es posible utilizar cualquiera de estos tres métodos:
• Detección usando el sistema operativo.
• Detección mediante un escaneado on-line.
• Detección mediante herramientas específicas de escaneado de puertos.
Detección usando el sistema operativo
Del mismo modo que anteriores versiones de Windows, Windows XP también incorpora el comando NETSTAT que hay que ejecutar de la forma netstat –an previo seguimiento de la secuencia Inicio > Todos los programas > Accesorios > Símbolo del sistema. Para comprobar qué conexiones están establecidas lo más conveniente es cerrar todas las aplicaciones antes de ejecutar esta orden e ir desde el principio comprobando que conexiones tenemos y cuales se van abriendo.
La figura muestra el resultado obtenido con la ejecución de netstat.
El significado de cada una de las columnas que aparecen en el listado es el siguiente:
• Proto. Indica el protocolo utilizado para la comunicación por cada una de las conexiones activas (TCP/UDP).
• Dirección Local (Local Address). Indica la dirección origen de la conexión y el puerto.
• Dirección Remota: (Foreign Address). Indica la dirección de destino y el puerto.
• Estado (State). Indica el estado de dicha conexión en cada momento.
Los principales estados son:
Listening (Listen). El puerto está escuchando en espera de una conexión.
Established. La conexión ha sido establecida.
Close_Wait. La conexión sigue abierta, pero el otro extremo nos comunica que no va a enviar nada más.
Time_Wait. La conexión ha sido cerrada, pero no se elimina de la tabla de conexión por si hay algo pendiente de recibir.
Last_ACK. La conexión se está cerrando.
Closed. La conexión ha sido cerrada definitivamente.
La columna Dirección Local muestra las direcciones IP de conexión de nuestro ordenador. Como puede observarse en la figura, además de la IP asociada a nuestra conexión a Internet, los ordenadores utilizan una dirección IP interna, denominada loopback, utilizada para realizar pruebas y para la comunicación entre diversos procesos en la misma máquina. Esta dirección es la 127.0.0.1 y también se le suele asignar el nombre localhost.
Ahora hay que ir comprobando todas las conexiones que tenemos, qué están haciendo y qué puerto están utilizando (se identifican porque van después del signo : ). En el momento que identifiquemos un puerto de troyanos (consultar el listado de puertos de troyanos) cuyo estado sea ESTABLISHED sabremos con toda seguridad que estamos siendo víctimas de la actividad de de algún troyano.
Detección mediante un escaneado on-line
Este tipo de escaneo se realiza de forma instantánea a través de páginas web que contienen herramientas capaces de chequear nuestro ordenador.
Detección mediante herramientas específicas
Alternativamente a los dos tipos de detectores del estado de los puertos de comunicación de nuestro ordenador existen una serie de herramientas que permiten un escaneo más manejable.
Dependiendo de su flexibilidad a la hora de poder elegir rangos de direcciones IP y de puertos, las herramientas utilizadas para el chequeo de puertos son más o menos fiables: (pcSuper Scanner, Advanced Port Scanner, SuperScan, son gratuitas)
NOTAS ACLARATORIAS:
TCP (Transmision Control Protocol), Protocolo de Control de transmisión (Protocolo a nivel de transporte). Es un protocolo que se caracteriza por estar orientado a la conexión, la cual queda establecida cuando un nodo determinado comienza a enviar paquetes a otro nodo. Todos los paquetes entre ambos nodos circulan por una ruta única y fija durante todo el tiempo que dura la conexión de forma que si en un momento dado alguno de los enlaces o enrutadores que forman parte del circuito virtual tiene algún problema, la conexión entre los nodos origen y destino queda interrumpida.
TCP/IP (Transmission Control Protocol/Internet Protocol). (Protocolo a nivel de red). Este protocolo describe dos tipos de mecanismos de software empleados para posibilitar la comunicación libre de errores entre múltiples ordenadores. TCP/IP es el lenguaje común de Internet, el que permite que diferentes tipos de ordenadores utilicen la red y comuniquen unos con otros independientemente de la plataforma o sistema operativo que usen.
UDP (Universal Data Packet). Protocolo de transporte de datagramas, o sea de los pequeños paquetes que forman la información que se transfiere de y hacia nuestra computadora a través de Internet. (Protocolo a nivel de red).
Escribe un comentario
Los comentarios están cerrados