TEMA 4.2: Seguridad y Confidencialidad en la Bases de Datos



Documentos relacionados
Universidad Nacional de Costa Rica Administración de Bases de Datos

Administración de Oracle 9i. Existen alrededor de 126 privilegios del sistema, a continuación vemos los más destacados

CONTROL DE ACCESO. curso 2008

Administración Básica de Oracle9i 1ªEdición Noviembre 2004.

Administración de Bases de Datos

Administración de usuarios en Oracle - Administración de Oracle - Orasite.com

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

Bases de Datos (Ingeniería Técnica en Informática de Sistemas)

Seguridad de la Información Permisos. Sistemas de Bases de Datos II - ITS EMT - CETP

Seguridad e integridad de bases de datos USB

CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 500K ON USERS;

6.1. Introducción. Guía 5. SQL.

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

Asignatura: Administración de Bases de Datos

ORACLE: Seguridad. Índice

SEGURIDAD. Seguridad. Definición. Por qué Seguridad? amenazas SEGURIDAD. Seguridad. Temas que abarca (II) Seguridad. Temas que abarca (I) Seguridad

Seguridad en SQL Server 2005

Organización de PostgreSQL. Manejo de Usuarios. Herramientas para Desarrollo

Oracle Database y Oracle SQL Developer

CONFIGURACION DEL REPOSITORIO DE DESIGNER/2000

Administración de un SGBD relacional

Administración Básica de Oracle9i.

ÍNDICE INTRODUCCIÓN...17

1. Arquitectura y estructura interna de un gestor de bases de datos.

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

GESTION DE USUARIOS EN ORACLE 11 G

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1

Restricciones de dominio: Conjunto de valores y de operaciones permitidas sobre ellos.

Base de Datos III. Laboratorio de Base de Datos. Administración de Estructuras de Almacenamiento. Universidad del Azuay - Marcos Orellana Cordero

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

Pre-Taller Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql)

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos

Usuarios y Seguridad

Seguridad en Sistemas de Bases de Datos

BD Activas: Motivación

INTEGRANTES: NOHELY PARRA AURA PONCE ERIKA GONZALEZ MARLON GARCIA CARLOS ESTRADA SECCION: 15N2IS

Capítulo 1. Instalación de MySQL y su software complementario... 1

Unidad 1: Oracle. MODULO V: Base de datos en Oracle

Oracle Database 11g: Programación con PL/SQL Nuevo

Oracle Express y Toad for Oracle

Base de Datos Oracle 10g: Introducción a SQL

Oracle Database: Conceptos Básicos de SQL y PL/SQL

Administración Básica de Oracle9i

ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1

Gestión de Usuarios en MySQL

MICROSOFT ACCESS 2013 (COMPLETO)

- 1 - Mg. Abril Saire Peralta

Base de datos Oracle: Arquitectura Oracle. Arquitectura. Marzo Luis Vinuesa Martínez

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Tema 5. Lenguaje de Definición de Datos

Administración Básica de Oracle 10g. Prácticas usuarios, perfiles, privilegios y roles.

11. Seguridad en sistemas de bases de datos

Tema: Introducción a Oracle

GBD Diseño físico de DDBB

Instituto Profesional DuocUC Escuela de Ingeniería Administrando Usuarios

MANUAL BÁSICO DE ORACLE

SQL SERVER APLICADO (SSA010)

ANEXO No 3 CREACION DE USUARIOS Y OTORGACION DE PRIVILEGIOS.

Gestión de Usuarios en MySQL

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Objetivos y Temario CURSO SQL SERVER 2012

M. C. Gustavo Alfonso Gutiérrez Carreón

Contenidos. 1 Aspectos de seguridad 2 El Sistema de Privilegios 3 Conexión n al servidor 4 Control de Acceso 5 Ejercicios

Base de Datos Oracle 10g: Programación con PL/SQL NUEVO

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

BASES de DATOS ÁCTIVAS

Seguridad y Auditoría de Bases de Datos Oracle

índice (2.2.1) cuentas administrativas 7 (2.2.2) privilegios administrativos 8

Seguridad en Bases de Datos

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Diseño de bases de datos

Seguridad en Sistemas de Bases de Datos

Está basado en el álgebra y en el cálculo relacional.

L.O.P.D. Ley de Protección de Datos. Trevenque Sistemas de Información S.L.

INSTITUTO TECNOLÓGICO SUPERIOR DE ESCÁRCEGA. Organismo público descentralizado de la administración. Pública del estado de Campeche

Base de Datos Oracle 10g: Seguridad Versión 2 NUEVO

EJEMPLOS PRÁCTICOS SQL

Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA:

Instituto Profesional DuocUC Escuela de Ingeniería Uso y contenido del Diccionario de Datos

Universidad Veracruzana Facultad de Estadística e Informática

ÍNDICE INTRODUCCIÓN...13

Oracle Database 10g: Introducción a SQL

EXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO

UNIVERSIDAD TECNOLOGICA IZUCAR DE MATAMOROS TICSI SISTEMAS OPERATIVOS LIC. EDITH VARGAS MORALES ALUMNA: DURÁN VARGAS CLAUDIA MATRICULA:

SQL Los fundamentos del lenguaje

Conceptos de Bases de Datos Relacionales Triggers

Manejo de Tablas y Llaves Foráneas

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 2013

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

Migración De Bases De Datos De Terceros

AUTENTICACIÓN: DETERMINAR SI EL USUARIOS ES QUIÉN DICE SER AUTORIZACIÓN: DETERMINA A CUÁLES OBJETOS TIENE ACCESO EL USUARIO

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Transcripción:

TEMA 4.2: Seguridad y Confidencialidad en la Bases de Datos a.- Confidencialidad - Introducción - Acceso a la base de datos (usuarios) - Autorización de acceso a datos (permisos y roles) - Uso de recursos del sistema (perfiles) b.- Seguridad - Introducción - Tipos de Ataques - Auditorías 17 4.2.a.- Confidencialidad. Introducción Objetivos: No desvelar/dejar modificar datos a usuarios no autorizados Tipos de Acciones: Cuentas de Usuario: autentican a los usuarios para permitir el acceso a la base de datos. Código y Contraseña (Oracle). Identificación por Hardware Características bioantropométricas (huellas dactilares, voz, retina) Conocimientos, aptitudes y hábitos del usuario Permisos y Roles: otorgar/revocar privilegios de acceso a objetos de la base de datos Perfiles: controlan el uso de los recursos del sistema 18

4.2.a.- Confidencialidad. Cuentas de Usuarios Tipos de Usuario (Oracle 9i): Usuario:nombre definidos en la BD que puede conectarse y acceder a objetos de la BD Usuario externo: usuarios externos al SGBD (p.e.: usuarios de un Sistema Operativo) Usuarios de empresa (global): grupo de usuarios (gestionados en un directorio) con permisos a las mismas BD sin necesidad de crear una cuenta o esquema en cada BD. Usuarios ABD por defecto: SYS, SYSTEM Definición: Esquema:colección de objetos (tablas, vistas, clusters, procedimientos, paquetes, etc.) 19 4.2.a.- Confidencialidad. Cuentas de Usuarios Sintaxis Oracle. Creación de Usuarios (1/2): Prerrequisitos: Privilegio de sistema CREATE USER CREATE USER user303 IDENTIFIED BY user303 DEFAULT TABLESPACE dbd_tablespace QUOTA 10M ON dbd_tablespace PROFILE dbd_perfil PASSWORD EXPIRE; *Imagen extraída de [2]. Oracle9i SQL Reference 20

4.2.a.- Confidencialidad. Cuentas de Usuarios Sintaxis Oracle. Creación de Usuarios (2/2): NOTA: Después de crear el usuario, hay que darle permisos para que pueda acceder a los recursos de la BD. Es necesario el permiso CREATE SESSION para permitir la conexión a la BD GRANT CONNECT, RESOURCE TO user303; (o al menos GRANT CREATE SESSION TO user303) EJERCICIOS: 1. Usuario Pepe identificado de forma externa cuya cuenta no expire y cuyo tablespace temporal sea espacio_temporal. 2. Usuario María identificado por la pwd Maria con tablespace por defecto espacio_infinito y espacio en este tablespace ilimitado. 3. Usuario Juan identificado de forma global como Juanillo y cuya cuenta está inicialmente bloqueada. 21 4.2.a.- Confidencialidad. Cuentas de Usuarios Sintaxis Oracle. Modificación de Usuarios (1/2): ALTER USER user303 IDENTIFIED BY user303 DEFAULT TABLESPACE dbd_tablespace QUOTA 10M ON dbd_tablespace PROFILE dbd_perfil PASSWORD EXPIRE DEFAULT ROLE rol_user303; *Imagen extraída de [2]. Oracle9i SQL Reference 22

4.2.a.- Confidencialidad. Cuentas de Usuarios Sintaxis Oracle. Modificación de Usuarios (2/2): NOTA: Mismos parámetros que la sentencia CREATE USER + gestión de roles. EJERCICIOS: 1. Modificar el usuario Pepe identificado de forma interna por la pwd pepito cuya cuenta expire. 2. Modificar el usuario María identificado de forma externa con tablespace por defecto espacio_infinito y espacio en este tablespace limitado a 30 Megas. Además, este usuario ha de tener el rol por defecto llamado rol_usuarios_habituales. 23 4.2.a.- Confidencialidad. Cuentas de Usuarios Sintaxis Oracle. Borrado de Usuarios: *Imagen extraída de [2]. Oracle9i SQL Reference NOTA: Se borran automáticamente TODOS los objetos del que el usuario es propietario DROP USER user303 CASCADE; 24

4.2.a.- Confidencialidad. Permisos y Roles Objetivo: Proporcionar a los usuarios privilegios de acceso a objetos de la BD Definición: Permiso: privilegio de acceso a objetos de la BD Rol: conjunto de privilegios (agrupados). Simplificación en la gestión de privilegios Quién tiene privilegios para asignar privilegios?: El ABD (privilegios de cuenta, sistema y objetos de esquemas). Otros usuarios a los que le hayan dado privilegios de forma específica. El propietario del esquema tiene todos los privilegios sobre sus objetos. 25 4.2.a.- Confidencialidad. Permisos y Roles Tipos de privilegios de ORACLE Del sistema: ejecutar una acción en cualquier esquema Conexión a una base de datos (create session) Crear Tablespaces, borrar filas de cualquier tabla, etc. Crear un esquema o relación base. CREATE SCHEMA, CREATE TABLE Crear una vista. CREATE VIEW Agregar o eliminar atributos de relaciones. ALTER Eliminar relaciones o vistas. DROP Insertar, eliminar o modificar tuplas. MODIFY Obtener información de la BD. SELECT Clusters, índices, disparadores, enlaces a BD, etc. De objetos del esquema: ejecutar una acción en un objeto de un esquema específico Tablas, vistas, secuencias, procedimientos, funciones y paquetes Privilegio SELECT, para obtener tuplas de la relación. Privilegio MODIFY, para modificar tuplas de la relación. UPDATE, actualización (también a atributos) DELETE, borrado INSERT, insertar (también a atributos) Privilegio REFERENCES, que confiere a la cuenta la capacidad de hacer referencia a la relación al especificar restricciones de integridad. 26

4.2.a.- Confidencialidad. Permisos y Roles Sintaxis Oracle. Otorgar Privilegios: GRANT (1/3) grant_privileges and roles clause: grant system_privileges and roles clause: grant object privileges clause: GRANT connect, resorce, create user TO user303; object clause: grantee clause: *Imágenes extraídas de [2]. Oracle9i SQL Reference 27 4.2.a.- Confidencialidad. Permisos y Roles Sintaxis Oracle. Otorgar Privilegios: GRANT (2/3) System_privileges: ALTER DATABASE, AUDIT SYSTEM, CREATE TABLE, DROP ANY TABLE, DELETE ANY TABLE, LOCK ANY TABLE, UPDATE ANY TABLE, SELECT ANY TABLE, CREATE VIEW, CREATE ROLE, ALTER ANY ROLE, DROP ANY ROLE, ALTER SESSION, CREATE SEQUENCE, CREATE PROCEDURE, CREATE TRIGGER, CREATE TYPE, CREATE ROLLBACK SEGMENT, CREATE USER, etc. Object_privileges: LDD (ALTER, REFERENCES, INDEX); LMD (INSERT, DELETE, UPDATE, SELECT); READ, EXECUTE, etc. Roles predefinidos: CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE, IMP_FULL_DATABASE, etc. 28

4.2.a.- Confidencialidad. Permisos y Roles Sintaxis Oracle. Otorgar Privilegios: GRANT (3/3). Ejercicios Dar permisos de crear sesión (CREATE SESSION) al usuario user303 Dar permisos de creación de tablas (CREATE TABLE) al rol dbd_role Dar el rol dbd_role al usuario user303 con permisos de administración Dar todos los permisos (ALL) sobre la tabla tabla1 del usuario user302 al usuario user303 Dar permisos de selección (SELECT) y modificación (UPDATE) sobre la tabla tabla1 a todos los usuarios 29 4.2.a.- Confidencialidad. Permisos y Roles Sintaxis Oracle. Revocar Privilegios: REVOKE (1/2) revoke object privileges clause: revoke_systemprivileges and roles clause: object clause: grantee clause: *Imágenes extraídas de [2]. Oracle9i SQL Reference 30

4.2.a.- Confidencialidad. Permisos y Roles Sintaxis Oracle. Revocar Privilegios: REVOKE (2/2). Ejercicios Quita el permiso de conexión (CREATE SESSION) al usuario user303 Quita el permiso de crear tablas (CREATE TABLE) al role dbd_role Quita el role dbd_role al usuario user303 Quita todo los permisos (ALL) sobre la tabla tabla1 del usuario user302 al usuario user303 Impide seleccionar (SELECT) y modificar (UPDATE) la tabla tabla1 a todos los usuarios (PUBLIC) Impide borrar cualquier tabla (DROP ANY TABLE) al usuario user303 y al role dbd_role 31 4.2.a.- Confidencialidad. Permisos y Roles Sintaxis Oracle. Roles. Crear CREATE ROLE usuario_dbd NOT IDENTIFIED; Borrar DROP ROLE usuario_dbd; Activar/Desactivar roles para la sesión actual S SET ROLE usuario_dbd IDENTIFIED BY pwd_usuario_dbd; SET ROLE ALL; SET ROLE ALL EXCEPT usuario_dbd; SET ROLE NONE; *Imágenes extraídas de [2]. Oracle9i SQL Reference 32

4.2.a.- Confidencialidad. Perfiles Objetivo: gestionar el uso de los recursos de la BD Establecer recursos cuando se crea el usuario: un tablespace por defecto, temporal, cuotas de espacio y uso. Limitar recursos: A nivel de sesión: a cada sesión un determinado tiempo de CPU, determinada cantidad de memoria A nivel de llamadas: ordenes SQL. 33 4.2.a.- Confidencialidad. Perfiles Sintaxis Oracle. Perfiles (1/2): CREATE PROFILE perfil1 LIMIT CPU_PER_CALL UNLIMITED Resource parameters: Pwd parameters: *Imágenes extraídas de [2]. Oracle9i SQL Reference 34

4.2.a.- Confidencialidad. Perfiles Sintaxis Oracle. Perfiles (2/2). Ejercicios Perfil p1 que limite el tiempo de acceso a CPU por llamada a 3000 segundos Perfil p2 que limite el número de sesiones concurrentes que puede abrir el usuario a 3 y que limite también el tiempo de inactividad del usuario a 15 minutos Perfil p3 que limite el tiempo de cpu por sesión a 500000 segundos y que limite el tiempo de vida de su contraseña a 50 días 35 4.2.b.- Seguridad. Introducción Objetivo: proteger los datos de accesos no autorizados Quién puede estar interesado en atacar el sistema? Un antiguo empleado recientemente despedido Alguien externo a la organización Un usuario del sistema que trata de obtener mayores privilegios Un hacker profesional con un propósito específico Violación de Seguridad Actualización/Consulta de Información Actualización/Consulta Autorizada 36

4.2.b.- Seguridad. Tipos de Ataques CLIENTE SGBD SO DATOS INTERNET 37 4.2.b.- Seguridad. Tipos de Ataques. Ejemplos Desbordamiento de memoria (buffer overflow). Se basa en pasar como entrada a un programa más datos de los que espera recibir. Esto permite escribir en una zona de memoria más allá de la reservada (depende del S.O. entre otras cosas). Inyección de Código SQL. Consiste en incluir/modificar comando SQL al enviarlos al servidor. 38

4.2.b.- Seguridad. Auditorías Para evitar posibles ataques como los anteriormente descritos deben realizarse auditorías. Propiedades: Una auditoríaes una revisión de los permisos de cada usuario y de los ficheros del sistema con el propósito de detectar agujeros de seguridad. Una auditoría completa no es un conjunto estricto de validaciones a realizar, sino que evoluciona según los riesgos detectados. Es una tarea ardua, consume mucho tiempo y no asegura al 100% que el sistema está limpio. La recogida de información de auditoría puede centrarse en distintos elementos: Sentencias SQL: Registro de los intentos de conexión con la base de datos. Privilegios: Consiste en recopilar las operaciones que se han efectuado sobre la base de datos (inserciones, borrados, modificaciones, etc.) y por qué usuarios. Objetos: Se pueden recoger operaciones realizadas sobre determinados objetos de la base de datos. 39 4.2.b.- Seguridad. Auditorías Sintaxis de Oracle. AUDIT *Imágenes extraídas de [2]. Oracle9i SQL Reference AUDIT SELECT ON user303.tabla1 sql_statement_clause: schema_object_clause: auditing by clause: auditing_on_clause: 40

4.2.b.- Seguridad. Auditorías Sintaxis de Oracle. AUDIT. Ejercicios Sentencias SQL Auditar cada vez que se cree, borre, modifique, etc. cualquier role (ROLE) Auditar cada vez que se cree, borre, modifique, etc. cualquier role (ROLE) siempre que sea exitosa la operación Idem pero que la operación no sea exitosa: Auditar cada vez que se seleccione (SELECT TABLE) o modifique (UPDATE TABLE) cualquier tabla Privilegios Auditar cada vez que el usuario user303 o el usuario user304 seleccione (SELECT TABLE) o modifique (UPDATE TABLE) cualquier tabla Objetos de Esquemas Auditar cada vez que se borre (DELETE) en la tabla tabla1 del usuario user303 41 4.2.b.- Seguridad. Auditorías Sintaxis de Oracle. NOAUDIT NOAUDIT SELECT ON user303.tabla1 *Imágenes extraídas de [2]. Oracle9i SQL Reference 42

Bibliografía Fundamentos y Modelos de Bases de Datos, 2ª Edición, De Miguel y Piattini, RA-MA, 1999. (Capítulo14) Fundamentos de Sistemas de Bases de Datos, 5ª Edición, Elmasri y Navathe, Addison Wesley, 2007. (Capítulo 23) Oracle 9i: Administración y Análisis de Bases de Datos. César Pérez. RA-MA. 2002. (Capítulos 14, 15 y 18) Oracle 10g: Administración y Análisis de Bases de Datos. César Pérez. RA-MA. 2005. (Capítulos 15, 16 y 20) Documentación de Oracle online: [1] En General: http://www.oracle.com/technology/documentation/oracle9i_arch_901.html [2] Sobre Administración: http://download-uk.oracle.com/docs/html/a95906_01/toc.htm Todas las imágenes de estas trasparencias se han extraído de esta documentación. [3] Comandos SQL y PL/SQL: http://tahiti.oracle.com/pls/db901/db901.sql_keywords 43