Fernando Punzón Ortiz [email protected] Código: HOL-SQL 08 Administración y seguridad.

73
Fernando Punzón Ortiz [email protected] Código: HOL-SQL 08 Administración y seguridad

Transcript of Fernando Punzón Ortiz [email protected] Código: HOL-SQL 08 Administración y seguridad.

Page 1: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Fernando Punzón Ortiz

[email protected]

Código: HOL-SQL 08

Administración y seguridad

Page 2: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 3: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 4: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

SQL Server Management Studio

• Entorno integrado para el acceso, configuración y administración de todos los componentes de SQL Server 2005

• Combina las capacidades de las siguientes herramientas de versiones anteriores:– Enterprise Manager– Query Analyzer– Analysis Manager,

Page 5: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Características

• Gestión completa de:– bases de datos relacionales– bases de datos de Analysis Services – Reporting Services– SSIS

• Herramientas visuales para generar:– Transact-SQL– XMLA– MDX– XQuery

Page 6: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Registro de un servidor

Page 7: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Object Explorer

• Crear y administrar bases de datos y objetos.

• Ver y modificar propiedades de bases de datos .

• Creación de scripts.• Creación de orígenes de datos• Gestión de permisos y privilegios• Configuración de la replicación• Creación de paquetes *.dtsx.• Ver archivos de log• Administración del agente SQL

Page 8: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Transact-SQL en SQL Server Management Studio

• Demo

Page 9: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

SQL Server Management Studio Solutions

• Útil para agrupar consultas y conexiones almacenándolas y permitiendo su ejecución posterior.

• Una solución es una colección de uno o varios proyectos de SQL Server Management Studio projects.

• Un proyecto de Server Management Studio es un conjunto de conexiones, definiciones y consultas, que aportan el modo correcto de organizar consultas y conexiones relacionadas

Page 10: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 11: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Computer Manager

Page 12: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 13: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Definición sqlcmd

• Ofrece la posibilidad de ejecutar instrucciones Transact-SQL desde la línea de comandos y programar batch jobs.

• Utiliza OLE DB, las versiones previas usaban ODBC o DB-Library.

• Soporte para osql aunque no estará soportado en versiones futuras

• Mejoras– Posibilidad de usar variables– Conexion dinamica a servidores– Dedicated Administrator Connection (DAC), permite a un dba

conectarse al servidor para resolver problemas

Page 14: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Usando sqlcmd

Page 15: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

sqlcmd Command Syntax

Page 16: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

sqlcmd Command Syntax

Page 17: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

sqlcmd Command-Line Switches

Page 18: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

sqlcmd Command-Line Switches

Page 19: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Ejecución de Scripts empleando sqlcmd

Page 20: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Uso de variables con sqlcmd

• Posibilidad de crear scripts genericos que pueden ejecutarse contra distintas BBDD y servidores

• A parte de las variables de entorno usadas con el modificador –v, pueden definirse variables dentro de los scripts con el modificador :setvar

Page 21: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Dedicated Administrator Connection (DAC)

• Permite la conexión incluso cuando el servidor se cuelga o no está disponible.

• No podrá usarse cuando el servicio SQL Server se ha pausad, o detenido

• Se permite el uso de un único DAC

Page 22: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 23: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

SQL Management Objects• API que permite automatizar tareas administrativas ya que reduce

la posibilidad de errores e inconsistencias.• Muy operativo cuando existen múltiples servidores e instancias • SMO implementa un ensamblado .NET

a(Microsoft.SqlServer.Smo.dll). • Define una jerarquía de objetos así como su propio modelo de

objetos.• Permite generar aplicaciones que para realizar tareas

administrativas:– Recuperacion y modificacion de configuraciones– Creacion de nuevas BBDD– Backups– Gestión de trabajos.

Page 24: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

SQL Management Objects

Fuente: http://www.sqldbatips.com/showarticle.asp?ID=37

Copia de seguridad utilizando SMO con diversos lenguajes (VB.Net, C#, Vbscript)

Page 25: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 26: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Mejoras en el profiler

• Aporta mayor información sobre rendimiento y proceso de BBDD que en versiones anteriores

• Captura trazas y eventos enviados por SQL Server 2005 Analysis Services.

• Almacenar resultados en XML

Page 27: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Profiler

Page 28: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Profiler

Page 29: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 30: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Características• Se desencadenan

cuando un usuario ejecuta una operación de definion DDL, p.e CREATE TABLE, DROP TRIGGER, o UPDATE STATISTICS.

Ambito a nivel de base de datos

Ambito a nivel de servidor

Page 31: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 32: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Consultas a Metadatos estáticos

• Aportan información sobre objetos de base de datos, tablas, procedimientos almacenados, restricciones.

Page 33: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Consultas a Metadatos dinámicas

Page 34: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 35: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Modelo de seguridad de SQL Server

Establecer credenciales de inicio de sesiónEstablecer credenciales de inicio de sesión

Conectar al PC de SQL ServerConectar al PC de SQL Server

Verificar los permisos para todas las accionesVerificar los permisos para todas las acciones

Solicitud de conexión de red / protocolo de enlace de preinicio de sesiónSolicitud de conexión de red / protocolo de enlace de preinicio de sesión

Solicitud de autenticación de inicio de sesión a SQL ServerSolicitud de autenticación de inicio de sesión a SQL Server

Cambio a una base de datos y autorización de accesoCambio a una base de datos y autorización de acceso

Intento para realizar alguna acciónIntento para realizar alguna acción

Establecer un contexto de base de datosEstablecer un contexto de base de datos

Page 36: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Aplicación de la política de contraseñas

• Aplicación de lo siguiente en los inicios de sesión– Fuerza de la contraseña– Expiración de la contraseña– Cierres de cuenta

• Sigue la política local de contraseña NT– Da soporte consistente a las políticas empresariales en toda la

compañía• Enfoque

– La nueva política de contraseñas verifica la API en .NET Server– Invocado durante la autenticación, establece y reestablece la

contraseña• En el servidor Win2K

– La API no está disponible– Sólo da soporte a la complejidad de contraseña nativa de SQL

Server

Page 37: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Política de contraseñas para los inicios de sesión

• Durante la autenticación– Cierre de la cuenta en caso del ataque

de fuerza bruta– Restricciones de vencimiento de contraseña –

si se establece la expiración• Establecimiento o cambio de contraseña

– Se aplica la complejidad de contraseña y se verifica el historial

• Soporte del lado del cliente– Permite el cambio de contraseña en el inicio de sesión,

similar a Windows• Capacidad para deshabilitar los inicios de sesión

rápidamente

Page 38: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Fortalecer la autenticación de SQL

• Canal más fuerte para el protocolo de autenticación en el inicio de sesión estándar de SQL– El canal está encriptado utilizando certificados

generados por SQL– No se necesita la carga de un certificado SSL– Similar a la implementación actual de SSL

• Mecanismo predeterminado para los inicios de sesión estándar SQL en los clientes SQL Server 2005 que se comunican con un servidor SQL Server 2005

• Transparente a las aplicaciones; no requiere un cambio de aplicación

• Soporte para la autenticación bajo el viejo estilo para los clientes con un nivel menor

Page 39: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Mejoras de seguridad en SQL Server 2005

• Password policy• Ámbitos jerárquicos de seguridad

– principals, asegurables y permissions

• Espacios de nombres independientes del usuario, organizados por schemas.

• Visibilidad limitada de los metadatos.• Contexto de ejecución

– Posibilidad de especificar en base a que cuenta de usuario se ejecutará un objeto

Page 40: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Arquitectura de seguridad en SQL Server 2005

• Principals– Cuentas de seguridad que pueden acceder al sistema

• Asegurables – Recursos del sistema

• Permissions – Permiten realizar una acción en un asegurable

Page 41: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Principals

• A nivel de windows – Grupos de Windows,

cuentas de dominio y cuentas locales de usuario

• Sql Server

• Base de datos

Page 42: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Asegurables

• Server– Logins– HTTP endpoints– Certificates– Databases

• Servicios• Assemblies• and XML schemas.• Schema

– Tablas– Vistas– procedimientos

Page 43: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Permisos

• Se utilizan para permitir el acceso a los Asegurables

• GRANT, REVOKE y DENY establecen las acciones que los principales pueden realizar en los Asegurables

• Nuevos permisos en función de los nuevos asegurables

• Los permisos establecidos en un ámbito se heredan a los ámbitos más bajos

Page 44: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Resumen del sistema

Page 45: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Administración de logins

• CREATE LOGIN • sp_addlogin

• sp_grantlogin

Server login password policies

Page 46: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Separación del esquema de usuarios

• Separación de temas principales y esquemas– Principal

• Entidades contra las cuales los objetos están asegurados• En vivo en la vista sys.database_principals

– Esquema• Contenedor de objetos; tercera parte de un nombre de 4 partes• En vivo en la vista de sys.schemas

• Noción del Esquema por predeterminación– Propiedad del rol de la aplicación o del usuario– Utilizado en la resolución del nombre; buscar algoritmos por objetos– Mantenimiento en sys.database_principals

• Nueva DDL para usuario y esquemas– CREAR/ALTERAR/colocar para USUARIO, ROL y ESQUEMA

• Colocar al usuario no requiere la reescritura de la aplicación

Page 47: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Schemas• Organizan las bases de datos en espacios de nombres• Por defecto una base de datos contiene un usuario denominado dbo

que represente al propietario de la base de datos • La base de datos también incluye un único schema denominado

también dbo.• Se pueden generar multiples schemas en la base de datos para

organizar logicamente objetos en distintos espacios de nombre

Page 48: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Esquemas predeterminados

• Se utiliza para propósitos de resolución de nombres– No todos los usuarios necesitan poseer esquemas

• Da la capacidad para compartir la búsqueda de resolución de nombres entre varios usuarios– El esquema DBO no necesita ser el único esquema compartido, desde la

perspectiva de búsqueda de nombre• Utilidad

– Crear objetos garantizados al hacer búsquedas de nombre de cada contexto, los objetos no necesitan ser creados en un esquema DBO.

• Al tener estos contextos apuntando a otro esquema como uno predeterminado.

– Permitir la creación de los objetos en el esquema DBO podría crear riesgos a través de la cadena de propiedad.

• Esto se mitiga utilizando esquemas “con menores privilegios” como el esquema predeterminado

• ‘menores privilegios’: Son propiedad de una cuenta con menores privilegios

Page 49: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Separación del esquema de usuarios

• La base de datos puede contenervarios esquemas

• Cada esquema tiene un propietario principal – usuario o rol

• ALTERAR o CONTROLAR el esquema Cada usuario tiene un esquema predeterminado para la resolución de nombre

• La mayoría de los objetos de base de datos están en vivo en los esquemas

• El esquema de creación interior del objeto requiere CREAR PERMISO YALTERAR o CONTROLAR el permiso en el esquema– Ejemplo: La creación de la tabla en

el esquema requiere un permiso para CREAR TABLA y la propiedad del esquema o.

• La cadena de propiedad todavía está basada en propietarios, no en esquemas

Rol1 Usuari 1

Posee

Tiene un esquema predeter-minado

Posee

Approle1

Posee

Esquema1

Esquema2

Esquema3SP1Fn1

Pestaña1

Base de datos

Page 50: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Creación de Schemas

Page 51: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Contexto de ejecución de módulos• Ejecutar COMO AUTOR DE LA LLAMADA

– Las instrucciones se ejecutan de inmediato al contexto que llama– Comportamiento predeterminado– Utilizar cuando el permiso del autor de la llamada necesita verificarse o

cuando es suficiente la cadena de propiedad• Ejecute COMO 'Nombre de usuario'

– Las instrucciones se ejecutan como el nombre de usuario especificado– Los permisos suplantados requeridos por la especificación del usuario

• Ejecutar COMO UNO MISMO– Las instrucciones se ejecutan como la persona que especifica la

ejecución, como una cláusula para el módulo.– Son útiles en escenarios de aplicación en donde el contexto de la

llamada puede cambiar• Ejecutar COMO PROPIETARIO

– Las instrucciones se ejecutan como el propietario actual del módulo.– Los privilegios de suplantar se requieren del propietario en un tiempo

establecido– Al cambio de propiedad, el contexto es el nuevo propietario

Page 52: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Utilizar Ejecutar como para crear depósitos de permiso

• Escenario:– El administrador de la base de datos quiere delegar la habilidad

para truncar un conjunto de tablas cada noche• Problema:

– Truncar no es un permiso otorgable– Lo más cerca de cubrir el permiso es ALTERAR, pero es

demasiado alto y proporciona otra capacidad• Solución: Ejecutar como al rescate

– Crear un proceso que trunca la tabla– Márquelo para ejecutar como un usuario con permisos de

ALTERACIÓN– Otorgue permisos de ejecución al usuario objetivo

• Resultado:– ¡Acaba de truncar un permiso otorgable!

Page 53: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 54: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Control granular de permisos

• Más permisos: en enfoques múltiples

– Servidor, base de datos, esquema, objeto, principio

• Principio de los menores privilegios

– Asignar sólo los permisos requeridos para realizar un acción

– Los permisos granulares permiten que

• No se requiera una membresía de rolpara realizar acciones

• Se agreguen muchos de los nuevos verbos de permisos para lograr un control granular

– Los roles fijos de SQL 2000 todavía cuentan con soporte

• Vistas de catálogo

– Permisos de base de datos en vivo en la vista sys.database_permissions

– Permisos de servidor en vivo en la vista de sys.Server_permissions

Page 55: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Estados de permisos

• Tres estados de permiso– Otorgar da un derecho– Denegar niega explícitamente un derecho– Revocar quita un otorgamiento o

negación existente

OtorgarOtorgar

Revocar [denegar]Revocar [denegar]

NegarNegar

DENEGARDENEGAR

RevocarRevocar

OtorgarOtorgar

- +

Page 56: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Ambitos• Server scope

– La asignación de permisos debe hacerse en master– Permisos especificos para cada Asegurable

• Database – Permite asignar permisos a un rol personalizado– Permite a los principales ejecutar tareas en la base de datos– Los permisos deben asignarse en la base de datos que contiene

al Asegurable al que se le aplican los permisos• Schema

– Utilizados para agrupar objetos de BBDD• Herencia de permisos

Page 57: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Esquema general de permisos

• Poseedor del otorgamiento– Permisos de nivel de servidor otorgables a inicios de sesión– Los permisos otorgables al nivel de base de datos para los

usuarios/bases de datos/roles de aplicación/rol• Asegurable

– Entidad que se asegurará– Ejemplo: Tablas, ensambles, bases de datos,

servidor, etc. • Los mismos permisos pueden estar en varios enfoques

– El CONTROL de ejemplo en el nivel de esquema y el CONTROL en la tabla dentro de un esquema

• DENEGAR un nivel siempre tiene preferencia

Page 58: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Esquema general de permisos• La mayoria de los Asegurables tiene los siguientes permisos

– CONTROL– ALTER

• Posibilidad de cambiar permisos del Asegurable.• Posibilidad de CREATE/DROP/ALTER subentidades• P.e.:El permiso ALTER en un schema permite modificar el

nombre del schema y modificar tablas vistas, etcdentro del schema

– ALTER ANY ‘X’• Modificar cualquier objeto de tipo X• Example: ALTER ANY ASSEMBLY

– TAKE OWNERSHIP

Page 59: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Gestión de permisos a nivel de servidor

Page 60: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Agenda

• Utilización de Server Management Studio• Uso de Computer Manager• Utilidad sqlcmd• SQL Management Objects (SMO)• SQL Profiler • DDL Triggers• Vistas de Metadatos• Seguridad en SQL Server 2005• Gestión de permisos• Gestión de Certificados

Page 61: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Escenarios

• Sql service broker

• Código seguro

• Datos

Page 62: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Soporte de encriptación dentro de DB

Conceptos básicos• Integraciones de encriptación y desencriptación para soporte

de encriptación– ¿Integraciones de encriptación? Encripta cleartext y retorna

ciphertext• EncryptByKey()• EncryptByCert()• EncryptByPassphrase()

– ¿Integraciones de desencriptación? Hace lo contrario• Claves y certificados simétricos

– Utilizados para encriptación/desencriptación– Entidades dentro de SQL Server– Soporte para la creación y almacenamiento en SQL

• Claves simétricas y claves privadas siempre almacenadas y encriptadas en SQL

• Opciones de administración claves:– Las aplicaciones/usuarios pueden administrar la clave

(responsable de la administración de contraseña)– La instancia SQL puede poseer la administración de claves

Page 63: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Claves simétricas• Entidades dentro de la base de datos

– CREAR DDL DE CLAVE SIMÉTRICA• Utilizada en las integraciones para encriptación y desencriptación• Las claves siempre se almacenan encriptadas o en estado “cerrado”• El uso de la clave requiere “abrir” la clave

– ABRIR LA DDL DE CLAVE– Involucra la desencriptación de la clave– El conocimiento del mecanismo utilizado para encriptar la clave

requerida• Una vez “abiertas”, las claves se pueden utilizar hasta que se “cierran”

o la sesiones se terminan• Todas las claves se encriptan en la memoria• Vistas de catálogos

– Sys.symmetric_keys– Sys.Open_keys

Page 64: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Certificados

• Entidades dentro de la base de datos– CREE EL CERTIFICADO DDL

• Se puede cargar a SQL Server – La clave privada es opcional– Se requiere si se necesita firmar, desencriptar o autenticar

• Se puede crear en SQL Server– SQL Server genera los certificados

• Soporte para “colocar” los certificados y claves privadas• Las claves privadas siempre se almacenan encriptadas• Se requieren para:

– Agente de servicios: Integridad y confidencialidad de autenticación y mensajes

– Soporte de encriptación– Asegurar la autenticación SQL de manera nativa– Firma de módulo

Page 65: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Clave maestra de la base de datos

• Una clave que es específica para la base de datos• Se utiliza para asegurar las claves privadas de certificado

dentro de la base de datos• Creada explícitamente por el propietario de la base de datos• Soporte para regeneración y recuperación

– ALTERAR LA DLL DE LA CLAVE MAESTRA– COLOCAR/CARGAR LA DDL DE LA CLAVE MAESTRA

• Siempre asegurada utilizando la contraseña del usuario– Se almacena en la base de datos

• Se puede asegurar utilizando la Clave maestra de servicio– Se utiliza cuando SQL Server hace la administración de

clave• No depende de la contraseña del usuario para obtener la

clave– Se almacena en la tabla sysdatabases

Page 66: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Clave maestra de servicio

• Clave específica para la instancia• Se utiliza para asegurar los datos del sistema

– Contraseñas de servidor vinculadas– Cadenas de conexiones– Claves maestras de la base de datos– Credenciales de cuenta correlacionadas

• Se crean bajo la instalación• Soporte para regeneración y recuperación

– ALTERAR LA DDL DE LA CLAVE MAESTRA DEL SERVICIO

– COLOCAR/CARGAR LA DDL DE LA CLAVE DEL SERVICIO MAESTRO

• Asegurado utilizando DPAPI– Las credenciales de las cuentas del servicio

Page 67: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Gestión de certificados

• Creación

• Exportación

• Borrado

Page 68: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Sintaxis CREATE CERTIFICATE

Page 69: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Iniciativas de seguridad de SQL Server 2005

• Reducción en el área de superficie– Más opciones de instalación– Superficie de ataque minimizada: Las funciones requieren una

configuración explícita• Mejoras a la implementación

– Integración con el marco de trabajo de Windows Update– Microsoft Update

• Criterios comunes– La certificación se dirige a EAL4+ alrededor de RTM

• Herramientas de seguridad– Inversiones MBSA continuas

• Capacidad para conectarse y una integración más cercana con Microsoft Update

• Enfoque de la documentación– Código seguro en todas las muestras– Enfoque de mejor práctica y solidificación

Page 70: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Procesos de seguridad de SQL Server 2005

• Capacitación de seguridad para cada miembro del equipo• Cada componente / función pasa por análisis de amenazas• La seguridad revisa parte de cada análisis de código

– Listas de verificación de seguridad en su lugar• Pruebas mejoradas

– Pruebas enfocadas en la penetración– Pruebas basadas en escenario– Pruebas de bajos privilegios

• Soporte a herramientas automatizadas– PREFIX y PREFAST– FXCOP– Opciones de compilación /GS, SAFESEH– Soporte de nivel de sistema operativo NOEXECUTE

Page 71: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Próximas Acciones

• 17/09/2005. HOL – Windows Server 2003. IPSec• 18/09/2005. Evento – Windows Update Services• 20/10/2005. Contramedidas Hacker.• 21/10/2005: Gira Seguridad Technet.• 17/09/2005. HOL – Windows Server 2003. IPSec• 18/09/2005. Evento – Windows Update Services• 20/10/2005. Contramedidas Hacker.• 21/10/2005: Gira Seguridad Technet.• 20/10/2005. Contramedidas Hacker.• 21/10/2005: Gira Seguridad Technet.

Page 72: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Boletín quincenal TechNews

Page 73: Fernando Punzón Ortiz fpunzon@informatica64.com Código: HOL-SQL 08 Administración y seguridad.

Contactos

• Informática 64– http://www.informatica64.com– [email protected]– +34 91 665 99 98

• Profesor– [email protected]