22
Seguridad en SQL Server Seguridad en SQL Server 2005 2005 Hector Minaya, MCSD, MCT [email protected]

Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT [email protected]

Embed Size (px)

Citation preview

Page 1: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Seguridad en SQL Server Seguridad en SQL Server 20052005Hector Minaya, MCSD, [email protected]

Page 2: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Autenticación & AutorizaciónAutenticación & AutorizaciónAutenticación & AutorizaciónAutenticación & Autorización

Usuarios & SchemasUsuarios & SchemasUsuarios & SchemasUsuarios & Schemas

Seguridad para Seguridad para DesarrolladoresDesarrolladoresSeguridad para Seguridad para DesarrolladoresDesarrolladores

Page 3: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Terminología de SeguridadTerminología de Seguridad

Principal: individuos, grupos y procesos que pueden solicitar recursos de un servidor SQL.

Securable (asegurable): los recursos a los cuales el sistema de autorización de SQL Server le regula el acceso.

Page 4: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

SQL Server define 4 conceptos SQL Server define 4 conceptos básicos de Principalsbásicos de Principals

Login de SQL Server Usuario de la Base de datos Role de la BD Role de una aplicación

Page 5: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Login de SQL ServerLogin de SQL Server

Un login es la habilidad de utilizar una instancia del Servidor SQL

Esta asociado con un usuario de Windows o con un usuario de SQL

Son autenticados contra SQL Server Por defecto tienen acceso a la base de datos

“default” Algunos grupos de Windows tienen logins

preestablecidos.

Page 6: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Usuarios & RolesUsuarios & Roles

Un usuario es un principal de una base de datos en particular.

Los Logins son asignados a los usuarios Los grants se le hacen a los usuarios. A los usuarios se le asignan sus propios schemas.

Los usuarios pueden pertenecer a Roles. Todos los usuarios son miembros del Role “Public” El login “sa” esta asignado al usuario dbo en todas las

base de datos.

Page 7: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

RolesRoles

Los Roles pueden existir a nivel de instancia o base de datos.

A nivel de Instancia Los logins pueden ser otorgados roles llamados

“server roles”. No se pueden crear Roles nuevos

A nivel de Base de Datos Los usuarios de base de datos pueden ser

otorgados roles. Se pueden crear roles nuevos.

Page 8: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Role de una AplicaciónRole de una Aplicación

Un role de aplicación sirve para asignarle permisos a una aplicación:

Tiene un password No contiene usuarios

Page 9: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

En el Servidor & BD Servidor Login de SQL Server Usuario de SQL Server Roles de la BD Roles de Aplicaciones Assemblies Servicios Fulltext Catalog Eventos DDL Schema

En un Schema Tablas Vistas Funciones Procedimientos Reglas Sinónimos Agregados

Ejemplos de Securables Ejemplos de Securables (asegurables) (asegurables)

Page 10: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net
Page 11: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

¿Quien Soy?

¿Soy miembrode Grupos o Roles?

¿Quien me verifico?

ID PrimarioID Primario

ID(s) ID(s) SecundariosSecundarios

AuthenticatorAuthenticator

AutenticaciónAutenticación

Que es Autenticación? Es básicamente el proceso de determinar que alguien es

realmente quien dice ser.

Page 12: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Mejoras en la Autenticación sobre Mejoras en la Autenticación sobre SQL2000SQL2000

La información de Login no se envía como texto plano a través de la red.

La nueva política para los passwords esta activada por default. Esta política incluye:

Complejidad de passwords. No mas passwords como: “sa”, “password”, “Admin”, “Administrator”, “sysadmin” o “”

Maneja el bloqueo de las cuentas en base a intentos fallidos

Expiración de passwords

Page 13: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

DEMODEMO

Page 14: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

SchemasSchemas

Schemas son contenedores para objetos de base de datos.

Un esquema le puede pertenecer a un usuario, role o roleapp

Si el usuario no tiene un schema asignado se utiliza el schema “DBO”.

A diferencia de SQL 2000 (y anterior) múltiples usuarios pueden ser colocados en un schema.

Page 15: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

SchemasSchemas

CREATE TABLE accounts.invoice (…)GO

ALTER SCHEMA accounts2 TRANSFER accounts.invoice

accounts es un schema,no existe un usuario que se llame ‘accounts’

Transferir de un schema a otro

Page 16: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Seguridad hoy en díaSeguridad hoy en día

SSL

ISA Firewall

IIS

SQL Server

ISA Firewall IPSec

Page 17: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

EncriptaciónEncriptación

SQL Server 2005 tiene la habilidad de utilizar múltiples algoritmos para la encriptación de la data:

Llaves simétricas (RC4, RC2, DES Family, AES Family) Llaves asimétricas (Rivest-Shamir-Adelman Encryption

(RSA)) Certificados (X.509 V1)

Page 18: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

DEMODEMO

Page 19: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

ContextoContexto

En SQL2005 el código no tiene que ser ejecutado en el mismo contexto del usuario que esta haciendo el llamado.

“Execute AS” Para Stored Procedures & Funciones.

JoseJose Jose.SProcJose.SProc Silvia.TablaSilvia.Tabla

‘‘Execute AS ‘Silvia’ ’Execute AS ‘Silvia’ ’

Se verifican los Se verifican los permisos de permisos de ejecución de Joseejecución de Jose

Se verifican los Se verifican los permisos de Select permisos de Select para Silvia, no Jose.para Silvia, no Jose.

SQL Server 2005SQL Server 2005

Page 20: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Execute ASExecute AS

El código puede se ejecutado como: CALLER (quien lo esta llamando) SELF (el usuario actual que esta creado o

alterando el objeto) OWNER (el dueño del objeto) a specific user (un usuario en especifico)

Si no colocamos esta opción nuestro código se ejecuta bajo el contexto del usuario que esta haciendo la llamada (CALLER).

Page 21: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

Recursos en LíneaRecursos en Línea

MSDN: http://www.microsoft.com/sql/2005/productinfo/

securityfeatures_1.mspx

Información Adicional www.mr2solutions.net

NetaWeb www.netaweb.com.do

Contacto [email protected]

Page 22: Seguridad en SQL Server 2005 Hector Minaya, MCSD, MCT hminaya@mr2solutions.net

??