Source: https://es.scribd.com/doc/99597480/AnalisisImpacto
Timestamp: 2016-02-13 23:42:38+00:00

Document:
SubirSign inJoinBooksAudiobooksComicsSheet MusicScribd Selects BooksHand-picked favorites from our editorsScribd Selects AudiobooksHand-picked favorites from our editorsScribd Selects ComicsHand-picked favorites from our editorsScribd Selects Sheet MusicHand-picked favorites from our editorsTop BooksWhat's trending, bestsellers, award-winners & moreTop AudiobooksWhat's trending, bestsellers, award-winners & moreTop ComicsWhat's trending, bestsellers, award-winners & moreTop Sheet MusicWhat's trending, bestsellers, award-winners & moreCategoriesArts & IdeasBiography & MemoirBusiness & LeadershipChildren'sComputers & TechnologyCooking & FoodCrafts & HobbiesFantasyFiction & LiteratureHappiness & Self-HelpHealth & WellnessHistoryHome & GardenHumorLGBTMystery, Thriller & CrimePolitics & EconomyReferenceReligionRomanceScience & NatureScience FictionSociety & CultureSports & AdventureTravelYoung AdultCategoriesArts & IdeasBiography & MemoirBusiness & LeadershipChildren'sComputers & TechnologyCooking & FoodFantasyFiction & LiteratureHappiness & Self-HelpHealth & WellnessHistoryHome & GardenHumorLGBTMystery, Thriller & CrimePolitics & EconomyReferenceReligionRomanceScience & NatureScience FictionSociety & CultureSports & AdventureTravelYoung AdultCategoriesAdaptationsChildren’sCrime & MysteryFictionHumorMangaNonfictionRomanceSciFi, Fantasy & HorrorSuperheroesYoung AdultPublishersArcanaArchie ComicsBOOM! StudiosDynamiteIDW PublishingKingstone ComicsMarvel ComicsSpace Goat ProductionsTop Cow ComicsTop Shelf ProductionsValiant Comics ZenescopeDifficultyBeginnerIntermediateAdvancedMixedInstrumentBrassDrums & PercussionGuitar, Bass, and FrettedPianoStringsVocalWoodwindsGenreClassicalCountryFolkJazz & BluesMovies & MusicalsPop & RockReligious & HolidayStandardsP. 1AnalisisImpactoAnalisisImpacto|Views: 38|Likes: 0Publicado porana.izquierdoQue es un analisis de impactoQue es un analisis de impactoMore info:Categories:Types, Instruction manuals, CraftsPublished by: ana.izquierdo on Jul 09, 2012Copyright:Attribution Non-commercialAvailability:Read on Scribd mobile: iPhone, iPad and Android.download as PDF, TXT or read online from ScribdFlag for inappropriate content|Agregar a la colecciónSee moreSee lesshttps://es.scribd.com/doc/99597480/AnalisisImpacto07/09/2012pdftextoriginalUNIVERSIDAD CARLOS III DE MADRIDESCUELA POLITÉCNICA SUPERIOR
INGENIERÍA EN INFORMÁTICA SUPERIOR
MARIO DELGADO PICAZO IGNACIO-J. SANTOS FORNER
Para terminar algo, primero hay que iniciarlo. Cuando una persona empieza a estudiar, nunca se detiene. Es el comenzar el peldaño más duro, y nunca se puede realizar solo. Por ello quiero aprovechar esta página para agradecer su apoyo a todas las personas que me lo han dado. En primer lugar, debo agradecer a Ignacio Santos su apoyo intelectual y filosófico, sin cuya entrega en estos meses no habría sido posible llegar a buen término. A mis padres, Mercedes y Basilio, y mis hermanos, Merche y Noel, que han sabido cómo disfrutar de mis días buenos y resistir mis días malos. A mis abuelas Ramona y Manuela, que siempre están pendientes de los éxitos de sus nietos. A quienes no están, mis abuelos Vicente y Basilio, que sin verles en mí no podría haber hecho nunca esta carrera. Al resto de mi familia, con incontables miembros, por darme vuestro ánimo y tener mi foto de la orla en el salón. A Laura, por estar siempre a mi lado salga el Sol por donde salga, por escucharme, quererme y apoyarme incondicionalmente. De una forma o de otra, este trabajo también es vuestro. Finalmente, a todos mis amigos y compañeros de prácticas. Ojalá nos volvamos a encontrar en el futuro.
. Si todo parece estar yendo bien. obviamente has pasado algo por alto.
3. 2.1.3.43 Herramientas externas a Oracle ___________________________________.
3.49 Herramientas de medición de rendimiento ________________________________ .14 -
3.1.Índice
1.2.2. 4.
Rendimiento en la recolección de datos en Oracle 11g _________________ .49 Herramientas de auditoría _____________________________________________ .16 Auditoría de disparadores _____________________________________________ .39 Auditoría de grano fino ___________________________________________.
Recolección de datos en Oracle 11g ________________________________ .
Objetivos ______________________________________________________ . 4.1.26 Análisis de la recolección _____________________________________________ .2. 2. Auditoría Informática ____________________________________________.
Auditoría en el motor de la base de datos _____________________________.26 -
4.3.1. Auditoría del Cliente _____________________________________________.
3.2.38 4.2. 3.3.52 -
4.19 Recolección de datos_________________________________________________ .11 2. Auditoría genérica _______________________________________________.16 3.32 3.1.17 Herramientas comerciales para el desarrollo de disparadores __________________ . Diferencias entre auditoría en el motor de base de datos y auditoría de disparadores ___________________________________________________________.3.
Auditoría en Base de Datos _______________________________________ .13 Necesidad de la auditoría _________________________________________.16 Auditoría de aplicativo _______________________________________________ .61 -
.1.3.2.1.2.1.11 Introducción a la Auditoría _______________________________________ . 3.2. 4.1.
7. 6.2.2.130 Categoría de datos sensibles para la empresa _____________________________ .149 -
.1.111 Búsqueda de un dato para la auditoría de grano fino _______________________ .
7. 7.146 -
Anexo I: elementos incluidos en el CD_________________________________ . 6.
Normas para auditar elementos de una organización _________________ .1.1.136 Nivel medio_______________________________________________________ . 5.111 Búsqueda de un dato para la auditoría genérica ___________________________ .6.1. 5.1.
Ventajas y desventajas de los niveles de auditoría __________________.2.108 Obtención de un dato específico de auditoría ______________________. 6.140 Referencias ___________________________________________________ .3.107 6.5. 6.79 Rendimiento de espacio de tablas _________________________________.
6.2.3. backup y recuperación ______________________.125 Obtener un conjunto de datos en auditoría de grano fino ____________________ .
Búsqueda de un evento en el tiempo con Log Miner _________________.118 -
6.1.4.103 Dependencia de la densidad de operaciones ______________________________ .129 7.98 Servidor__________________________________________________________ .2.1.2.1.125 Obtener un conjunto de datos con auditoría genérica _______________________ .1.4.70 Rendimiento del sistema gestor con auditoría genérica y de grano fino .2. Niveles de auditoría _____________________________________________.3. 6.138 7. 5.1.134 Nivel básico_______________________________________________________ .3.137 Nivel alto_________________________________________________________ .5.4. 9.3.1.88 Rendimiento de copia.100 PC Auditor _______________________________________________________ .
8.1.2. 5.61 Rendimiento del sistema gestor con auditoría genérica ______________.2.
Conclusiones y líneas futuras ____________________________________ .127 -
Análisis de la recolección_________________________________________ .66 Rendimiento del sistema gestor con auditoría de grano fino __________.2.
6.3.136 -
Pruebas realizadas e infraestructura_______________________________.129 Categoría de datos personales _________________________________________ .98 6.4.
Obtención de un conjunto de datos de auditoría ____________________. 5. Infraestructura para el análisis de la recolección de los datos_________.1.2. 7. 7.
Página .de 150
y posteriormente se establecerá un análisis de la auditoría obtenida.
2. así como su viabilidad.11 .. obteniendo resultados y comparativas que se utilizarán para preparar un manual de buenas prácticas acerca de la auditoría de recolección de datos. detectar o corregir errores. como un examen sistemático de los libros y registros de un organismo social.de 150
Paralelamente se abordarán productos comerciales de auditoria. codificaciones y estándares u otros requisitos. especificaciones. la adhesión a los mismos y la eficiencia de su implantación Estas definiciones se pueden aplicar a muchos tipos de auditoría: auditoría financiera.
Página . la adecuación de los procedimientos establecidos.. se estudiará el comportamiento y el rendimiento de las diferentes modalidades de auditoría que Oracle 11g ofrece como motor de la base de datos.) con el objetivo de prevenir. la auditoría organizativa. También podemos definirla como la actividad o conjunto de actividades realizadas para determinar. por medio de la investigación.1. como la identificación de las debilidades y las amenazas a las cuales se enfrenta una institución. Objetivos Este proyecto consiste en realizar un análisis y un estudio de los diferentes tipos de auditoría en Oracle 11g. Introducción a la Auditoría De una forma muy general. así como unas recomendaciones sobre diferentes niveles de auditoría a considerar. máquinas. la auditoría administrativa. instrucciones. la auditoría es una actividad o acción (o un grupo de estos) realizadas por uno o varios elementos (humanos. con el objetivo de estudiar las características de las herramientas disponibles. Mediante experimentación. omisiones o irregularidades que afecten al funcionamiento de algo.
puntual y discontinuo del servicio informático. actividades y procedimientos. sino que además tendrá que evaluar los sistemas de información en general desde sus entradas. de los equipos de cómputo. con vistas a mejorar en rentabilidad. controles. seguridad y adecuación del servicio informático en la empresa. su utilización. La Auditoría Informática es de vital importancia para el buen desempeño de los sistemas de información. por lo que comprende un examen metódico. evaluar. ya que proporciona los controles necesarios para que los sistemas sean fiables y para que tengan un buen nivel de seguridad. procedimientos de informática.de 150
. archivos. organización de centros de información. seguridad y obtención de información.que proporciona una evaluación cuantificada de la eficiencia con la que cada unidad administrativa de la empresa desarrolla las diferentes etapas del proceso administrativo. y así un largo etcétera. La Auditoría Informática es la revisión y la evaluación de los controles. La Auditoría Informática debe comprender no sólo la evaluación de un ordenador. este trabajo está centrado en la Auditoría Informática. El objetivo fundamental de este tipo de auditorías es lograr una utilización más eficiente y segura de la información. seguridad y eficacia.
Página . el recurso con más valor de una organización. verificar y recomendar en asuntos relativos a la planificación. Además se debe evaluar todo: informática. sistemas. hardware y software. eficiencia y seguridad de la organización que participan en el procesamiento de la información.12 . destinados a analizar. Sin embargo. control. de un sistema o de un procedimiento específico. procedimientos. eficacia. Todo esto conlleva la utilización de un conjunto de técnicas.
el análisis de la eficiencia de los Sistemas Informáticos. sometidos a los estándares generales o corporativos de la misma. Auditoría Informática A finales del siglo XX. un Ministerio. La informática hoy en día está aplicada a la gestión de la empresa. Los principales objetivos de la Auditoría Informática son el control de la función informática. etc. ya sean del tipo económico. Cabe aclarar que la informática no gestiona propiamente la empresa. que para la realización de una Auditoría Informática eficaz. se debe entender a la empresa como una organización.de 150
. los Sistemas Informáticos se han convertido en las herramientas más útiles para crear uno de los conceptos más necesarios para cualquier organización empresarial: los Sistemas de Información. humanos e informáticos y la verificación del cumplimiento de la Normativa General de la empresa en este ámbito.2.1. o "Management". la revisión de la gestión de los recursos materiales. ya sea una Universidad. las organizaciones informáticas forman parte de lo que se ha denominado “Gestión de la empresa”. debido a su importancia en el funcionamiento de una empresa. Por consiguiente.13 . Todos utilizan la informática para gestionar su lógica de negocio de forma rápida y eficiente con el fin de obtener beneficios. existe la Auditoría Informática. una Sociedad Anónima o una empresa Pública. Claro está. es decir. y por eso las normas y estándares propiamente informáticos deben estar. un Hospital. sino que ayuda en la toma de decisiones. El auditor informático ha de velar por la correcta utilización de los recursos que la empresa pone en juego para disponer de un eficiente y eficaz Sistema de Información. Por ello. no decide por sí misma. social.
Página . por lo tanto.
En este caso interviene la Auditoría Informática de Datos. Las estaciones de trabajo. o al menos deberían estar.2. y especialmente de su honor e intimidad personal y familiar”. He aquí algunas de las principales razones por las que es necesaria la auditoría.2. de 13 de diciembre. sometidos a un control. Necesidad de la auditoría Los Sistemas Informáticos están. la delincuencia y el terrorismo. En este caso interviene la Auditoría Informática de Seguridad. el control: Los ordenadores creados para procesar y difundir resultados o información elaborada pueden producir información errónea si dichos datos son. por eso existe necesidad de auditoría. hay usuarios que no tienen permisos para ver
Página . los Centros de Procesamiento de Datos (CPDs) se convirtieron en blancos para el espionaje.de 150
. Pongamos el ejemplo del robo de un dato: un usuario de una base de datos puede visualizar un dato que considera interesante gracias a que tiene permisos: seguridad.14 . de Protección de Datos de Carácter Personal [3]. Gracias a la seguridad. Vamos a centrar las próximas líneas en explicar la segunda razón por la que es necesaria una auditoría. Por otro lado hay que tener en cuenta que entre el 60% y el 80% de los actos de sabotaje son internos. El objetivo es diferenciar seguridad de auditoría. que “tiene por objeto garantizar y proteger. Estos son solo algunos de los varios inconvenientes que puede presentar un Sistema Informático. El cumplimiento de la Ley Orgánica 15/1999. servidores y en general. las libertades públicas y los derechos fundamentales de las personas físicas. en lo que concierne al tratamiento de los datos personales. erróneos. a su vez.
Sin embargo.de 150
.15 .ciertos datos. está en poder ver qué usuarios accedieron a ese dato en un momento concreto para poder así usarlo para el beneficio personal. de la auditoría.
Página . un usuario que sí tiene permisos puede usar ese dato para el beneficio personal. La necesidad. en este caso.
Auditoría en Base de Datos En este punto se va a explicar las diferentes formas de auditoría informática. pedidos. redes privadas virtuales o extranets. Es realizada por la aplicación y es totalmente externa a la base de datos.
3. banca por Internet o brokers. etc. pagos online. En este caso.1.16 . comercio electrónico o e-commerce.de 150
. control de acceso. Existen otras instituciones que utilizan aplicaciones para realizar una gran variedad de operaciones complejas y que requieren alta seguridad (portales corporativos. de forma independiente y exhaustiva.
3. el alcance de la auditoría se delimitará al funcionamiento del día a día de la aplicación.
Auditoría de aplicativo
Las instituciones normalmente incluyen en sus gestores de información pequeñas aplicaciones (Applets.
Página . etc.1. Auditoría del Cliente La auditoría de cliente es la que no pertenece al motor de la base de datos. Por un lado hablaremos sobre la auditoría de cliente y.1. CGIs. no por el administrador o auditor de la base de datos.). Es aquella cuyo desarrollo es realizado por el programador de la aplicación o de la base de datos. etc. cada una con sus diferentes alternativas y soluciones. Podemos distinguir dos subtipos de auditoría de cliente: auditoría de aplicativo y auditoría de disparadores.3. sobre la auditoría en el motor de la base de datos. por otro.) y esto implica la utilización de una compleja aplicación que gestiona todas estas operaciones. Este servicio del que hablamos es la Auditoría de aplicativo. Por ello es necesario un servicio para poder analizar todas estas aplicaciones. ActiveX.) que ayudan a gestionar los datos (datos personales. así como en los procesos en los cuales participe.
etc. actualiza o borra datos de una tabla. se ejecute el disparador correspondiente para copiar la información a una tabla diseñada para ello: una tabla de auditoría. o para avisar automáticamente a otros programas de que hay que llevar a cabo una determinada acción cuando se realiza un cambio en una tabla. dato posterior a la modificación. La sintaxis completa para crear disparadores es la siguiente [4]:
Página . Podemos usarlos para el mantenimiento de restricciones de integridad complejas.1. tabla sobre la que se realizó la acción. el disparador guarda en la tabla de auditoría información que el administrador de la base de datos o el auditor considere necesario: fecha en la que se produjo el borrado. dato anterior a la modificación. dato que se borró.17 . La idea está en que cuando un usuario inserta. modificación o inserción. Así. registrando los cambios realizados. que no sean posibles con las restricciones declarativas definidas en el momento de crear la tabla. etc.de 150
Auditoría de disparadores
Los disparadores son procedimientos que se ejecutan cuando se produce un evento de base de datos entre los que están las operaciones de Manipulación de Datos. usuario que realizó la acción. de conexión y desconexión de usuarios. de arranque de la base de datos o de fallo.2. desde dónde. ya que son anomalías semánticas del modelo Entidad/Relación (E/R). Hay diversos usos para los disparadores.3. nos vamos a centrar en el uso de los disparadores para auditar la información contenida en una tabla. Sin embargo. la identidad de quien los llevó a cabo y otros datos de interés como cuándo se realizaron. El acto de ejecutar un disparador se conoce como disparo.
] } [ OR { DELETE | INSERT | UPDATE [ OF columna [..] SCHEMA | DATABASE } Disparador_simple_dml := { BEFORE | AFTER | INSTEAD OF } clausula_evento_dml [ clausula_refrencia ] [ FOR EACH ROW ] Disparador_compuesto_dml := FOR clausula_evento_dml [clausula_refrencia ] Clausula_evento_dml := { DELETE | INSERT | UPDATE [ OF columna [..... | evento_bd [OR evento_bd]. columna ].. ] nombre_disparador_2 [. ] [ ENABLE | DISABLE ] [ WHEN (condicion) ] Cuerpo_disparador disparador_no_dml := { BEFORE | AFTER } { evento_ddl [OR evento_ddl]..de 150
..[ esquema.18 .. } ON { [esquema. columna].. ] vista } Clausula_referencia := REFERENCING { OLD [ AS ] anterior | NEW [ AS ] nuevo | PARENT [ AS ] padre }. ] nombre_disparador_3...CREATE [ OR REPLACE ] TRIGGER [esquema.. ON { [esquema. ] } ].. Cuerpo_disparador := { bloque_plsql | bloque_disparador_compuesto | CALL nombre_rutina } bloque_disparador_compuesto := no necesario en auditoría Página . ]tabla | [ NESTED TABLE nombre_columna OF ] [ esquema.] nombre_disparador { disparador_simple_dml | disparador_compuesto_dml | disparador_no_dml } [ FOLLOWS [ esquema.
131. Se expondrán ventajas e inconvenientes observados.1.3.0. de muy fácil instalación y configuración. en distinto modo. Se trata de un sistema con interfaz gráfico con apariencia Windows.1. permiten la creación de disparadores de una forma visual.5. de SoftTree Technologies
Esta herramienta contiene un conjunto de programas muy completo para el administrador.
Página . entre otros. que se conecta a la base de datos. Sólo hay que indicar la tabla o tablas que deben ser auditadas. Posee un programa llamado DB Audit Expert.3. con rol SYSDBA introduciendo la contraseña. y visualiza todas las tablas de todos los usuarios que existen en la base de datos. Permite crear disparadores de una forma muy sencilla. y la herramienta se encarga de crear el disparador y de activarlo.
3.19 . auditor y desarrollador de bases de datos. Version 5. pulsar el botón “Proceed”.3. Herramientas comerciales para el desarrollo de disparadores
A continuación se analizarán tres herramientas comerciales que.1. que permite visualizar la información recopilada de un modo sencillo y claro. DB Tools for Oracle.de 150
Página . usuario que la realizó.2 Auditoría de grano fino) propia con los campos mínimos suficientes para realizar una auditoría: momento en el que se realiza la operación (timestamp). operación ejecutada y todos los valores de todos los campos.de 150
. Sólo hay que indicar qué tabla es la que el auditor elige cuya información de auditoría quiere que sea volcada en otra tabla y pulsar el botón “Archive”. ordenador desde el que la realizó.20 . Además tiene herramientas para volcar la información de auditoría en una tabla auxiliar y vaciar la tabla de auditoría con una gran facilidad. Ilustración 1: creación de auditoría de disparadores en DC Audit Expert
Además.1 Auditoría genérica) y de FGA_LOG$ de la auditoría de grano fino (ver punto 3. crea una tabla de auditoría ajena a AUD$ de la auditoría genérica (ver punto 3.
y no es necesario aprenderse toda la sintaxis para realizar cualquier tipo de auditoría. y no se puede elegir otra.21 . La ventaja es que ofrece una interfaz muy sencilla de utilizar. Esto limita mucho la herramienta. teniendo que hacer. El proceso de crear una auditoría Oracle no es más complejo. Ilustración 2: Volcado de información de tabla de auditoría de disparadores en DC Audit Expert
El principal problema es que la operación por defecto es la de inserción. al menos en esta versión del producto.de 150
. al crear una auditoría. pero la herramienta no se hace tan rentable como para crear disparadores. el borrado y modificación (los disparadores no soportan las consultas). por lo que hace un barrido en toda la base de datos buscando todos los objetos existentes. Esta operación tarda un tiempo relativamente alto comparado con el
Página . Sin embargo. por medio de auditoría Oracle. la interfaz tiene un cuadro checkbox para elegir el objeto a auditar.
Brinda soporte para versiones desde la 8i hasta la 11g de Oracle. y muy eficiente.22 . Por ello. y por otro lado. por un lado.1. Dos inconvenientes a tener en cuenta son. usuarios. que esta herramienta no es compatible con Windows Server. por lo que si el servidor de base de datos es de este tipo. un visor OLAP. A diferencia de Audit Expert incluido en DB Tools for Oracle de SoftTree Technologies. clusters. Oracle Maestro versión 8. teniendo en cuenta que la sintaxis de la auditoría genérica no es compleja. sino de administración. el auditor no podrá usarlo en el mismo equipo. secuencias. procesos.de 150
. la visualización de diagramas ER o la posibilidad de limpiar código PL/SQL. no asegura compatibilidad con la versión 11g de Oracle. permite realizar disparadores para la auditoría de cliente. la edición de datos BLOBs. Sólo hay que elegir la tabla sobre la que
Página . una herramienta para visualizar gráficamente las peticiones a la base de datos. aunque al realizar auditoría de disparadores y auditoría genérica no ha dado problema. Oracle Maestro no es una herramienta de auditoría. debiendo usar otro ordenador para realizar su trabajo. una aplicación totalmente visual que dispone de una serie de utilidades diseñadas para realizar operaciones sobre la base de datos. vistas. Oracle Maestro ofrece opciones interesantes como la optimización de peticiones SQL. etc. Posee una interfaz fácil de utilizar.3. etc. así como para todas sus características como funciones. Sin embargo. Crear disparadores con esta herramienta es bastante sencillo.0.12.2
Oracle Maestro es una herramienta de gestión para servidores de bases de datos Oracle.2.tiempo que se tarda en escribir la sentencia de auditoría en SQL. Incluye también un debugger PL/SQL.
3. es posible que en otros programas incluidos en DB Tools que no sean DB Audit Expert los pueda dar.
Página . la o las operaciones sobre las que se va a activar dicho disparador y el resto de opciones. En el menú de disparadores (Triggers) apretamos el botón derecho del ratón en la lista de disparadores (inicialmente vacía) y elegimos Crear nuevo disparador… (Create New Trigger…)
Ilustración 3: Creación de auditoría de disparadores con Oracle Maestro (paso 1)
Se elige el nombre del disparador.queremos activar el disparador y abrir el editor de tablas sobre ella.23 .
. Ilustración 4: Creación de auditoría de disparadores con Oracle Maestro (paso 2)
Y finalmente se escribe el cuerpo del disparador en un editor.
Página .24 .
Página . La herramienta anterior permite crear disparadores específicamente para realizar auditoría teniendo un esquema propio automáticamente construido. Ilustración 5: Creación de auditoría de disparadores con Oracle Maestro (paso 3)
Desde el punto de vista del auditor. pero en definitiva no tiene mucha mejora con respecto a la creación de disparadores por línea de comandos.de 150
. se debería ejecutar la sentencia de creación de auditorías audit. Para crearlas. Lo mismo pasa con las auditorías. Oracle Maestro no facilita la labor de crear auditorías. éste es el principal inconveniente de la herramienta comparada con la herramienta anterior DB Tools for Oracle. Es cierto que Oracle Maestro ofrece mucha más flexibilidad.
3. Este servicio evita tener que usar los disparadores u otras herramientas externas. se puede definir la política de auditoría como la información que necesita el motor de la base de datos para auditar. cada vez que se haga una operación sobre el objeto del esquema que satisfaga las circunstancias definidas por el auditor. Cada tipo de auditoría utiliza una tabla diferente en Oracle 11g: AUD$ y FGA_LOG$ respectivamente.1. pues conlleva una mayor facilidad de uso y mucho menor tiempo de desarrollo con respecto a la creación de un disparador para realizar la misma auditoría.de 150
. Las diferencias entre el uso de las políticas de auditoría y el uso de disparadores se encuentran en el apartado 3. hay dos tipos de auditoría: Auditoría genérica y Auditoría de grano fino. para auditar la base de datos. Indica qué hay que auditar. Activada la política.
Página . Auditoría en el motor de la base de datos Oracle ofrece un servicio de auditoría en el motor de la base de datos. Como veremos en el punto 3 Recolección de datos en Oracle 11g. con todas sus limitaciones.26 . se creará un registro en una tabla específica indicando todos los parámetros de información necesarios que el motor de la base de datos considera relevantes.
La auditoría enfocada desde el punto de vista del motor de la base de datos está basada en políticas de auditoría. Cada política está diseñada de tal forma que sea posible auditar un objeto de la base de datos en unas determinadas circunstancias: bajo el uso de una o varias operaciones definidas por el auditor.2.3. De esta forma. La política de auditoría facilita el trabajo al auditor.2. cómo y cuándo.3 Diferencias entre auditoría en el motor de base de datos y auditoría de disparadores del presente documento.
2. habría que actualizarlo al valor DB mediante la siguiente sentencia:
alter system set audit_trail = DB scope = spfile. La sintaxis completa se puede encontrar en la documentación de Oracle en línea [7]. el administrador debe comprobarlo de la siguiente manera:
SQL> show parameters audit NAME TYPE VALUE ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ audit_file_dest string C:\APP\PROYECTO\ADMIN\BDMARIO\ADUMP audit_sys_operations boolean FALSE audit_trail string DB El hecho de que el parámetro audit_trail esté a DB significa que la auditoría en el motor de la base de datos está activada y se pueden crear políticas. En el caso de que estuviera a NONE.1 Auditoría genérica y 4. Como en este documento nos centraremos en la auditoría sobre tablas de la base de datos.27 . Para crear una política se debe ejecutar el comando audit. Recolección de datos en auditoría genérica
Para definir una política de auditoría genérica. describiremos con suficiente detalle la sintaxis para dicho propósito.1. Startup.1.2 Auditoría de grano fino del presente documento están descritos ambos tipos de auditoría.En los puntos 4. A continuación paramos y arrancamos la base de datos para que los cambios surtan efecto:
Shutdown immediate. A partir de ese momento se pueden crear políticas de auditoría genérica. Dicha sintaxis es la siguiente:
3. es requisito indispensable tener el valor DB en el parámetro de la base de datos audit_trail. Para comprobarlo.de 150
El auditor elegirá BY ACCESS cuando la política esté definida para que el motor de la base de datos guarde un registro de auditoría cada vez que se ejecute la operación.de 150
. y objeto es el nombre del objeto sobre el que va a actuar la política. el usuario ha realizado la operación. y puede ser cualquiera de los siguientes. DELETE. la sintaxis es similar.AUDIT action on esquema. AUDIT. Si se quiere guardar un registro tanto si se tiene éxito como si no. INDEX. La tabla AUD$ es la que guarda los datos de auditoría que son generados a partir de la ejecución de la operación que satisface las condiciones de la política definida por el auditor. no se deberá poner este parámetro de la sintaxis. en una sesión. caso diferente de cuando el auditor elige BY SESSION.objeto BY ACCESS|SESSION [WHENEVER [NOT] SUCCESSFUL] Donde esquema es el nombre del esquema al que el objeto pertenece. el terminal action toma el valor de la operación que se quiere auditar.”): ALTER. GRANT. La única diferencia está en que en lugar de la palabra clave AUDIT se utilizará la palabra clave NOAUDIT. Oracle activa BY SESSION por defecto. EXECUTE. Las opciones WHENEVER SUCCNSSFUL y WHENEVER NOT
SUCCESSFUL se diferencian en que la primera está definida para guardar un registro de auditoría cada vez que la operación realizada por el usuario tenga éxito. que se basa en que se guarde un solo registro si. COMMENT. Si el auditor no elige ninguna opción.28 . o varios separados por coma (“. RENAME. SELECT. UPDATE. Para desactivar la política de auditoría. INSERT. Por último. LOCK. y la segunda en caso contrario.
En el punto 2.2.2.1 Análisis de la recolección de auditoría genérica está descrito el uso de esta tabla.
3.2.1.2. Recolección de datos en auditoría de grano fino
Para definir y activar una política de auditoría de grano fino se deben tener privilegios para usar el paquete DBMS_FGA, ya que éste es el que posee los procedimientos de seguridad utilizadas en la auditoría de grano fino. Este paquete tiene 4 procedimientos que van a ser utilizadas para manejar las políticas de grano fino. Por orden alfabético: • ADD_POLICY: crea una política de auditoría de grano fino. Los parámetros del procedimiento son los siguientes:
DBMS_FGA.ADD_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2, audit_condition VARCHAR2, audit_column VARCHAR2, handler_schema VARCHAR2, handler_module VARCHAR2, enable BOOLEAN, statement_types VARCHAR2, audit_trail BINARY_INTEGER IN DEFAULT, audit_column_opts BINARY_INTEGER IN DEFAULT ); Los más importantes, para nuestro propósito, son los siguientes:
object_schema, object_name, policy_name, enable y statement_types. El
primero corresponde al nombre del esquema donde se aloja la tabla que va a ser auditada. El segundo corresponde al nombre de dicha tabla. El tercero es el nombre de la política, que debe ser único, ya que no puede haber dos políticas
Página - 29 - de 150
con el mismo nombre. El tercero indica si, al crear la política, ésta debe ser habilitada o no. El último indica la operación que va a ser auditada. Un ejemplo de uso de este procedimiento es el siguiente:
begin DBMS_FGA.ADD_POLICY( object_schema=>’mario’, object_name=>’tabla’, policy_name=>’politica_consulta’, enable=>FALSE, statement_types=>’SELECT’); end; / • DISABLE_POLICY: deshabilita una política de auditoría. Los parámetros del procedimiento son los siguientes:
DBMS_FGA.DISABLE_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2 ); El primer parámetro corresponde al nombre del esquema donde se aloja la tabla que va a ser auditada. El segundo corresponde al nombre de dicha tabla. El tercero es el nombre de la política que el auditor quiere deshabilitar. Un ejemplo de uso de este procedimiento es el siguiente:
begin DBMS_FGA.DISABLE_POLICY( object_schema=>'mario', object_name=>'tabla', policy_name=>'politica_consulta'); end; / Página - 30 - de 150
• DROP POLICY: borra la política de auditoría. Los parámetros del procedimiento son los siguientes:
DBMS_FGA.DROP_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2 ); El primer parámetro corresponde al nombre del esquema donde se aloja la tabla que va a ser auditada. El segundo corresponde al nombre de dicha tabla. El tercero es el nombre de la política que el auditor quiere deshabilitar. Un ejemplo de uso de este procedimiento es el siguiente:
begin DBMS_FGA.DROP_POLICY( object_schema=>'quest01', object_name=>'tabla', policy_name=>'politica_consulta'); end; / • ENABLE_POLICY: habilita la política de auditoría. Si la política está habilitada, sólo entonces el motor de la base de datos guardará los registros de auditoría en la tabla de auditoría. Los parámetros del procedimiento son los siguientes:
DBMS_FGA.ENABLE_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2, enable BOOLEAN ); El primer parámetro corresponde al nombre del esquema donde se aloja la tabla que va a ser auditada. El segundo corresponde al nombre de dicha tabla. El tercero es el nombre de la política que el auditor quiere deshabilitar. El cuarto es opcional, por defecto tiene valor VERDADERO (TRUE), e indica si se quiere
Página - 31 - de 150
2. Un ejemplo de uso de este procedimiento es el siguiente:
begin DBMS_FGA. policy_name=>'politica_consulta'). incluyendo las opciones de auditoría de todos ellos (operaciones que se auditan sobre los objetos) e información relevante: propietario del objeto. A continuación se explicarán dichas vistas: • DBA_OBJ_AUDIT_OPTS: describe las políticas de auditoría genérica activadas sobre objetos. nombre del objeto y tipo de objeto.de 150
. object_name=>'tabla'. / 3. Cada vista ofrece distintos tipos de información de forma más clara para el auditor o administrador de la base de datos.32 .ENABLE_POLICY( object_schema=>'quest01'.1.2.habilitar la auditoría. el motor de base de datos Oracle ofrece al auditor un conjunto de vistas que permiten el análisis de los datos de dicha tabla desde diferentes enfoques.2.
El análisis de la recolección se basa en un conjunto de vistas que actúan sobre la tabla donde se guardan los registros de auditoría.
3. end. Es algo redundante.2. pero es posible que permita en un futuro realizar otras operaciones. La tabla es AUD$ para la auditoría genérica y FGA_LOG$ para la auditoría de grano fino. Análisis de la recolección de auditoría genérica
Debido a que la auditoría genérica guarda los registros de auditoría en una tabla llamada AUD$.
pues es implícito que el propietario sea el mismo que la vista. enlaces.de 150
. índices.• USER_OBJ_AUDIT_OPTS: esta vista no es única ni exclusiva del administrador. muestra sus opciones. en lugar de mostrar sólo el privilegio que se audita. llamada de la misma manera. vistas. disparadores.33 . • DBA_AUDIT_OBJECT: muestra los registros de auditoría
producidos por políticas de auditoría genérica que están relacionadas con objetos (tablas. Se diferencia de DBA_PRIV_AUDIT_OPTS en que. secuencias. • USER_AUDIT_OBJECT: muestra los registros de auditoría producidos por políticas de auditoría genérica que están relacionadas con objetos (tablas. disparadores. vistas. etc. • DBA_AUDIT_EXISTS: contiene los registros de los eventos sobre la existencia o no existencia de los objetos. Es similar a DBA_OBJ_AUDIT_OPTS sólo que no lleva la columna del propietario del objeto. • DBA_PRIV_AUDIT_OPTS: describe las políticas de auditoría sobre privilegios del sistema que están activas en un momento dado. espacios de tablas. etc. secuencias.).) y que has sido producidas por el usuario
Página . Cada usuario tienen en su esquema esta vista. • DBA_STMT_AUDIT_OPTS: describe las políticas de auditoría sobre privilegios del sistema que están activas en un momento dado. y que muestra las políticas de auditoría genérica creadas sobre objetos de su esquema. enlaces. incluyendo en dichos eventos todas las políticas producidas por audit exists y audit not exists. índices. espacios de tablas.
• DBA_AUDIT_TRAIL: muestra todos los registros de auditoría genérica. • DBA_AUDIT_SESSION: muestra los registros de auditoría producidos por políticas de auditoría genérica que están relacionadas con inicio y fin de sesión (CONNECT y DISCONNECT). y la tienen todos los usuarios en su esquema. y ALTER SYSTEM y que has sido producidas por el usuario propietario de la vista. NOAUDIT. • USER_AUDIT_SESSION: muestra los registros de auditoría producidos por políticas de auditoría genérica que están relacionadas con inicio y fin de sesión (CONNECT y DISCONNECT) y que has sido producidas por el usuario propietario de la vista.de 150
. y la tienen todos los usuarios en su esquema.34 . • USER_AUDIT_STATEMENT: muestra los registros de auditoría producidos por políticas de auditoría genérica que están relacionadas con las siguientes operaciones: GRANT. Esta vista no es única. y la tienen todos los usuarios en su esquema. AUDIT.propietario de la vista. Esta vista no es única. REVOKE. NOAUDIT. Esta vista no es única. • USER_AUDIT_TRAIL: muestra todos los registros de auditoría genérica y que has sido producidas por el usuario propietario de la vista. AUDIT. Esta vista no es única. and ALTER SYSTEM. REVOKE.
Página . y la tienen todos los usuarios en su esquema. • DBA_AUDIT_STATEMENT: muestra los registros de auditoría producidos por políticas de auditoría genérica que están relacionadas con las siguientes operaciones: GRANT.
• DBA_COMMON_AUDIT_TRAIL: contiene todos los registros de auditoría.
Página .35 .2. dichas opciones se configurarán por defecto según esta tabla. Es una especie de catálogo para la optimización de la auditoría de grano fino por parte de Oracle. tanto genérica como de grano fino. • DBA_AUDIT_POLICIES: muestra exactamente los mismos datos que la vista ALL_AUDIT_POLICIES. Si el auditor no especifica ciertas opciones. • AUDIT_ACTIONS: contiene códigos de las acciones que pueden ser auditadas. ya sean habilitadas o no. el motor de base de datos Oracle ofrece al auditor un conjunto de vistas que permiten el análisis de los datos de dicha tabla desde diferentes enfoques. • ALL_AUDIT_POLICY_COLUMNS: describe todas las políticas de auditoría de grano fino que estén realizadas para realizar una operación sobre una o varias columna específica de ciertas tablas.de 150
. A continuación se explicarán dichas vistas: • ALL_AUDIT_POLICIES: describe todas las políticas de auditoría de grano fino declaradas en el sistema. • ALL_DEF_AUDIT_OPTS: contiene las opciones por defecto de auditoría aplicados cuando las políticas sean creadas.2.3. Análisis de la recolección de auditoría de grano fino
Debido a que la auditoría de grano fino guarda los registros de auditoría en una tabla llamada FGA_LOG$.2.
toda la información de auditoría está guardada de forma centralizada y seleccionada automáticamente. La auditoría estándar permite auditar operaciones DML y operaciones DDL a todo tipo de objeto de esquema y estructuras. Por ejemplo. Con la auditoría estándar. y usar disparadores. tanto genérica como de grano fino. Diferencias entre auditoría en el motor de base de datos y auditoría de disparadores
Existen diferencias entre usar este servicio.• DBA_FGA_AUDIT_TRAIL: muestra todos los registros de auditoría realizados con políticas de auditoría de grano fino. que contiene información similar a la vista
DBA_AUDIT_TRAIL.de 150
.3.36 . Es una especie de catálogo para la optimización de la auditoría de grano fino por parte de Oracle. • STMT_AUDIT_OPTION_MAP: es un mapa de opciones de auditoría que contiene códigos de las opciones que pueden tener las políticas de auditoría. pero aporta una gran flexibilidad porque es el auditor quien lo realiza y establece los niveles de
Página . se pueden leer con un editor de texto o a través de esta vista. Cuando los registros de auditoría se traducen a un formato XML OS.
V$XML_AUDIT_TRAIL: contiene todos los registros de auditoría. auditoría de SYS y registros en XML. Esto conlleva cierta dificultad en auditoría de disparadores debido a su desarrollo. llamado a partir de ahora auditoría estándar. Con los disparadores.
3. un disparador no puede auditar la sentencia de consulta select. el auditor debe elegir qué información guardar y dónde. Los disparadores permiten auditar sentencias DML contra tablas y sentencias DDL a nivel de esquema o base de datos.
dado que un error de un disparador detectado en tiempo de ejecución causa el fallo de la instrucción de inserción. un posible fallo en la transacción haría que no se guardara el registro de auditoría. Los disparadores se deberían escribir con sumo cuidado. el usuario ha realizado la operación a auditar.37 . Sin realizar un commit. etc.
Página .auditoría. los disparadores no pueden auditar por sesión (clausula BY SESSION): se guarda un solo registro si. tiene un mejor mantenimiento y es menos complejo en el diseño. savepoint y rollback. con los disparadores no se pueden auditar las conexiones y desconexiones de usuarios a la base de datos.de 150
. Igualmente. habiendo un disparador que guardase la información de dicho evento en una tabla de auditoría. y falla la transacción por cualquier motivo voluntario o involuntario. en el peor de los casos esto podría dar lugar a una cadena infinita de disparos. borrado o actualización que inició el disparador. Debido a la facilidad de uso de la auditoría estándar. Por su naturaleza. por ejemplo cuando el auditor quiere guardar poca información de auditoría por motivos de espacio. en una sesión. no se terminaría de guardar el registro en la tabla de auditoría. algo que sí está permitido con la auditoría estándar. El principal inconveniente del uso de los disparadores para realizar auditoría es el hecho de que no puede contener las palabras commit. o cuando desarrolla un Datawarehouse de auditoría. Por ejemplo. si un usuario ha visto un dato. Sin embargo la auditoría estándar sí lo permite.
además de poder capturar eventos sobre qué se ha visto o qué se ha modificado. La auditoría genérica es usada para capturar eventos de usuarios sobre cambios y accesos a información de la base de datos. La auditoría genérica fue la primera en implementarse. Lo hace siempre de forma general. siendo en la versión 8i. Sin embargo. y en la versión 10g para modificación y borrado. A continuación se explicarán diferentes formas de enfocar la auditoría para conseguir el mejor rendimiento posible.
Página . Oracle ofrece dos enfoques de auditoría: auditoría genérica y auditoría de grano fino. Sin embargo. etc. es posible enfocarla para que solo los eventos que sean interesantes sean capturados. modificaciones. el Auditor de la base de datos debe elegir qué auditar con buen criterio. incrementa la cantidad de trabajo que el sistema tiene que realizar. y por ello. La auditoría de grano fino sí permite esto. conexiones y desconexiones a la base de datos. Para hacer más o menos personalizada la auditoría. a veces es necesario auditar bajo circunstancias específicas. La auditoría mal enfocada afecta significativamente el rendimiento computacional y al espacio de almacenamiento. Puede auditar inserciones.de 150
. Recolección de datos en Oracle 11g Cuando el Sistema Gestor de Base de Datos Oracle tiene que auditar ciertas acciones. borrados y consultas de dicha información.38 . mientras que la auditoría de grano fino fue implementada en la versión 9i para consulta.4.
tanto si estas operaciones han tenido éxito como si no. Todo depende del objetivo de la auditoría. Auditoría genérica La auditoría trabaja guardando y recopilando trazas sobre las acciones de usuarios de la base de datos para poder reconstruir. generarán un dato de auditoria. lo que dichos usuarios han hecho. De hecho.
Página . y se refiere a operaciones de inserción. Dichas operaciones se hacen sobre objetos de la base de datos.1. DDL y DML respectivamente). No ocurre lo mismo con la inserción.39 . recogiendo todas las operaciones posibles desde el Lenguaje de Definición de Datos al Lenguaje de Manipulación de Datos (sus siglas en inglés. También entran las operaciones de entrada en el sistema (o conexión a la base de datos). borrado y actualización siempre. ciertos usuarios pueden tener acceso a información privilegiada gracias a los permisos antes citados.de 150
. es decir. Como se ha dicho en puntos anteriores. tanto si se generan datos en la consulta. ya que de eso se encargan los Administradores de la base de datos en la concesión de permisos. se debe auditar explícitamente con la opción whenever not successful. La auditoría genérica engloba toda auditoría que es capaz de controlar comandos SQL. debe ser el Auditor de la base de datos el que selecciones qué operaciones se deben auditar. Hay que considerar que las operaciones de consulta. en un futuro. se borran datos y se actualizan respectivamente como si no. modificación y consulta sobre los datos de dichos objetos. además de la concesión de permisos. y la auditoría nos permite saber qué usuarios han utilizado esa información. creación y borrado de los objetos. borrado. no se audita todo automáticamente. No tiene que ver con lo que el usuario puede o haya podido hacer. Si se quiere auditar las inserciones sin éxito. siempre que está auditado. Por supuesto. mediante nombre de usuario y contraseña.4.
por ejemplo. También hay un campo num que simboliza valores como. En esta situación. apellido1 varchar2(50). pondremos una tabla con la siguiente descripción:
create table tabla ( id int primary key. que por su longitud simulará datos como el currículum vitae. cuya consulta puede ser bastante frecuente.hay que estudiar lo que se debe y lo que no se debe auditar. dni int. email2 varchar2(100). el sueldo de una persona. Esta tabla tiene datos privados. direccion varchar2(200). y si decide auditar. nombre varchar2(50). como el DNI o la dirección. Desde el punto de vista de la auditoría genérica. lo más eficiente sería separar los registros clave en tablas diferentes de la siguiente manera:
Página . direccion2 varchar2(200). y otros como el campo “descripción”. Como ejemplo genérico.de 150
. qué debe auditar. descripcion varchar2(4000) ). por ejemplo. email varchar2(100). un expediente o un historial médico. num float. ventajas e inconvenientes. el auditor debe decidir si auditar o no.40 .
Con este esquema. Por tanto. como el DNI. se debe auditar la tabla Tabla para mayor eficiencia. Con saber que hay alguien que en una sesión ha consultado dicha tabla.41 . Ilustración 6: Diagrama Entidad/Relación alternativo
Todo ello teniendo que son sólo dos campos los que tienen gran importancia. sería muy recomendable auditar las consultas de las tablas Num y Descripción. sería suficiente. ya que son los campos más críticos: el sueldo de una persona o su historial médico no tiene por qué consultarse o modificarse a menudo.de 150
. por lo que si se quiere auditar ese dato. ya que este hecho implicaría un cambio en el modelo relacional. se corre el riesgo de que se generen muchos registros de auditoría y se colapse la base de datos en poco tiempo. habría dos soluciones:
Página . Sin embargo es muy probable que este cambio no sea rentable. inviable para la mayoría de los casos. Campos personales. la auditoría debería ser por sesión (BY SESSION) y por acceso (BY ACCESS) respectivamente. pues si es de gran magnitud y se realiza auditoría por acceso. podrían auditarse. contenidos en la tabla Tabla. pero auditar ese dato sería auditar todos los datos personales. Por tanto. dependiendo de si la empresa es de gran magnitud o de pequeña magnitud.
La prueba descrita en el punto 5.65. si el número de consultas a la tabla incluyendo el campo a auditar es igual o menor que 0. Midiendo el tamaño máximo de la tupla de cada tabla de auditoría. por lo que no estaría de más auditar el borrado en la tabla Tabla solamente: si se borra o
Página . Se debería realizar un estudio para ver el porcentaje de consulta del campo a auditar con respecto al número de consultas de la tabla completa. Además.Usar auditoría genérica para toda la tabla. Usar auditoría de grano fino. sale un total de 28996 bytes para la tabla FGA_LOG$ de auditoría de grano fino y un total de 14035 bytes para la tabla AUD$ de auditoría genérica. La razón es de 2. La ventaja sería el menor número de registros de auditoría. El cálculo se ha realizado midiendo los registros de tipo CLOB con 4000 caracteres.de 150
. pondremos una media aritmética entre estas dos medidas: 1.42 . imprescindible sería auditar la modificación en la tabla Num y muy recomendable la tabla Descripción. mayor espacio ocupará en la tupla de auditoría de grano fino). pues el cambio de sueldo es crítico para una empresa. Clave para la elección entre las dos soluciones es el espacio de almacenamiento. El borrado y la inserción es menos frecuente en tablas como esta. entonces es más recomendable utilizar auditoría de grano fino que auditoría genérica.54 veces el número de consultas totales.86. sin embargo en esta prueba se utilizaba una consulta de un número mínimo de caracteres (recuerde que de cuanto mayor número de caracteres sea la consulta. y la modificación del historial médico o currículum es crítica para la persona.07. Por tanto. Todo ello por temas de ahorro de espacio en disco. La ventaja principal sería la sencillez del mantenimiento de esta auditoría.5 Rendimiento de espacio de tablas del presente documento se había llegado a un 1.
inserta en la tabla Tabla. se anula la transacción y se elimina la información guardada por el disparador. Dado el hipotético caso de que la base de datos tenga datos de una persona sin su permiso (o se hayan borrado sin su permiso).2.de 150
. a veces esto no es suficiente. Auditoría de grano fino En la auditoría genérica. se guarda qué usuarios realizaron qué operación sobre un objeto de la base de datos. El Log Miner nos permite recuperar la información de los ficheros
Página . en el caso de haber hecho consulta y qué información introdujo. qué consulta ejecutó un usuario sobre una tabla en un momento determinado o qué datos fueron borrados. Sin embargo. se borra o inserta también en el resto de tablas y sólo se crearía un registro de auditoría.
4. borró o modificó en el caso de haber hecho una modificación. y está disponible en Oracle desde su versión 9i. sino que también puede auditar qué información obtuvo. modificados o insertados por parte del usuario. Por tanto se debe auditar por acceso la inserción y el borrado para comprobar qué ha insertado el usuario de la base de datos. Es capaz de auditar no sólo qué objeto fue consultado por un usuario. Nótese que la información capturada es muy extensa. el borrado y la inserción de los datos personales de una persona debe realizarse con el permiso de dicha persona. Éste tipo de auditoría podría ser simulada mediante auditoría basada en disparadores unida con el Log Miner mejorando el hecho de que. La Auditoría de grano fino surgió por la necesidad de capturar acciones fruto del uso indebido de un privilegio por parte de un usuario [5].43 . Este tipo de auditoría se llama Auditoría de grano fino. se podrá saber quién insertó (o quién borró) los datos. al deshacer la acción mediante la orden rollback. Muchas veces es necesario saber. Además.
Sin embargo. Por los mismos motivos que la variante anterior. el Auditor podrá
Página . al tener mayor importancia para la entidad los datos de los directivos. que puede adquirir los valores de ‘empleado’ o ‘directivo’. existe otra a este tipo de auditoría que consiste en auditar aquellas consultas o modificaciones que se hayan hecho sobre un número mínimo de datos. Es muchas veces necesaria tanto para esos casos en los que se hace una consulta de datos sobre dicha columna o sobre datos en los que el campo correspondiente a la columna adquiere un valor específico. Una variante de este tipo de auditoría es guardar información de auditoría sólo cuando cierta columna o columnas de la tabla es o son consultadas. y debido a que este tipo de auditoría consume muchos recursos de memoria. Hay que tener en cuenta que si se audita la inserción. el Auditor podrá tomar la decisión de auditar sólo las consultas en las que en el resultado aparezca algún directivo.44 . Por ejemplo. podríamos recopilar la información de las inserciones. borrado o modificaciones.de Log. y uniendo sus fuerzas con la Auditoría general. en caso de que ésta no tenga éxito no se guarda el dato de auditoria. Es necesario indicarlo explícitamente usando auditoria genérica. La Auditoría de grano fino soporta también el número de datos que se observan. Con ello es posible realizar una reconstrucción de una tabla en un momento determinado usando dichas sentencias en el mismo orden en que fueron ejecutadas. Un empleado que tenga permisos para consultar esa tabla hará ciertas consultas. son grabadas en los archivos Redo Log con el objetivo de que una posible recuperación de la base de datos pueda llevarse a cabo. o sobre el diccionario de datos. Pongamos el ejemplo de que en una misma tabla existen datos de personal en la que hay un campo tipo. La clave está en que todas las sentencias SQL ejecutadas por el usuario sobre sus datos.de 150
'gerente@compania.
CREATE OR REPLACE PROCEDURE alerta_espacio AS tamano REAL.com'.'Tam año TABLESPACEFGA'.').'El tamaño del espacio de tablas que contiene la tabla de auditoría de grano fino es inferior a 1500Kb.de 150
. BEGIN SELECT ROUND(sum(bytes)/1024. El procedimiento almacenado está ideado para alertar al administrador/auditor de la base de datos de cualquier anomalía. END IF.0) INTO tamano FROM dba_free_space WHERE tablespace_name = 'TABLESPACE_FGA' GROUP BY tablespace_name. hayan dado más de n registros. como resultado. cuando faltan 1500 bytes de espacio libre en el espacio de tablas que contiene la tabla de auditoría de grano fino (TABLESPACE_FGA) envía un correo al auditor de la base de datos. con copia al administrador de la base de datos y copia oculta a un directivo. siendo muy importante este hecho. El procedimiento debería ser creado al menos para la segunda idea para conseguir una alta disponibilidad en la base de datos.realizar auditoría sobre las consultas que. se indica una referencia a dicho procedimiento en el atributo handler_module del procedimiento de creación de la política de auditoría ADD_POLICY situado en el paquete DBMS_FGA [6].com'. A continuación se mostrará un ejemplo de procedimiento almacenado que se encarga de. las futuras operaciones que se vayan a auditar no podrán ser ejecutadas.com'. Página .com'. pues si se llena el tablespace en el que se encuentra la tabla de auditoría de grano fino. Para ello. A todo esto hay que añadir la posibilidad de lanzar un procedimiento almacenado. 'administrador@compania.45 . IF tamano<1500 THEN ENVIAR_CORREO('fga@compania.'auditor@compania. Otro buen uso que se le puede dar a este procedimiento es el de comprobar cuanto espacio de tablespace queda hasta que se llene.
END alerta_espacio. / Página .de 150
P_MESSAGE in varchar2) is mailhost varchar2(30) := '127. utl_smtp. utl_smtp. direccion2 varchar2(200). mesg := 'Date: '||to_char(sysdate. P_BCC in varchar2. BEGIN mail_conn := utl_smtp.Para ello. email varchar2(100).P_SENDER).open_connection(mailhost.0.0. direccion varchar2(200). se ha utilizado otro procedimiento para el envío de correos. END send_mail.de 150
. dni int.1'. P_CC in varchar2. utl_smtp.mesg).25).helo(mail_conn.data(mail_conn. mail_conn utl_smtp. email2 varchar2(100).rcpt(mail_conn.mailhost). P_RECIPIENT in varchar2. volveremos a poner la tabla usada en el punto 3. nombre varchar2(50).P_RECIPIENT).1 Auditoría genérica con la siguiente descripción:
create table tabla ( id int primary key. utl_smtp. descripcion varchar2(4000) Página .mail(mail_conn. crlf varchar2(2) := CHR(13)||CHR(10). utl_smtp.47 . / Como ejemplo genérico. mesg varchar2(4000). que se muestra a continuación:
CREATE OR REPLACE PROCEDURE ENVIAR_CORREO (P_SENDER in varchar2.'dd Mon yy hh24:mi:ss' )||crlf|| 'FROM: '||P_SENDER||'>'||crlf||'Subject: '||P_SUBJECT||crlf|| 'To: '||P_RECIPIENT||crlf|| 'Cc: '||P_CC||crlf|| 'Bcc: '||P_Bcc||crlf||crlf||P_MESSAGE. num float.quit(mail_conn).connection. apellido1 varchar2(50). P_SUBJECT in varchar2.
Las inserciones no serían recomendables. En cuanto a la modificación.
Página . Para ello sería más eficiente utilizar un disparador que guarde no sólo qué operación se ha realizado. Con las inserciones ocurre lo mismo que con la modificación del campo descripción. pues es un campo de 4000 caracteres. Para guardar la modificación del campo descrpción. En este caso no hace falta realizar una reestructuración de la tabla. se debería auditar cada vez que un usuario borra un registro. campo crítico de la tabla. Con esto el auditor ahorrará la reestructuración de la tabla y las consecuencias de rendimiento. y el segundo deberá avisar al auditor en el caso de que la cantidad de diferencia entre antes y después sea mayor que m.48 .). pues la auditoría de grano fino nos permite auditar por campo. sería más eficiente hacerlo mediante un disparador. habría que auditar las consultas de. se debería hacer del sueldo. El primer procedimiento debe avisar al auditor en el caso de que se haya cambiado el sueldo a esa persona más de n veces. la auditoría del sueldo debería hacerse añadiendo un procedimiento que compruebe cuántas veces ha sido modificado el sueldo de esa persona en los últimos n días. y el volumen del tablespace que contiene la tabla de auditoría FGA_LOG$ depende de la longitud de la sentencia SQL. pues el volumen del tablespace que contiene la tabla de auditoría FGA_LOG$ depende de la longitud de la sentencia SQL. Además de ello. Teniendo un campo de 4000 caracteres. sino el valor del campo descripción y el valor del campo id para su localización. los campos críticos: DNI.de 150
. En primer lugar. num o descripción. como mínimo. y otro que compruebe si la cantidad de diferencia entre antes y después del cambio sea mayor de m. no sería óptimo utilizar la auditoría de grano fino para la inserción. Con respecto a las inserciones y borrados. siendo n un número cuya decisión es del auditor.
errores de caché.1.1. si la inserción está auditada por este método. que podemos usar para conocer la carga de trabajo y el efecto que produce en los recursos del sistema. Como nota importante sobre la auditoría de grano fino hay que decir que.de 150
. se debe tener en cuenta que.
4. memoria disponible. Monitor de Rendimiento de Windows
El Monitor de Rendimiento (o “Performance Monitor”) de Windows nos permite supervisar el uso de los recursos de un ordenador.3. más eficiente aún. en el caso de que una inserción falle. identificador del registro insertado. utilizar un disparador que guarde no sólo qué operación se ha realizado.3.
4. el registro de auditoría de grano fino sí se crea. No ocurre lo mismo con el borrado.3.Para ello sería recomendable utilizar la auditoría genérica o.
4. modificación o consulta: tanto si el borrado o la modificación no se efectúa como si la consulta devuelve un resultado vacío. paginación. etc.
Herramientas de medición de rendimiento
Las siguientes herramientas son las candidatas para la medición del rendimiento de un servidor que tiene una base de datos Oracle 11g dadas las pruebas realizadas y descritas en el punto 5 Rendimiento en la recolección de datos en Oracle 11g del presente documento.49 . guardando sólo el campo id. no se guarda registro de auditoría. Primero se enunciarán herramientas para la medición del rendimiento en las pruebas realizadas y a continuación se enunciarán herramientas de auditoría. tales como el porcentaje de tiempo del procesador que está trabajando. interrupciones. Herramientas externas a Oracle En este punto se describirán herramientas externas a Oracle que han sido utilizadas en la realización de este documento.1.
Página . sino qué registro se ha insertado.
y tanto en tiempo real como histórico. Performance Analysis de Quest
Performance Analysis de Quest es una herramienta utilizada para el análisis de la carga de trabajo de la base de datos Oracle que ofrece una monitorización del sistema.2. tanto del gestor de base de datos como del propio sistema. siendo utilizado para el seguimiento.de 150
. análisis y resolución de problemas. etc. Las herramientas Monitor de sistema y Registros y alertas de rendimiento proporcionan datos detallados acerca de los recursos utilizados por componentes específicos del sistema operativo y por programas que han sido diseñados para reunir información de rendimiento. podremos medir el rendimiento del ordenador sobre diferentes experimentos que hagamos en este proyecto. probar los cambios de configuración u otros trabajos de ajuste mediante la supervisión de los resultados. Performance Analysis provee un repositorio central en donde los usuarios pueden recuperar reportes automatizados de estadísticas relacionadas con el desempeño y que ofrece resaltes de actividad a la medida para desglosar a problemas relacionado de forma efectiva.
Página . Este componente incrementa la eficiencia del DBA al anticipar problemas de desempeño y facilitar el tiempo para su resolución. De hecho.observar los cambios y las tendencias en las cargas de trabajo y en el uso de los recursos. Esta herramienta se encuentra en el Panel de Control de Windows Herramientas Administrativas Rendimiento. Eligiendo los datos más convenientes.50 . Oracle proporciona sus propios contadores de registros.1.3.
Dicha instancia tiene un
Página . Para realizar las pruebas ha sido necesaria una infraestructura de dos ordenadores. Posee un proceso de bajo consumo de recursos llamado Collector que captura las medidas de rendimiento desde diferentes puntos de vista (porcentaje de tiempo del procesador. memoria RAM utilizada. pero con una más amplia visión. llamados TELEMACO y TAIS. etc. pero se ha conseguido una licencia de 30 días para la realización de las pruebas.) y envía los datos al ordenador TAIS.51 .de 150
. Es de pago. El programa con la licencia de 30 días se puede descargar de la Web de Quest. tal y como se explica en la siguiente figura:
Ilustración 7: Arquitectura de medición de rendimiento con Performance Analysis El ordenador TELEMACO tendrá el sistema y la base de datos a monitorizar.Tiene el mismo objetivo que Performance Monitor de Windows. disco utilizado. El ordenador TAIS tiene un proceso llamado Middleware Performance Analysis y una instancia de base de datos Oracle.
2. Permiten una mejora en la auditoría de una base de datos Oracle y un mayor rendimiento del servidor de base de datos. El proceso Middleware recibe los datos de la red enviados por el proceso Collector del ordenador TELEMACO y los guarda en el esquema anteriormente citado.de 150
Página . almacenar.1. InTrust de Quest
InTrust es una herramienta que ayuda a recolectar.3. reportar y alertar sobre eventos de datos heterogéneos para resolver las necesidades de las políticas internas.52 .
4. permitiendo reaccionar y prevenir posibles violaciones de políticas de seguridad o cambios críticos en objetos del Directorio Activo.
Las siguientes herramientas han sido estudiadas como herramientas de auditoría. También proporciona una recopilación y almacenamiento de la información de auditoría. Permite auditar.
4. obtener informes y generar alertas de actividad de todos los controladores de dominio Windows además de hacer un seguimiento de todos los cambios realizados en el Directorio Activo o en las Políticas de Grupo. El banco de pruebas realizadas descritas en el punto 5 Rendimiento en la recolección de datos en Oracle 11g del presente documento está hecho con esta herramienta.3.2. regulaciones externas y mejores prácticas de seguridad.esquema utilizado por Performance Analysis para guardar los datos de rendimiento y así tener un histórico.
cada una con un objetivo diferente: Consola de Usuario (Itrust for Databases User Console): monitoriza el sistema. Consola Federada (Intrust for Databases Federated Console): permite conectarse a servidores que tengan instancias de bases de datos y comparar datos de auditoría. La infraestructura que debe seguir la empresa para el funcionamiento de Intrust es la siguiente:
Página .53 .de 150
. Consola de Administrador (Intrust for Databases Administrator Console): permite al usuario con rol de administrador (ADMIN) gestionar los servidores de Intrust y los agentes recolectores. detectando accesos sospechosos. Tiene una herramienta de diseño de informes de fácil manejo. Permite crear políticas de auditoría y el acceso a los registros de auditoría.Intrust está compuesto de un conjunto de aplicaciones. Constructor de informes (Intrust for Databases Report Builder): permite gestionar los informes. generando informes y alertas en tiempo real.
Ilustración 8: Arquitectura de alto nivel del sistema InTrust
Hay tres equipos principales: ORACLE: contiene la base de datos a monitorizar. SERVIDOR: es una máquina que contiene perfiles, políticas y datos de auditoría. Es el propio almacén de datos de auditoría para Intrust. Puede tener sistema operativo Windows o Linux. CONSOLA: contiene las cuatro aplicaciones que compone Intrust. Recupera la información del servidor para que las aplicaciones puedan realizar las funciones para las que están destinadas cada uno. Sólo puede tener sistema operativo Windows.
Página - 54 - de 150
La comunicación de los equipos es jerárquica, y se muestra en la siguiente figura:
Ilustración 9: Jerarquía de flujo de información en el sistema InTrust
Sobre la estructura el diagrama Entidad/Relación del esquema donde el servidor de Intrust guarda la información no hay información alguna. [14]
4.3.2.2. Oracle Audit Vault
Oracle Audit Vault es una herramienta que permite automatizar la recolección de datos de auditoría, monitorizar y generar informes, volcando dicha información en un esquema propio. Básicamente, recolecta datos de auditoría de una base de datos, ya sea Oracle o MS SQLServer, y, además de guardar los datos en un esquema propio en forma de DataWarehouse, estudia dichos datos para detectar cualquier anomalía. Oracle Audit Vault consta de un servidor y un agente. El servidor, que en la versión más reciente de Audit Vault no está desarrollado para usarlo en entorno Windows, debe ser configurado por el administrador, y se encargará de recolectar todos los datos de auditoría que genera la base de datos, organizarla y generar los informes. El agente se encarga de ofrecer sus servicios al auditor de la base de datos. Desde el agente, el auditor podrá crear políticas de auditoría (sólo para bases de datos Oracle), crear alertas y obtener informes. El agente puede estar
Página - 55 - de 150
instalado en la misma máquina donde está la base de datos Oracle o en otra máquina.
Ilustración 10: Arquitectura de alto nivel del sistema Audit Vault
El flujo de trabajo de Oracle Audit Vault se refleja en el siguiente esquema:
Página - 56 - de 150
. Se preocupa de detectar riesgos de seguridad. Oracle Audit Vault usa un Data WareHouse modelado por un esquema en forma de estrella. El auditor es el que se encarga de gestionar los informes y acceder a los servicios de análisis. El administrador es el propietario de Audit Vault.
Página . Gestiona los roles y la configuración. creando alertas y políticas.57 . El registro de audtoría está en una tabla
(AUDIT_EVENT_FACT) justo en el centro de la estrella. Para que todo ello funcione son necesarios al menos dos usuarios: administrador y auditor. Un esquema en estrella optimiza el rendimiento mediante ejecución de sentencias SQL que aseguran una rápida respuesta. y está descrito por atributos en el resto de tablas. Ilustración 11: Jerarquía del flujo de información del sistema Audit Vault
Las políticas y las alertas detectan amenazas de seguridad estudiando irregularidades en el uso de la base de datos.
• CLIENT_TOOL_DIM: contiene información sobre las herramientas utilizadas para conectarse a la fuente de datos de auditoría. USER_DIM. y PRIVILEGES_DIM.de 150
. CONTEXT_DIM. Ilustración 12: Esquema del Data WareHouse que guarda los datos de auditoría en Audit Vault La tabla AUDIT_EVENT_FACT está en el centro de esta configuración en estrella. se comunica con el resto de tablas: CLIENT_HOST_DIM. algunos atributos para la generación de informes (reportes) y las claves ajenas del resto de tablas.58 . EVENT_DIM. SOURCE_DIM. TARGET_DIM. Desde ahí. CLIENT_TOOL_DIM.
TIME_DIM. La tabla AUDIT_EVENT_FACT está enlazada a cada tabla por su clave ajena. y contiene el identificador del registro de auditoría. • CONTEXT_DIM: contiene información de contexto de un evento auditado. • CLIENT_HOST_DIM: contiene información sobre los equipos usados pos los clientes de la base de datos para realizar las operaciones contra ésta.
• USER_DIM: contiene información sobre el usuario que ejecutó el evento y al que está asociado. • SOURCE_DIM: contiene información sobre la base de datos fuente que envió el registro de auditoría al Data WareHouse. La licencia para el Servidor de Oracle Audit Vault cuesta 50. puede ser encarecida. La inversión. pero esa inversión se recupera a medio plazo debido al ahorro en coste de desarrollo y mantenimiento de una infraestructura de auditoría manual. Otro inconveniente a priori es el coste de licencia. Sin embargo. para una empresa mediana. 3. • TARGET_DIM: contiene información sobre el esquema y los objetos del esquema donde los eventos que deben ser auditados so ejecutados.000 dólares por procesador.de 150
Página . trimestre y año. Implementa cuatro niveles de jerarquía: día.000 dólares por procesador [9] (dato del 1 de Enero del 2008).• EVENT_DIM: contiene información sobre los eventos que pueden ser ejecutados. es una de las ventajas para las grandes empresas. mes. • TIME_DIM: contiene información sobre el momento en que se ejecutan los eventos. Esta tabla es la más utilizada. • PRIVILEGES_DIM: contiene información sobre los privilegios usados durante la ejecución del evento. El principal inconveniente es el hecho de que el servidor de Audit Vault no esté disponible para la plataforma Windows. Lo que resuelve este inconveniente es la posibilidad de descarga libre de un sistema operativo Linux compatible desde la página de Oracle [8]. y la licencia para el Agente de Oracle Audit Vault.59 .
se puede crear esa base de datos distribuida de forma más eficiente. sin tener que recurrir al desarrollo manual de trabajos ni procedimientos almacenados.Otra de las ventajas es la posibilidad de automatizar la instalación.de 150
. enlaces y tablas en forma de base de datos distribuida. Se pueden crear alertas fácilmente de forma visual. La tercera ventaja es el uso de las alertas. [15]
Página . Si esto fuera manual.60 . habría que crear un conjunto de usuarios. Gracias a la automatización. Oracle Audit Vault ubica los datos de auditoría en un repositorio distinto al de la base de datos que se quiere auditar.
61 . se ha creado una pequeña infraestructura de dos ordenadores en la que cada uno tendrá un rol diferente: uno será el servidor de la base de datos y el otro será el cliente. Pruebas realizadas e infraestructura Con el objetivo de medir el rendimiento de las diferentes auditorías.de 150
.1. cuando se realiza auditoría genérica. En la siguiente figura se muestra un esquema aclaratorio donde se reproduce la situación de las pruebas pertinentes. en los puntos 5 Análisis de la recolección y 6 Normas para auditar elementos de una organización. Rendimiento en la recolección de datos en Oracle 11g En este punto se describirá la realización de un conjunto de pruebas realizadas a una hipotética base de datos sobre Oracle 11g.5.
Página . También se verá la diferencia del volumen de disco utilizado en cada caso. cuando se realiza auditoría de grano fino y cuando se realizan las dos a la vez.
5. Todo ello para que. obteniendo diferencias de rendimiento en diferentes situaciones: cuando no se audita nada. se propongan mejoras lo más efectivas posibles.
1.2 de Oracle 11g.01 GHz con 1.62 .0. con SQL+ instalado para el lanzamiento de las pruebas. TELEMACO tendrá instalada la versión 11. no se ha podido utilizar Windows Server 2008. El ordenador llamado TAIS hará el papel de cliente de la base de datos. Se ha elegido Windows Server 2003 Enterprise Edition Service Pack 1 debido a que este proyecto va destinado a medir el rendimiento en la plataforma Windows. También tendrá instalada una
.50 GB de RAM y 111 GB de disco duro. Debido a problemas de compatibilidad con la herramienta de medición de rendimiento Performance Analysis. La CPU constará de un procesador Intel® Pentium® 4 a 3.Ilustración 13: Infraestructura para la realización de pruebas de auditoría
El ordenador llamado TELEMACO hará el papel de servidor de la base de datos. tendrá un sistema operativo servidor. en la que se encuentra un usuario mario que tendrá una tabla que será la que se vaya a auditar. Por ello.
Esta prueba simulará la continua inserción de registros en diferentes sesiones. En cuanto a la medición de rendimiento. ejecutando una confirmación (commit) tras cada inserción.00 GB de RAM y 76. La CPU constará de un procesador AMD Athlon™ XP 2600+ a 2. Esta prueba simulará una carga de datos. Consiste en realizar consultas continuas. Java
Página . o Prueba 1-B: consiste en realizar inserciones sin parar. Esta decisión es fruto de que. o Prueba 1-A: se trata de realizar inserciones sin parar desde SQL+ en una sola sesión. el ordenador llamado TAIS tendrá un proceso intermedio (Middleware) que recogerá los datos de rendimiento enviados por TELEMACO y los mostrará en forma de gráfica con el Performance Analysis. con un usuario llamado auditor para la realización de las pruebas de backup (pruebas 5 y 6). desde un programa de desarrollo propio escrito en Java. Las pruebas se han dividido en 6 grupos según la operación que se vaya a realizar: • Prueba 1: operación de inserción. En lugar de ello.63 . A continuación se describirán las pruebas realizadas con la actual infraestructura. Se han realizado dos pruebas con esta operación para ver la diferencia de rendimiento. incluso minutos si el número es muy grande. en la salida por pantalla. • Prueba 2: operación de consulta.de 150
. Por su parte.08 GHz con 2.pequeña base de datos. una consulta con muchos registros puede tardar varios segundos. desde SQL+.3 GB de disco duro. TELEMACO tendrá instalado un proceso llamado Colector (Collector) que se encargará de medir la información de rendimiento y de enviársela a TAIS frecuentemente. en SQL+.
Esta prueba simulará las continuas
modificaciones de registros en diferentes sesiones. ejecutando una confirmación (commit) tras cada modificación. • Prueba 3: operación de modificación. Esta prueba trata de realizar un backup de la tabla de auditoría. con un máximo de 100. • Prueba 4: operación de borrado. ya sea AUD$ para auditoría genérica o FGA_LOG$ para auditoría de grano fino.500. Se han realizado dos pruebas con esta operación para ver la diferencia de rendimiento. o Prueba 3-A: se trata de realizar modificaciones sin parar desde SQL+ en una sola sesión.64 . Se pondrá un límite inicial de 2. • Prueba 5: operación de copia y backup.maneja conjuntos de resultado (ResultSet). Cada consulta tendrá un número aleatorio de registros de retorno. más apropiado a nuestro objetivo. desde SQL+. Esta prueba simulará los continuos borrados de registros en diferentes sesiones.
Página . o Prueba 4-B: consiste en realizar borrados sin parar. o Prueba 4-A: se trata de realizar borrados sin parar desde SQL+ en una sola sesión.de 150
. desde SQL+. Se han realizado dos pruebas con esta operación para ver la diferencia de rendimiento.000 de registros y habrá eventos que guarden registros de auditoría en la tabla sin parar. ejecutando una confirmación (commit) tras cada borrado. para que el proceso de envío de datos no normalice el rendimiento del ordenador. o Prueba 3-B: consiste en realizar modificaciones sin parar.
de forma que el otro ordenador sea el encargado de realizar el backup. deberán esperar al siguiente backup. se ha definido otra tabla. • Prueba 6: operación de restauración de backup.65 . con un único campo con un único registro en el que se almacena el momento límite de los registros que van a ser copiados.Para tener el menor número de registros perdidos. sino que tiene que trabajar sobre el servidor. Luego se copian en una tabla auxiliar los registros que hayan llegado antes del momento guardado y se eliminarán dichos registros de la tabla de auditoría original. o Prueba 5-B: se trata de simular la situación en que el auditor o posee un ordenador para él. • Prueba 7: esta prueba compara la evolución del tablespace que contiene la tabla de auditoría genérica con el volumen del que contiene la tabla de auditoría de grano fino con el objetivo de comparar la utilización de las dos auditorías. y trata de restaurar un backup en el servidor. Esta prueba simula a situación en la que el auditor debe trabajar directamente sobre el servidor sin tener un ordenador propio. Los registros que llegues después de ese momento. Se han realizado dos pruebas con esta operación para ver la diferencia de rendimiento. haciendo único para el desarrollo de su trabajo. Se realizará un backup de la tabla auxiliar en el mismo servidor.de 150
. o Prueba 5-A: consiste en realizar la copia de la tabla de auditoría en otro ordenador. Se simulará la situación en que el auditor tenga un ordenador para él.
create table tabla ( id int primary key. num float. nombre varchar2(50).2. en la que hay registros numéricos. Las gráficas que se muestran de cada prueba son las que ofrece Performance Analysis de Quest. email varchar2(100). como currículums. se ha visto que la diferencia es bastante aceptable.de 150
. Rendimiento del sistema gestor con auditoría genérica Intentando ver las diferencias de rendimiento entre realizar las pruebas sin auditoría y realizar las pruebas con auditoría genérica. al menos si no hay nada más ejecutándose dentro del servidor. direccion varchar2(200). etc. delete on mario. historiales. select. esa subida de operaciones se reparte equitativamente entre Redo y datos. direccion2 varchar2(200).66 . apellido1 varchar2(50). update.La tabla sobre la que se van a crear las auditorías es una tabla de longitud media. La sentencia de auditoría ejecutada para realizar las pruebas es la siguiente:
audit insert. registros pequeños y registros grandes para simular descripciones. Además. dni int.
5. Se puede ver que las operaciones físicas en disco de entrada y salida crecen. descripcion varchar2(4000) ).tabla by access. pero en un porcentaje lo suficientemente bajo como para no ser necesarios discos extras. email2 varchar2(100).
a todos los niveles. ocurre algo así. pero no es muy significativo. También puede notarse un cierto decremento en el número de paquetes enviados y recibidos vía Ethernet. Gráfico I: Operaciones físicas en disco de entrada y salida en la Prueba 1B sin auditoría
Gráfico II: Operaciones físicas en disco de entrada y salida en la Prueba 1B con auditoría genérica
En todas las pruebas. Hay más carga en discos.de 150
.67 . pero poco perceptible.
Página . Por tanto se puede decir que no hay diferencias claramente significativas entre el uso de la auditoría genérica y el uso de la no auditoría.
Página . en minutos. Con este tiempo se puede ver que la prueba que más aumento de tiempo ha recibido es la prueba 2 (consultas).Gráfico III: Paquetes de entrada y salida de red de la Prueba 3B sin auditoría Gráfico IV: Paquetes de entrada y salida de red de la Prueba 3B con auditoría genérica A continuación se muestra una tabla donde se muestra el tiempo.68 . que se ha tardado en hacer cada prueba con auditoría genérica comparándo con el tiempo que se ha tardado en hacer cada prueba sin auditoría.de 150
Este dato es debido a que la inserción añadiendo la confirmación de operación se realiza en un tiempo muy alto. al añadir la operación de escritura en la tabla de auditoría.35%
2.69 .78% 4. Por ello. el hecho de añadir una escritura en tabla de auditoría. Otro dato que parece interesante es el 0% en la prueba 1-B (inserción + confirmación). Al tener que hacer menos escrituras que cualquiera de las otras operaciones.04% 4.55% 2.55% 0% 13.
Página . Por ello. No llega a ser 0% completamente. PRUEBA 1-A: inserción 1-B: inserción + confirmación 2: consulta 3-A: modificación 3-B: modificación + confirmación 4-A: borrado 4-B: borrado + confirmación
22 34 23 23
CON AUDITORÍA GENÉRICA 23 34 26 24
% INCREMENTO DE TIEMPO 4.de 150
. pero es imperceptible. el porcentaje de incremento de tiempo es muy bajo.94%
Tabla 1: Tabla de tiempos de las pruebas con auditoría genérica Este porcentaje que varía de la media de todos los porcentajes es debido a que las consultas no producen escritura en el tablespace UNDO. el porcentaje de incremento de tiempo es mayor. la sentencia se resuelve de forma más rápida.
policy_name=>'politica_insercion'.70 .ADD_POLICY( object_schema=>' mario'. end. Rendimiento del sistema gestor con auditoría de grano fino Para realizar las pruebas se han tenido que crear cuatro políticas de auditoria de grano fino. enable=>TRUE. statement_types=>'insert'). statement_types=>'SELECT'). cuyo código se describe a continuación: • Política para auditar la inserción: llamada politica_insercion.5.ADD_POLICY( object_schema=>'mario'. / • Política para auditar la consulta: llamada politica_consulta. policy_name=>'politica_consulta'. se crea y se activa con las siguientes sentencias:
begin DBMS_FGA. end.de 150
. object_name=>'tabla'. object_name=>'tabla'. se crea y se activa con las siguientes sentencias:
begin DBMS_FGA. / Página .3. enable=>TRUE.
object_name=>'tabla'. en minutos. / • Política para auditar el borrado: llamada politica_borrado. enable=>TRUE. El siguiente cuadro muestra el tiempo. policy_name=>'politica_modificacion'.71 . policy_name=>'politica_borrado'. que se ha tardado en hacer cada prueba:
Página . midiendo con idoneidad el rendimiento del servidor cuando se tiene una base de datos Oracle 11g con operaciones auditadas. statement_types=>'DELETE'). statement_types=>'UPDATE'). La primera diferencia que se ve en auditoría de grano fino es el tiempo de realización de la operación. / Con estas cuatro sencillas políticas de auditoría podremos realizar las pruebas oportunas.ADD_POLICY( object_schema=> mario'.ADD_POLICY( object_schema=>' mario'. se crea y se activa con las siguientes sentencias:
begin DBMS_FGA. end. se crea y se activa con las siguientes sentencias:
begin DBMS_FGA. object_name=>'tabla'. end.de 150
.• Política para auditar la modificación: llamada politica_modificacion. enable=> TRUE.
PRUEBA 1-A: inserción 1-B: inserción + confirmación 2: consulta 3-A: modificación 3-B: modificación + confirmación 4-A: borrado 4-B: borrado + confirmación
SIN AUDITORÍA 22 40 23 23
CON AUDITORÍA DE GRANO FINO
% INCREMENTO DE TIEMPO
37 48 38 34
Tabla 2: Tabla de tiempos de las pruebas con auditoría de grano fino Otra de los aspectos a resaltar es el uso de la memoria en disco en la inserción.00% 32.72 .22% 47. por lo que se puede decir que se incrementa en 9 veces más.18% 20. pero en un orden mucho menor.
Página . pasando del orden de las 25 escrituras al orden de las 225 escrituras.83%
49 33 45
36. Mientras.11% 50.00% 65. Se puede observar que las escrituras en memoria principal se disparan.de 150
. las lecturas también se incrementan. borrado y consulta.
sería muy recomendable que utilizara otro disco para los ficheros de Redo.de 150
.73 .
Página . por lo que si el auditor cree conveniente realizar auditoría de grano fino en la inserción.Gráfico V: Operaciones físicas de entrada y salida de la Prueba 2 sin auditoria Gráfico VI: Operaciones físicas de entrada y salida de la Prueba 2 con auditoría de grano fino Además. como se puede ver en la siguiente gráfica. casi un 85% de esas escrituras es sobre los ficheros de Redo.
donde ocurre algo similar.de 150
.Gráfico VII: Operaciones físicas de Oracle de entrada y salida de la Prueba 2 con auditoría de grano fino
Otro motivo para separar los ficheros de Redo a otro disco está en las consultas.
Gráfico VIII: Operaciones físicas de Oracle de entrada y salida de la Prueba 1‐B sin auditoría Página .74 . en igual proporción. pero el uso reiterado de los ficheros de Redo disparan también la escritura si no hubiera auditoría. La diferencia no es tan fuerte en la prueba 1-B.
el número de operaciones realizadas disminuye debido a que el tiempo que tarda de más en realizar la operación es tiempo de espera en el lanzamiento de inserciones contra la base de datos. Gráfico IX: físicas de Oracle de entrada y salida de la Prueba 1‐B con auditoría de grano fino
Como se puede ver en las siguientes gráficas.75 .de 150
. Exactamente lo mismo ocurre con el resto de operaciones. lo que es algo lógico. Por lo que esta diferencia tiene mucho que ver con el primer cuadro de tiempo de más.
Gráfico X: Paquetes de red enviados y recibidos en la Prueba 1‐A sin auditoria Página .
. Gráfico XI: Paquetes de red enviados y recibidos en la Prueba 1‐A con auditoría de grano fino
En las pruebas 3-A y 3-B se ven picos de lectura en disco. En la prueba 3-A se ve un pico de lectura que se distingue perfectamente con respecto a la gráfica de la misma prueba sin auditoría.
Gráfico XII: Operaciones físicas de Oracle de entrada y salida de la Prueba 3‐A sin auditoria Página .76 .
Gráfico XIV: Operaciones físicas de Oracle de entrada y salida de la Prueba 3B sin auditoría Página . Gráfico XIII: Operaciones físicas de Oracle de entrada y salida de la Prueba 3‐A con auditoría de grano fino
En la gráfica sin auditoría de la prueba 3-B se ve también un pico de lectura. lo que es lógico debido al uso masivo de la confirmación de operación commit. en la gráfica con auditoría de grano fino de la prueba 3-B. Sin embargo.77 . ese mismo pico se dispara aún más.
Gráfico XV: Operaciones físicas de Oracle de entrada y salida de la Prueba 3‐B con auditoría de grano fino
Página .78 .de 150
Otro de los aspectos en cuanto al rendimiento que llama la atención uniendo las auditorías genérica y de grano fino es el uso del procesador. Esto quiere decir que
Página .79 .96% 56. El siguiente cuadro muestra el tiempo. Rendimiento del sistema gestor con auditoría genérica y de grano fino Como en anteriores ocasiones.00% 86. la primera diferencia es el tiempo de realización de la operación. en minutos.18%
Tabla 3: Tabla de tiempos de las pruebas con auditoría genérica y de grano fino Con este rendimiento. rondando el 30% en el uso de Oracle sin auditoría.4. Sobretodo por el hecho de que. En los grupos de pruebas 1.5.de 150
.18% 41. 3 y 4 se ve que el uso del procesador ronda el 50%. que se ha tardado en hacer cada prueba: SIN AUDITORÍA 22 40 23 23 CON AUDITORÍA GENÉRICA Y DE GANO FINO 36 50 43 36
63. por separado. el auditor debe ponderar los valores obtenidos con el tipo de uso que se le da a la base de datos. el uso del procesador no había supuesto nada que resalte respecto al uso del procesador sin auditoría.52%
60 37 48
66.64% 25.67% 68.
sobretodo en la prueba 3-B.
Gráfico XVI: Uso del procesador en la Prueba 1‐A sin auditoria Gráfico XVII: Uso del procesador en la Prueba 1‐A con auditoría genérica y auditoría de grano fino Incluso se ve.de 150
.usar los dos tipos de auditoría en Oracle puede suponer que otros procesos que marchen en el servidor tengan menos recursos computacionales. que la cola de procesos crece lo suficiente como para que llame la atención.80 .
incluso.de 150
. Al igual que en ocasiones anteriores. modificaciones y borrados. no lo hace tanto como con las inserciones. aunque crece.
Página . no se considera lo suficientemente alto como para implantar otro procesador. rondar el 60% más de operaciones físicas que con la auditoría de grano fino. No ocurre con las consultas que. las operaciones físicas de entrada y salida se disparan hasta. Gráfico XVIII: Uso de la cola de procesos en la Prueba 3‐B sin auditoria Gráfico XIX: Uso de la cola de procesos en la Prueba 3‐B con auditoría genérica y de grano fino Sin embargo.81 . a menos que el servidor esté compartido por otra aplicación u otras aplicaciones que necesiten el procesador.
. pues la mayoría de las operaciones son en estos ficheros.82 . Gráfico XX: Operaciones físicas de entrada y salida de la Prueba 4 sin auditoría
Gráfico XXI: Operaciones físicas de entrada y salida de la Prueba 4 con auditoría de grano fino
Gráfico XXII: Operaciones físicas de entrada y salida de la Prueba 4 con auditoría genérica y de grano fino
En este caso sí sería muy recomendable reubicar los ficheros de Redo en otro disco.
. Como se ve en las siguientes gráficas. sobretodo en las pruebas 2 y 3-B.
Gráfico XXIV: Porcentaje de tiempo de espera del procesador a la respuesta del disco en la Prueba 2 sin auditoría
Página . hay momentos en los que aparece un cuello de botella que no aparece si usáramos sólo auditoría genérica o auditoría de grano fino. Gráfico XXIII: Operaciones físicas de Oracle de entrada y salida de la Prueba 4 con auditoría genérica y de grano fino
Otro de los aspectos a destacar es el uso de disco en cuanto al porcentaje de tiempo que el ordenador está esperando a que el disco le sirva en operaciones de entrada y salida.83 .
84 . ocurre lo mismo en el envío y recepción de paquetes de red que en ocasiones anteriores. con un porcentaje acorde al tiempo de ejecución de la operación. Para comparar puede ver el lector la gráfica VI
Página . pues las operaciones se hacen esperar más. sólo que esta vez la diferencia es más amplia.de 150
. La siguiente gráfica muestra el envío y recepción de paquetes de red en la prueba 1-A con la auditoría genérica y con la auditoría de grano fino. debido a que una operación tarda más tiempo en ser ejecutada que si no hubiese auditoría. Gráfico XXV: Porcentaje de tiempo de espera del procesador a la respuesta del disco en la Prueba 2 con auditoría genérica y de grano fino
Gráfico XXVI: Porcentaje de tiempo de espera del procesador a la respuesta del disco en la Prueba 3‐B con auditoría genérica y de grano fino
3 y 4. Supone un incremento de alrededor del 50% en las operaciones con confirmación commit respecto a la auditoría de grano fino. sólo destacar el uso de los ficheros de Redo en los grupos de prueba 1. Gráfico XXVII: Paquetes de red enviados y recibidos en la Prueba 1‐A con auditoría genérica y de grano fino
Para terminar.85 . que a su vez supone un incremento del 30% sobre la misma prueba realizada sin auditoría…
Gráfico XXVIII: Escrituras en ficheros de Redo en la Prueba 3‐B sin auditoría
86 . que a su vez supone un incremento del 200 por uno sobre la misma prueba realizada sin auditoría. Gráfico XXIX: Escrituras en ficheros de Redo en la Prueba 3‐B con auditoría de grano fino
Gráfico XXX: Escrituras en ficheros de Redo en la Prueba 3‐B con auditoría genérica y de grano fino
…y un incremento del 75% respecto a la auditoría de grano fino.
Página .87 .de 150
. Gráfico XXXI: Escrituras en ficheros de Redo en la Prueba 3‐A sin auditoría
Gráfico XXXII: Escrituras en ficheros de Redo en la Prueba 3‐A con auditoría de grano fino
Gráfico XXXIII: Escrituras en ficheros de Redo en la Prueba 3‐A con auditoría genérica y de grano fino
Todo esto aumenta el grado de recomendación de separar los ficheros de Redo en discos distintos.
La variable independiente está representada por el número de eventos realizados para que se guarden registros de auditoría. Rendimiento de espacio de tablas En este punto se ha realizado la prueba 7. donde la línea roja indica el volumen del espacio de tablas que contiene la tabla de auditoría genérica y la línea azul indica el volumen del espacio de tablas que contiene la tabla de auditoría de grano fino. se ha decidido auditar la sentencia más corta que.5.5. se puede realizar:
select * from tabla where id > xx and id < yy.de 150
Página . donde xx e yy son números aleatorios entre 1 y 10. en bytes. más espacio consumirá) debido a que la tabla FGA_LOG$ tiene un campo llamado SQLTEXT que contiene toda la sentencia auditada. Como la auditoría de grano fino consume espacio de tabla dependiendo de la sentencia que se audite (cuanto más larga sea la sentencia. El resultado ha sido la siguiente gráfica.88 . La variable dependiente está representada por el volumen disponible del espacio de tabla. a nivel de empresa. Esta prueba consiste en crear una auditoría genérica y una auditoría de grano fino de tal forma que se audite lo mismo.
desde un inicio. Se puede ver que dicha disminución del tamaño tiende a que el espacio de tablas que contiene la tabla de auditoría de grano fino disminuye a una velocidad de 1. el volumen libre en el espacio de tabla de auditoría de grano fino decrece de forma mucho más rápida que el volumen libre del espacio de tabla de auditoría genérica. Gráfico XXXIV: Evolución del espacio disponible en los espacios de tablas de auditoría
Se puede ver que. pero la pendiente de la línea azul es más pronunciada.65 veces la velocidad de disminución del espacio de tablas que contiene la tabla de auditoría genérica:
Página .89 . Ambos decrecen de forma lineal.de 150
. En el siguiente gráfico se muestra la relación que hay entre las dos evoluciones en referente a la disminución del tamaño.
. Gráfico XXXV: Relación de crecimiento de información en el espacio de tablas que contiene la tabla de auditoría de grano fino con relación al crecimiento de información en el espacio de tablas que contiene la tabla de auditoría genérica Página .90 .
Gráfico XXXVI: Velocidad de entrada de operaciones a la base de datos sin auditoría
Página . Este hecho desembocó en un error en la base de datos: se cortó la comunicación con el cliente y se paró la copia.6.91 . Estas pruebas determinarán la infraestructura para realizar la auditoría desde el punto de vista del auditor: una infraestructura no sólo para auditar sentencias. 5-B (copia en PC Auditor) y 6 (recuperación de backup en el mismo servidor). Las siguientes gráficas muestra la velocidad real de entrada de operaciones y la velocidad de entrada de operaciones en la Prueba 5-B. Esto hace que la base de datos se colapse. backup y recuperación En este punto se estudiará lo obtenido en las pruebas 5-A (copia y backup en el mismo servidor). Mientras se realizaba la copia de la tabla en PC Auditor. se seguían insertando registros de auditoría de grano fino en FGA_LOG$. sino para realizar backup y recuperación de las sentencias auditadas.de 150
. Esto es debido a la alta cantidad de información que maneja la tabla FGA_LOG$: la velocidad de entrada de registros de auditoría de grano fino era mayor que la velocidad con que se enviaban registros a la otra base de datos. Rendimiento de copia.5. Lo primero que llama la atención es el hecho de que la prueba 5-B no haya ido bien para la auditoría de grano fino.
Gráfico XXXVII: Velocidad de entrada de operaciones a la base de datos con auditoría de grano fino mientras se copia la tabla de auditoría en otro ordenador Gráfico XXXVIII: Velocidad de entrada de operaciones a la base de datos con auditoría de grano fino mientras se copia la tabla de auditoría en el mismo ordenador Por tanto. lo que lo hace menos eficiente. o tener un ancho de banda mayor que el ancho de banda de una red Ethernet. hay que hacerlo cada muy poco tiempo (tener menos registros de auditoría).
Página . lo que lo hace muy difícil. es más recomendable realizar copia y backup en el mismo ordenador si se realiza auditoría de grano fino. para hacer copia y backup con auditoría de grano fino desde otro ordenador.de 150
.92 . En conclusión.
. hay que destacar el hecho de que tarda la mitad de tiempo: 7 minutos para la prueba 5-A y 15 minutos para la prueba 5-B.93 . la prueba 5-A bloquea menos la base de datos con respecto a la prueba 5-B en referencia al número de operaciones que permite realizar.La prueba 5-A presenta mejores resultados para la auditoría genérica que la prueba 5-B. Usando la fecha actual de Oracle (sysdate) como referencia para realizar el backup.
Gráfico XXXIX: Uso de la CPU en la Prueba 5‐A para auditoría genérica
Gráfico XL: Uso de CPU en la Prueba 5‐B con auditoría genérica
Además. Por un lado. se llega al siguiente resultado:
Página . esto hace que se pierdan muchos más datos de auditoría. lo que es algo muy importante desde el punto de vista de la disponibilidad de la base de datos. Sin embargo. Además se puede apreciar un menor uso de los recursos computacionales (uso del procesador).
94 .Prueba 5-A:
SQL> insert into AUX_AUD$ (SELECT * FROM sys.
Página . pero no imprescindible. 2500672 filas creadas. es recomendable utilizar el segundo método: copia y backup en PC Auditor. con muchos usuarios y muy complejas. Esto es una pérdida de más de 50. Esto es una pérdida de poco más de 2. Para bases de datos poco concurrentes.000 registros de auditoría. 2554847 filas suprimidas. para bases de datos muy concurrentes. 2505250 filas suprimidas.AUD$@enlace_auditoría_aud WHERE ntimestamp#<=(select hoy from hoy)). SQL> DELETE FROM sys. Prueba 5-B:
SQL> insert into AUX_AUD$ (SELECT * FROM sys.de 150
.000 datos de auditoría. por lo que es recomendable. En conclusión. tiene un uso de disco muy grande.AUD$ where ntimestamp# <= (select hoy from hoy).AUD$ WHERE ntimestamp#<=(select hoy from hoy)). es mejor utilizar el primer método: copia y backup en el mismo servidor. SQL> DELETE FROM sys. 2503324 filas creadas. En cuanto a la prueba 6.AUD$@enlace_auditoría_aud where ntimestamp# <= (select hoy from hoy). realizar este tipo de operaciones en días o momentos en los que la base de datos tenga menor uso. Recuerde que la pérdida es debido a que la prueba se realiza mediante un scritp que va ejecutando operaciones que hacen saltar las políticas de auditoría continuamente.
Gráfico XLI: Uso de disco en la Prueba 6 con auditoría genérica Gráfico XLII: Uso de disco en la Prueba 6 con auditoría de grano fino
Estas acciones son recomendables debido a que este hecho hace que se paren las peticiones desde cliente.de 150
. Se puede comprobar comparando el nivel con el nivel de la prueba 2. El disco tiene tanto uso cuando se carga la tabla que las peticiones se ralentizan.
Página .95 .
Gráfico XLIII: Peticiones de cliente en la Prueba 2 con auditoría genérica Gráfico XLIV: Peticiones de cliente en la Prueba 6 con auditoría genérica Página .de 150
. Gráfico XLV: Peticiones de cliente en la Prueba 2 con auditoría de grano fino Gráfico XLVI: Peticiones de cliente en la Prueba 6 con auditoría de grano fino
Página .97 .
6. se ha llegado a una infraestructura que maximiza el rendimiento de una base de datos. siguiendo por la explicación de unos procedimientos para obtener los datos de auditoría: cómo obtener dichos datos y cómo utilizarlos. Infraestructura para el análisis de la recolección de los datos Dado el análisis de rendimiento explicado en el punto 4 rendimiento en la recolección de datos en Oracle 11g.98 . la infraestructura está recogida de forma resumida en el siguiente esquema:
Ilustración 14: Infraestructura recomendada para el análisis de la recolección de los datos de auditoría
Página . Comenzaremos por describir la infraestructura de auditoría que permita maximizar la eficiencia del servidor de base de datos. De forma general. donde se realizan operaciones de forma masiva.1. Análisis de la recolección En este punto se ha descrito una infraestructura y unos procedimientos para realizar auditoría de la forma más eficientemente posible.de 150
.6. siendo ésta una base de datos muy concurrida.
cada uno con un nombre de usuario y su contraseña correspondiente. Este ordenador. No es conveniente que su dirección IP o su nombre de red sean públicos como con el Servidor. así como los permisos únicamente para realizar las operaciones que el administrador les permita. En la misma red. conectado directamente con el Servidor. será el utilizado por el auditor de la base de datos para realizar las operaciones pertinentes con el objetivo de despejar de gasto computacional lo máximo posible al servidor de base de datos. y su nombre o su IP (según la infraestructura de la red) serán públicos para los ordenadores clientes con el objetivo de poder realizar operaciones sobre el esquema. Una opción que puede tomar el diseñador de la red es el de poner el PC Auditor fuera de la red. llamado en el esquema anterior PC Auditor. En este caso.99 . pues será de uso único para el auditor. los clientes serán los ordenadores donde los usuarios puedan acceder a los datos del servidor.En ordenador Servidor será el que posea la base de datos que se quiere auditar. la red quedaría como se muestra en la siguiente figura:
Página . Aparte. habrá un ordenador que contenga instalado otra instancia de base de datos.de 150
. Se necesitarían dos tarjetas de red para el Servidor: una para la conexión con PC Auditor y otra para la conexión con los clientes.
Ilustración 15: Infraestructura alternativa para el análisis de la recolección de los datos de auditoría
La ventaja que tiene esta infraestructura alternativa es el hecho de que las transferencias de datos entre el Servidor y el PC Auditor irán más rápido.
Este ordenador tendrá la instancia de la base de datos que va a ser utilizada por los clientes. La principal desventaja es que es prácticamente inviable para bases de datos distribuidas. lo que aligera el trabajo del auditor en caso de ser un trabajo con una transferencia de información muy pesada. encareciendo el coste de la infraestructura y complicando su diseño.de 150
. Para un funcionamiento óptimo. los de auditoría y un espacio de tabla que contendrá el esquema utilizado por los clientes.1.
6. tendrá un disco donde se recogen los espacios de tablas por defecto. A continuación se describirán más detalladamente los dos ordenadores necesarios para realizar esta tarea.1. El siguiente esquema muestra los espacios de tablas requeridos por la instancia de la base de datos del servidor:
Página .100 .
El espacio de tablas UNDO contiene información de tipo “deshacer” para poder utilizar el comando rollback. El espacio de tablas USERS contiene las tablas y los datos permanentes de los usuarios.de 150
. ya que tiene el diccionario de datos. y así reducir la carga de éste. El espacio de tablas SYSAUX está creado como soporte auxiliar al espacio de tablas SYSTEM. Ilustración 16: Esquema de espacios de tablas del Servidor
El espacio de tablas SYSTEM es creado automáticamente en la instalación. para tener más seguro el esquema que va a ser utilizado por los usuarios. que es la que contiene todos los registros de auditoría genérica. También contiene las tablas y vistas que utiliza el administrador de la base de datos dentro del esquema SYS. El espacio de tablas TABLESPACE_AGG contendrá la tabla AUD$.101 . y es usado para gestionar la base de datos. con el objetivo de no sobrecargar el espacio de tablas SYSTEM. Sin embargo. se creará otro espacio de tablas llamado ESQUEMA para simbolizar y tener más controlado el esquema que es usado por los usuarios. por defecto. que es donde inicialmente está la
La razón es que Oracle no permite un cambio de espacio de tabla con el tipo LONG. el servidor tendrá un usuario llamado auditor_ser que tendrá los permisos de lectura y borrado sobre las tablas AUD$ y FGA_LOG$ con el fin de poder manipular esas tablas. realizar copias de seguridad y vaciado de dichas tablas. con el objetivo de no sobrecargar el espacio de tablas SYSTEM. tan y como se indica en la siguiente sentencia:
SQL> ALTER TABLE FGA_LOG$ MOVE TABLESPACE TABLESPACE_FGA. El espacio de tablas TABLESPACE_FGA contendrá la tabla FGA_LOG$. Para mover esta tabla al espacio de tablas indicado. La primera sentencia modifica el campo PLHOL. ALTER TABLE FGA_LOG$ MOVE TABLESPACE TABLESPACE_FGA. ALTER TABLE FGA_LOG$ MOVE TABLESPACE TABLESPACE_FGA * ERROR en lÝnea 1: ORA‐00997: uso no vßlido del tipo de dato LONG [10] Además. y su tamaño máximo es de 4 gigabytes. el administrador de la base de datos deberá ejecutar las siguientes sentencias:
ALTER TABLE FGA_LOG$ MODIFY (PLHOL CLOB).102 . que es donde inicialmente está la tabla FGA_LOG$. a tipo CLOB. el administrador de la base de datos deberá ejecutar la siguiente sentencia:
ALTER TABLE AUD$ MOVE TABLESPACE TABLESPACE_GGA.de 150
. Para mover esta tabla al espacio de tablas indicado. que es la que contiene todos los registros de auditoría de grano fino.
Página .tabla AUD$. lo que le hace el tipo más indicado para el cambio. que es de tipo LONG y que impide un cambio de espacio de tabla. que contiene datos de caracteres basados en el juego de caracteres predeterminados del servidor.
1. para aumentar la eficiencia del servidor. grant select.create user auditor_ser identified by auditor_ser_secret. El siguiente esquema muestra los espacios de tablas requeridos por la instancia de la base de datos del PC Auditor:
Ilustración 17: Estructura de espacios de tablas del PC Auditor
Página .2. se recomienda que sólo se haga en el caso de ser una base de datos muy concurrente y si se realiza una auditoría de nivel medio o alto.103 . No obstante. resource to auditor_ser. sería muy recomendable tener otro disco en el que depositar los ficheros Redo.FGA_LOG$.AUD$. delete on SYS. Tendrá un disco donde se recogen los espacios de tablas por defecto y un espacio de tabla que contendrá el esquema utilizado por el auditor.de 150
6. grant select. delete on SYS.
Este ordenador tendrá la instancia de base de datos que va a ser utilizada por el auditor. se gastarían más recursos económicos y aumentaría la probabilidad de fallo de disco. pues con el nivel bajo. la mejora apenas se notaría. grant connect. Según los datos de rendimiento obtenidos en el punto 4 Rendimiento en la recolección de datos en Oracle 11g.
Los espacios de tablas SYSTEM, SYSAUX, UNDO y USERS están explicados en el punto 6.1.1 Servidor del presente documento, y tienen la misma configuración, a excepción de la tabla del administrador AUD$, que no será necesaria a menos que se desee auditar las acciones del propio auditor. El espacio de tablas ESQUEMA_AUDITOR recogerá las tablas necesarias para que el auditor realice su trabajo. El auditor será un usuario llamado auditor_aud que tendrá todos los permisos sobre su espacio de tablas asignado. Los permisos mínimos serán los siguientes:
create user auditor_aud identified by auditor_aud_secret; grant connect, resource to auditor_aud; grant create view to auditor_aud; grant create table to auditor_aud; grant create synonym to auditor_aud; grant create procedure to auditor_aud; grant create database link to auditor_aud; Este usuario deberá crear un enlace al ordenador Servidor para poder manipular, de forma remota, la tabla AUD$:
create public database link enlace_auditoría connect to auditor_ser identified by auditor_ser_secret using 'BDEmpresa'; donde BDEmpresa es el nombre de la instancia de la base de datos. Para que el auditor realice una copia de seguridad de la tabla AUD$, debe copiar dicha tabla en una tabla auxiliar en PC Auditor, según los siguientes pasos: Paso 1: crear una tabla auxiliar donde guardar los datos de auditoría:
create table AUX_AUD_aaaammdd$ AS SELECT * FROM sys.AUD$@enlace_auditoría where rownum<1; Página - 104 - de 150
Paso 2: crear un momento concreto fijado para realizar la copia de seguridad:
create table hoy ( hoy date primary key ); insert into hoy values (sysdate); Paso 3: copiar los datos de auditoría generados hasta el momento fijado:
insert into AUX_AUD_aaaammdd$ (SELECT * FROM sys.AUD$@enlace_auditoría WHERE ntimestamp#<=(select hoy from hoy)); Paso 4: borrar los datos originales copiados:
DELETE FROM sys.AUD$@enlace_auditoría where ntimestamp# <= (select hoy from hoy); Paso 5: realizar copia de seguridad. Al tener nombrada la tabla auxiliar con la fecha actual, el auditor puede tomar la decisión de mantener las tablas en un esquema propio, o realizar una copia de seguridad para ahorrar espacio en disco. Si decide realizar la segunda opción, deberá ejecutar lo siguiente en SQL+ con los permisos adecuados, para crear un directorio donde guardar la copia de seguridad y para poner el espacio de tablas en modo backup:
create or replace directory directorio as 'C:\CopiasDeSeguridad'; grant read, write on directory directorio to public; alter tablespace ESQUEMA_AUDITOR begin backup; Desde la consola de Windows, ejecutar el siguiente comando:
expdp auditor_aud/auditor_aud_secret DIRECTORY=directorio DUMPFILE=AUX_AUD_aaaammdd.dmp LOGFILE=AUX_AUD_aaaammdd.log TABLES=AUX_AUD_aaaammdd$ Página - 105 - de 150
Por último, cuando termine la realización de la copia de seguridad, deberá ejecutar lo siguiente en SQL+ para que el espacio de tablas deje de estar en modo backup:
alter tablespace ESQUEMA_AUDITOR end backup; En diferente forma se realizan las tablas auxiliares para la auditoría de grano fino, ya que, como dijimos en el punto 4.6 Rendimiento de backup y recuperación, es más eficiente realizar una tabla auxiliar en el mismo servidor de la tabla de auditoría de grano fino. Para ello seguiremos los mismos pasos que en auditoría genérica, solo que no hará falta utilizar el enlace ‘enlace_auditoría’ porque estaremos dentro del mismo servidor: Paso 1: crear una tabla auxiliar donde guardar los datos de auditoría:
create table AUX_FGA_LOG_aaaammdd$ AS SELECT * FROM sys.FGA_LOG$ where rownum<1; Paso 2: crear un momento concreto fijado para realizar la copia de seguridad:
insert into AUX_FGA_LOG_aaaammdd$ (SELECT * FROM sys.FGA_LOG$ WHERE ntimestamp#<=(select hoy from hoy)); Paso 4: borrar los datos originales copiados:
DELETE FROM sys.FGA_LOG$ where ntimestamp# <= (select hoy from hoy); Paso 5: realizar copia de seguridad. Al tener nombrada la tabla auxiliar con la fecha actual, el auditor puede tomar la decisión de mantener las tablas en un esquema propio, o realizar una copia de seguridad para ahorrar espacio en
Página - 106 - de 150
. se utilizará el mismo servidor.3. Por tanto.log TABLES=AUX_FGA_LOG_aaaammdd$ Por último. Desde la consola de Windows. deberá ejecutar lo siguiente en SQL+.
6. con los permisos adecuados. Bastará con un solo ordenador Servidor con el mismo esquema de espacios de tablas.
Página .disco. además del ESQUEMA_AUDITOR. Si decide realizar la segunda opción. sin necesidad de enlaces y con un solo usuario auditor_ser. mm el mes y dd el día dentro del mes.
Dependencia de la densidad de operaciones
Toda esta infraestructura se simplifica en un solo ordenador cuando la base de datos es poco concurrida. pero en un solo ordenador. alter tablespace ESQUEMA_AUDITOR begin backup.107 . deberá ejecutar lo siguiente en SQL+ para que el espacio de tablas deje de estar en modo backup:
alter tablespace ESQUEMA_AUDITOR end backup. write on directory directorio to public. grant read.dmp LOGFILE=AUX_FGA_LOG_aaaammdd.1. NOTA: la nomenclatura aaaammdd corresponde a la fecha en la que se realiza la copia de seguridad. cuando termine la realización de la copia de seguridad. en lugar de utilizar otro ordenador para realizar la copia de seguridad. una copia de seguridad de la tabla AUD$ realizada el día 14 de marzo del año 2009 se llamará AUX_AUD_20090314$. para crear un directorio donde guardar la copia de seguridad y para poner el espacio de tablas en modo backup:
create or replace directory directorio as 'C:\CopiasDeSeguridad'. En este caso. siendo aaaa el año de realización. poseedor del espacio de tablas ESQUEMA_AUDITOR y realizando las mismas operaciones. ejecutar el siguiente comando:
expdp auditor_aud/auditor_aud_secret DIRECTORY=directorio DUMPFILE=AUX_FGA_LOG_aaaammdd.
• COMMIT_TIMESTAMP: momento exacto en que la transacción fue confirmada. • USERNAME: nombre del usuario que realizó el cambio. Cada entrada de los ficheros de Redo Log guarda los cambios realizados. • TABLE_NAME: nombre de la tabla que ha sido modificada.de 150
. La herramienta a utilizar se llama Log Miner.
Página . en caso de ser una tabla. Esta herramienta permite leer los registros de Redo Log a partir de sus ficheros.108 . La búsqueda de un evento en el tiempo requiere una herramienta que permita leer los eventos de los ficheros de Redo Log. esta columna está vacía. que guardan el historial de cambios realizados a la base de datos. Si el cambio concierne a varios espacios de tabla.6. con el objetivo de ser utilizados en las operaciones de recuperación hacia delante (roll-fordward) por culpa de una caída o similar. A continuación se describen los campos más importantes de ésta vista: • TIMESTAMP: indica el momento exacto en que el cambio se realizó. Desde el punto de vista del auditor puede verse como una sentencia SQL ejecutada por un usuario en un instante determinado y que dio lugar a la inserción de un registro en la tabla de auditoría.2. Búsqueda de un evento en el tiempo con Log Miner Un evento es una acción realizada sobre la base de datos en un momento concreto por parte del usuario. • TABLE_SPACE: nombre del espacio de tablas que contiene el segmento modificado. mediante consultas a una vista llamada v$logmnr_contents.
START (inicio de transacción).TRIM). startup.
ROLLBACK (cambio causado por dehacer una transacción). UNSUPPORTED (operación no soportada por Log Miner). DELETE. Para ello se debe especificar su ubicación el parámetro utl_file_dir mediante la siguiente sentencia de ejemplo:
alter system set utl_file_dir='C:\DatosMarioPFC\LogMiner' scope=spfile. UPDATE.WRITE).109 . INTERNAL (operación lanzada por la propia base de datos). COMMIT (confirmación de la transacción). LOB_WRITE (invocación a la función DBMS_LOB. • SQL_REDO: reconstrucción de la sentencia SQL ejecutada.
LOB_ERASE (invocación a la función DBMS_LOB.• OPERATION: operación realizada para el cambio. DDL (en caso de ser una sentencia de definición de datos).de 150
. SEL_LOB_LOCATOR (sentencia SELECT que devuelve un LOB). se debe construir el diccionario mediante la siguiente sentencia ejemplo:
Página . SELECT_FOR_UPDATE (sentencia SELECT FOR UPDATE). LOB_TRIM (invocación a la función DBMS_LOB. Y tras volver a abrir la base de datos. shutdown immediate.ERASE). Para utilizar Log Miner es necesario especificar una ruta donde Log Miner pueda ubicar su diccionario de objetos para poder funcionar. • SQL_UNDO: reconstrucción de la sentencia SQL que deshace el cambio realizado por la sentencia SQL ejecutada. MISSING_SCN (hueco en el registro de Redo). Sus posibles valores son los siguientes: INSERT.
. mediante la sentencia:
EXECUTE DBMS_LOGMNR.END_LOGMNR().110 . Esta forma de buscar eventos permite conocer más datos. Para ver los ficheros Redo Log es necesario usar la siguiente sentencia:
SQL> select member from v$logfile.BUILD( DICTIONARY_FILENAME =>'dictionary.LOG C:\DATOSMARIOPFC\BDMARIO\REDO03. es necesario terminar la sesión de análisis de los ficheros Redo Log. ya se puede iniciar la sesión Log Miner indicando la ubicación del diccionario de Log Miner. hay que utilizar la siguiente sentencia ejemplo para cada fichero:
SQL> exec DBMS_LOGMNR. Una vez preparado todo esto.add_logfile(‘C:\DATOSMARIOPFC\BDMARIO\REDO01.LOG Para cargar los ficheros y así poderlos analizar. timestamp from v$logmnr_contents where timestamp>sysdate‐1.START_LOGMNR(DICTFILENAME =>'c:\DatosMarioPFC\LogMiner\dictionary. A continuación hay que especificar a Log Miner qué ficheros de Redo Log se quieren analizar. Cuando se acaba de utilizar el Log Miner.ora'). mediante la siguiente sentencia:
EXECUTE DBMS_LOGMNR. como el momento en que la transacción fue confirmada. Procedimiento PL/SQL terminado correctamente. A partir de este momento ya se pueden realizar consultas a la vista antes mencionada v$logmnr_contents.L OG’).exec DBMS_LOGMNR_D. DICTIONARY_LOCATION => 'c:\DatosMarioPFC\LogMiner'). username. por ejemplo la siguiente sentencia:
select sql_redo. MEMBER ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ C:\DATOSMARIOPFC\BDMARIO\REDO01.LOG C:\DATOSMARIOPFC\BDMARIO\REDO02.ora'. la sentencia SQL que permite deshacer el
cambio u otros tipos de operaciones que no se pueden auditar por interactuar con LOBs. para poder utilizar este método se necesita importar la copia de seguridad de la base de datos completa.
6.111 . La búsqueda de un dato para la auditoría genérica es diferente a la búsqueda de un evento en el tiempo para la auditoría de grano fino. se podrá llegar a obtener los datos deseados. Obtención de un dato específico de auditoría Un dato es la información obtenida de un evento auditado.3. Por ello. A continuación se creará una vista. la búsqueda de un dato implica recuperar todos los backups de las tablas auxiliares donde se guardaron los datos de auditoría. se explicarán en apartados diferentes.3. ya sea AUD$ para la auditoría genérica o FGA_LOG$ para la auditoría de grano fino.
6. Mediante un conjunto de consultas explicadas en los siguientes puntos. sino en un formato interno. pues para encontrar un evento hay que tener en cuenta que aquí se encuentran todas las operaciones realizadas. diferente para auditoría genérica y de grano fino. Es un registro de auditoría generado por el evento y que ha sido guardado en la tabla de auditoría. A modo de resumen. si se ejecuta un rollback. y las vistas creadas. y es incómoda de utilizar debido a que no presenta las operaciones tal y como se hicieron.1. para la mejor visualización de los datos. Búsqueda de un dato para la auditoría genérica
La auditoría genérica tiene por objetivos:
Página . Además. Sin embargo es más costosa de utilizar.de 150
. También. la transacción se deshace y no queda constancia de su ejecución en la vista v$logmnr_contents.
obj_privilege. El auditor sólo deberá recuperar las tablas en la base de datos local que existe en el PC Auditor. timestamp.2 PC Auditor del presente documento. Por tanto.de 150
.112 . new_owner. obj_name. audit_option.1. terminal. sys_privilege. Gracias a que son tablas con los mismos campos. admin_option.• ver qué operaciones realizó un usuario en un periodo de tiempo. action_name. username. Página . userhost. para buscar un dato sobre un evento en el tiempo no es necesario más herramientas que las copias de seguridad de las tablas auxiliares de AUD$. new_name. Para ello será necesario crearla de la siguiente manera:
CREATE VIEW VISTA_AUDITORÍA ( os_username. Para una mejor visualización de los datos. se podrá realizar una unión (operación UNION) de todas las tablas. owner. seleccionando los parámetros requeridos para ello. que muestra todos los registros de auditoría genérica de todas las fechas necesarias. action. grantee. que son las creadas con el nombre AUX_AUD_aaaammdd$ y cuya creación se ha explicado en el apartado 6. será muy recomendable utilizar una vista análoga a DBA_AUDIT_TRAIL. ya que se realizó una copia de seguridad lógica. • ver qué usuarios realizaron un conjunto de operaciones en un periodo de tiempo.
sessionid. aud. spm. 109. null. new$name. os_process.name. logoff_lread. econtext_id. 108. priv_used. userid. 108. logoff_pread. obj$creator. scn.name. terminal. extended_timestamp. userhost. act. ses_actions.de 150
. logoff_time. global_uid. decode(aud. client_id.name. entryid. session_cpu. proxy_sessionid. comment_text. instance_number. returncode. null. cast ( (from_tz(ntimestamp#. new$owner.action#. 114. obj_edition_name ) AS select spare1. auth$privileges). 115.'00:00') at local) as date). sql_bind. transactionid.action#. null. obj$name. logoff_dlock. null) Página .action#. 109. logoff_lwrite. null. spm. decode(aud. sql_text. statementid.113 .
null.1. 105. sessionid.'00:00') at local) as date). substr(auth$privileges.1). auditid. 114.2000)). decode(aud. aud. null. decode(aud. decode(aud.114 . spx.1). comment$text.action#.1). null. xid. proxy$sid.1.1. obj$edition from ( AUX_AUD_aaa1m1d1 UNION Página . null. sessioncpu. null). null. 104. ses$actions. scn. 115. from_tz(ntimestamp#.1). cast((from_tz(cast(logoff$time as timestamp). returncode. substr(auth$privileges.1.logoff$dead). substr(auth$privileges. to_nchar(substr(sqltext.name. process#.action#. statement.'00:00') at local. logoff$lread.action#. instance#.1. 109. logoff$pread. 108. logoff$lwrite. clientid. 104.de 150
. substr(auth$privileges. 114. 109. 105. to_nchar(substr(sqlbind. null). user$guid. 115. entryid. null. aom. 108.1. auth$grantee. aom.2000)).name.name.
• El campo USERHOST muestra el nombre del ordenador desde el que se realizó la operación. • El campo OBJ_NAME muestra el objeto sobre el que el usuario realizó la operación. Tras la construcción de esta vista.option# (+) and ‐ aud. son los siguientes: • El campo USERNAME muestra el usuario que realizó la operación.de 150
.logoff$dead = spm.privilege (+) and aud. Los campos más importantes de la vista. o la operación realizada. system_privilege_map@enlace_auditoría spx. • El campo TIMESTAMP muestra el momento exacto en que se realizó la operación.action (+) and ‐ aud. el auditor podrá visualizar con mayor facilidad los eventos realizados por el usuario.priv$used = spx. • El campo OWNER muestra el propietario del objeto sobre el que el usuario realizó la operación. audit_actions@enlace_auditoría act where aud. STMT_AUDIT_OPTION_MAP@enlace_auditoría aom. y los que son más recomendables de visualizar. system_privilege_map@enlace_auditoría spm.AUX_AUD_aaa2m2d2 UNION … AUX_AUD_aaaNmNdN ) aud.action# = act.logoff$dead = aom.
Página . en caso de ser auditoría by access. • ACTION_NAME: muestra SESSION REC en caso de ser auditoría by session.privilege (+). • Los campos NEW_OWNER y NEW_NAME muestran el nuevo propietario y el nuevo nombre del objeto en el caso de que la operación haya sido de renombrado o de creación.115 .
116 .de 150
. • TERMINAL: Identificador del terminal de usuario. • El campo EXTENDED_TIMESTAMP muestra el momento exacto en el que el usuario inicia su sesión en la que ejecuta el evento. A continuación se mostrarán dichos campos: • OS_USERNAME: Nombre de usuario del sistema operative que realizó la operación. según los intereses del auditor. • El campo LOGOFF_TIME muestra el momento exacto en el que el usuario termina su sesión. • El campo PRIV_USED muestra el privilegio usado para realizar la operación. • ACTION: Es el código numérico de la operación realzada. • ADMIN_OPTION: Indica si un rol o u sys_priv fue creado con la opción ADMIN (A/-) • AUDIT_OPTION: Indica el conjunto de opciones de auditoría de la sentencia de auditoría. • El campo GRANTEE muestra el usuario al que se le ha dado o quitado un privilegio en caso de que la operación sea GRANT o REVOKE. • El campo SYS_PRIVILEGE muestra el privilegio de sistema que se ha manejado en caso de que la operación sea GRANT o REVOKE. en caso de que la operación sea LOGOFF. El resto de campos pueden ser eliminados de la vista o no.
Página .• El campo OBJ_PRIVILEGE muestra el privilegio de objeto que se ha manejado en caso de que la operación sea GRANT o REVOKE.
Rename. pues en ese caso la operación quedaría grabada en el campo
ACTION_NAME. • SESSIONID: Identificador numérico para cada sesión Oracle. "F" = no éxito en la operación. "S" = éxito en la operación. Update. Cero en caso de éxito de la acción.117 . dejándose vacía en caso de ser auditoría by access.de 150
. Comment. Delete. Index. • LOGOFF_LWRITE: Escrituras lógicas en la sesión. • PRIV_USED: Privilegio usado para ejecutar la acción. Grant. Valores: "-" = ninguno.
Página . Select. Insert. Flashback. en este orden: Alter. uno por cada tipo de acción. • STATEMENTID: Identificador numérico de la sentencia ejecutada. • CLIENT_ID: Identificador del cliente en la sesión. • LOGOFF_PREAD: Lecturas físicas en la sesión. Es una cadena de 12 caracteres. • LOGOFF_DLOCK: Bloqueos detectados en la sesión. Lock. • ENTRYID: Identificador numérico del registro de auditoría en la sesión.• SES_ACTIONS: Es el resumen de sesión. Audit. • COMMENT_TEXT: Comentario sobre la operación realizada. • LOGOFF_LREAD: Lecturas lógicas en la sesión. • RETURNCODE: Error Oracle generado por la acción. en caso de ser auditoría by session.
6. • OS_PROCESS: Description of DBA_AUDITIdentificador del proceso del sistema operatvo. • TRANSACTIONID: Identificador de la transacción. • SQL_TEXT: no muestra nada.de 150
.• ECONTEXT_ID: Identificador del contexto de ejecución para cada acción. • SQL_BIND: Datos de la variable BIND de la sentencia ejecutada.
Página . • INSTANCE_NUMBER: Número de instancia del parámetro de inicialización del fichero 'init.3. Búsqueda de un dato para la auditoría de grano fino
La filosofía de la auditoría de grano fino cambia debido a que necesitamos saber: • Qué información se vio en una consulta.2.ora'. • SESSION_CPU: Tiempo de CPU usada en la sesión. • GLOBAL_UID: Identificador global del usuario.118 . si se usa un proxy. • PROXY_SESSIONID: Número serial de la sesión del proxy. • OBJ_EDITION_NAME: Edición del objeto auditado. • SCN: Número SCN (System Change Number) de la sentecia.
En el primer grupo hay que realizar una importación de la base de datos completa. Startup mount. y el grupo. Una vez recuperada la base de datos. que no necesita el apoyo de las copias de seguridad. en las que deben ser incluidos los ficheros redo. A continuación debe bajar la instancia y montarla sin ser abierta. Para ello dividiremos las cuatro operaciones en dos grupos: el grupo que necesita de las copias de seguridad.de 150
. Se recupera la base de datos en la fecha deseada con la siguiente sentencia:
Página . en la línea de comandos hay que ejecutar la siguiente sentencia:
imp userid=system/system_secret file=C:/bakups/backup20090314. para ver qué información se vio. • Qué información se borró en un borrado. Para ello hay que crear una base de datos nueva en PC Auditor.• Qué información se insertó en una inserción. Seguidamente hay que crear los espacios de tabla de la nueva base.119 .log full=y siendo la fecha inmediatamente posterior a la fecha en la que queremos ver qué se hizo. haciéndolos coincidir con los nombres de los espacios de tablas de la base de datos de origen. para recuperar a base de datos en un momento determinado:
Shutdown immediate. se borró o fue cambiada por qué información. • Qué información fue cambiada por qué información.dmp log=imp. que sólo incluye la inserción. Luego. el auditor debe conectarse como administrador:
connect / as sysdba.
para ver qué información fue cambiada. Con ello tendremos la información de antes y de después de realizar la modificación. sino hasta el punto indicado:
alter database open resetlogs. se realiza la misma operación que en el caso de ser un borrado. hay tres caminos: • En el caso de que la operación sea una consulta. • En el caso de ser un borrado. pues no queremos recuperar la base de datos hasta el punto actual. se ejecuta la consulta auditada para comprobar que es lo que el usuario vio.120 . • En el caso de ser una modificación. a continuación se ejecutará la acción de modificación y se volverá a realizar la operación que en el caso de borrado para ver qué información resultó. En cuanto a la inserción.recover database until time '2009‐02‐01:16:00:00'. debe cambiarse la operación por una consulta de manera que se visualicen los campos deseados (select * from tabla where…) copiando la cláusula where de la nueva consulta por la cláusula where de la operación de borrado de forma que se visualice qué es lo que el usuario borró. A partir de este momento. A continuación se debe abrir la base de datos con la opción resetlogs para realizar una recuperación parcial. bastaría con visualizar la sentencia SQL para ver qué información insertó el usuario. Para ver las sentencias SQL que fueron ejecutadas es muy recomendable usar una vista análoga a la vista DBA_FGA_AUDIT_TRAIL. que permite visualizar sencillamente los registros de auditoría de grano fino.de 150
. Para crear dicha vista hay que recurrir a la siguiente sentencia:
os_user. extid. proxy$sid. object_name. obj$name. os_process. osuid. comment$text.'00:00') AT LOCAL) AS DATE ). proxy_sessionid. dbuid. 1.'00:00') AT LOCAL. policy_name. scn. extended_timestamp. instance#. global_uid. entryid. 'INVALID'). FROM_TZ(ntimestamp#. policyname.1. oshst. 'DELETE'. statement. object_schema.2000)). 'UPDATE'. 'INSERT'. obj_edition_name ) AS select sessionid. statement_type. instance_number. to_nchar(substr(lsqltext. user$guid. 2. obj$schema. DECODE(stmt_type. clientid. ext_name. entryid. db_user. sql_bind. sql_text. 'SELECT'.1. 4. timestamp. econtext_id.de 150
.121 . process#. statementid. xid. obj$edition from ( AUX_FGA_LOG_aaa1m1d1$ UNION … UNION AUX_FGA_LOG_aaanmndn$ ). auditid.CREATE VIEW VISTA_AUDITORÍA_FGA ( session_id. CAST ( (FROM_TZ(ntimestamp#. Página . comment$text.2000)). 8. to_nchar(substr(lsqlbind. client_id. scn. userhost. transactionid.
El resto de campos pueden ser eliminados de la vista o no. A continuación se mostrarán dichos campos: • SESSION_ID: Identificador de sesión en la que se ejecutó la sentencia.122 . • El campo POLICY_NAME indica el nombre de la política de auditoría que guardó el registro de auditoría. • El campo SQL_TEXT muestra la sentencia SQL que fue ejecutada. Los campos más importantes son los siguientes: • El campo TIMESTAMP muestra el momento concreto en el que fue ejecutada la sentencia SQL. • El campo STATEMENT_TYPE indica el tipo de operación de la sentencia. • El campo OBJECT_NAME muestra el nombre del objeto sobre el que el usuario realizó la operación. • OS_USER: Nombre de usuario del sistema operativo que ejecutó la sentencia • CLIENT_ID: Identificador de cliente en la sesión Oracle. • El campo USERHOST muestra el nombre del equipo desde el que el usuario realizó la operación.
. • El campo DB_USER indica el nombre del usuario que ejecutó la sentencia.Donde AUX_FGA_LOG_aaaXmXdX$ son las tablas resultado de la copia de seguridad de la tabla de auditoría de grano fino. según los intereses del auditor.
ora'. • SQL_BIND: Variable BIND de la sentencia. • OBJECT_SCHEMA: Propietario de la tabla o vista sobre la que se realizó la operación. en caso de usar dicho mecanismo. • SCN: Número SCN de la sentencia. • TRANSACTIONID: Identificador de la transacción en la que se ejecutó la acción. • PROXY_SESSIONID: Número de serie de la sesión de proxy. • EXTENDED_TIMESTAMP: Momento en el que se ejecutó la sentencia dentro de una zona horaria. • OS_PROCESS: Identificador del proceso del sistema operativo. [12]
Página . • ENTRYID: Identificador numérico del registro de auditoría. • OBJ_EDITION_NAME: Edición del objeto auditado.• ECONTEXT_ID: Identificador de contexto de ejecución de la acción • EXT_NAME: Nombre externo. • COMMENT$TEXT: Comentarios. • GLOBAL_UID: Identificador global del usuario.123 . • INSTANCE_NUMBER: Número de instancia del parámetro de inicialización del fichero 'init.de 150
. • STATEMENTID: Identificador numérico de la sentencia.
.Página .124 .
TIMESTAMP. llamada VISTA_AUDTORIA. Obtención de un conjunto de datos de auditoría Un conjunto de datos es el resultado de una pregunta concreta de un auditor. se puede obtener la información básica necesaria.2. es necesario utilizar las vistas creadas en el punto 6. como veremos en los siguientes puntos. para ver cuántos cambios de salario ha tenido un empleado en el último mes. El siguiente ejemplo muestra las operaciones sobre inserción en un periodo determinado:
Página . USERNAME. donde los campos más importantes son: ACTION_NAME.1. por ejemplo.4. detectando así inserciones masivas o borrados masivos. Obtener un conjunto de datos con auditoría genérica
Para la auditoría genérica se utilizará la vista creada en el punto 6. Para conseguir información acerca de la primera pregunta. OBJ_NAME. Las tres preguntas más habituales que se puede hacer un auditor son: • ¿Quién hizo la operación O entre el momento T1 y el momento T2? • ¿Qué operaciones realizó el usuario U entre el momento T1 y el momento T2? • ¿Cuántas operaciones de un mismo tipo han sido realizadas por parte de un usuario determinado? ¿Y desde un mismo Terminal? Esto sirve. se utilizarán los campos TIMESTAMP y ACTION_NAME.1 Búsqueda de un evento en el tiempo para la auditoría genérica del presente documento.2 Búsqueda de un evento en el tiempo del presente documento.4. Para lograr obtener información para contestar a estas tres preguntas.6. y cuales han sido esos cambios.
6.125 .de 150
. Jugando con sus campos.
pues requiere una cierta elaboración.de 150
. El primero muestra la cuenta de operaciones por tipo que ha realizado un usuario en determinadas fechas:
Select ACTION_NAME. Página . El siguiente ejemplo muestra las operaciones realizadas por un usuario en un periodo determinado:
Select * from VISTA_AUDITORÍA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and USERNAME = ‘USUARIO.Select * from VISTA_AUDITORÍA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and ACTION_NAME = ‘INSERT’. se utilizarán los campos TIMESTAMP y USERNAME. Para conseguir información acerca de la segunda pregunta. algo que debería ser motivo de sospecha:
Select ACTION_NAME. El Segundo ejemplo muestra lo mismo. pero desde un mismo Terminal. count(*) from VISTA_AUDITORÍA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and TERMINAL = ‘NOMBRE_TERMINAL’ group by ACTION_NAME. count(*) from VISTA_AUDITORÍA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and USERNAME = ‘USUARIO’ group by ACTION_NAME.126 . como se muestran en los siguientes ejemplos.’ La tercera cuestión es la más compleja. Para obtener la información es necesario unas consultas a la vista VISTA_AUDITORÍA.
USERHOST. llamada VISTA_AUDTORIA_FGA.127 . OBJECT_NAME.2. como en auditoría genérica. Sin embargo.2.2 Auditoría de grano fino del presente documento. TIMESTAMP y POLICY_NAME.4. También es muy útil realizar esta operación.de 150
. ejecutado tal y como se explica en el punto 4. DB_USER. La tercera cuestión es. en lugar de por tipo de operación. la más compleja. Sería muy recomendable que este tipo de cuestiones estuviesen vigiladas por un procedimiento almacenado. donde los campos más importantes son: STATEMENT_TYPE. El siguiente ejemplo muestra las operaciones sobre inserción en un periodo determinado:
Select * from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and STATEMENT_TYPE = ‘INSERT’. en cuyo caso utilizaríamos:
Select * from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and POLICY_NAME = ‘politica_insercion’. se utilizarán los campos TIMESTAMP y STATEMENT_TYPE. por política de auditoría. para obtener la
Página . Para conseguir información acerca de la primera pregunta. El siguiente ejemplo muestra las operaciones realizadas por un usuario en un periodo determinado:
Select * from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and DB_USER = ‘USUARIO’. Obtener un conjunto de datos en auditoría de grano fino
Para la auditoría genérica se utilizará la vista creada en el punto 6. se utilizarán los campos TIMESTAMP y DB_USER.2 Búsqueda de un evento en el tiempo para la auditoría de grano fino del presente documento.6. Para conseguir información acerca de la segunda pregunta.
128 . en lugar de por operación. y
Select count(*) from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and USERHOST = ‘NOMBRE_TERMINAL’ group by POLICY_NAME. respectivamente. El primero muestra la cuenta de operaciones por tipo que ha realizado un usuario en determinadas fechas:
Select count(*) from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and DB_USER = ‘USUARIO’ group by STATEMENT_TYPE.información
VISTA_AUDITORÍA_FGA. como se muestran en los siguientes ejemplos. El Segundo ejemplo muestra lo mismo. en cuyo caso se utilizará el campo POLICY_NAME en la agrupación:
Select count(*) from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and DB_USER = ‘USUARIO’ group by POLICY_NAME.de 150
. pero desde un mismo Terminal. Igualmente.
Página . es muy útil realizar estas consultas. algo que debería ser motivo de sospecha:
Select count(*) from VISTA_AUDITORÍA_FGA where TIMESTAMP > ‘01/01/2009’ and TIMESTAMP < ‘02/01/2009’ and USERHOST = ‘NOMBRE_TERMINAL’ group by STATEMENT_TYPE. por política de auditoría.
varios niveles: • Categoría de datos personales • Categoría de datos sensibles para la organización Como se verá en los siguientes puntos. en cada categoría. En la categoría de datos personales que no son sensibles para la organización. además de los datos analizados en la parte de Business Intelligence. Sin embargo. un cambio en esos datos no afectan a los intereses económicos. Se ha elegido realizar un conjunto dentro de una ampliación debido a que se consideran dos tipos de información. a excepción de la aplicación de dicha ley con las multas que pueda recibir y la mala imagen que pueda dar. En la categoría de datos sensibles para la organización se incluyen. a los objetivos y a las funciones de la organización.
7. la categoría de los datos personales es un conjunto que está dentro de la categoría de los datos sensibles para la organización. pues está la Ley Orgánica de Protección de Datos defendiéndolos. Seguidamente se mostrarán de sus ventajas e inconvenientes e inconvenientes encontrados.129 . además de los anteriores.
Página .7. Normas para auditar elementos de una organización En este punto se describirán un conjunto de niveles de auditoría. Niveles de auditoría Se pueden recoger dos categorías.de 150
. a los objetivos ni a las funciones de la organización. en qué consisten y qué abarcan. los datos que pueden afectar a los intereses económicos. la operación más delicada que puede recibir es la consulta. según el tipo de ataques que puedan recibir.1.
en formato electrónico o en formato relacional. que comprenden todos los datos de carácter personal no sensibles para la organización. auditando dicho acceso y controlando el número de intentos.130 . por medio de auditoría genérica.2 Necesidad de auditoría del presente documento. como concepto descrito en el punto 2. Teniendo esta información y los horarios de trabajo de los usuarios.
Página . ya sea mediante privilegios Oracle o mediante otros mecanismos.1. que se explican a continuación:
7.1. Sus requisitos son: • Se debe tener un Documento de Seguridad. según la conveniencia de la organización (ver artículo 11.de 150
. se podrán detectar fácilmente anomalías mediante alertas y procedimientos almacenados. Es tarea del administrador la gestión de la seguridad.1. como mínimo. con este nivel.1. en el que queden reflejados qué elementos y qué operaciones sobre dichos elementos pueden realizar los diferentes tipos de usuarios.7.1 de la LOPD [3]).1. se ha establecido una jerarquía de tres niveles. ya sea en papel. según el Documento de Seguridad. • Se debe restringir el acceso a los datos por parte de usuarios que no tengan los permisos pertinentes. pues cubre los aspectos más básicos de seguridad. cada uno con sus requisitos. • Se debe controlar el acceso al sistema. Es muy recomendable que cualquier base de datos cuente. por roles y/o por usuarios particulares. Nivel básico
Este nivel corresponde al nivel de seguridad más bajo. Es la auditoría mínima que se debería hacer para controlar el acceso del personal.
que manejan datos de importancia y cuya seguridad debe ser más fuerte.1.2.1 Recolección de datos en auditoría general del presente documeto. Nivel medio
El nivel medio está diseñado para organizaciones medianas y grandes.2. que son: o Evolucionar las políticas de auditoría. • Guardar registros de auditoría durante al menos 1 años (ver artículo 47. tal y como se explica en los puntos 6.• Se debe tener un repositorio activado.1 de la LOPD [3]). será necesario tener el valor DB en el parámetro de la base de datos audit_trail tal y como se explica en el punto 2. o Obtener información sobre datos de auditoría. Para tener activado el repositorio de auditoría genérica.1.
Página . Sus requisitos son: • Cumplir el nivel básico. respectivamente. Estos son AUD$ y FGA_LOG$ para auditoría genérica y de grano fino.1.131 .5 Obtención de un conjunto de datos del presente documento. con un ordenador distinto del servidor para realizar sus funciones.de 150
. o Realización de copias de seguridad y limpieza de las tablas de auditoría. o Obtener información sobre hechos excepcionales.4 Obtención de un dato y 6. • Se debe designar un responsable de seguridad (ver artículo 16 de la LOPD [3]) distinto del administrador. donde guardar los registros de auditoría.
Y no sólo datos de la organización.• Se debe auditar y vigilar los intentos de realización de operaciones. datos de mercado o datos económicos.1.
7. sino también datos personales. sobre objetos de la base de datos y/o sobre los datos personales con el objetivo de limitar dichos intentos por parte de un usuario. en el caso de ser una base de datos muy concurrente. Nivel alto
El nivel alto es de utilidad para grandes organizaciones. único usuario que puede ver el contenido de las tablas de auditoría. • Repositorio de tablas de auditoría en servidor externo al de la base de datos. • Se debe auditar los intentos fallidos de conexión del usuario auditor.1 de la LOPD [3]). Sus requisitos son: • Cumplir el nivel medio.
Página .1.132 . autorizadas o no.de 150
. Esto se podrá realizar con auditoria genérica. donde la información es su valor más importante. Esto se podrá realizar con auditoria genérica. • Copias de seguridad guardadas en ubicaciones diferentes. usando el envío de mensajes tanto al propio auditor como al administrador de la base de datos cada vez que esto ocurra. • Separar los ficheros Redo en otro disco dentro del servidor de base de datos para obtener mayor eficiencia.
Guardar registros de auditoría durante al menos 3 años (ver artículo 47.3.
133 . Esto se podrá realizar con auditoria de grano fino.•
Desarrollo de alertas para la detección de posibles irregularidades: procedimientos almacenados que vigilan los movimientos que el auditor cree más conveniente vigilar. Quedaría aproximadamente como se puede ver en la siguiente ilustración:
Ilustración 18: Infraestructura recomendada para el análisis de la recolección de los datos de auditoría de nivel alto
Como infraestructura alternativa. pero a su vez más segura. se puede proponer la descrita en la siguiente figura para la mejora del rendimiento de la base de datos:
Página . la infraestructura se torna algo más compleja.
Al guardar los datos de auditoría en un repositorio externo.de 150
. al igual que describimos en el punto 5.1 Infraestructura para el análisis de la recolección de los datos.
1. Categoría de datos sensibles para la empresa
En esta categoría.1 Nivel básico del presente documento. explicado en el punto 7. que se explican a continuación:
7.de 150
.1.2.1. que comprenden. todos los datos sensibles para la organización ya sean de carácter personal o no.
Página . además de los datos personales. Nivel básico
Este nivel es análogo al nivel básico de la categoría de datos personales.1.1. cada uno con sus requisitos. Ilustración 19: Infraestructura alternativa para el análisis de la recolección de los datos de auditoría de nivel alto
7. se ha establecido igualmente una jerarquía de tres niveles.134 .2.
ya sean autorizados o no autorizados. el auditor deberá investigar este hecho sobre quién ha realizado las modificaciones. desde qué ordenador y cuándo. Nivel alto
Este nivel es análogo al nivel alto de la categoría de datos personales.1. desde qué ordenador y cuándo.1.
Página . Cada vez que se actualicen dichos datos. explicado en el punto 7.
7. más las siguientes características: • Se deben auditar los intentos de actualización de los datos personales de los usuarios sensibles para la organización por parte de los propios usuarios.1.1. el auditor deberá investigar este hecho sobre quién ha realizado las modificaciones.3.7. Esto se podrá realizar con auditoria de grano fino.de 150
.1.2.2. por medio de procedimientos almacenados. por medio de procedimientos almacenados.2. sin frecuencia límite. Nivel medio
Este nivel es análogo al nivel medio de la categoría de datos personales. Esto se podrá realizar con auditoria de grano fino. Cada vez que se actualicen dichos datos con una frecuencia mayor de la esperada. • Se deben auditar los intentos de actualización y borrado de los datos sensibles para la organización por parte de los usuarios.3 Nivel alto del presente documento. con el objetivo de detectar irregularidades dentro de la plantilla de la organización.2 Nivel medio del presente documento. con el objetivo de detectar irregularidades dentro de la plantilla de la organización.1.135 . explicado en el punto 7.
así como quién estuvo y quién no estuvo conectado a la base de datos en un momento determinado.2 de la LOPD [3]. Además.
7. Los privilegios pueden ser asignados a un usuario o un rol. Las ventajas e inconvenientes del nivel básico están incluidas en el nivel medio.1.1. Ventajas
Una de las principales ventajas que tiene este nivel es la documentación.2.2. nivel por nivel. quién tiene derecho a ejecutar una sentencia SQL o el acceso a un objeto de otro usuario. En Oracle. permite detectar infracciones del tipo leve. Es de gran importancia este hecho debido a que facilita la detección de errores de asignación en los permisos y la evolución de éstos con los continuos cambios. Ventajas y desventajas de los niveles de auditoría A continuación se enumerarán un conjunto de ventajas e inconvenientes de los niveles de auditoría expuestos en el punto anterior 7. es decir.136 .1. descritas en el artículo 44. La gestión de privilegios permite al administrador y al auditor constar en el sistema quién tiene acceso y quién no tiene acceso a los objetos. Esto permite saber si un usuario estaba o no estaba conectado en el momento en que se produjo algún error o vulnerabilidad.de 150
Página . El control de acceso a la base de datos permite saber quién está y quién no está conectado en este momento. La gestión de privilegios permite tener controlado todo ello.2. hay dos tipos de privilegios: privilegios del sistema y privilegios de objeto. y las ventajas e inconvenientes del nivel medio están incluidas dentro del nivel alto.7.1 Niveles de auditoría del presente documento.
descritas en el artículo 44.4 de la LOPD [3].
Página . en cuyo caso se puede descontrolar con cierto nivel dicho control. e infracciones del tipo muy grave. hay una persona que gestiona todos estos datos.7. Además.1. pudiendo detectar otras vulnerabilidades nuevas dentro del sistema mediante el estudio de la documentación y la evolución de ésta.1.
7. El administrador/auditor debe gestionar dichos repositorios si ocurren fallos como llenado de espacios de tabla u otro tipo de inconvenientes. mejora el rendimiento del servidor debido a que se separan los ficheros Redo en discos diferentes.137 .2.2. Desventajas
La desventaja principal de este nivel es en una base de datos con altos niveles de conexiones y desconexiones.de 150
. descritas en el artículo 44. permite detectar infracciones del tipo grave.2. se obtiene un control casi absoluto de las operaciones por parte de los usuarios. Además.2. Cada operación que el auditor considera importante es auditada en las tablas de auditoría.3 de la LOPD [3].
7. Por último.2.2. Aparece la gestión de repositorios: las tablas de audtoría. Ventajas
Con respecto al nivel básico.
Página . Operaciones que pueden hacer vulnerable el sistema son detectadas gracias a los elementos de auditoría como políticas de auditoría y procedimientos almacenados.2. a no ser que el flujo de información entre el servidor de la base de datos y los clientes sea tan alto que aumentar el flujo de información en la red con el servidor de las tablas de auditoría haga que se ralentice la red.2.
7. pudiendo ser dichos datos recuperados. pues tendría toda la información de auditoría en un solo repositorio.3.2. el uso de múltiples alertas mejora la seguridad.1.2. alto o muy alto de flujo de información. Sin embargo. Por ello. su detección sería prácticamente inmediata.7.de 150
.138 . Por último. este nivel está planteado para ser rentable a organizaciones con un nivel medio. Además. Desventajas
La principal desventaja de este nivel es el gasto económico extra en personal y en infraestructura de auditoría. Por otro lado.3. al externalizar las tablas de auditoría estamos facilitando la labor al auditor en caso de ser una base de datos distribuida.2. ya que en caso de posible ataque.
7. el hecho de externalizar las tablas de auditoría mejora el rendimiento del servidor de base de datos. Ventajas
La ventaja añadida del nivel alto con respecto al nivel medio es que facilita la conservación de los datos de auditoría en caso de pérdida de una de las copias. lo que se convertiría en desventaja. se tiene un control de eventos sospechosos.
para su creación hay dos caminos: la creación de alertas de forma manual. Sin embargo. Desventajas
Puede ser una desventaja el gasto extra en infraestructura.de 150
.3. En cuanto al uso de alertas.7.2.3.139 .
Página . diferentes servidores.2. normalmente.2 Herramientas de auditoría del presente documento. Dos de estas herramientas están descritas en el apartado 4. No es así con el gasto computacional. que es costoso en tiempo y personal. las empresas con un nivel alto o muy alto de información poseen. con un coste económico relativamente alto. y la creación de alertas usando herramientas de auditoría. por lo que el gasto económico disminuye. incluso en diferentes edificios.
Estas metodologías están basadas en la experiencia del auditor y. Por ello era necesario estudiar estas herramientas para que pudiesen ser aprovechadas lo mejor posible. Sin embargo. Tras una labor de investigación y realización de pruebas. por tanto. y por ello es necesario llegar a una arquitectura del sistema que nos permita mantener segura la base de datos maximizando su disponibilidad y eficiencia. Esta dependencia detiene el avance en este campo. se ha pretendido estandarizar lo máximo posible la infraestructura y actividades necesarias para llevar a cabo la labor de auditoría informática con Oracle 11g. Dentro del campo de la informática es posible crear un proceso que permita guardar y recuperar los datos de auditoria de base de datos de tal forma que sea capaz de procurar mantenerlos con un mínimo coste en infraestructura. Por ello. dependen de él.140 . por consiguiente. reduciendo el esfuerzo necesario para llevar a cabo la labor de auditoría informática y. Existen metodologías que permiten facilitar la labor del auditor. sus costes de mantenimiento y formación. El rendimiento y la seguridad deben estar equilibrados. y Oracle es el sistema gestor más avanzado del mercado actual. un uso indebido de estas herramientas puede hacer que una base de datos se colapse o se caiga. Los sistemas gestores de bases de datos cada vez aumentan los recursos en esta materia.8. es necesario crear una metodología independiente del sistema y de la experiencia del auditor. El rendimiento del sistema varía en función del nivel de seguridad.
Página . Conclusiones y líneas futuras La labor del auditor informático tiene una cierta complicación a la hora de comenzar su realización.de 150
. Su versión 11g ofrece herramientas de auditoria tanto genérica como de grano fino.
Es necesario también describir cómo debe el auditor realizar sus actividades. que será usado por el auditor informático para realizar sus labores: • Evolucionar las políticas de auditoría. • Realización de copias de seguridad y limpieza de las tablas de auditoría. Por ello se han propuesto.141 . Esto no es suficiente. Las tablas de auditoría deberán estar en el mismo servidor. El servidor contará con una base de datos Oracle 11g disponible para los usuarios. se utiliza otro ordenador. ya que de otra forma se podría colapsar la red y así bloquear la base de datos. programas de medición de rendimiento y análisis de los datos se ha llegado a configurar una infraestructura de dos ordenadores que maximiza de forma general el rendimiento del servidor de base de datos de manera que se aumente la disponibilidad del mismo. • Obtener información sobre datos de auditoría. Todo ello cumpliendo con el objetivo fundamental del trabajo de investigación: maximizar la disponibilidad y eficiencia. con un usuario auditor especial con permisos de consulta y borrado de tuplas de las tablas de auditoría. un conjunto de procedimientos generales que abarcan las acciones que debe realizar el auditor para el correcto mantenimiento del sistema. mediante el análisis de los objetos disponibles en Oracle 11g para la recolección de los datos. • Obtener información sobre hechos excepcionales. tanto del ordenador servidor auditado como del ordenador en el que se tratan de analizar los datos de auditoría. Para la realización de copia y backup de las tablas de auditoría así como su gestión de la configuración.
.Mediante una batería de pruebas.
se debe establecer unos niveles de auditoría en función de la seguridad requerida por la base de datos de la organización. Mediante un conjunto de consultas y las vistas creadas.
Página .142 . Los niveles de auditoría se han establecido en base a dos pilares imprescindibles que determinan la necesidad de auditoria de cualquier base de datos. • El sistema informático: la maximización de la disponibilidad y el rendimiento de la base de datos. A continuación se crearán vistas análogas a las que ofrece Oracle 11g llamadas dba_audit_trail y dba_fga_audit_trail para la mejor visualización de los datos. Finalmente y para que cualquier base de datos pueda optar a un sistema de auditoria a su medida. ya que el rendimiento obtenido en la realización de las pruebas hacen ver que el coste de mantenimiento de la auditoría de base de datos varía con respecto al uso que se le de a la misma. Se ha llegado a la conclusión de que estos niveles son necesarios. se podrá llegar a obtener los datos deseados.de 150
. La búsqueda de un dato implica recuperar todas las copias de seguridad realizadas a las tablas de auditoría. llegando a la conclusión de ser una herramienta muy pesada con respecto al uso de políticas de auditoría que ofrece Oracle 11g: auditoría genérica y de grano fino.En este análisis se ha estudiado el uso del Log Miner como herramienta de auditoría. Estos pilares son los siguientes: • La ley: los diferentes niveles de infracciones establecidos en el artículo 44 de la LOPD [3]. desde una pequeña organización hasta una grande.
. El área de la auditoría informática es un campo al que queda un largo camino que recorrer. Las bases de datos Oracle comenzaron a contar con cierta potencia en materia de auditoría muy recientemente. adaptándose a las
Página .4 de la LOPD [3]. cualquier producto comercial se encuentra a un paso por detrás. se ha de tener tres niveles: • Básico: abarca la protección de la base de datos para prevenir infracciones leves según el artículo 44. a partir de la versión 9i lanzada al mercado a mediados del año 2001y en la versión 10g.2 de la LOPD [3]. por lo que es necesario acudir a la experiencia del auditor.Con ello.3 de la LOPD [3]. La organización deberá establecer el nivel de seguridad que cree más conveniente para su correcto funcionamiento y aplicarlo. Dicha metodología debe ser evolucionada. Se basa en detectar posibles irregularidades en el funcionamiento de la base de datos. La capacidad de auditoría Oracle está limitada principalmente por el propio gestor. Se basa en establecer y documentar los permisos concedidos a los usuarios para detectar posibles huecos de seguridad. Debido a ello. sin disminuir la disponibilidad de la base de datos. • Alto: abarca la protección de la base de datos para prevenir infracciones muy graves según el artículo 44. Este trabajo pretende servir de base para el comienzo de un desarrollo de metodología que permita reducir costes y esfuerzo de mantenimiento y uso de la auditoría Oracle. lanzada en el 2003. Consiste en aumentar aún más la seguridad.143 . • Medio: abarca la protección de la base de datos para prevenir infracciones graves según el artículo 44.
aumentar la eficacia de la recolección de los datos de auditoría. y muy importante. las máquinas y los sistemas operativos para así observar como incide la auditoría en Bases de Datos en el rendimiento. que son procesos que detectan amenazas de seguridad estudiando irregularidades en el uso de la base de datos. cuya evolución deberá ser seguida. son útiles o llegan a ser imprescindibles. Además.144 . Sería muy necesario estudiar en profundidad esta herramienta con el objetivo de observar la efectividad del Datawarehouse y su rendimiento. la herramienta Oracle Audit Vault ha desarrollado un Datawarehouse que permite. De tal forma de que el auditor pueda obtener de una forma amigable.de 150
. una vez obtenida la recolección de datos de auditoría tendremos que pasar a realizar análisis automáticos y manuales de la información recolectada. que permiten diseñar alertas. Así se podría ver si son herramientas que se quedan en interesantes. Como se ha visto en el presente trabajo. para qué organizaciones. Estas herramientas deben ser estudiadas con el fin de saber si esas alertas realmente funcionan y cómo funcionan. Como líneas futuras de investigación habrá que analizar cómo evoluciona el motor de Oracle. Por ejemplo el número de
Página . Además existen herramientas comerciales. e incluso visual. También habría que estudiar cómo guarda los datos de auditoría la herramienta Intrust de Quest y compararlo con Oracle Audit Vault. sería muy positivo desarrollar y evolucionar un Datawarehouse que mejore la eficiencia de la recolección y recuperación de los datos de auditoría. cada vez más presentes.nuevas tecnologías que surjan y a las bases de datos distribuidas. Por otra parte. elementos generales de auditoría. en teoría.
y las herramientas de ingeniería están lejos de realizar estos procesos.operaciones por usuario y por objeto. Se debe diseñar procesos para la búsqueda de patrones de conocimiento para que la propia herramienta encuentre comportamientos correctos o anómalos en el aplicativo. Pero no sólo debe quedar ahí.de 150
. conexiones fallidas. etc. accesos por usuario o accesos por objeto y usuario. operaciones DML o consultas fallidas.
Página .145 . En este campo queda mucho por investigar todavía.
9. Referencias [1] Piattini Velthuis, Mario G. Auditoría informática: un enfoque práctico. Editorial RA-MA, 1997 [2] PARRILLA GONZALEZ, Ana Belén. Auditoría de bases de datos. Editorial A.B Parrilla, 1997 [3] España. Ley orgánica 15/1999, de 13 de diciembre, de protección de datos de carácter personal [en línea]. Boletín Oficial del Estado, 14 de diciembre de 1999, núm.298, p. 43088-43099. e http : // www.boe.es (consultado 25-0109). [4] Oracle Database SQL Reference 10g Release 2(10.2). Create Trigger [en línea]. [EE.UU]: Oracle, 2005 [ref. de 30 de noviembre de 2008]. Disponible en Web:
<http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_ 7004.htm> [5] Oracle 9i Database Daily Feature. Fine-Grained Auditing [en línea]. [EE.UU]: Oracle Technology Network [ref. de 7 de diciembre de 2008]. Disponible en web: < http://www.oracle.com/technology/products/oracle9i/daily/oct03.html > [6] Oracle Database Security Guide 10g Release 2(10.2). Configuring and Administering Auditing [en línea]. [EE.UU]: Oracle, 2008 [ref. de 8 de diciembre de 2008]. Disponible en Web: <http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/cfga udit.htm>
Página - 146 - de 150
[7] Oracle Database SQL Language Reference 11g Release 1(11.1) [en línea]. [EE.UU]: Oracle, September 2008 [ref. de 15 de diciembre de 2008]. Disponible en Web: <http://download.oracle.com/docs/cd/B28359_01/server.111/b28286.pdf> Cap.13. SQL Statements: ALTER TRIGGER to COMMIT: Audit. [8] Oracle. E-Delivery [en línea]. [EE.UU]: Oracle, 2008 [ref. de 19 de diciembre de 2008]. Disponible en Web: <http://edelivery.oracle.com/EPD/GetUserInfo/get_form?caller=LinuxWelc ome> [9] Oracle Technology Global Price List. Software Investment Guide [en línea]. [EE.UU]: Oracle, January 2008 [ref. de 23 de diciembre de 2008]. Disponible en Web: <http://www.oracle.com/corporate/pricing/ePLext.PDF> [10] Oracle Database 11g Release 1(11.1). About Database Storage
Structures [en línea]. [EE.UU]: Oracle, 2008 [ref. de 7 de enero de 2009]. Disponible en Web: <http://download.oracle.com/docs/cd/B28359_01/server.111/b28301/storag e001.htm#ADMQS12053> [11] Burleson Consulting. DBA_AUDIT_TRAIL view tips [en línea].
[EE.UU]: Burleson Enterprises, 2009 [ref. de 15 de enero de 2009]. Disponible en Web: <http://www.praetoriate.com/data_dictionary/dd_dba_audit_trail.htm>
Página - 147 - de 150
Burleson Consulting. DBA_FGA_AUDIT_TRAIL view tips [en
línea]. [EE.UU]: Burleson Enterprises, 2009 [ref. de 16 de enero de 2009]. Disponible en Web: <http://www.praetoriate.com/data_dictionary/dd_dba_fga_audit_trail.htm> [13] Mateos Macía, Enrique. Auditoría en bases de datos. Desarrollo e implementación con Oracle. Evaluación y comparativa. Universidad Carlos III de Madrid, 2007 [14] Burleson Consulting. DBA_AUDIT_TRAIL view tips [en línea]. [EE.UU]: Burleson Enterprises, 2009 [ref. de 28 de diciembre de 2008]. Disponible en Web: <http://www.quest.com/intrust/> [15] Oracle® Audit Vault Administrator's Guide [en línea]. [EE.UU]: Oracle, 2008 [ref. de 29 de diciembre de 2008]. Disponible en Web: <http://download.oracle.com/docs/cd/E13850_01/doc.102/e13841/toc.htm>
Página - 148 - de 150
sql: script utilizado para realizar la prueba 1-B.
Página .sql: ejemplos para obtener un conjunto de datos de auditoría genérica.sql: muestra las sentencias para realizar copia y backup de AUD$.Anexo I: elementos incluidos en el CD script1.sql: muestra el ejemplo de alerta para el vigilar el espacio disponible en un espacio de tablas. script2. script4.sql: script utilizado para realizar la prueba 1-A.sql: muestra las sentencias para crear politicas de auditoría de grano fino usadas en las pruebas. prueba1-A.sql: script utilizado para realizar la prueba 2. script3.149 .sql: muestra la tabla usada en las pruebas. script7. prueba3-A.sql: script utilizado para realizar la prueba 3-A. script9. script6. prueba2.sql: ejemplos para obtener un conjunto de datos de auditoría de grano fino.sql: muestra las sentencias para realizar copia y backup de FGA_LOG$.sql: fichero para la creación de la vista VISTA_AUDITORÍA. script10. script5. prueba1-B.de 150
. script8.sql: fichero para la creación de la vista VISTA_AUDITORÍA_FGA.sql: muestra la sentencia de audiotoría genérica usada en las pruebas.
150 .sql: script utilizado para realizar la prueba 4-B. prueba4-A.de 150
.sql: script utilizado para realizar la prueba 5-B. prueba4-B. prueba5-B.sql: script utilizado para realizar la prueba 6.prueba3-B.sql: script utilizado para realizar la prueba 4-A. prueba5-A.
Página . prueba6.sql: script utilizado para realizar la prueba 5-A.sql: script utilizado para realizar la prueba 3-B.
Más de este usuarioChiles NogadaChiles NogadaPrivacidad y Proteccion de Datos PersonalesPrivacidad y Proteccion de Datos PersonalesWhat Makes a Good Business PlanWhat Makes a Good Business PlanBusiness Plan- Software ConsultingBusiness Plan- Software ConsultingProyecto-CampusAgile (2)Proyecto-CampusAgile (2)Modelos de GestionModelos de Gestion01 Cirugia Tubarica en TRA MFernandez01 Cirugia Tubarica en TRA MFernandez

References: resolución 
 artículo 11
 artículo 47
 artículo 16
 artículo 47
 artículo 44
 artículo 44
 artículo 44
 artículo 44
 artículo 44
 artículo 44
 artículo 44