Seguridades en SQL Server 2008

26
Seguridades en SQL Server 2008

description

sql server 2008, seguridad en base de datos

Transcript of Seguridades en SQL Server 2008

Page 1: Seguridades en SQL Server 2008

Seguridades en SQL Server 2008

Page 2: Seguridades en SQL Server 2008

Introducción

La seguridad en la gestión de bases de datos, es un tema muy amplio einteresante, ya que se trata de la forma de establecer y normalizarprocedimientos para resguardar de buena manera la información detoda organización que use un servidor SQL, para tener almacenadossus datos.Cabe indicar que para esta exposición se cuenta con un servidor basadoen SQL Server 2008, instalado en Windows 8 de 64 bits, 500 GB dedisco duro, 4 GB de RAM.

Page 3: Seguridades en SQL Server 2008

Aspectos básicos de seguridad• Autentificación: Debemos identificar la identidad del usuario.

Esto quiere decir que tiene que éste tiene que haber sido creadoen el servidor basado en SQL Server 2008.

• Autorización: Permitir o no, acceder a un recurso o realizar unadeterminada acción en función de la identidad del usuario.

• Integridad: Asegurar que la información no ha sido modificadamediante su uso, a menos que le hayan sido dados los permisoscorrespondientes a un usuario en particular. Por ejemplo: FirmaDigital.

• Privacidad: Asegurar que la información pueda ser visualizadapor el usuario destinatario. Por ejemplo: Cifrados.

Page 4: Seguridades en SQL Server 2008

Niveles de seguridad en SQL Server 2008Los niveles de seguridad existentes en SQL Server 2008son:

• Seguridad a través de Windows: con usuarios localesde un equipo, usuarios de grupos y usuarios deldominio.

• Seguridad a través de SQL Server. Existen en este casousuarios a nivel del motor SQL Server, así como Roles.

• Seguridad a nivel de BD. Cada base de datos podráespecificar sus propios usuarios, roles de BD y deaplicaciones que accedan a ella, así como gruposaunque éste último tipo se mantiene sólo por tenercompatibilidad con versiones anteriores.

Page 5: Seguridades en SQL Server 2008

Cada base tiene una carpeta propia de seguridad dondecrean los usuarios que van a manipularla, establece lospermisos a cada usuario de la misma, los esquemas, etc.

Cada instancia (Se pueden instalar varias), posee estacarpeta, que tiene como función controlar laadministración del servidor como tal, estableciendopermisos para el o los administradores que puedan estara cargo de dicho servidor.

INSTANCIA: Una instancia de Motor de base de datos es una copia del ejecutable de sqlservr.exe que seejecuta como un servicio de sistema operativo. Cada instancia administra varias bases de datos del sistema yuna o varias bases de datos de usuario. Cada equipo puede ejecutar varias instancias de Motor de base dedatos. Las aplicaciones se conectan a la instancia para realizar el trabajo en una base de datos administradapor la instancia. El nombre de la instancia predeterminada se lo proporciona por lo general, cuando se estáinstalando por primera vez el SQL Server 2008 en un equipo adecuado que va a funcionar como nuestroservidor.

Podemos observar que existen dos carpetas de seguridad: Una a nivel de servidor y otra a nivel de la

base de datos.

Page 6: Seguridades en SQL Server 2008

Seguridad a nivel de Servidor

A nivel de la carpeta de Seguridad del servidor,nos encontramos con varias carpetas anidadas,que representan la manera de gestionar lasseguridades para nuestro servidor.

Page 7: Seguridades en SQL Server 2008

Inicios de Sesión

Los usuarios que se crean o pertenecen a los grupos deésta carpeta, por lo general, son los usuariosadministradores de los servidores donde se encuentranalojados las bases de datos de una organización,estableciéndose los permisos y privilegios para cadausuario de este tipo.

Page 8: Seguridades en SQL Server 2008

Funciones o Roles de Servidor

Los roles de servidor sonutilizados para otorgarprivilegios de seguridad en todoel servidor a un inicio de sesión.Tienen asociados permisos quesirven para realizar tareas, comola creación, modificación,borrado de una base de datos, ola administración de inicios desesión de inicios de otrosusuarios y la modificación de suscontraseñas.

Page 9: Seguridades en SQL Server 2008

Cada inicio de sesión de SQL Server pertenece alrol de servidor public. Cuando a una entidad deseguridad de servidor no se le han concedido nidenegado permisos específicos para un objetoprotegible, el usuario hereda los permisosconcedidos al rol public para ese objeto. Soloasigne permisos públicos en cualquier objetocuando desee que el objeto esté disponible paratodos los usuarios. No puede cambiar lapertenencia en public.

Page 10: Seguridades en SQL Server 2008

CredencialesUna credencial es un registro quecontiene la información de autenticación(credenciales) necesaria para conectarsea un recurso situado fuera de SQLServer. Esta información es utiliza-dainternamente por SQL Server. La mayoríade las credenciales incluyen un nombrede usuario y una contraseña deWindows.

Las credenciales del sistema se crean deforma automática y se asocian aextremos específicos. Los nombres delas credenciales del sistema comienzanpor dos signos de número (##).

La información almacenada en unacredencial permite al usuario que se hayaconectado a SQL Server 2005 medianteautenticación de SQL Server obtener accesoa recursos situados fuera de la instancia deservidor. Cuando el recurso externo esWindows, el usuario se autentica como elusuario de Windows especificado en lacredencial. Se puede asignar una únicacredencial a varios inicios de sesión de SQLServer. Sin embargo, un inicio de sesión deSQL Server sólo se puede asignar a unacredencial.

Page 11: Seguridades en SQL Server 2008

Proveedores de Servicios Criptográficos

Los proveedores de servicios criptográficos o de cifrado (CSP) se encargan de administrar las claves de cifrado y de utilizarlas para diversas operaciones criptográficas.Ejemplos:

Los Certificados SSL, que son pequeñosarchivos de datos que vinculandigitalmente una clave de encriptación conlos datos de una empresa.

Page 12: Seguridades en SQL Server 2008

AuditoríasAuditoría de una instancia de SQL Server o una base de datos de SQL Server implicael seguimiento y registro de eventos que ocurren en el sistema. Basándose en lainformación acumulada que sería capaz de rastrear los cambios en la base dedatos, el acceso a la base de datos, etc. Una auditoría es la combinación de varioselementos en un solo paquete para un grupo específico de acciones de servidor obase de datos de acciones. Los componentes de SQL Server Audit se combinan paraproducir una salida que se llama una auditoría, así como una definición de informejunto con los gráficos y elementos de datos produce un informe. Auditoría de SQLServer utiliza extendido eventos para ayudar a crear una auditoría.El objeto de SQL Server Audit recoge una sola instancia de servidor o base de datosde las acciones a escala y los grupos de acciones para el seguimiento. La auditoríaes a nivel de la instancia de SQL Server. Usted puede tener múltiples auditorías porcada instancia de SQL Server. Cuando se define una auditoría, se especifica laubicación de la salida de los resultados. Este es el destino de auditoría. La auditoríase crea en un estado de movilidad reducida, y no de forma automática todas lasacciones de auditoría. Después de la auditoría está habilitada, el destino de laauditoría recibe los datos de la auditoría.

Page 13: Seguridades en SQL Server 2008

La auditoría de SQL Server permite crearauditorías de servidor, que pueden contenerespecificaciones de auditoría de servidorpara los eventos de servidor, yespecificaciones de auditoría de base dedatos para los eventos de base de datos. Loseventos auditados se pueden escribir en losregistros de eventos o en los archivos deauditoría.

La auditoría de unainstancia de Motorde base de datosde SQL Server o deuna base dedatos individualimplica elseguimiento yregistro de loseventos que seproducen enMotor de base dedatos.

Auditorias

Page 14: Seguridades en SQL Server 2008

Especificaciones de auditoría de servidor

Es posible tener varias auditorías porcada instancia de SQL Server. Elobjeto Especificación de auditoría deservidor pertenece a una auditoría.Puede crear una especificación deauditoría de servidor por cada auditoría,ya que ambos se crean en el ámbito dela instancia de SQL Server.

Page 15: Seguridades en SQL Server 2008

El objeto de auditoría de servidor Especificación pertenece a una auditoría.Puede crear una especificación de auditoría de servidor por la auditoría, yaque ambos se crean en el alcance de la instancia de SQL Server. Laespecificación de auditoría de servidor recoge servidor de muchos grupos deacción a nivel nacional planteadas por el extendido Eventos característica.Usted puede incluir a los grupos de acción de auditoría en una especificaciónde auditoría de servidor. Los grupos de acción de auditoría son grupospredefinidos de acciones, que son los eventos atómicos expuestos por elmotor de base de datos. Estas acciones son enviados a la auditoría, queregistra en el objetivo.Servidor de auditoría de los grupos de nivel de acción se describe en el temade SQL Server Grupos de auditoría de acciones y acciones.

Especificaciones de auditoría de servidor

Page 16: Seguridades en SQL Server 2008

Seguridad a nivel de Bases de Datos

Como se muestra en la figura, por cadabase de datos creada en nuestroservidor, existirá una carpeta deseguridad respectivamente.

Page 17: Seguridades en SQL Server 2008

La carpeta Seguridad es similar a lacarpeta Seguridad del Servidor, sinembargo, el nivel de seguridad estáenfocado a dar los permisos de maneraequilibrada a cada usuario que pormedio de una aplicación necesitareinsertar, modificar o eliminar datos dedicha base.

Page 18: Seguridades en SQL Server 2008

UsuariosLogins y Users

Para conectarse al SQL Server, se necesita un Login (usuario a nivel del servidor).

A nivel de la base de datos, el usuario se identifica como un User que está relacionado generalmenteal Login (que es a nivel del servidor), y los privilegios al User existen solamente en el ámbito de labase de datos (además a los privilegios al Login).

Para otorgar derechos generales puede asistirse con listas de Server Roles (roles a nivel del servidor) oDatabase Roles (roles a nivel de la base de datos específica), cada cual con privilegios específicos a unrol específico; y cada usuario asociado con uno de estos Roles obtiene los privilegios asociados con él.Además, el administrador puede otorgar derechos specificos, y crear otros Database Roles (no sepuede crear Server Roles).

Los privilegios a nivel del servidor incluyen la capacidad de crear bases de datos, utilizar las tareas(Jobs), crear respaldos de bases de datos y restaurarlos, modificar las definiciones del servidor, etc.Los privilegios a nivel de la base de datos posibilitan extraer y actualizar datos, crear objetos comoprocedimientos y tablas, utilizar dichos objetos, etc. Como regla general se puede otorgar derechos(Grant), revocar privilegios existentes (Revoke), y denegar privilegios aún no existen (Deny).

Page 19: Seguridades en SQL Server 2008

Los usuarios dbo, guest, INFORMATION_SCHEMAy sys, son creados en el momento de la instalacióndel SQL.

dbo es una cuenta de usuario muy particular yaque no puede ser utilizada para establecerconexiones a la base de datos pero cuenta conprivilegios especiales. La cuenta dbo es especialtambién porque es el dueño de la base de datos.

Además, gracias a que eres dbo, tienes todos lospermisos para hacer cualquier cosa en la base dedatos y hasta puedes también puedes asignarlos aotras cuentas de usuario.

Usuarios

Page 20: Seguridades en SQL Server 2008

Funciones o Roles de Bases de DatosSon fijos:• No pueden modificarse sus permisos. Excepto el de Public.• No pueden eliminarse.• No pueden añadirse nuevos roles predefinidos.• Los siguientes:

db_owner: realizan cualquier operación en la base de datosdb_backupoperator: realiza copias de seguridaddb_datareader: lee de cualquier tabladb_datawriter: escribe en cualquier tabladb_denydatawriter: no puede escribir en ninguna tabladb_denydatareader: no puede leer de ninguna tabladb_ddladmin: crea y modifica objetos en la base de datosdb_accessadmin: gestiona usuarios en la base de datosdb_securityadmin: gestiona los permisos

Page 21: Seguridades en SQL Server 2008

Para administrar con facilidad los permisos en las bases de datos, SQL Serverproporciona varios roles, que son las entidades de seguridad que agrupan aotras entidades de seguridad. Son como los grupos del sistema operativoMicrosoft Windows. Los roles de nivel de base de datos se aplican a toda labase de datos en lo que respecta a su ámbito de permisos.

Existen dos tipos de roles de nivel de base de datos en SQL Server: los rolesfijos de base de datos, que están predefinidos en la base de datos, y los rolesflexibles de base de datos, que pueden crearse.Los roles fijos de base de datos se definen en el nivel de base de datos yexisten en cada una de ellas. Los miembros de los roles de base dedatos db_owner y db_securityadmin pueden administrar la pertenencia aroles fijos de base de datos. Sin embargo, solo los miembros del rol de base dedatos db_owner pueden agregar miembros al rol fijo de base dedatos db_owner. También hay algunos roles fijos de base de datos con finesespeciales en la base de datos msdb.Puede agregar cualquier cuenta de la base de datos y otros roles de SQLServer a los roles de nivel de base de datos. Cada miembro de un rol fijo debase de datos puede agregar otros inicios de sesión a ese mismo rol.

Page 22: Seguridades en SQL Server 2008
Page 23: Seguridades en SQL Server 2008

Esquemas

Un esquema es un contenedor que contiene tablas, vistas,procedimientos, etc. Se encuentra dentro de una base dedatos, que a su vez está dentro de un servidor. Estasentidades se acomodan como cajas anidadas. El servidores la caja más externa y el esquema la más interna.Contiene toda la estructura de la base de datos.Los esquemas sirven sobretodo para organizar los objetos,y también la seguridad de la base de datos, especialmentecuando se tiene varios usuarios. Si un usuario posee unesquema, tiene por defecto permisos sobre los objetos deese esquema que no tendrán otros usuarios, a menos quese les hayan concedido expresamente.

Page 24: Seguridades en SQL Server 2008

Claves Simétricas y Asimétricas

SQL Server usa claves de cifrado para proteger los datos, lascredenciales y la información de conexión que se almacena enuna base de datos servidor. SQL Server tiene dos tipos declaves: simétricas y asimétricas. Las claves simétricas utilizan lamisma contraseña para cifrar y descifrar los datos. Las clavesasimétricas utilizan una contraseña para cifrar los datos(denominada clave pública) y otra para descifrar los datos(denominada clave privada).

Claves asimétricasUna clave asimétrica se compone de una clave privada y sucorrespondiente clave pública. Cada clave puede descifrar losdatos que cifra la otra. El cifrado y descifrado asimétricosconsumen una cantidad de recursos relativamente elevada, peroproporcionan un nivel de seguridad superior al del cifradosimétrico. Una clave asimétrica se puede utilizar para cifrar unaclave simétrica para almacenar en una base de datos.

Claves simétricasUna clave simétrica es una clave que se utiliza para elcifrado y el descifrado. El cifrado y el descifrado con unaclave simétrica son más rápidos y adecuados para usarlosde forma rutinaria con datos confidenciales de una basede datos.

Page 25: Seguridades en SQL Server 2008

Un certificado es un objeto de seguridad firmadodigitalmente que contiene una clave pública (yopcionalmente una privada) para SQL Server. Puedenutilizarse certificados generados externamente ogenerados por SQL Server.

Certificados

Page 26: Seguridades en SQL Server 2008

El objeto de auditoría de base de datosespecificación también pertenece a unaAuditoría de SQL Server. Puede crear unaespecificación de auditoría de base de datospor base de datos de SQL Server para laauditoría. La especificación de auditoría debase de datos de base de datos recoge lasacciones de auditoría de alto nivel planteadapor el extendido Eventos característica. Puedeagregar cualquiera de los grupos de auditoríade la acción o los eventos de auditoría a unaespecificación de auditoría de base de datos.Los sucesos de auditoría son las accionesatómicas que pueden ser auditados por elmotor de SQL Server. Los grupos de acción deauditoría son grupos predefinidos de acciones.Ambos se encuentran en el alcance de la basede datos de SQL Server. Estas acciones sonenviados a la auditoría, que registra en elobjetivo. Base de datos de auditoría de losgrupos de nivel de acción y las acciones deauditoría se describe en el tema de SQL ServerGrupos de auditoría de acciones y acciones.

Especificación de auditoría de BD