Algunos métodos de seguridad

El diseño de la seguridad de un sistema es complejo y necesita, como hemos mencionado, una planificación muy estructurada de acuerdo con las necesidades y el entorno que quiere protegerse.

Siempre que se habla de seguridad, existen dos paradigmas:

  • Lo que no se prohíbe está expresamente permitido.
  • Lo que no se permite está expresamente prohibido.

Obviamente, la segunda opción comporta una serie de ventajas importantes respecto a la primera, y la más importante de ellas es que todo nuevo servicio tendrá que haber sido revisado por el administrador del sistema, que se encargará de dar el visto bueno a aquellas aplicaciones que demuestren su fiabilidad.

Es posible distinguir un par de aproximaciones tradicionales a la seguridad, que son, por una parte, la defensa en profundidad y, por otra, la defensa perimetral. En la primera, cada servidor debe estar perfectamente configurado y tendrá que auditarse de forma constante. Este sistema diseña un perímetro de seguridad interna o interior en el que situamos todos los recursos que puedan ser potencialmente objeto de posibles ataques y, por lo tanto, se aísla del perímetro exterior, donde se sitúan aquellos recursos públicos que por motivos funcionales puedan estar al alcance más externo de forma menos rígida. Uno de los métodos más implementados para asegurar el perímetro interior son los firewall (cortafuegos), que a grandes rasgos podemos subdividir en tres categorías:

  • Los basados en el filtrado de paquetes: filtran el tráfico a partir de rangos de IP, protocolos y números de puerto de TCP o UDP.
  • Los basados en proxies o pasarelas de aplicación: no permiten filtrar paquetes de IP, y sirven de puente entre las solicitudes del usuario y el servicio externo pedido. Requieren la configuración del cliente para acceder a ellos correctamente.
  • Los denominados con transparencia o de tercera generación: actúan de manera similar a los routers, ya que admiten una serie de paquetes no destinados a ellos mismos, y según las configuraciones y los permisos, llaman a los proxies específicos para conectar con el usuario. Éste al principio se piensa que conecta directamente con el servidor final solicitado, pero en realidad lo ha hecho por medio del proxy de manera transparente, lo cual implica la no configuración del cliente por parte del usuario.

Este método exige una distinción entre la red interna y la externa muy clara, entre las cuales situamos el firewall. Una tendencia actual consiste en realizar el filtrado de paquetes en un router externo y situar una pasarela de aplicación entre la red interna y la externa. De esta manera se consigue una defensa perimetral con una red externa en la cual se sitúan aquellos servidores sin gran relevancia estratégica o que contengan información pública, a los cuales, sin embargo, sólo llegan los paquetes que cumplan las reglas de filtrado configuradas; por ejemplo, un puerto público para servidor web (puerto 80).

Cuando hablamos de defensa en profundidad, podemos referirnos tanto a la protección de los sistemas internos como de los externos; varía simplemente la política de seguridad que hay que implementar. Diferentes líneas de seguridad en profundidad pueden determinar una serie de medidas de protección en distintos ámbitos, como las siguientes:

  • Reducción al mínimo de los servicios TCP/IP que ofrecen los diferentes sistemas, desactivando aquellos que no se utilicen y que, por este motivo, son extremadamente peligrosos con vistas a un ataque, como por ejemplo echo, rlogin, pop3, talk, finger, sendmail, etc.
  • Uso extensivo de los tcp-wrappers, que son una serie de utilidades que permiten un control de los accesos de forma muy exhaustiva. Su función principal es la de ejecutarse cada vez que hay una petición a un puerto específico, comprobando la dirección de origen, verificándola por contraste con unas reglas definidas y de acuerdo con éstas autoriza o no el acceso al servicio solicitado.
  • Monitorización de routers para alertar de intentos de acceso no autorizados, que nos permite detectar un tráfico sospechoso por determinados puertos o servicios. Gracias a este sistema también podemos detectar posibles anomalías en el funcionamiento de nuestras máquinas si, por ejemplo, no tienen tráfico durante un periodo de tiempo que no es normal.
  • Escaneo de nuestros perímetros, tanto interno como externo, con la finalidad de encontrar de manera metódica posibles fisuras en nuestro sistema y detectar, en su defecto, las zonas del servidor que sean potencialmente más vulnerables. Los escaneadores más conocidos son ISS y SATAN. Estas herramientas nos ayudan a verificar el grado de seguridad de nuestra configuración o de su vulnerabilidad, pues actúan como posibles hackers.

Los conflictos que plantea la transferencia de información en un sistema abierto como Internet han obligado a desarrollar nuevos sistemas de seguridad, basados principalmente en sistemas de encriptación y autentificación de transacciones para cubrir tres problemas básicos:

  • Conocer en todo momento la identidad real tanto de los clientes como de los servidores que se comunican, de manera que los dos puedan verificar los datos que se aportan entre ellos.
  • Garantizar la integridad total de los datos que se envían por la Red, y detectar en cada caso si la información ha sido manipulada o no.
  • Garantizar que los datos transferidos sean interpretados sólo por las aplicaciones que se comunican en aquel momento, mediante la utilización de métodos criptográficos para codificar los datos y evitar su intercepción ilegal.

Con el objetivo de solucionar estos problemas se han ideado diferentes sistemas de protección en distintos ámbitos. Para establecer la correcta identificación de los usuarios que intercambian información, existen los certificados, que son documentos digitales con la identidad y clave pública de una organización, empresa o institución. Estos certificados son expedidos por las autoridades certificadoras, que establecen una conexión segura y certificada con un servidor HTTP seguro, que verifica la identidad del receptor y del destinatario para garantizar una conexión en todo momento segura.

A partir de la criptografía de clave pública, se ha desarrollado SSL (Secure Sockets Layer), que es un sistema de codificación de la información que codifica toda la información transferida en un ámbito de conexiones TCP. Esto lo hace compatible con todos los protocolos y servicios de Internet. Este sistema, desarrollado por Netscape, está incluido en todos los clientes web, lo cual ha facilitado su extensión. Su funcionamiento es muy gráfico:

  • Tanto el cliente como el servidor intercambian sus certificados de autenticidad, que se validan con una autoridad de certificación, aunque el cliente no debe tenerla expresamente. Este proceso de autentificación se denomina sistema RSA.
  • El cliente genera una clave aleatoria que se envía al servidor codificada con una clave pública, y el servidor establece un sistema parecido, de modo que las claves de encriptación a partir de aquel momento sólo son conocidas o interpretadas por el cliente y el servidor. Esta clave puede ser válida para la sesión que se establece o para todas las sesiones sucesivas que se establezcan entre aquella entidad y el usuario.
  • A partir de estos momentos, las claves se utilizan para encriptar todos los datos que se intercambien.

Otro sistema muy utilizado es S-HTTP, que es una versión de HTTP que incorpora la criptografía de clave pública para la autentificación y el intercambio de datos de manera segura. Su limitación reside en el hecho de que sólo permite el intercambio de datos entre clientes y servidores web, y no actúa de manera transparente como SSL en otras aplicaciones de comunicaciones TCP/IP.

Una forma clara de reconocer estos procedimientos la encontramos en el URL (Uniform Resource Locator) para servidores seguros HTTP que utilizan SSL 3.0, que cambia de http a https. Sin embargo, los clientes muestran un aviso sobre la conexión que pasa de modo normal a modo seguro cuando accedemos a un servidor seguro, con el candado cerrado (parte baja izquierda de los navegadores Netscape y Explorer), con lo cual se nos garantiza una conexión segura con el servidor remoto y la confidencialidad de los datos intercambiados.

Reflexión

Arriba