seguridad en sql server 2005 para desarrolladores

Post on 15-Mar-2016

46 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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

© 2006 Solid Quality Learning

SQL y la SeguridadSeguridad por DefectoPrincipio de Menor privilegio

© 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

© 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

© 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

© 2006 Solid Quality Learning

Separación de Usuarios y Esquemas

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

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

© 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

© 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

© 2006 Solid Quality Learning

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

© 2006 Solid Quality Learning

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

© 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

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

© 2006 Solid Quality Learning

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

© 2006 Solid Quality Learning

Cifrado de DatosJerarquía de CifradoClaves MaestrasEscenarios

© 2006 Solid Quality Learning

Jerarquía de Cifrado

© 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

© 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

© 2006 Solid Quality Learning

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

© 2006 Solid Quality Learning

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

© 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

© 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

© 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

top related