Asegúr@IT II - Seguridad En Iis7
Upcoming SlideShare
Loading in...5
×
 

Asegúr@IT II - Seguridad En Iis7

on

  • 6,428 views

Diapositivas de la Sesión de Seguridad en IIS 7 utilizadas por David Cervigón en el evento de Asegúr@IT II que se realizó en Barcelona en Abril de 2008.

Diapositivas de la Sesión de Seguridad en IIS 7 utilizadas por David Cervigón en el evento de Asegúr@IT II que se realizó en Barcelona en Abril de 2008.

Statistics

Views

Total Views
6,428
Views on SlideShare
5,710
Embed Views
718

Actions

Likes
0
Downloads
105
Comments
0

6 Embeds 718

http://www.elladodelmal.com 590
http://elladodelmal.blogspot.com 112
http://www.slideshare.net 12
http://webcache.googleusercontent.com 2
http://www.elladodelmal.blogspot.com 1
http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 06/03/09 10:43 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Asegúr@IT II - Seguridad En Iis7 Asegúr@IT II - Seguridad En Iis7 Presentation Transcript

  •  
  • David Cervigón Luna IT Pro Evangelist Microsoft Ibérica http://blogs.technet.com/davidcervigon
  •  
  •  
  •  
  •  
    • Tecnologías utilizadas
    • Metodología de desarrollo
    • Políticas de seguridad
    • Gestión de actualizaciones
    • Autenticación
    • Autorización
    • Auditorias
    • Seguimiento Errores
    • Bases de Datos
    • LDAP
    • Ficheros varios
    Almacén de Datos Aplicación Web Server
    • Usando una estrategia por capas
    • Se incrementa el riesgo de ser detectado para el atacante
    • Se reduce su probabilidad de tener éxito
    Segmentos de Red, IPSec Guardias, Cerraduras, etc. Firewalls, Acceso a Red, Redes de Cuarentena Políticas, Procesos y Concienciación Seguridad Física Fortificación del SO, Autenticación, Parches Fortificación de servicios, antivirus ACLs, cifrado, EFS Documentación, formación Perímetro Red Interna Host Aplicación Datos Seguridad Física Fortificacion del SO, Autenticación, Parches Firewalls, Acceso a Red, Redes de Cuarentena Guardias, Cerraduras, etc. Segmentos de Red, IPSec Fortificación de servicios, antivirus ACLs, cifrado, EFS Documentación, formación Perímetro Red Interna Host Application Datos
    • Arquitectura y Extensibilidad de IIS7
    • Configuración y Administración
    • Características de Seguridad
    • Diagnósticos
    • Consideraciones para las BBDD
  • Envio de Respuestas Log Compresión NTLM Basic Determinar Manejador CGI Static File Autenticación Anon Implementación Monolítica. Instala todo o nada… Extensibilidad del la funcionalidad del servidor solamente a través de ISAPI… ASP.NET PHP ISAPI … …
  •  
  • Envio de repuestas Log Compress NTLM Basic Determine Handler CGI Static File ISAPI Autenticación Anon SendResponse Authentication Authorization ResolveCache ExecuteHandler UpdateCache … … La funcionalidad del servidor se divide en ~ 40 módulos ... Los módulos se enchufan a una pipeline genérica de peticiones Los módulos extienden la funcionalidad del servidor a través de una API pública. … …
    • Implementación basada en ISAPI
    • Sólo ve las peticiones ASP.NET
    • Características duplicadas
    Send Response Log Compress NTLM Basic Determine Handler CGI Static File ISAPI Authentication Anon … … Authentication Forms Windows Map Handler ASPX Trace … … … aspnet_isapi.dll
    • Dos modos
      • Clásico (como ISAPI)
      • Modo Integrado
        • Lo módulos de . NET se enchufan directamente en la pipeline
        • Procesan todas las peticiones
        • Fidelidad total en tiempo de ejecución
    Log Compress Basic Static File ISAPI Anon SendResponse Authentication Authorization ResolveCache ExecuteHandler UpdateCache … … Authentication Forms Windows Map Handler ASPX Trace … … … aspnet_isapi.dll
    • El fichero principal de configuración es ahora applicationHost.config
    • No más ficheros metabase.bin o metabase.xml
    • Permite configurar propiedades de IIS y de ASP.NET en el mismo fichero
    • Construida para ser simple, y con extensibilidad basada en un esquema
      • Podemos usar el fichero con el esquema para ver todas las posibilidades que nos ofrece la configuración:
        • %windir%system32inetsrvconfigschemaIIS_schema.xml
      • El esquema describe:
        • Tipos de propiedades
        • Valores por defecto
        • Validaciones
        • Etc.
      • Nota: Los valores de configuración son “case-sensitive”
  • NET global settings ASP.NET global settings Global settings and location tags .NET Framework Global web.config machine.config IIS 7 applicationHost.config Site Root web.config <system.web> .NET settings .. .. .. <system.webServer> IIS 7 Delegated settings ..
    • Despliegue por XCOPY
      • Replicar la configuración de IIS en applicationHost.config…
      • Replicar la configuración de IIS en los ficheros web.config…
    • La configuración de IIS en los ficheros web.config se puede centralizar en un servidor de ficheros
      • El sistema de ficheros de Vista/Windows Server 2008 proporciona:
        • Client Side Caching (CSC)
        • Caché de disco local
      • Distributed File System Replication (DFSR)
        • Múltiples servidores de ficheros abstraídos en un sólo nombre de carpeta compartida
        • Replicación de contenido
    • Administrar todo el Servidor Web
      • Solo los administradores
      • Casi lo mismo que estar sentado delante del equipo
      • Basada en HTTPS (atraviesa Firewalls)
    • Administrar Sites y Aplicaciones
      • Admins y no-admins
      • Dos tipos de Usuarios no Administradores
        • Usuarios de Windows (o también Grupos)
        • Usuarios del IIS Manager
      • El Administrador decide lo que los usuarios no administradores pueden o no hacer (Delegación de Características)
  •  
    • Diseño modular: Menor superficie de ataque durante la instalación y la ejecución
    • Integración .Net
      • Autenticación por formularios para cualquier tipo de contenido
      • .NET Role and Membership Providers
    • Cambios en el Usuario Anónimo y en el grupo IIS_WPG
    • Aislamiento de Application Pools
      • Sandboxing entre aplicaciones
    • URLAuthorization
      • Controla el acceso a sitios, carpetas o ficheros sin utilizar permisos NTFS
      • Las reglas se almacenan en ficheros .config
    • Request Filtering
      • Reglas del estilo ULScan, que evitan servir URLs
        • Con determinadas cadenas
        • De determinada longitud
        • Determinados ficheros o Paths
      • Errores específicos asociados
      • Las reglas se almacenan en ficheros .config
    • Autenticación y SSL en modo Kernel
      • Negociaciones más rápidas y menos problemáticas
    • La tuberia integrada de ejecución permite autenticación por formularios para cualquier tipo de contenido
    • Permite reutilizar las bases de datos de usuarios existentes condiferentes .NET role/membership providers
        • Ejemplos: Almacenar usuarios en:
          • Active directory o SAM local
          • SQL 2005 Express para usuarios estáticos del site
          • ADAM para usuarios y grupos en una aplicacion PHP
          • Usuarios y grupos en una DB2 del mainframe en una aplicacion ASP.NET
    • IUSR en lugar de IUSR_<servermame>
    • IUSR es “builtin”, no una cuenta local
      • No puede iniciar sesión en el sistema
      • Sin contraseñas de las que preocuparse
      • Mismo SID en todos los Vista/2008
      • Mismas ACLS válidas entre servidores
    • Si se deshabilita, el acceso anónimo todavía funciona
      • Usa la identidad del App Pool (Network Service por defecto)
    • IIS_IUSR reemplaza a IIS_WPG
      • Grupo “Built-in”, no local, SID conocido, ACLs respetadas…
      • Las identidades de los Aplication Pools se agregan automáticamente
    • Por defecto, cada Site se asigna a un Pool diferente
      • Evita que un atacante pueda leer los secretos de la configuración de otro Pool de aplicaciones
      • Tampoco pueden acceder al ApplicationHost.config
    • Cada Pool tiene su propia identidad
      • Network Service por defecto
      • SID Injection: SID único para cada Pool
    • El usuario Anónimo asume la identidad del Pool
    • Funciona de manera automática y transparente, para configuración y operaciones
      • No es necesario manejar las identidades del usuario anónimo
      • La identidad del App pool se une automáticamente al grupo IIS_USR (IIS_WPG)
  • INETINFO.exe metabase ftp, smtp, nntp User mode Kernel mode HTTP.SYS W3SVC SVCHOST.exe W3 Config Mgr W3 Process Mgr W3Core W3WP.exe #1 Application Pool ID: Network Service W3Core W3WP.exe #2 Application Pool ID: Network Service W3Core W3WP.exe #3 Application Pool ID: Network Service ASP.net Apps .Net App Domain .Net App Domain .Net App Domain ASP.net Apps .Net App Domain .Net App Domain .Net App Domain ASP.net Apps .Net App Domain .Net App Domain .Net App Domain
  • #2.config #1.config #3.config IISADMIN metabase ftp, smtp, nntp User mode Kernel mode HTTP.SYS WAS IISCore W3WP.exe #1 Application Pool ID: SidforPool3 IISCore W3WP.exe #2 Application Pool ID: SIDforPool2 IISCore W3WP.exe #3 Application Pool ID: SIDforPool3 ASP.net Apps .Net App Domain .Net App Domain .Net App Domain ASP.net Apps .Net App Domain .Net App Domain .Net App Domain ASP.net Apps .Net App Domain .Net App Domain .Net App Domain modules modules modules Los Application Pools solamente pueden leer su configuración
    • Cada sitio se asigna a un Pool único cuando se crea
    • En tiempo de ejecución:
      • Se “injecta” una SID único para ese Pool en las lista de SIDs del proceso
        • No cambia la identidad del proceso
      • Se crea un fichero de configuración “temporal” que contiene solamente las configuraciones de ese Pool
      • Ese fichero temporal se securiza mediante ACLs que contienen ese SID único
    • Ese SID será el mismo en otros servidores
  • SID Injection AppPool: newPool username: newPoolUser password: <password> LogonUser AccessCheck OK AccessCheck Denied Worker Process (W3WP.EXE) Service Host (SVCHost.EXE) Windows Process Activation Service (WAS) World Wide Web Service (W3SVC) applicationhost.config Token Token NewPool Wwwroot default.htm ACL Otherpool Wwwroot default.htm ACL
    • Deshabilitar el usuario anónimo
      • appcmd set config -section:anonymousAuthentication -userName:&quot;&quot; --password
      • Todo usuario anónimo sucederá como la identidad del proceso
    • Configurar el contenido para que solo pueda ser accedido por el SID del App Pool (con icacls)
      • Solo para contenido local, no funcionará para contenido en UNCs
    • Crear una localización segura para
      • Cache de plantillas ASP
      • Contenido comprimido
      • Crear para ese pool una localizacion para los temporales de ASP.net
        • appcmd set config &quot;Default Web Site&quot; -section:compilation -tempDirectory:%systemdrive%inetpub empaspnettempsite%1 /commit:webroot
  •  
    • Se utiliza para controlar el acceso a sites, carpetas o ficheros sin utilizar NTFS
    • Inspirado en ASP.NET URL Authorization, pero diseñado para administradores
    • Las reglas de autorización de almacenan en los ficheros .config
      • Delegar el control para que se almacenen en el web.config
      • Las reglas de Autorización son entonces portables
      • XCopy mantiene la seguridad
    • Pueden utilizarlo todo tipo de aplicaciones
    • Funciona tanto en modo clásico como integrado
  •  
    • IIS 7 integra reglas al estilo de URLScan
    • Potente característica de seguridad
      • Evitar URLs que contengan “una cierta cadena de caracteres”
      • Bloquear URLs de longitud mayor que “X” caracteres
      • Evitar servir extensiones “.config” o “/bin”
    • Las reglas de almacenan en los ficheros .config
      • Delegar el control para que se almacenen en el web.config
      • Las reglas de filtrado son portables
      • Se trasladan al hacer XCopy
    • Errores HTTP personalizados para seguimiento de URLs rechazadas
  •  
    • Kernel mode SSL
      • Mejor rendimiento
      • Reduce los cambios de contexto a modo usuario
    • Autenticación en modo Kernel
      • Mejor rendimiento
      • Kerberos funciona cuando se utiliza una identidad personalizada del App Pool
        • No se necesita utilizar SETSPN, ya que el acceso al DC sucede con la cuenta de máquina
    • Errores detallados para ofrecer:
        • Acciones para la resolución
        • Líneas de investigación
        • Incluyen secciones de configuración, página, modulo cargado…
        • Solo se envían a Localhost por motivos de seguridad
    • Más detalles en los códigos de error HTTP para identificar la raíz de los problemas
      • Guardados en los logs de IIS
  •  
    • Los entornos de pruebas y desarrollo DEBEN estar separados del entorno de producción
      • “ Chinese Wall”
      • El entorno de pruebas suele ser bastante relajado
      • El entorno de pruebas debe ser representativo del entorno de producción
    • Nunca desarrollar sobre el servidor en producción
      • Los desarrolladores no deben ser DBOs sino DB_DDLAdmin o controladores de un esquema
    • Por defecto: Sin acceso, sin derechos, sin privilegios
    • Poca usabilidad. Es necesario un compromiso
      • Basado en el analisis de riesgos
    • Empezando con las más segura/Controlada
      • Cuenta local dedicada (no el administrador local)
      • Servicio Local (¿la utilizan también otros servicios?)
      • Cuenta de dominio dedicada (no miembro del grupo de administradores locales)
      • Network service (¿la utilizan también otros servicios?)
      • Cuenta local miembro del grupo local de administradores
      • Cuenta de dominio dedicada (no miembro del grupo de administradores locales)
    • NO usar NUNCA:
      • Local System
      • Domain Administrator
    • Utilizar preferiblemente Autenticación de Windows
      • Cuenta con acceso limitado (Mismos principios que para la cuenta de servicios)
      • Network Service Account
      • Si no se pueden usar cuentas de dominio usar cuentas “espejo”
    • En caso de utilizar autenticación de SQL
      • Usar contraseñas fuertes
      • Proteger las comunicaciones (IPSEC, SSL, Certificados)
    • Cifrar las cadenas de conexión en los .config
  •  
    • System tables implemented as views: catalog views
    • Metadata is secured by default
      • Minimal permissions to public
      • Catalog views are row level secured
    • Need to be owner or have some permission on object to see it in catalog view
      • SA can see everything in server
      • DBO can see everything in database
    • New permission to allow viewing of metadata
      • VIEW DEFINITON
      • Applicable at object level, schema level, database, and server level
    • Multiples permisos, varios ámbitos
    • Elección de la granularidad de los permisos y del ámbito
    • Ámbitos
      • Server: Ejemplo: ALTER ANY LINKED SERVER
      • Database: Ejemplo: CREATE TABLE
      • Schema: Ejemplo: ALTER
      • Object: Ejemplo: SELECT
    • Granularidad de permisos:
      • Ejemplo: ALTER permission on an object
      • Ejemplo: ALTER TRACE permission
    • Una Base de Datos puede tener múltiples Esquemas
    • Cada Esquema tiene un owner principal (usuario o role)
    • Cada usuario tiene asociado un Esquema por defecto
    • Los objetos de la Base de Datos viven en esquemas
    • Útil para
      • Aislamiento, Agregación
      • Flexibilidad
      • Separar agrupamiento administrativo del acceso de las aplicaciones
      • Cambiar el owner sin actualizar las aplicaciones
    Owns Has default schema Owns Owns Schema3 Database Role1 Schema1 Schema2 SP1 Fn1 Tab1 User1 Approle1
  •  
    • Geeks.ms
      • http://geeks.ms/blogs/iis
  • © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  •