Manejo de las Extensiones de un Servidor Web

Como ya se ha dicho, una instalación de IIS por defecto solo sirve contenido estático (Ej.: HTML e imágenes). Para minimizar los riesgos de seguridad, IIS 6 sólo está inicialmente preparado para servir páginas que no usen ninguna clase de script o contenido activo. Explotar defectos en las tecnologías con las que se desarrollan estos elementos activos, o bien introducirlos con fines maliciosos en partes de una web mediante técnicas diversas es una de las fuentes de ataque más usadas actualmente. Dado que IIS 6 está es un estado “bloqueado” por defecto, cualquier petición de una página dinámica devolverá un error.

Para que un servidor web IIS pueda ejecutar cualquier contenido activo es necesario activar la extensión correspondiente al tipo o tipos de tecnologías para páginas hacer páginas dinámicas que queremos servir (como por ejemplo ASP o ASP.NET). Una forma de hacer esto responsablemente es crear una lista de las Web Service Extensions permitidas, que controlará de forma precisa qué tipos de contenidos dinámicos puede servir IIS. Esta lista especificará qué manejadores de peticiones podrán usar nuestros clientes y por tanto que clase de contenidos puede servir IIS en un momento dado. Por ejemplo, si activamos la extensión correspondiente a la tecnología ASP .NET entonces automáticamente nuestro servidor será capaz de procesar el contenido de páginas .aspx. Si no se activa ninguna extensión más, entonces el servidor únicamente servirá este tipo de contenido dinámico.

En cualquier caso, siempre debemos minimizar el número de manejadores permitidos, restringiéndolos exclusivamente a aquellos contenidos que sabemos que vamos a servir realmente. Reducir el número de manejadores al mínimo imprescindible tiene dos ventajas principales:

  • Disminuir el riesgo de ataque: Menos manejadores implica que hay menos probabilidad de que se aprovechen de vulnerabilidades presentes en los mismos. Se debe tener en cuenta que en muchas ocasiones las vulnerabilidades de las extensiones de un servidor web son hechas públicas muy rápidamente (al igual que las de muchos programas), incluso antes de que se conozca un parche o solución para las mismas. Si tenemos menos extensiones de las que preocuparnos, tanto mejor para la integridad del servidor.
  • Menor uso de recursos: Manejadores deshabilitados no usan recursos, optimizando el servidor.

NOTA: Aunque el servidor en sí sea seguro, sus extensiones pueden ser un agujero de seguridad si poseen fallos. Estos no son casos aislados o conocidos por unos pocos solamente, ya que como se ha dicho son documentados y aparecen en Internet, con frecuencia antes de que se conozca solución para ellos. Páginas donde se pueden consultar los fallos conocidos de un producto y una versión concreta del mismo son:


Si se intenta acceder a una página que requiere usar una extensión no habilitada, se obtiene un error 404 (concretamente un error 404.2 siguiendo el convenio del W3C extended log files que veremos posteriormente). No se revela más información del error para no dar pistas a los atacantes del problema, que pudieran usar con algún fin malicioso. Por las razones explicadas, conviene también deshabilitar cualquier extensión que sepamos que presenta fallos de seguridad graves en un momento dado. Esto sólo podemos saberlo a tiempo para poder llevar a cabo alguna clase de actuación estando suscritos o consultando habitualmente sitios con noticias de seguridad o páginas que se dediquen a estos fines (ver cuadro anterior).

IIS posee las siguientes extensiones predefinidas (aunque que no activas por defecto, muchas de ellas deben activarse manualmente):

  • Active Server Pages: Es necesario activarla si tenemos aplicaciones ASP (no ASP .NET, ya que tienen extensión propia) en el servidor.
  • ASP .NET: Usada si tenemos aplicaciones que usen esta tecnología para la creación de sitios Web. Hay abundante documentación acerca de esta tecnología disponible y no la analizaremos. http://www.asp.net/
  • FrontPage Server Extensions: Para aplicaciones que usen esta tecnología, aunque actualmente puede considerarse obsoleta.
  • Internet Data Connector (IDC): Para aplicaciones que usen esta tecnología que permite a las aplicaciones que se ejecutan bajo IIS interactuar con bases de datos [1]
  • Server Side Includes (SSI): Para usar directivas que permiten la reutilización de contenido en la web. [2]
  • Web Distributed Authoring and Versioning (WebDAV): Si las webs necesitan soportar que los clientes publiquen y manejen contenido en las mismas remotamente, podemos lograrlo usando esta tecnología y activando la extensión que la soporta. Veremos más detalles sobre la misma al final de este curso.
  • También podemos crear nuestras propias extensiones o bien pueden aparecer nuevas extensiones por la instalación de productos que están pensados para trabajar como extensiones de IIS,como veremos.

En cualquier caso, no conviene activar la opción “Todas las extensiones CGI /ISAPI desconocidas”, ya que puede crearnos potenciales problemas de seguridad. Siempre es mucho mejor controlar qué se ejecuta antes de dar “carta blanca” para ejecutar cualquier clase de contenido.

La siguiente actividad práctica muestra cómo manejar correctamente éstas extensiones. También podremos encontrar una descripción de las tecnologías de comunicación entre el servidor y sus extensiones en este enlace. Finalmente, este enlace: http://technet.microsoft.com/en-us/library/cc730912(WS.10).aspx explica como hacer estas operaciones en IIS 7.


[1] Más información en: http://msdn.microsoft.com/en-us/library/ms524703.aspx,http://www.tlwilliams.net/NOCCC/0005/0005wFrame.html

[2] Más información en: http://livedocs.adobe.com/dreamweaver/8_es/using/22_codi7.htm

Last modified: Thursday, 19 August 2010, 11:25 AM