Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS
Internet Information Services 6.0 ¿Qué es? Proporciona a Windows... Un servidor de aplicaciones Web Un servidor de FTP Un servidor de news (NNTP) Un servidor de SMTP Da soporte a aplicaciones Web: Active Server Pages (.asp) ASP.NET (.aspx) … Esto último es uno de sus factores de éxito
Internet Information Services 6.0 ¿Qué ha cambiado? IIS 6.0 no es simplemente una nueva versión Practicamente se ha rehecho Cambios en la arquitectura Aislamiento de Worker Process Kernel-Mode Queuing en el almacenamiento de la metabase en la consola de administración en el servicio de FTP
Internet Information Services 6.0 Nueva arquitectura HTTP.SYS: proceso en modo kernel (núcleo); recibe y encamina peticiones http WAS: proceso de configuración y gestión (WAS = Web Administration Service) W3WP.exe: entorno de ejecución para aplicaciones web (WP=Worker Process) Nuevo esquema de aislamiento de aplicaciones Soporte para múltiples procesos WP WAS W3WP.exe W3WP.exe web app W3WP.exe web app web app web app kernel HTTP.SYS
Internet Information Services 6 Internet Information Services 6.0 Proceso de peticiones en el kernel: HTTP.sys Worker Process HTTP.sys Cola Peticiones Cola Peticiones Cola Peticiones Envío Respuesta Namespace Mapper Cache Motor HTTP Petición HSE_REQ_ENABLE_CACHE Respuesta
Internet Information Services 6.0 Fiabilidad: la arquitectura Aislamiento total de procesos uno o más procesos en comunicación directa con el kernel Independiente de otros procesos Application Pools Agrupan sites y aplicaciones Una cola de peticiones por Application Pool Web Gardens Colas gestionadas en modo kernel Application Pool Worker Process Worker Process WAS Extensión ISAPI Extensión ISAPI Filtro ISAPI Filtro ISAPI HTTP.sys
Internet Information Services 6.0 Application Pools Podemos tener uno o más Cada uno servido por uno o más W3WP.exe Cada W3WP.exe solo sirve un pool Peticiones redirigidas al pool por HTTP.sys Podemos aislar las aplicaciones Web basándonos: En sitio/cliente En la funcionalidad En la fiabilidad
Internet Information Services 6.0 Reciclado periódico de los procesos Qué es Reiniciamos las aplicaciones Web basándonos en: El tiempo que llevan funcionando El número de peticiones En un calendario En el consumo de memoria Bajo demanda Porqué usarlo Prevenir que aplicaciones defectuosas afecten al sistema Refrescar las aplicaciones para aumentar la disponibilidad
Internet Information Services 6.0 Arquitectura con autorecuperación Qué es Diseñada para detectar bloqueos de threads dentro de W3WP.exe Cómo funciona W3SVC consulta cada W3WP.exe (pinging) El proceso tiene un tiempo para responder Si no responde en ese tiempo: Matar el proceso, publicar un evento y lanzar uno nuevo (por defecto) IIS puede ser configurado para realizar una acción sobre el proceso
Internet Information Services 6.0 Detección de fallos y recuperación W3SVC detecta “casques” en W3WP.exe W3SVC lanzará un nuevo W3WP.exe si es necesario Las peticiones son encoladas por HTTP.sys mientras se crea el nuevo W3WP Resultado: no existe interrupción en el servicio Protección Solo se permiten x fallos en y minutos El pool será detenido si se superan estos valores (error 503 para las peticiones)
Internet Information Services 6.0 Fiabilidad: gestión de procesos Extensión ISAPI Filtro ISAPI Worker Process HTTP.SYS Web Admin Service (WAS) Extensión ISAPI Filtro ISAPI Worker Process Extensión ISAPI INETINFO metabase
Internet Information Services 6 Internet Information Services 6.0 Escalabilidad: Dynamic Kernel Caching GET http://www.acme.com/store/sproketcatalog.aspx Sin Cache Con Cache Petición Respuesta Petición Respuesta <%@ OutputCache Duration="10" VaryByParam="none" %>
Internet Information Services 6.0 Seguridad IIS no se instala por defecto en una instalación limpia En una actualización se instala solo si teníamos instalado URLScan Las URL’s están ahora limitadas a 16KB y presentan mayores restricciones Que no existan caracteres especiales, etc. Restricciones Solo se ejecutan peticiones para extensiones permitidas Solo se sirven ficheros con extensiones conocidas Definidas en MIMEMAP Herramientas de línea de comandos limitadas al grupo de administradores
Internet Information Services 6.0 Rendimiento Web Garden Application pool con más de un Worker Process Afinidad de procesador Vincular los procesos de un Application pool a uno o más procesadores Se hace caché de las respuestas en HTTP.sys (kernel) Se liberan los procesos después de un tiempo de inactividad Se relanzarán cuando sea necesario (peticiones) Esto no implica que la aplicación no esté activa!!
Internet Information Services 6.0 Administración y gestión Metabase en formato XML - ¡Menos reinicios! Importación y exportación de la configuración Elección entre varios interfaces de gestión Nueva consola de administración vía Web
Internet Information Services 6.0 Mejoras en la metabase La metabase almacena la configuración de IIS XML Metabase La metabase ahora se almacena en XML Existe un histórico de la metabase Modo EditWhileRunning Permite hacer cambios a metabase.xml mientras IIS está funcionando Es más seguro usar ADSI o el UI para hacer cambios \systemroot\system32\inetsrv\ Metabase.xml MBSchema.xml
Seguridad en SQL Server 2000 Servicio SQL Por seguridad crearemos en Windows 2000 un usuario para lanzar el servidor SQL, “sqluser” ,si no creamos este usuario, el servicio será lanzado por el usuario LocalSystem. Una vulnerabilidad que ejecute comandos en el sistema, sería ejecutado con privilegios de administración. De esta forma con el usuario sqluser (no es parte del grupo de administradores) los riegos que corre el sistema son mucho menores
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000 Autentificación: Windows Siempre que sea posible. SQL Server Vulnerable a la fuerza Bruta Contraseñas Tamaño, caracteres, ...
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000 Seguridad a Nivel de Red Filtrar puertos 1433 TCP/UDP 1434 TCP/UDP
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000 Eliminar las Bases de Datos de ejemplos Para mayor seguridad en el sistema eliminaremos todos las bases de datos de ejemplo que dispone SQL Server Northwind Pub
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000 Habilitar registro de logs Mediante el Administrador corporativo. Mediante el Analizador de consultas u osql.exe Master..xp_instance_regwrite N’HKEY_LOCAL_MACHINE’,N’SOFTWARE\Microsoft\MSSQLServer\MSSQLServer’,N’AuditLevel’,REG_WORD,3 Deshabilitar SQL Agent En caso de no ser necesario
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000 Cifrar los datos que sean posibles dentro de la Base de Datos No ejecutar SQLServer en el contexto de una cuenta privilegiada Eliminar los procedimientos almacenados que no se utilicen como xp_cmdshell (Permisos) Quitar los permisos débiles de los procedimientos almacenados y dejar sólo sa Utilizar alertas para detectar posibles incidencias o ataques
Seguridad en SQL Server 2000
Seguridad en SQL Server 2000 Asignar los permisos adecuados a las tablas, vistas y campos de las mismas para cada usuario. Trabajo costoso, pero que tiene recompensa Realizar un buen diseño de la BD Público Privado
Seguridad en SQL Server 2000
Seguridad en la Aplicación Realizar un parseo adecuado de caracteres: Mediante expresiones regulares Validación de caracteres Permitidos Consultas con “sa” Las imprescindibles Crear una cuenta de usuario con permisos mínimos. invitadodb
y ahora… Fiesta!!!
Recursos de la comunidad IIS Community Portal http://www.microsoft.com/windowsserver2003/community/centers/iis/ Portal de IIS http://www.microsoft.com/iis Grupos de noticias de IIS microsoft.public.inetserver.iis microsoft.public.inetserver.iis.ftp microsoft.public.inetserver.iis.security Grupos de noticias http://www.microsoft.com/communities/newsgroups/default.mspx Recursos de la comunidad http://www.microsoft.com/communities/default.mspx Most Valuable Professional (MVP) http://www.mvp.support.microsoft.com/ Grupos de usuarios http://www.microsoft.com/communities/usergroups/default.mspx
Lecturas recomendadas TÍTULO IDIOMA Microsoft® Windows® Security Resource Kit ISBN: 0-7356-1868-2 Inglés Internet Information Services (IIS) 6.0 Resource Kit ISBN: 0-7356-1420-2 Inglés
Al salir de aquí… Tomarnos unas cañas juntos!!! Cubrir el formulario de evaluación http://www.microsoft.com/spain/technet/unimer Descargar esta presentación http://www.microsoft.com/spain/technet/justit Ver otras sesiones sobre seguridad http://www.microsoft.com/technet/tcevents/webcasts/default.mspx Descargar la guía de seguridad Windows 2000 http://www.microsoft.com/technet/security/prodtech/win2000/ Windows Server 2003 http://www.microsoft.com/technet/security/prodtech/win2003/ Tomarnos unas cañas juntos!!!
examinanos! http://www.microsoft.com/spain/technet/unimer
Preguntas? Comentarios? ivan@udc.es © 2004 Microsoft Corporation. Todos los derechos reservados. Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA, EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.
© 2004 Microsoft Corporation. Todos los derechos reservados. Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA, EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.