Seguridad en SQL Server 2005 para Desarrolladores
-
Upload
sarah-dejesus -
Category
Documents
-
view
42 -
download
2
description
Transcript of Seguridad en SQL Server 2005 para Desarrolladores
![Page 1: Seguridad en SQL Server 2005 para Desarrolladores](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/1.jpg)
Seguridad en SQL Server 2005 para Desarrolladores
![Page 2: Seguridad en SQL Server 2005 para Desarrolladores](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/2.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/3.jpg)
© 2006 Solid Quality Learning
SQL y la SeguridadSeguridad por DefectoPrincipio de Menor privilegio
![Page 4: Seguridad en SQL Server 2005 para Desarrolladores](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/4.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/5.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/6.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/7.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/8.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/9.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/10.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/11.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/12.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/13.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/14.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/15.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/16.jpg)
© 2006 Solid Quality Learning
Cifrado de DatosJerarquía de CifradoClaves MaestrasEscenarios
![Page 17: Seguridad en SQL Server 2005 para Desarrolladores](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/17.jpg)
© 2006 Solid Quality Learning
Jerarquía de Cifrado
![Page 18: Seguridad en SQL Server 2005 para Desarrolladores](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/18.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/19.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/20.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/21.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/22.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/23.jpg)
© 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](https://reader034.fdocument.pub/reader034/viewer/2022042704/56813691550346895d9e1b4e/html5/thumbnails/24.jpg)
© 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