Vous êtes sur la page 1sur 42

CAPITULO X

Seguridad en la Base de Datos

Seguridad de la Base de Datos


Para que un usuario sea capaz de realizar cualquier operacin sobre la DBMS, debe existir una de las siguientes condiciones:

Al usuario se le ha concedido la capacidad de ejecutar esta funcin u operacin. Esa operacin o funcin se ha concedido de forma genrica a todos los usuarios.

Todos los recursos de la Base de datos son controlados por la DBMS. Usando las caractersticas de seguridad del DBMS, el DBA puede configurar el entorno de manera que slo ciertos usuarios o determinados programas de aplicacin estn autorizados para realizar ciertas operaciones sobre determinados datos en la base de datos. A cada usuario se puede asignar diferentes derechos de acceso a diferentes objetos de la Base de Datos.

Seguridad de la Base de Datos


La administracin de la seguridad requiere elevados privilegios y experiencia. Cuando los usuarios requieren acceder a varias Bases de Datos sobre varios servidores ubicados en diferentes sitios, la administracin de la seguridad se complica. La administracin de seguridad puede ser una funcin aparte. Hay productos de terceros para la administracin de la seguridad en la Base de Datos.

Seguridad Bsica
La autentificacin es la pieza fundamental en cualquier plan de implementacin de seguridad.

Algunos DBMS utilizan los mismos login y password de los sistemas operativos. En cambio otros requieren de un password adicional para trabajar con las Base de Datos.

Seguridad Bsica en La Base de Datos


Informacin cuando se crea una cuenta:

Contrasea: la frase clave, palabra o cadena de caracteres asociados con el nuevo inicio de sesin que debe ser proporcionada por el usuario antes de acceder a la base de datos. Base de datos predeterminada: el nombre de la base de datos para que el usuario se conecte inicialmente al ingresar. Lenguaje por defecto: el idioma por defecto asignado a la entrada cuando se usa el DBMS si varios idiomas son soportados. Nombre: el nombre real completo del usuario asociado con esta entrada. Detalles adicionales: informacin adicional sobre el usuario para el que ha el inicio de sesin: correo electrnico, nmero de telfono, ubicacin de la oficina, unidad de negocio, y as sucesivamente. Esto es til para efectos de documentacin.

Seguridad Bsica
Los passwords deben ser cambiados frecuentemente para una mayor seguridad. Se debe incorporar procedimientos automticos para controlar y obligar el cambio de passwords. Una cuenta no se puede borrar si el usuario ha creado objetos en la Base de Datos. En ambiente de produccin, la creacin de objetos en la Base de Datos slo debe hacerlo el DBA. En vez de borrar una cuenta, se puede bloquear el acceso.

Orientacin para Contraseas


Las siguientes pautas deben seguirse para la creacin de la contrasea correcta:

Evite las contraseas que son demasiado cortas. Cada contrasea debe tener al menos seis caracteres de longitud, y ms si cabe. Cada contrasea debe consistir de por lo menos una combinacin de caracteres alfabticos y caracteres numricos. El uso de otros smbolos permitidos hace que la contrasea sea ms difcil de adivinar. Evite crear una contrasea que es una palabra completa (ya sea en el idioma nativo del usuario o de cualquier lengua extranjera). No integrar cdigos personales en la contrasea. Las direcciones de calles, nmeros de seguro social, nmeros de telfono, y similares son fciles de adivinar y no deben ser parte de las contraseas. Considere la posibilidad de concatenacin de dos palabras sin relacin con un smbolo o nmero entre ellos. Por ejemplo, "toe3star" es una contrasea viable.

Seguridad Bsica
Mantener los inicios de sesin que pueden ser necesarios reactivar. Borrar los inicios de sesin que nunca vayan a ser reactivados. Controles adicionales a las cuentas y sus passwords:
Nmero de intentos fallidos. Nmero de das de validez. Nmero de das de bloqueo. Nmero de das antes de rehusarlo. Nmero de veces que puede rehusarse.

Seguridad Bsica
Las DBMS a veces no proveen una forma simple de cambiar un password. Cmo gestionar los passwords de usuarios que tienen cuentas en varios servidores y varias Base de Datos?

Usuarios de la Base de Datos


Una cuenta se requiere para acceder a una DBMS, y puede ser necesaria una cuenta para usar una Base de Datos especfica.

Es recomendable crear un usuario invitado para acceder a la informacin pblica de una BD.

La Concesin y Revocacin de privilegios


El DBA controla la seguridad y autorizacin de la Base de Datos usando el Lenguaje de Control de Datos (Data Control Languaje o DLC), para conceder y revocar permisos.

GRANT asigna un permiso a un usuario de base de datos. REVOKE quita un permiso de un usuario de base de datos.

GRANT trabaja con lista de privilegios y lista de usuarios. Para usar GRANT, el usuario debe ser propietario del objeto, o ser de un grupo con muchos privilegios, o haber obtenido el privilegio WITH

La Concesin y Revocacin de privilegios


Administracin de Privilegios:
Administracin decentralizada: Fcil de establecer, difcil de controlar. Administracin centralizada: Fcil de administrar, pero es una carga adicional de trabajo al DBA.

No se debe conceder permisos a las Bases de Datos desde las aplicaciones.

Tipos de Privilegios
El DBMS provee privilegios bsicos como: acceso a datos, crear objetos y ejecutar funciones del sistema. Privilegios comunes en las DBMS:
Acceso y modificacin de tablas. Crear y borrar objetos. Ejecutar comandos. Crear, modificar, y usar programas. Ejecutar procedimientos y funciones.

La Concesin de Privilegios a una tabla


Los permisos de tabla se conceden a los usuarios para que puedan acceder a las tablas, vistas y columnas dentro de tablas y vistas. Los siguientes privilegios pueden ser concedidas para las tablas y vistas:

SELECT: para permitir al usuario seleccionar esta tabla / vista INSERT: para permitir al usuario insertar filas en esta tabla / vista UPDATE: para permitir al usuario actualizar esta tabla / vista DELETE: para permitir al usuario borrar las filas de esta tabla / vista Todos: para permitir al usuario seleccionar, insertar, actualizar y eliminar utilizando esta tabla / vista

La Concesin de Privilegios a una tabla


Privilegios a nivel de columna (SELECT UPDATE) GRANT UPDATE on Titles (au_id) to user7; Privilegios a nivel de tabla se concede a programadores en ambientes de desarrollo en ambientes de produccin, se usan privilegios a nivel de procedimientos y programas.

La Concesin de Privilegios a Objetos de la Base de Datos


Controla los privilegios que tienen los usuarios para crear estructuras en la base de datos: Base de Datos, archivos u objetos como tablas, ndices, triggers, etc.
GRANT CREATE table, CREATE index TO user5, user9;

La Concesin de Privilegios a Objetos de la Base de Datos


El privilegios de crear objetos es usualmente slo de los DBAs, para mejorar el control de objetos existentes.

Concesin de privilegios del sistema


Para la gestin de archivos logs, encender y apagar el servidor, iniciar monitoreo, gestin almacenamiento, gestin de memoria. Privilegios del sistema son correctos a nivel de DBMS. GRANT TRACE TO user6; Los privilegios del sistema se deben reservar solo par el DBA y el SA.

Concesin de Privilegios de Programas y Procedimientos


El privilegio EXECUTE concede permisos para ejecutar un programa o procedimiento almacenado.

GRANT EXECUTE on proc1 TO user1, user9; Es mejor conceder privilegios sobre procedimientos y programas, que proveer acceso directo a tablas. La lgica del programa controla que tablas y columnas pueden ser modificadas.

Conceder a PUBLIC
Cuando se concede un privilegio a PUBLIC, se concede a todos los usuarios de la Base de Datos.

GRANT DELETE on titles to PUBLIC;


Se debe estar consiente que cuando un privilegio pblico es concedido ya no es controlado por el DBA si no por los usuarios.

Revocacin de los Privilegios


La instruccin Revoke elimina privilegios concedidos. Cuando se borra un objeto, automticamente se eliminan los privilegios sobre el. REVOKE UPDATE on titles (au_id) from user7;

Revocacin en Cascada
Cuando se revoca un privilegio causa revocaciones adicionales ,a sto se lo llama revocacin en cascada.

Si se revoca el privilegio x a Joe, tambin se le quita a Pete, Phil, Don y Bruce

Revocacin en Cascada
No conceder el wiht GRANT Option a muchos usuarios, para controlar mejor la seguridad.

Cronologa y Revocacin
El momento de una declaracin de conceder o revocar puede tener relacin con su impacto.
GRANT DELETE on titles to public; COMMIT; REVOKE DELETE on titles from userx;

Hay DBMS que no permiten quitar privilegios pblicos a un usuario. Se recomienda conocer como trabaja GRANTs REVOKE en cada DBMS.

Seguridad de Informacin
Monitorear y reportar los privilegios de los usuarios desde el catlogo. Solo el DBA debe tener acceso a la informacin de seguridad. Cuando se crean nuevas aplicaciones y se cambian los requerimientos de negocio, la seguridad de la Base de Datos cambia. Se debe investigar instrucciones para recuperar a los usuarios desde el catlogo. Se deben chequear frecuentemente que la seguridad concuerde con los requerimientos

Funciones de Autorizacin y Grupos


Para simplificar la administracin se crean roles a los que se les conceden privilegios, y a estos se agregan usuarios Ej: cajeros La terminologa de roles y grupos varia en cada DBMS.

Roles
Un role es una coleccin de privilegios.
CREATE role MANAGER; (crea el role MANAGER) COMMIT; GRANT select, insert, update, delete on employee to MANAGER; (concede privilegios a manager) GRANT select, insert, update, delete on job_title to MANAGER; (concede privilegios a manager) GRANT execute on payroll to MANAGER; COMMIT; (concede privilegios a manager) GRANT MANAGER to user1; (agrega user1 a mangaer) COMMIT;

Grupos
Cada DBMS provee grupos preconstruidos que no pueden ser cambiados. Los grupos ms comunes en los DBMS:
Administrador de Sistema: puede ejecutar todos lo comandos y acceder a todos los objetos. Instala la DBMS y es propietario de los recursos del sistema. Administrador de la Base de Datos: posee todos los privilegios sobre una Base de Datos especfica. Puede borrar o alterar cualquier objeto de la Base de Datos (tablespace, tablas, ndices).

Grupos
Mantenimiento de la Base de Datos: tiene privilegios para mantener objetos de la Base de Datos. Administrador de Seguridades: maneja los privilegios para revocar y conceder en toda la DBMS, administracin de login y password. Auditoria, configuracin de seguridad. Operaciones de Control: tiene privilegios para operar la Base de Datos como los backup y recovery, finalizar tareas.

Limite el nmero de usuarios SA


Una organizacin debe tener cuidado con el privilegio al otorgar SA, ya que slo el DBA puede tener ese privilegio.

Grupo Nivel de Seguridad y REVOKEs en cascada


Un usuario de un grupo puede conceder privilegios a otro usuarios. Al borrar al padre, puede revocar privilegios en cascada.

Mecanismos de Seguridad en otras Base de Datos


Se puede incrementar vistas y procedimientos para incrementar la seguridad en una Base de Datos

Usando Vistas para Seguridad


Se crea una vista para omitir informacin confidencial Ej: sueldo, multas etc..
CREATE view emp_all AS SELECT first_name, last_name, middle_initial, street_address, state, zip_code FROM employee;

A los usuarios se les concede privilegios sobre la vista o restriccin vertical cuando se ocultan columnas .

Usando Vistas para Seguridad


En una vista que filtra filas, se conoce como restriccin horizontal. Vistas dinmicas creadas con WITH CHECK OPTION aseguran que se modifiquen las filas que cumplen con la condicin, no otras.

Uso de procedimientos almacenados para la Seguridad


Los privilegios para ejecutar procedimientos almacenados deben ser concedidos explcitamente. Los procedimientos almacenados se disean para acceder a ciertas filas o columnas de un tabla. A travs de procedimientos almacenados, los usuarios pueden acceder slo a la posicin de datos especfica en el procedimiento almacenado. Acceso a travs de procedimientos almacenados provee mayor rendimiento.

Seguridad Orientada a la Lgica


El acceso a una tabla en horas especificas puede ser controlado con un procedimiento almacenado.

Auditoria
Permite al DBA seguir la pista del uso de recursos y privilegios de la Base de Datos. Cuando la auditoria se habilita, el DBMS produce un registro de las operaciones de la base de datos que indica, qu objeto fue impactado, quin ejecut la operacin y cundo. Entre el 60 % y 80% de las violaciones a la seguridad provienen de empleados o exempleados, la auditoria detecta

Auditoria
Tambin se registra los valores nuevos y anteriores. La auditoria acta luego de los hechos, no impide accesos indebidos. Ayuda a detectar brechas de seguridad ya que con la auditoria se puede:
Controlar que se cumplan reglas y polticas de seguridad del negocio. Chequeo a nivel de Base de Datos, objetos o usuarios.

Auditoria
La auditoria trae problemas de rendimiento porque captura mucha informacin. Se puede crear registros de auditoria selectivos. Algunos tems que pueden ser Auditados.

Intentos de entrar y salir. Reinicios del servidor. Comandos ejecutados por el SA. Intentos de violar la integridad. Operaciones. Procedimientos almacenados. Intentos de acceder a la Base de Datos y tablas. Cambios al Catlogo. Operaciones a bajo nivel de fila.

Auditoria
Herramientas de auditoria de terceros existen para extraer informacin desde los logs. Los reportes grficos sirven para identificar problemas. Auditorias pueden tambin ser usadas para datos de recuperacin.

Auditoria
Otros aspectos de Auditoria

Es un gran consumidor de recursos. Cuando la cola esta llena, las tareas auditadas deben esperar.
Colocar las tablas del catlogo que guardan informacin de seguridad, en un disco separado. Asegurar que la tabla que guarde datos de auditoria no se llene, porque la auditoria puede cancelarse.

Seguridad Externa
Sirve para proteger los recursos utilizados por las DBMS.

Recursos a proteger en el Sistema Operativo. Archivos de catlogo. Archivos logs. Archivos de datos. Archivos de ndices. Archivos de auditoria. Archivos de monitoreo. Scripts.

Se debe usar compresin y encriptamiento.

Vous aimerez peut-être aussi