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

Post on 03-Jan-2015

11 views 3 download

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

Securización Internet Information Services 6.0

y SQL Server 2000

Iván González VilaboaMicrosoft MVPWindows 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

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

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

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

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

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

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

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

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)

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

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" %>

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

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!!

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

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

Seguridad en SQL Server 2000

Seguridad en SQL Server 2000

Autentificación:

Windows Siempre que sea posible.

SQL ServerVulnerable 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 RedFiltrar 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 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

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

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 regularesValidación de caracteres

PermitidosConsultas con “sa”

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

invitadodb

y ahora…

Fiesta!!!

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

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

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

Preguntas?Preguntas?Comentarios?Comentarios?

ivan@udc.esivan@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.

© 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.