seguridad en sql server 2005 para desarrolladores

24
Seguridad en SQL Server 2005 para Desarrolladores

Upload: sarah-dejesus

Post on 15-Mar-2016

46 views

Category:

Documents


2 download

DESCRIPTION

Seguridad en SQL Server 2005 para Desarrolladores. Agenda. SQL y la Seguridad Separación de Usuarios y Esquemas Contexto de Ejecución Cifrado de Datos Integración de CLR. SQL y la Seguridad. Seguridad por Defecto Principio de Menor privilegio. Seguridad por defecto. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Seguridad en SQL Server 2005 para Desarrolladores

Seguridad en SQL Server 2005 para Desarrolladores

Page 2: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

AgendaSQL y la SeguridadSQL y la SeguridadSeparación de Usuarios y EsquemasContexto de EjecuciónCifrado de DatosIntegración de CLR

Page 3: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

SQL y la SeguridadSeguridad por DefectoPrincipio de Menor privilegio

Page 4: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Seguridad por defectoParte de la iniciativa Trustworthy Servicios y Características deshabilitados de forma predeterminadaNueva herramienta para gestionarlo– Surface Area Configuration Tool

Page 5: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Principio del Menor PrivilegioPor defecto: Sin acceso, sin derechos, sin permisosMayor Granularidad de Permisos en SQL Server 2005– Ej: CREATE TRACE, ALTER TRACESeguridad en Metadatos– Solo veo los objetos a los que puedo

acceder

Page 6: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

AgendaSQL y la SeguridadSeparación de Usuarios y Separación de Usuarios y EsquemasEsquemasContexto de EjecuciónCifrado de DatosIntegración de CLR

Page 7: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Separación de Usuarios y Esquemas

¿Qué son los esquemas?Beneficios de los esquemasEsquema Predeterminado

Page 8: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

¿Qué son los esquemas?Espacio de Nombres para objetos de Base de Datos

MaestrosProductos

(Server1.AdventureWorks.maestros.Productos)

VentasPedidos

(Server1.AdventureWorks.SalesData.Orders)

Page 9: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Beneficios de los EsquemasLos objetos están agrupados en el esquemaPodemos administrar usuarios (borrar, cambiar nombre) sin modificar el esquema de nombresPodemos asignar permisos a nivel de esquema

Page 10: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Esquema Predeterminado

Productos

Pedidos

SELECT * FROM Productos

SELECT * FROM Pedidos

SELECT * FROM Productos

SELECT * FROM Pedidos

Fernando(no default schema)

Antonio(Default schema = ventas)

Resolución de Nombres

ventas

dbo

Page 11: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

AgendaSQL y la SeguridadSeparación de Usuarios y EsquemasContexto de EjecuciónContexto de EjecuciónCifrado de DatosIntegración de CLR

Page 12: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Contexto de Ejecución¿Qué es el Contexto de Ejecución?Cambios de Contexto

Page 13: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

¿Qué es el Contexto de Ejecución?

Representado por dos testigos de seguridad:– Inicio de Sesión y Usuario– Existirán tantos testigos de usuario como

bases de datos acceda el usuariosys.login_token / sys.user_token

Page 14: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Cambios de ContextoPodemos impersonalizar al usuario con EXECUTE AS– Nivel

• LOGIN• USER

– Tipo• CALLER• SELF• OWNER• Usuario

Duración– Se borra la sesión– Se completa el batch– Se cambia el contexto– Se revierte el contexto (REVERT)

Page 15: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

AgendaSQL y la SeguridadSeparación de Usuarios y EsquemasContexto de EjecuciónCifrado de DatosCifrado de DatosIntegración de CLR

Page 16: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Cifrado de DatosJerarquía de CifradoClaves MaestrasEscenarios

Page 17: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Jerarquía de Cifrado

Page 18: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Claves MaestrasServicio– Clave Simétrica creada para el Servicio de SQL Server– Utilizada para cifrar:

• Contraseñas de servidores vinculados• Cadenas de Conexión• Credenciales de cuentas• Todas las claves de Base de Datos

Base de Datos– Clave Simétrica– Propósito:

• Cifrar Certificados y Claves dentro de la BBDD si no especificamos un mecanismo

– Cifrada con la Clave de Servicio y almacenada en la master (para abrir automáticamente la clave)

– Se almacena en la propia BBDD cifrada con contraseña

Page 19: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

EscenariosBuenas Prácticas– Cifrar datos utilizando

claves simétricas– Utilizar certificados de

orígenes de confianza– Utilizar certificados

para asegurar comunicaciones

• Service Broker• Database Mirroring• HTTP Endpoints

Intentar Evitar– Cifrar utilizando

claves asimétricas y certificados (Rendimiento)

– Cifrar todos los datos• No se pueden indexar• No se pueden utilizar

en joins

Page 20: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

AgendaSQL y la SeguridadSeparación de Usuarios y EsquemasContexto de EjecuciónCifrado de DatosIntegración de CLRIntegración de CLR

Page 21: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Integración de CLR¿Será mi base de datos menos segura?Seguridad de Acceso a CódigoBuenas Prácticas

Page 22: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

¿Será mi Base de Datos menos segura?

Integración de CLR deshabilitada por defectoPodemos asignar tres niveles de seguridad en CREATE ASSEMBLY– SAFE– EXTERNAL ACCESS– UNSAFE

Para External Access y Unsafe es necesario habilitar la propiedad de BBDD Trusworthy y asignar el permiso al Inicio de SesiónPodemos asignar permisos a CREATE ASSEMBLYEl propietario puede asignar permiso de REFERENCE a un ensamblado

Page 23: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Seguridad de Acceso a Código (CAS)

SAFE EXTERNAL_ACCESS UNSAFE

Permisos CAS Ejecución Ejecución + acceso a recursos

externos

Sin restricciones

(P/Invoke)Acceso datos locales

Si Si Si

Restricciones modelo programación

Si Si No

Comprobación requerida

Si Si No

Garantiza Seguridad / Fiabilidad

Fiabilidad &

Seguridad

Fiabilidad Ninguno

Page 24: Seguridad en SQL Server 2005 para Desarrolladores

© 2006 Solid Quality Learning

Buenas PrácticasUtilizar el menor permiso necesarioEXTERNAL ACCESS utiliza la cuenta de servicio de SQL Server– Solo para inicios de sesión de confianza– Utilizar impersonalización

Aplicar técnicas de revisión de código para ensamblados EXTERNAL_ACCESS y UNSAFESi se necesitan estos permisos intentar separar el código en un ensamblado separadoExponer solo los ensamblados necesarios