Tema: Auditoria de Base de atos. Parte II

Documentos relacionados
Administración de Sistemas Gestores de Bases de Datos

Tema: Auditoria de Base de datos. Parte I

Tema: Auditoria de Base de datos. Objetivo Especifico

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

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Interacción con el Servidor Oracle8. Copyright Oracle Corporation, All rights reserved.

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

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

Asignatura: Administración de Bases de Datos

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

Manejo de Bases de Datos Mysql en Lenguaje C

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

ÍNDICE INTRODUCCIÓN...17

El Sistema Gestor de Base de Datos (DBMS)

Introducción al SQL de InterBase: DDL y DML

Auditoría en Oracle Sistemas Gestores de Base de Datos Juan Javier Rodríguez Guisado

ÍNDICE PRIMERA PARTE... 17

Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

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

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

Oracle Database y Oracle SQL Developer

VISUALIZACIÓN DE DATOS A PARTIR DE VARIAS TABLAS

departamento NUMBER(3) FK (DEPARTAMENTOS.CODIGO) salario NUMBER(3) NOT NULL fecha_alta DATE NOT NULL jefe NUMBER(5) FK (EMPLEADOS.

Características del lenguaje SQL

Base de datos relacional

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO

Oracle Database: Introducción a SQL

Modificación de datos

MANUAL BÁSICO DE MYSQL

Administración de Bases de Datos

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

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

ACCEDER A BITÁCORA DE TRABAJO SQL SERVER

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

GESTORES GESTORES DE BASES DE DATOS

Base de Datos Conjunto de información organizada especialmente para búsqueda y entrada de datos. Base de Datos: Ejemplo Usuarios

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)

LABORATORIO Nº 8 FILTROS EN EXCEL

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

Integridad Referencial. Restricciones (constraints)

SQL y XML en Oracle XE 11g. Laboratorio de Bases de datos Jonathan Medina Gómez

InterBase / Firebird: el uso de eventos

ANÁLISIS DE IMPACTO Y DESARROLLO DE BUENAS PRÁCTICAS DE AUDITORIA EN BASES DE DATOS ORACLE 11G

Acceso a bases de datos MySQL con PHP

Administración Básica de Oracle9i

EJERCICIOS DE CONSULTAS SQL

ÍNDICE INTRODUCCIÓN...13

Creación de una Base de datos

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

PHP. Tipos de campo en MySql char(longitud): Cualquier carácter. El campo tendrá siempre la misma longitud. Máximo de 255 caracteres.

Sistema de Registro, Derivación y Monitoreo Chile Crece Contigo

SQL (Structured Query Language)

Oracle Express y Toad for Oracle

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015

CONSULTAS BASICAS EN SQL SERVER

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

Creación de Formularios y Consultas

Diseño de bases de datos Práctica-1 Definición de datos

Escritura Básica de Sentencias SQL. Copyright Oracle Corporation, All rights reserved.

Gestión de la Información Práctica 1

Otros objetos de Base de Datos

Tema 4. Manipulación de datos con SQL

Capítulo 5. Edición de datos

Solución Ejercicio Prac. 3b (Esquema).

Diseño de bases de datos

Procedimientos almacenados en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

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

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS.

Oracle Database 10g: Introducción a SQL

MANUAL BÁSICO DEL LENGUAJE SQL

Grandes volúmenes de datos Particionamiento. bases de datos

Prácticas EDAT Curso 12/13

Modulo I: Introducción Gestores de Bases De Datos

Manual del Integrador Contable Premium Soft

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

Formato para prácticas de laboratorio

CONTROL DE ACCESO. curso 2008

Objetivos y Temario CURSO MySQL 5

MANUAL BÁSICO DEL LENGUAJE SQL

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

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

MANUALITO MS-SQL SERVER

8 SQL SERVER 2008 RA-MA

Manipulación de Datos. Copyright Oracle Corporation, All rights reserved.

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

Conceptos de Bases de Datos Relacionales Triggers

AUDITANDO EN LAS BASES DE DATOS

EJERCICIO TRABAJADORES.

FUSIÓN DE DOCUMENTOS PROCEDENTES DE OTRAS APLICACIONES DEL PAQUETE OFIMÁTICO UTILIZANDO LA INSERCIÓN DE OBJETOS DEL MENÚ INSERTAR

Manipulando Datos. y Transacciones

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Tema: Disparadores Parte I.

Procedimientos Almacenados

Bases de datos relacionales y el modelo entidad-relación

PROCEDIMIENTOS ALMACENADOS

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

Disparadores en ORACLE

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

TRIGGER LEONEL CADOSO ROMERO 1

Transcripción:

Tema: Auditoria de Base de atos. Parte II Facultad: Ingeniería Escuela: Computación Asignatura: Base de Datos II Objetivo Especifico Que el estudiante: Aprenda a utilizar los diferentes mecanismos disponibles en ORACLE para auditar la base de datos. Introduccion Teorica Esta práctica está orientada a conocer y aprender cómo realizar un monitoreo selectivo de las acciones de los usuarios para ayudar en la investigación de usos maliciosos de la base de datos. El monitoreo puede realizarse a cuatro niveles distintos: Monitoreo de sentencias: Es el monitoreo de sentencias SQL específicas sin atender concretamente a los objetos. Este tipo de monitoreo puede hacerse para todos los usuarios del sistema o se puede enfocar sólo a algunos usuarios seleccionados. Monitoreo de privilegios: Es el monitoreo de los privilegios del sistema sin atender concretamente a los objetos. Este tipo de monitoreo puede hacerse para todos los usuarios del sistema o se puede enfocar sólo a algunos usuarios seleccionados. Monitoreo de objetos: Es el monitoreo de los accesos a esquemas específicos sin considerar el usuario. Monitorea las sentencias permitidas por los privilegios. Monitoreo minucioso: Permite una auditoría a nivel más granular, acceso a datos y las acciones basadas en el contenido, utilizando cualquier sentencia booleana, por ejemplo value > 1,000,000. La auditoría se activa con el acceso o con cambios en una columna. Para todos los tipos de monitoreo, ORACLE permite el monitoreo selectivo de sentencias ejecutadas con éxito, sentencias ejecutadas sin éxito o ambas. Los resultados del monitoreo son registrados en una tabla llamada "the audit trail" (la pista de auditoría). Monitoreo minucioso Fine-Grained Auditing (FGA) FGA proporciona una interfaz extensible para la creación de políticas para auditar los estados SELECT y DML en tablas y vistas. El paquete DBMS_FGA administra estos valores basados en las políticas de auditoría. El uso de este paquete le da al administrador una herramienta de seguridad donde puede crear políticas de auditoría sobre un objeto. Si todas las filas devueltas de una consulta coinciden con la condición de auditoría, entonces se crea una entrada que registra el evento de auditoría insertando una pista de auditoría minuciosa. Esta entrada incluye todos los datos reportados en la pista de auditoría regular. Sólo una fila de información de auditoría se inserta en la pista de auditoría para todas las políticas FGA que se evalúa como verdadera. El marco de extensibilidad de FGA también permite a los administradores, opcionalmente, definir un controlador de eventos de auditoría apropiados para procesar el caso, por ejemplo mediante el

2 envío de un alerta al administrador. El administrador utiliza la interfaz de DBMS_FGA.ADD_POLICY para definir la política de cada FGA para una tabla o vista, la identificación de cualquier combinación de SELECT, UPDATE, DELETE o INSERT Las políticas FGA asociadas con una tabla o vista también puede especificar las columnas más relevantes o importantes, por lo que cuando se audita cualquier tipo de declaración se debe especificar que columnas se verán afectadas o de cuales se desean llevar la auditoria. Si no se especifica la columna, la auditoría se aplica a todas las columnas, es decir, la auditoría se produce cuando cualquier tipo de sentencia especifica afecta a cualquier columna, independientemente de si se devuelve o no información. Un beneficio añadido es que los registros de auditoría creados son pertinentes, porque se refieren a los datos específicos de interés o preocupación. Adicionalmente el numero de registros generados es mucho menor debido a que se tiene un mejor control sobre lo que se desea auditar, es decir sobre lo más importante o privado y que no todos los empleados deben tener acceso, por ejemplo el salario, el número de seguro, el saldo en una cuenta, etc. FGA es independiente de AUDIT_TRAIL, todos los registros de auditoría se almacenan en tabla FGA_LOG$, en lugar de la tabla AUD$. El paquete DBMS_FGA contiene los siguientes procedimientos: ADD_POLICY DROP_POLICY ENABLE_POLICY DISABLE_POLICY Protegiendo los Registros de Auditoría Los registros de la tabla SYS.AUD$ pueden ser objeto de intentos de acceso para ser eliminados ya que pueden reflejar acciones no autorizadas en la BD. Así, resulta interesante reflejar ese tipo de acciones. Esto se consigue con el siguiente comando: audit all on sys.aud$ by access; De este modo cualquier acción contra la tabla SYS.AUD$ quedará registrado. Además, las acciones contra la tabla SYS.AUD$ sólo pueden ser borradas por los usuarios que puedan conectarse como INTERNAL.

Material y Equipo Computadora con Oracle 10G XE. Guía de Laboratorio. Procedimiento El desarrollo de esta práctica está orientado a continuar con el aprendizaje de la auditoria en la base de datos de oracle, ahora a un nivel mucho más minucioso. Monitoreo minucioso Fine-Grained Auditing (FGA) Mientras los trigger de Base de datos ayudan a potenciar acciones DML como insert, update y delete, el monitoreo sobre sentencias SELECT se puede volver muy costoso. Ya que generan demasiados registros el tratar de ver quienes están accesando la base de datos, sin embargo es algo que puede volverse crucial a la hora de auditoría, por lo que el monitoreo minucioso se vuelve muy importante. En esta práctica realizaremos este tipo de auditoría, donde es muy similar a la realizada la semana pasada, con la diferencia de que se puede agregar filtros y columnas al monitoreo. Lo primero que hay que comprobar es si la auditoría de la base de datos está activada por lo que ejecutaremos el siguiente comando SQL: select name, value from v$parameter where name like 'audit_trail' Para activar la auditoria ejecutaremos el siguiente comando: ALTER SYSTEM SET audit_trail = "DB" SCOPE=SPFILE; Cuando se realiza un cambio en el archivo spfile, es necesario bajar la base de datos, en nuestro caso reiniciar la maquina. Para conocer el funcionamiento de FGA realizaremos lo siguiente. Crearemos el usuario MICARNET y nos logueamos con él una vez que le hayamos otorgado los privilegios necesarios, luego creamos la tabla tpl_empleado con sus respectivos campos, e insertamos dos o más las filas, en donde más de un registro tenga como sueldo una cantidad mayor a 5000. Create table TPL_EMPLEADO( Tpl_Codcia Varchar2(15) Not Null, --Código de la empresa Tpl_CodEmp Varchar2(15) Not Null, --Código del empleado Tpl_NomEmp Varchar2(40) Not Null, --Nombre del empleado Tpl_ApeEmp Varchar2(40) Not Null, --Apellido del empleado Tpl_CodSex Varchar2(1) Not Null, --Sexo del empleado Tpl_Direcc Varchar2(100) Not Null, --Dirección del empleado tpl_numtel Varchar2(15) Not Null, --Numero de Teléfono tpl_numdui Varchar2(15) Not Null, --Numero de DUI tpl_numnit Varchar2(15) Not Null, --Numero de NIT Tpl_Salari Number(16,4) Not Null, --Salario actual del empleado Tpl_FecNac Date Not Null, --Fecha de nacimiento

4 Tpl_FecIng Date Not Null, --Fecha de ingreso Tpl_Estado Varchar2(1) Not Null, --Estado del Empleado Tpl_CodDep Number(3) Not Null, --código del depto. en que labora Tpl_CodCar Number(2) Not Null, --Código del cargo Tpl_codusu Varchar2(15) Not Null, --Usuario asignado al empleado Tpl_codusc Varchar2(15) Not Null, --Usuario que crea el registro Tpl_f_crea Date Not Null, --fecha en que se crea el registro Tpl_codusm Varchar2(15), --usuario que modifica el registro Tpl_f_modi Date --fecha en que se mod. el registro ); A continuación crearemos una política de auditoría, con el fin de auditar los sueldos superiores a 5000. Para lo cual nos conectaremos como sysdba. begin dbms_fga.add_policy( object_schema=> MICARNET, object_name => 'TPL_EMPLEADO', policy_name => 'SAL_CHK_AUDIT', audit_condition => 'TPL_SALARI > 5000', audit_column => 'TPL_SALARI' ); end; Para probar la auditoria nos conectaremos con el usuario MICARNET y consultaremos los registros ingresados tanto los que tienen un sueldo superior a 5000 como los que tienen un sueldo menor. Posteriormente conectados como sysdba ejecutamos la siguiente consulta para revisar la auditoria. select sql_text from dba_fga_audit_trail; Si lo que se desea es auditar sentencias DML, se puede realizar la siguiente política donde se realizará la auditoria para una sola columna de la tabla. begin dbms_fga.add_policy( object_schema => 'MICARNET', object_name => 'TPL_EMPLEADO', policy_name => 'sal_audit', audit_condition => null, -- equivalent to true audit_column => 'TPL_SALARI', statement_types => 'select,insert,update,delete'); end; Para comprobar la política anteriormente aplicada, realizaremos sobre la tabla tpl_empleado, inserciones, actualizaciones, eliminaciones y consultas conectados con el usuario MICARNET y en lugar de realizar un commit haremos un rollback, posteriormente consultaremos la auditoria. Si se desea eliminar una política, es necesario conectarse con el usuario sysdba, y ejecutar el siguiente comando. begin dbms_fga.drop_policy(

object_schema => 'MICARNET', object_name => 'TPL_EMPLEADO', policy_name => 'sal_audit'); end; Posteriormente realizaremos acciones sobre la tabla tlp_empleado y revisaremos la pista de auditoría para verificar que realmente ha sido eliminado.

6 Tarea Proteger los registros de auditoría, posteriormente borrar algunos registros de la tabla de auditoría y mostrar las pistas de auditoría generadas por la acción realizada.