Introducción: Internet: Seguridad

La seguridad ha sido el principal concerniente a tratar cuando una organización desea conectar su red privada a Internet. Sin tomar en cuenta el tipo de negocios, se ha incrementado el numero de usuarios de redes privadas por la demanda del acceso a los servicios de Internet tal es el caso del World Wide Web (WWW), Internet Mail (e-mail), Telnet, y File Transfer Protocol (FTP). Adicionalmente los corporativos buscan las ventajas que ofrecen las paginas en el WWW y los servidores FTP de acceso publico en Internet.

Los administradores de red tienen que incrementar todo lo concerniente a la seguridad de sus sistemas, debido a que se expone la organización privada de sus datos así como la infraestructura de sus red a los expertos de Internet. Para superar estos temores y proveer el nivel de protección requerida, la organización necesita seguir una política de seguridad para prevenir el acceso no autorizado de usuarios a los recursos propios de la red privada y protegerse contra la exportación privada de información. Todavía, aun si una organización no esta conectada a Internet, esta debería establecer una política de seguridad interna para administrar el acceso de usuarios a porciones de red y proteger sensitivamente la información secreta.

1. Seguridad en Internet

Hay que tener siempre presente que el tener un servidor Web es dejar una puerta abierta a la red donde esté. Por otra parte por la red circula gran cantidad de información sensible: desde números de tarjetas de crédito a direcciones, datos reservados y un sinfín de cosas que el webmaster debe conocer y tener controlados, por lo menos en su radio de acción.
La mayor parte de la seguridad depende del admin. del sistema, pero el webmaster participa de ella en gran medida.
Nunca hay que confiar en la buena fé de los demás. Al contrario, siempre hay que desconfiar de todos por principio. Además hay que tener presente siempre que debemos ofrecer una Web segura, no sólo para prevenir posibles ataques, sino también para evitar problemas derivados de un mal uso por parte de programas mal hechos, usuarios inexpertos, etc, y garantizar a su vez que las personas/entidades que dependen de nosotros y nos confían su seguridad estén tranquilos.
Con la ejecución de programas remotos (CGIs, Java, etc), los problemas se agudizan. Cuando se carga un applet cualquiera en un ordenador, ese applet se ejecuta en él.
Los virus no se transmiten por la red solos, pero pueden estar incluidos en los programas que las personas descargan. Hay que revisar periódicamente los archivos que ofrecemos en nuestra Web.
Es necesario conocer conceptos de seguridad para evitar errores comunes a la hora de instalar un servidor.
La mayor parte de los agujeros de seguridad son debidos a la inadecuada instalación y configuración. Un porcentaje muy bajo se debe a errores en los programas (salvo cuando hablamos de CGIs).
Se recomienda mantenerse al tanto de los problemas de seguridad visitando periódicamente Sitios que contengan información sobre el tema.

2. Sobre servidores

2.1 Riesgos en la instalación de un servidor

Un servidor de WWW es una puerta al mundo por la que se dan información y servicio para satisfacer una necesidad, pero esta misma puerta puede ser forzada, y la información que se entreguen o los servicios que se den pueden no ser los deseados.

Los riesgos de seguridad que se tratarán son:

Entregar desde el servidor de información privada o confidencial (que se supone no debería dar) esto incluye: ficheros de datos de la organización, bases de datos, ficheros de usuarios, etc.
Acceso a información confidencial "capturándola" de la red, por ejemplo, números de tarjetas de crédito.
Acceso a información de la situación, configuración y acceso al servidor: ficheros con información del estado de la máquina, claves encriptadas de los usuarios.
Ejecución remota de programas en el servidor.

2.2 Precauciones que se deben tener:

Antes de instalar un programa asegurarse de que esté bien instalado/configurado.
Controlar el acceso al servidor (revisión rutinaria de logs en busca de ataques, conviene hacerlo a mano).
Revisar los programas que se utilizan (CGI's) para comprobar que no pueden ser subvertidos.
Controlar la información ofrecida por el servidor y no dejar que entregue más de la necesaria.
Y algunas genéricas que se deben hacer en cualquier sistema (haya servidor de WWW o no):
- Limitar el número de usuarios en la máquina. Borrar usuarios inactivos.
- Hacer que la gente elija buenos passwords.
- Desactivar servicios no usados (finger, NIS, YP, etc).
- Comprobar los permisos del sistema.

2.3 Qué cosas pueden causar problemas

Hay algunos elementos del servidor que son especialmente sensibles y que pueden dar lugar a graves agujeros de seguridad que puedan ser aprovechados por cualquier atacante:

CGI scripts (y todo lo que hay en éste directorio).
Server side includes. No es aconsejable activarla si no se utiliza o no se entiende.
Generación automática de directorios (pueden dar acceso a información sensible, ejemplo: acceso a ficheros de backup -emacs-, seguimiento de enlaces simbólicos).
Directorios mantenidos por usuarios: NUNCA dejar que los usuarios puedan poner CGIs de forma indiscriminada, ojo a los enlaces simbólicos.

3. Seguridad en CGI's

Aquí analizaremos los problemas de seguridad que pueden surgir por la instalación de CGI's. Vamos a ver el caso particular de las máquinas UNIX, pero otros servidores (NT por ejemplo) tienen problemas de seguridad también muy importantes (llamadas a batch, acceso a SMB).

3.1 CGI's interpretados: Bash y Perl

El error más común en el desarrollo de CGI's es el uso de variables tomadas de la entrada (del formulario, de la llamada tipo GET o POST) para utilizarlas como opciones en la llamada a el programa para el que el CGI hace de interfaz.

Los scripts en Bash y Perl se dan más a éste tipo de problemas porque la facilidad para hacerlos rápidamente (dirty prototiping) hace que no se revisen adecuadamente.

Lectura complementaria

Firewalls y Seguridad en Internet
Un excelente manual sobre seguridad en Internet escrito por Chuck Semeria de 3Com Corp y traducido al español por Daniel R. Elorreaga de la U.N.A.M.
Vulnerabilidades
Los 10 problemas de seguridad en Internet más frecuentes y la relación de acciones que se deben tomar para proteger los sistemas de las mismas.
Seguridad Windows NT
Recomendaciones de configuración que se deben tener en cuenta al usar Windows NT.
Firewalls, Routers y Proxys
Un artículo muy interesante para aquellos que deseen introducirse en estos temas.

Enlaces recomendados

Security Focus http://www.securityfocus.com
HispaSec http://www.hispasec.com
Packet Storm http://packetstorm.securify.com
Net Security http://www.net-security.org
Slashdot http://slashdot.org