Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft...

40
Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS

Transcript of Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft...

Page 1: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Securización Internet Information Services 6.0

y SQL Server 2000

Iván González VilaboaMicrosoft MVPWindows Server - IIS

Page 2: 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

Page 3: 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é ha cambiado?

IIS 6.0 no es simplemente una nueva versión

Practicamente se ha rehecho

Cambiosen 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

Page 4: 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 Nueva arquitectura

HTTP.SYS: proceso en modo kernel (núcleo); recibe y encamina peticiones httpWAS: 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 aplicacionesSoporte para múltiples procesos WP

web web appapp

WASWAS W3WP.exeW3WP.exe

web web appapp

HTTP.SYSHTTP.SYS

kern

elke

rnel

W3WP.exeW3WP.exe

web web appapp

W3WP.exeW3WP.exe

web web appapp

Page 5: 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 Proceso de peticiones en el kernel: HTTP.sys

CacheCacheMotor HTTPMotor HTTP

NamespaceNamespaceMapperMapper

Co

laC

ola

Pet

icio

nes

Pet

icio

nes

EnvíoEnvíoRespuestaRespuesta

PeticiónPetición

Worker ProcessWorker Process

HTTP.sysHTTP.sys

HSE_REQ_ENABLE_CACHEHSE_REQ_ENABLE_CACHE

Co

laC

ola

Pet

icio

nes

Pet

icio

nes

Co

laC

ola

Pet

icio

nes

Pet

icio

nes

RespuestaRespuesta

Page 6: 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 Fiabilidad: la arquitectura

Aislamiento total de procesos

uno o más procesos en comunicación directa con el kernel

Independiente de otros procesos

Application PoolsAgrupan sites y aplicaciones

Una cola de peticiones por Application Pool

Web Gardens

Colas gestionadas en modo kernel

HTTP.sysHTTP.sys

WASWAS

Worker Worker ProcessProcess

Filtro ISAPIFiltro ISAPI

ExtensiónExtensiónISAPIISAPI

Worker Worker ProcessProcess

Filtro ISAPIFiltro ISAPI

ExtensiónExtensiónISAPIISAPI

Application PoolApplication Pool Application PoolApplication Pool

Page 7: 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 Application Pools

Podemos tener uno o másCada 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

Page 8: 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 Reciclado periódico de los procesos

Qué esReiniciamos 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é usarloPrevenir que aplicaciones defectuosas afecten al sistema

Refrescar las aplicaciones para aumentar la disponibilidad

Page 9: 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 Arquitectura con autorecuperación

Qué esDiseñada para detectar bloqueos de threads dentro de W3WP.exe

Cómo funcionaW3SVC 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

Page 10: 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 Detección de fallos y recuperación

Detección de fallosW3SVC 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ónSolo se permiten x fallos en y minutos

El pool será detenido si se superan estos valores (error 503 para las peticiones)

Page 11: 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 Fiabilidad: gestión de procesos

HTTP.SYSHTTP.SYSHTTP.SYSHTTP.SYS

Web Web AdminAdminServiceService

(WAS)WAS)

Web Web AdminAdminServiceService

(WAS)WAS)ExtensiónExtensión

ISAPIISAPI

Filtro ISAPIFiltro ISAPI

Worker Worker ProcessProcess

ExtensiónExtensiónISAPIISAPI

Filtro ISAPIFiltro ISAPI

Worker Worker ProcessProcess

ExtensiónExtensiónISAPIISAPI

Filtro ISAPIFiltro ISAPI

Worker Worker ProcessProcess

INETINFOINETINFO

metabasemetabaseExtensiónExtensión

ISAPIISAPI

Filtro ISAPIFiltro ISAPI

Worker Worker ProcessProcess

Page 12: 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 Escalabilidad: Dynamic Kernel Caching

Cache

Network Stack

HTTP.SYS

W3WP.EXE (IIS6.0)

ASP.NET/CLR

User Application

UserKernel

Database

GET http://www.acme.com/store/sproketcatalog.aspxGET http://www.acme.com/store/sproketcatalog.aspx

PeticiónPetición RespuestaRespuesta

SinSinCacheCache

ConConCacheCache

Cache

Network Stack

HTTP.SYS

W3WP.EXE (IIS6.0)

ASP.NET/CLR

User Application

UserKernel

Database

PeticiónPetición RespuestaRespuesta

<%@ OutputCache Duration="10" VaryByParam="none" %>

Page 13: 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 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.

RestriccionesSolo se ejecutan peticiones para extensiones permitidas

Solo se sirven ficheros con extensiones conocidasDefinidas en MIMEMAP

Herramientas de línea de comandos limitadas al grupo de administradores

Page 14: 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 Rendimiento

Web GardenApplication pool con más de un Worker Process

Afinidad de procesadorVincular 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!!

Page 15: 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 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

Page 16: 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 Mejoras en la metabase

La metabase almacena la configuración de IIS

XML MetabaseLa metabase ahora se almacena en XML

Existe un histórico de la metabase

Modo EditWhileRunningPermite 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

Page 17: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Servicio SQLPor 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

Page 18: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 19: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Autentificación:

Windows Siempre que sea posible.

SQL ServerVulnerable a la fuerza Bruta

Contraseñas

Tamaño, caracteres, ...

Page 20: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 21: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 22: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Seguridad a Nivel de RedFiltrar puertos

1433 TCP/UDP

1434 TCP/UDP

Page 23: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 24: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

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

Page 25: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 26: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Habilitar registro de logsMediante 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 AgentEn caso de no ser necesario

Page 27: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 28: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 29: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Cifrar los datos que sean posibles dentro de la Base de DatosNo ejecutar SQLServer en el contexto de una cuenta privilegiadaEliminar los procedimientos almacenados que no se utilicen como xp_cmdshell (Permisos)Quitar los permisos débiles de los procedimientos almacenados y dejar sólo saUtilizar alertas para detectar posibles incidencias o ataques

Page 30: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 31: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

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

Page 32: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en SQL Server 2000

Page 33: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Seguridad en la Aplicación

Realizar un parseo adecuado de caracteres:Mediante expresiones regularesValidación de caracteres

PermitidosConsultas con “sa”

Las imprescindiblesCrear una cuenta de usuario con permisos mínimos.

invitadodb

Page 34: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

y ahora…

Fiesta!!!

Page 35: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Recursos de la comunidad

IIS Community Portalhttp://www.microsoft.com/windowsserver2003/community/centers/iis/

Portal de IIShttp://www.microsoft.com/iis

Grupos de noticias de IISmicrosoft.public.inetserver.iismicrosoft.public.inetserver.iis.ftpmicrosoft.public.inetserver.iis.security

Grupos de noticiashttp://www.microsoft.com/communities/newsgroups/default.mspx

Recursos de la comunidadhttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

Grupos de usuarioshttp://www.microsoft.com/communities/usergroups/default.mspx

Page 36: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Lecturas recomendadas

TÍTULOTÍTULO IDIOMAIDIOMA

Microsoft® Windows® Security Microsoft® Windows® Security Resource KitResource Kit

ISBN: 0-7356-1868-2ISBN: 0-7356-1868-2

InglésInglés

Internet Information Services Internet Information Services (IIS) 6.0 Resource Kit(IIS) 6.0 Resource Kit

ISBN: ISBN: 0-7356-1420-20-7356-1420-2

InglésInglés

Page 37: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Al salir de aquí…

Cubrir el formulario de evaluaciónhttp://www.microsoft.com/spain/technet/unimer

Descargar esta presentaciónhttp://www.microsoft.com/spain/technet/justit

Ver otras sesiones sobre seguridadhttp://www.microsoft.com/technet/tcevents/webcasts/default.mspx

Descargar la guía de seguridadWindows 2000

http://www.microsoft.com/technet/security/prodtech/win2000/

Windows Server 2003http://www.microsoft.com/technet/security/prodtech/win2003/

Tomarnos unas cañas juntos!!!

malber
The first link doesn't work
Page 39: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

Preguntas?Preguntas?Comentarios?Comentarios?

[email protected]@udc.es

© 2004 Microsoft Corporation. Todos los derechos reservados.© 2004 Microsoft Corporation. Todos los derechos reservados.Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA, Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA,

EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.

Page 40: Securización Internet Information Services 6.0 y SQL Server 2000 Iván González Vilaboa Microsoft MVP Windows Server - IIS.

© 2004 Microsoft Corporation. Todos los derechos reservados.© 2004 Microsoft Corporation. Todos los derechos reservados.Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA, Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA,

EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.