Serie de conferencias ASP (veinte) Mantenimiento de la seguridad de las aplicaciones ASP
Autor:Eve Cole
Fecha de actualización:2009-05-30 19:58:35
Nunca subestimes la importancia de configurar correctamente los ajustes de seguridad. Una configuración incorrecta de los ajustes de seguridad no sólo expone sus aplicaciones ASP a manipulaciones innecesarias, sino que también impide que usuarios legítimos accedan a sus archivos .asp.
Los servidores web proporcionan varios métodos para proteger sus aplicaciones ASP contra accesos no autorizados y manipulaciones. Después de haber leído la información de seguridad de este tema, tómese un momento para revisar detenidamente la documentación de seguridad de Windows NT y del servidor Web.
Permisos NTFS Puede proteger los archivos de la aplicación ASP aplicando permisos de acceso NTFS a archivos y directorios individuales. Los permisos NTFS son la base de la seguridad del servidor web y definen diferentes niveles de acceso a archivos y directorios para un usuario o un grupo de usuarios. Cuando un usuario con una cuenta válida de Windows NT intenta acceder a un archivo con permisos restringidos, la computadora verifica la lista de control de acceso (ACL) del archivo. Esta tabla define los permisos otorgados a diferentes usuarios y grupos de usuarios. Si la cuenta del usuario tiene permiso para abrir el archivo, la computadora le permite al usuario acceder al archivo. Por ejemplo, el propietario de una aplicación web en un servidor web necesita permisos de cambio para ver, cambiar y eliminar los archivos .asp de la aplicación. Sin embargo, a los usuarios públicos que acceden a la aplicación se les deben conceder sólo permisos de sólo lectura, limitándolos a ver pero no cambiar las páginas web de la aplicación.
Mantenimiento de la seguridad de Global.asa Para proteger completamente su aplicación ASP, asegúrese de configurar los permisos del archivo NTFS en el archivo Global.asa de la aplicación para el usuario o grupo apropiado. Si Global.asa contiene comandos que devuelven información al navegador y no protege el archivo Global.asa, la información se devolverá al navegador incluso si otros archivos de la aplicación están protegidos.
NOTA Asegúrese de aplicar permisos NTFS uniformes a los archivos de la aplicación. Por ejemplo, si accidentalmente restringe en exceso los permisos NTFS para un archivo que una aplicación debe contener, es posible que los usuarios no puedan ver ni ejecutar la aplicación. Para evitar este tipo de problemas, planifique cuidadosamente antes de asignar permisos NTFS a sus aplicaciones.
Permisos del servidor web Puede restringir cómo todos los usuarios pueden ver, ejecutar y manipular sus páginas ASP configurando permisos en su servidor web. A diferencia de los permisos NTFS, que proporcionan una forma de controlar el acceso de usuarios específicos a archivos y directorios de aplicaciones, los permisos del servidor web se aplican a todos los usuarios y no diferencian entre tipos de cuentas de usuario.
Para los usuarios que ejecutarán sus aplicaciones ASP, deben seguir estas pautas al configurar los permisos del servidor web:
Permita permisos de lectura o secuencia de comandos en el directorio virtual que contiene el archivo .asp.
Permita permisos de "lectura" y "script" en los directorios virtuales donde se encuentran los archivos .asp y otros archivos que contienen scripts (como archivos .htm, etc.).
Permitir permisos de lectura y ejecución en directorios virtuales que contienen archivos .asp y otros archivos que requieren permisos de ejecución para ejecutarse (como archivos .exe y .dll, etc.).
Archivos de asignación de secuencias de comandos La asignación de secuencias de comandos de la aplicación garantiza que el servidor web no descargue accidentalmente el código fuente del archivo .asp. Por ejemplo, incluso si configura permisos de lectura para el directorio que contiene un archivo .asp, su servidor web no devolverá el código fuente del archivo siempre que el archivo .asp pertenezca a una aplicación de mapeo de scripts para los usuarios.
Seguridad de cookies
ASP utiliza la cookie SessionID para rastrear información específica del navegador web durante una visita o sesión de una aplicación. Esto significa que se considera que las solicitudes HTTP con las cookies correspondientes provienen del mismo navegador web. Los servidores web pueden utilizar cookies SessionID para configurar aplicaciones ASP con información de sesión específica del usuario. Por ejemplo, si su aplicación es una tienda de música en línea que permite a los usuarios seleccionar y comprar CD, puede usar SessionID para realizar un seguimiento de las selecciones del usuario mientras recorre la aplicación.
¿Pueden los piratas informáticos adivinar el SessionID?
Para evitar que los piratas informáticos adivinen la cookie SessionID y obtengan acceso a las variables de sesión de un usuario legítimo, el servidor web asigna un número generado aleatoriamente a cada SessionID. Cada vez que el navegador web del usuario devuelve una cookie de ID de sesión, el servidor recupera el ID de sesión y el número asignado, y luego verifica si coincide con el número generado almacenado en el servidor. Si los dos números coinciden, el usuario podrá acceder a la variable de sesión. La efectividad de esta técnica reside en la longitud del número asignado (64 bits), lo que hace que la posibilidad de que un hacker adivine el ID de sesión y robe la sesión activa del usuario sea casi nula.
Cifrar importante cookie de ID de sesión
Un pirata informático que intercepta la cookie de ID de sesión de un usuario puede utilizar esta cookie para hacerse pasar por el usuario. Si una aplicación ASP contiene información privada, números de tarjetas de crédito o cuentas bancarias, un pirata informático con una cookie robada puede iniciar una sesión activa en la aplicación y obtener esta información. Puede evitar que la cookie SessionID sea interceptada cifrando el enlace de comunicación entre su servidor web y el navegador del usuario.
Protección de contenido ASP restringido mediante mecanismos de autenticación Puede exigir que cada usuario que intente acceder a contenido ASP restringido tenga un nombre de usuario y una contraseña de cuenta de Windows NT válidos. Siempre que un usuario intenta acceder a contenido restringido, el servidor web realiza una autenticación o verificación de la identidad del usuario para comprobar si tiene una cuenta válida de Windows NT.
El servidor web admite los siguientes métodos de autenticación:
Autenticación básica Solicita al usuario un nombre de usuario y contraseña.
La autenticación de solicitud/respuesta de Windows NT obtiene de forma cifrada información de identidad del usuario desde el navegador web del usuario.
Sin embargo, el servidor web sólo autentica al usuario si el acceso anónimo está prohibido o restringido por los permisos del sistema de archivos de Windows NT.
Proteger la metabase Los scripts ASP que acceden a la metabase requieren derechos de administrador en la computadora donde se ejecuta el servidor web. Al ejecutar estos scripts desde una computadora remota, debe conectarse a través de una conexión autenticada, como mediante la autenticación de solicitud/respuesta de Windows NT. Debe crear un servidor o directorio para el archivo .asp administrativo y configurar su método de autenticación de seguridad de directorio en autenticación de solicitud/respuesta de Windows NT. Actualmente, la autenticación de solicitud/respuesta de Windows NT sólo es compatible con Microsoft Internet Explorer versión 2.0 o posterior.
Mantener la seguridad de las aplicaciones mediante SSL
Como característica de seguridad del servidor web, el protocolo Secure Sockets Layer (SSL) 3.0 proporciona una forma segura, virtual y transparente de establecer conexiones de comunicación cifradas con los usuarios. SSL garantiza la autenticación del contenido web y puede confirmar de manera confiable la identidad de los usuarios que acceden a sitios web restringidos.
Con SSL, puede exigir a los usuarios que intentan acceder a aplicaciones ASP restringidas que establezcan una conexión cifrada con su servidor, lo que evita que se intercepte información importante intercambiada entre usuarios y aplicaciones.
Mantenimiento de la seguridad de los archivos incluidos Si incluye archivos ubicados en un directorio habilitado para SSL desde un archivo .asp ubicado en un directorio raíz virtual desprotegido, SSL no se aplicará a los archivos incluidos. Por lo tanto, para garantizar que se aplique SSL, asegúrese de que tanto el archivo incluido como el incluido estén en un directorio habilitado para SSL.
Autenticación de cliente Una forma muy segura de controlar el acceso a su aplicación ASP es exigir a los usuarios que inicien sesión con autenticación de cliente. Una credencial de cliente es una tarjeta de identificación digital que contiene la información de identidad del usuario y funciona de la misma manera que una forma tradicional de identificación, como un pasaporte o una licencia de conducir. Los usuarios generalmente obtienen las calificaciones de los clientes de una organización de terceros de confianza, que confirma la información de identidad del usuario antes de emitir certificados de calificación. (Por lo general, estas organizaciones solicitan un nombre, dirección, número de teléfono y nombre de la organización; el nivel de detalle de esta información varía según el nivel de estatus otorgado).
Cada vez que un usuario intenta iniciar sesión en una aplicación que requiere verificación de elegibilidad, el navegador web del usuario envía automáticamente las credenciales del usuario al servidor. Si la función de asignación de calificación de Capa de sockets seguros (SSL) del servidor web está configurada correctamente, el servidor puede verificar la identidad de un usuario antes de otorgar acceso a una aplicación ASP.
Scripts ASP para manejar la certificación de calificaciones Como desarrollador de aplicaciones ASP, puede escribir scripts para verificar si existe una calificación y leer los campos de calificación. Por ejemplo, puede acceder al campo de nombre de usuario y al campo de nombre de la empresa desde la calificación. Active Server Pages almacena información de calificación en la colección ClientCertificate del objeto Solicitud.
El servidor web debe configurarse para aceptar o exigir calificaciones del cliente antes de poder procesarlo a través de ASP; de lo contrario, la colección ClientCertificate estará vacía.