13.07.2015 Views

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

184CAPÍTULO 11. ALGUNOS SERVICIOS Y PROTOCOLOScon virus, si simplemente el navegador del usuario ‘se cuelga’ al acceder al visitar las páginasde una organización, seguramente esa persona dejará de visitarlas, con la consecuente pérdidade imagen – y posiblemente de un futuro cliente – para esa entidad.Asegurar el servidor implica – aparte de las medidas habituales para cualquier máquina Unix –medidas excepcionales dedicadas al demonio servidor de web y su entorno de trabajo; estas medidasson propias para cada programa servidor, por lo que aquí no entraremos en detalles concretos sobrecada uno de ellos. No obstante, y sea cual sea el servidor utilizado (Apache, NCSA, Netscape. . . ),es necesario seguir un consejo básico: minimizar el número de usuarios en la máquina y minimizarel número de servicios ofrecidos en ella; aunque lo normal es que una máquina dedicada a cualquiertarea con decenas – o con miles – de usuarios sea también el servidor web, es recomendable quedicho servidor sea un equipo dedicado a esa tarea.Los problemas relacionados con servidores web suelen proceder de errores de programación enlos CGIs ubicados en el servidor. Un CGI (Common Gateway Interface) es un código capaz decomunicarse con aplicaciones del servidor, de forma que desde una página se invoque a dichas aplicacionespasándoles argumentos y el resultado se muestre en el navegador de un cliente; cuandorellenamos un formulario, vemos una imagen sensible, o simplemente incrementamos el contador decierta página, estamos utilizando CGIs. Esta capacidad del CGI para comunicarse con el resto delsistema que alberga las páginas es lo que le otorga su potencia, pero también lo que causa mayoresproblemas de seguridad: un fallo en estos programas suele permitir a cualquier visitante de laspáginas ejecutar órdenes en el sistema. Los errores más habituales en un CGI provienen de losdatos recibidos desde el navegador del cliente: un simple formulario, en el que el visitante rellenaciertos campos, puede ser una puerta de acceso a nuestro sistema; es necesario comprobar la validezde todos y cada uno de los datos leídos antes de que sean procesados. Por ejemplo, imaginemosun CGI que pida un nombre de usuario por teclado y a continuación ejecute un finger contra esenombre de usuario y muestre el resultado en el navegador; ¿que sucedería si el visitante introducecomo nombre de usuario ‘toni;cat /etc/passwd’? Es posible que se ejecute el finger a toni,pero a continuación se vuelque el fichero de contraseñas simplemente porque no se ha tenido laprecaución de ignorar los caracteres especiales para el shell (recordemos que un ‘;’ en Unix separavarias órdenes en una misma línea); este ejemplo, que hoy en día parece absurdo, ha estado presenteen algunos servidores durante mucho tiempo. Cualquier CGI es susceptible de presentar problemasde seguridad sin importar el lenguaje en que se haya escrito ([Gun96]); por tanto, es muy importantepreocuparse de mantener actualizado el árbol de CGIs (no copiarlo completamente al actualizarla versión de demonio), e incluso revisar los programas más importantes en busca de posibles bugs.Otra medida de seguridad básica es ejecutar el demonio servidor bajo la identidad de un usuario conprivilegios mínimos para que todo funcione correctamente, pero nunca como root; generalmente, elusuario nobody suele ser más que suficiente: recordemos que los CGIs se ejecutan bajo la identidaddel usuario propietario del demonio, por lo que si ese propietario es el administrador un potencialatacante podría ejecutar cualquier aplicación como root del sistema.Para garantizar la seguridad de los datos que circulan entre un cliente y el servidor es casi obligatoriocifrar dichos datos (otras medidas, como asegurar físicamente la red, suelen ser impracticables)mediante SSL (Secure Socket Layer), un protocolo desarrollado por Netscape Communications paracifrar información al enviarla por la red y descifrarla antes de ser utilizada en el cliente; en la actualidad,se está viendo relegado a un segundo plano a causa de los certificados digitales, aunque siguesiendo una excelente opción para administración remota y para transmitir información confidencialen redes de propósito general.En último lugar es necesario hablar de la seguridad desde el punto de vista del cliente que visitapáginas web; para el usuario, un servidor es seguro si protege la información que recibe y envíahacia él, manteniendo su privacidad, y si no conduce al usuario a descargar programas maliciosos– generalmente virus – en su equipo; si sucede lo contrario, la compañía responsable de las páginasse enfrenta a una importante pérdida de imagen – aparte de posibles problemas judiciales – de caraa sus usuarios: simplemente imaginemos que salta a los medios un fallo de seguridad en la versión

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!