Sei sulla pagina 1di 6

UNICIENCIA

UNICIENCIA 22
22, 2008
pp. 135-140
2008

AUDITANDO EN LAS BASES DE DATOS


Johnny Villalobos Murillo
Facultad de Ciencias Exactas y Naturales, Escuela de Informtica,
Universidad Nacional de Costa Rica
Heredia. Costa Rica
E-Mail: jvillalo@una.ac.cr

RESUMEN los controles que la administracin ha establecido


dentro de los sistemas de bases de datos y todos sus
La importancia de establecer controles que per- componentes para obtener una seguridad razonable
mitan minimizar el riesgo inherente que tienen los datos de la utilizacin adecuada de los datos que son
contenidos en una base de datos hace necesario implemen- almacenados por los usuarios mediante los siste-
tar procedimientos de auditora. Existen esencialmente
mas de informacin. El monitoreo y pruebas a los
dos tipos de auditoras aplicables a las bases de datos:
la auditora de objetos y la auditora de transacciones.
controles determinan la pertinencia y suciencia
Algunos sistemas gestores de bases de datos proporcio- de stos, permitiendo entonces ajustar, eliminar
nan mecanismos para el primer tipo, mientras que para o implementar nuevos controles para asegurar su
realizar las auditoras de transacciones, es necesario crear adecuada utilizacin.
nuestros propios procedimientos o acudir a soluciones
de terceros. El propsito de los controles de las bases de
datos es minimizar el riesgo inherente que tiene este
Palabras claves: Base de datos, auditora, objetos, valioso recurso. Los datos contenidos en las bases
transacciones.
de datos pueden considerarse uno de los activos
ms importantes que tiene la organizacin, ellos
ABSTRACT nalmente producirn la informacin que necesita
la empresa para su funcionamiento da a da o para
The importance of establishing controls that
allow you to diminish the inherent risk that has the data
su planicacin estratgica.
contained in a database make necessary implement audit
procedures. Two types of audits applicable to the data- Por esta razn, la gerencia debe establecer
base exist essentially, the audit of object and the audit polticas de seguridad, procedimientos de utilizacin
of transactions, some system database manager provide y controles pertinentes, las polticas debern ser
mechanisms for the rst type, whereas to make the audits divulgadas en la organizacin.
of transaction, is necessary to create our own procedures
or to go to solution of third. 2. DNDE UBICAR LOS CONTROLES
Keywords: Database, audit, objects, transactions.
Cuando se plantea la forma ms adecuada de
hacer la auditora, existe adems la interrogante de
cul es el lugar ms adecuado para implantar los
1. AUDITORA DE BASES DE DATOS
controles? Existen tres posibilidades, la primera es
poner los controles en el nivel de las aplicaciones,
La auditora de bases de datos consiste en
es decir, directamente en los programas o interfaces
un proceso de monitoreo continuo y riguroso de

Recibido 5/7/2006 / Aprobado 30/11/2006

135
Villalobos. Auditando en las Bases de Datos

del usuario. La segunda posibilidad es ponerlos en la sentencia pero no el valor, esto puede traer
medio de las aplicaciones y la base de datos, lo que consecuencias no deseadas en el departamento de
llamamos controles en la red y la tercera posibilidad cuentas por cobrar.
es ubicar el control en la base de datos, lo que se
llama control en la fuente. 2.3 Control en la fuente

2.1 Los controles en las aplicaciones La tercera alternativa y la que recomiendo


es la de poner el control directamente en la base de
La primera alternativa implica que a cada datos. Al igual que la segunda, hablamos de un nico
sistema, mdulo o programa, se le debe adicionar control, fcil de implementar y de administrar. Con
el control; esto implica modicaciones de cdigo, esta alternativa y en este caso s es posible conocer
compilaciones de programas y otros procesos ne- los valores de los datos antes y despus de la actua-
cesarios para asegurar que todas las aplicaciones lizacin, ya que podemos utilizar mecanismos de
contengan el control. Esta alternativa resulta ser la base de datos que permiten llegar a ese nivel.
muy vulnerable, ya que es posible acceder a la
base de datos por otros medios. Tiene la desventaja 3. TIPOS DE AUDITORAS DE BASES
de la actualizacin del control, con esto se quiere DE DATOS
decir que si el control sufre alguna modicacin,
entonces ser necesario actualizar todas las aplica- Consideramos dos grandes tipos de audito-
ciones, y en este caso es posible que alguna quede ras de la base de datos, esta divisin est relacionada
sin actualizar. directamente con las actividades que los usuarios
realizan, suponga que un usuario desea cambiar la
2.2 Los controles en la red direccin de envo de pedidos a un cliente. Para
lograr esto se requiere que el usuario realice una
La segunda alternativa, que consiste en poner serie de pasos, por ejemplo:
el control entre el usuario y la base de datos, signica
realmente tenerlo en la red. Esta alternativa tiene la P 1. Conectarse a la base de datos.
ventaja de un nico control, ubicado en una posicin P 2. Ejecutar el cambio de direccin.
estratgica fcil de modicar y de administrar. El P 3. Desconectarse.
control es como un programa espa que captura
todos los mensajes entre los usuarios y la base de Los pasos 1 y 3 se lograran si cuenta con los
datos, se puede capturar todos los estatutos de tipo privilegios o derechos necesarios para conectarse
SQL, entre ellos y las actividades de conexin, las o desconectarse; para el paso 2 el usuario debe
horas y das que ellos interactan. Existe un nico tener privilegios de acceso a la tabla de clientes, y
problema en esta alternativa de ubicacin, que la posibilidad de hacer una modicacin. Basn-
consiste en conocer cmo eran los valores de los donos en esta secuencia de pasos establecemos el
datos antes y despus de que el usuario los actua- primer tipo de auditora, y la llamamos auditora
lizara. Imagnase que una tabla de la base de datos de actividades de los usuarios.
tiene el monto de un recibo pendiente de pagar, si
un usuario no autorizado puede de alguna forma El segundo tipo de auditora est inmersa en
cambiar este valor, sera difcil conocer el monto el paso 2. Qu ocurri realmente cuando cambi el
anterior del recibo, ya que el programa espa lo dato, qu valores quedaron?, qu valores haba?, en
que detecta es que el usuario envi una sentencia otras palabras, qu cambios produjo la transaccin?
de actualizacin como la siguiente: Los controles que establezcamos para conocer lo
que realmente ocurri los llamaremos auditora de
Update recibo set saldo = 10,000 transacciones.
where recibo = 34,567
3.1 Auditora de actividades
En este ejemplo perdemos la informacin
del monto anterior. El programa espa slo graba El primer tipo de auditora lo llamamos au-

136
UNICIENCIA 22, 2008

ditora de actividades, que consiste en controlar las vulnerable.


actividades que realizan los usuarios en los objetos
de la base de datos y entenderemos como objetos Es necesario pensar entonces en una serie
todas las tablas, vistas, restricciones de integridad de consideraciones respecto a la administracin del
que los usuarios crean en la base de datos. RA, para evitar que afecte y se opte por eliminarlo,
dos de las principales recomendaciones son:
Este proceso de monitoreo de las actividades
de los usuarios permite encontrar posibles accesos a Audite slo lo necesario o slo las excep-
objetos no autorizados, conexiones en horas o das ciones.
fuera de horarios normales. Toda esta actividad se Haga respaldo y limpieza del RA y el
va almacenando en una tabla o en un archivo que RAT.
llamaremos el registro de auditora.
Como buena prctica, es necesario analizar
El registro de auditora (RA) tiene un qu tipo de informacin deseamos auditar, qu es
crecimiento muy alto, por lo que es necesario relevante y qu no, qu nos sirve en una investiga-
administrarlo adecuadamente, muchas veces este cin y qu informacin no tiene sentido auditar, de
registro llega a ser igual o mayor en tamao que la este modo no produciremos tanta informacin y se
base de datos. Imagnese el RA de una organizacin disminuye la posibilidad de afectar el rendimiento
de ms de 2000 empleados, que adems permite del servidor.
el acceso de clientes por Internet, o el registro de
auditora de un banco, que puede recibir ms de 20 4.1 Actividades sospechosas
transacciones por minuto.
Una gua adecuada cuando se requiere
3.2 Auditora de transacciones auditar actividades sospechosas es, primero audi-
tar en forma general y posteriormente auditar lo
La auditora de transacciones consiste en especco. Esto se reere que para empezar con el
implementar una serie de controles que permiten proceso de la auditora, comenzamos a auditar todo
llevar una bitcora de todas las transacciones que los tipo de acciones que realicen los usuarios, luego
usuarios realizan, pero a un nivel tal que podamos auditamos algunas acciones, aquellas que realmente
establecer una historia de cmo se produjeron los sean pertinentes y por ltimo auditamos al usuario
cambios. Al igual que en el tipo anterior, es necesario o grupo de usuarios que nos preocupan.
crear un registro de auditora al que llamaremos
registro de auditora de transacciones (RAT). El 5. HABILITANDO LA AUDITORA
crecimiento del RAT es superior al del RA, ya que
es posible que un usuario que se conecte una sola Para habilitar la auditora es necesario eje-
vez, pueda hacer 30 transacciones. En este caso el cutar algunas instrucciones que permitan crear una
RA almacena las actividades de conexin y desco- serie de procesos espas y el RA.
nexin, bsicamente mientras que el RAT almacena
30 registros correspondientes a la informacin antes El sistema gestor de la base de datos rela-
y despus de cada transaccin. cionales Oracle provee un conjunto de instruccio-
nes SQL, a lo que llamamos script, que permite
4. LA ADMINISTRACIN DEL REGIS- habilitar la auditora de actividades. El script debe
TRO DE AUDITORA ejecutarse por un usuario que tenga los privilegios
necesarios.
El gran volumen de informacin que se
almacena en el RA y el RAT hace pensar en algu- Un detalle interesante es que se puede des-
nas organizaciones donde este control puede ser habilitar el proceso de auditora cuando el usuario,
innecesario, que el costo de almacenamiento es ya sea el DBA o el encargado de la auditora, lo
muy alto, y el rendimiento de la base de datos se desee.
puede ver afectado. Es posible que tengan razn,
y eviten con estas justicaciones establecer los En el caso de Oracle, la habilitacin requiere
controles, dejando la base de datos completamente la ejecucin de una secuencia de comandos SQL:

137
Villalobos. Auditando en las Bases de Datos

Habilitar: CATAUDIT.SQL sobre los objetos, como borrados, creaciones,


Deshabilitar: CATNOAUDIT. modicaciones de objetos de usuario o de sistema,
SQL como se mencion anteriormente.

5.1 Composicin del RA de Oracle Para auditar en Oracle es necesario contar con
el privilegio AUDIT SYSTEM, para que se pueda
El RA llamado Audit.Trail, de Oracle, puede habilitar o deshabilitar la auditora. Este privilegio
contener diversos tipos de informacin. La infor- inicialmente lo tiene el administrador de la base de
macin bsica que encontramos es: datos, y es l quien lo otorga al usuario designado.
Una vez realizada la asignacin, puede entonces
Usuario. iniciar.
Sesin.
Terminal. Supongamos que deseamos auditar las veces
Nombre del objeto accesado. en que Ana se conecta o se desconecta. Para esto
Operacin realizada o intentada. entonces desde una interfaz de usuario como el
Fecha y hora. SQL PLUS, el auditor escribe:

El RA permitir saber: AUDIT SESSION BY ANA

Quin se conect? Si se desea saber todas las consultas que


Cundo se conect? hace Ana en las tablas a las que tiene derecho,
Qu hizo en la base de datos? escribimos:
Tuvo xito o no?
Qu privilegios tena? AUDIT SELECT ANY TABLE
Quin se los otorg?
Si deseamos saber las transacciones que
Con este tipo de auditora, no podemos realiza Ana, en cada tabla, y en que momento,
saber qu datos estaban involucrados, es decir, si escribimos:
la accin del usuario genera un cambio en el saldo
de la cuenta de un cliente, no podemos saber qu AUDIT INSERT TABLE, DELETE TABLE,
saldo tena antes y que saldo queda despus de la EXECUTE PROCEDURE BY ACCESS
transaccin, ya que esta informacin no se almacena WHENEVER NOT SUCCESSFUL
en el RA.
En este caso, se audita cualquier transac-
5.1.1 Los tres niveles de auditora de activida- cin en las tablas sin importar quien sea el que lo
des haga.

Estatutos SQL, privilegios y objetos, estos La clusula WHENEVER NOT SUCCES-


son los tres niveles que podemos auditar en la SFUL se reere a las transacciones que fallan, es
base de datos. Los estatutos son todas aquellas decir, aquellos intentos de actualizar una tabla por
instrucciones de tipo SQL que podamos realizar, parte del usuario y este no lo logra, posiblemente
las ms frecuentes son las instrucciones que recibe por los privilegios que se le han otorgado. En este
el servidor de la base de datos para que permita una caso estaramos monitoreando usuarios que tratan
conexin (inicio de sesin) o una desconexin. de hacer transacciones en una tabla a las que no
tienen derecho.
Los privilegios, por su parte, son los permisos
que se le otorgan a los usuarios para que realicen Posteriormente y como ya se mencion,
transacciones o consulten informacin. Existen podemos ser ms especcos en lo que queremos
ms de 80 privilegios diferentes en el servidor de auditar. Supongamos que slo queremos monitorear
la base de datos Oracle. la tabla cuentas, entonces escribimos:

Finalmente, las manipulaciones directas


138
UNICIENCIA 22, 2008

sentencias SQL que se le adhieren a una tabla, con


AUDIT SELECT, INSERT, DELETE el propsito de que en caso que la tabla reciba una
UPDATE ON CUENTAS BY ACCESS transaccin, el TRIGGER se ejecutar y aplicar
WHENEVER SUCCESSFUL las sentencias que tiene almacenadas.

Recordemos que es mejor auditar las ex- La idea de implementar el TRIGGER como
cepciones, ya que de lo contrario, el RA se hara auditora de transacciones es excelente, siempre y
enorme. cuando se tome en cuenta que l interere en el
rendimiento de la transaccin, aun as, si es ne-
5.1.2 Consultando el registro de auditora cesario implementarlo tenga presente hacerlo en
forma adecuada y moderada.
El RA puede ser consultado por el usuario
que tenga el privilegio adecuado. Para realizar las Supongamos que deseamos registrar todos
consultas se cuenta con varios tipos de vistas en el los cambios que se realizan en la tabla cuentas,
diccionario de datos, como por ejemplo: quin los realiza y cundo los realiza. Para hacer
estos primeros cambios necesitamos crear nuestro
SYS.DBA_PRIV_STMT_OPTS propio registro de auditora.
SYS.DBA_PRIV_AUDIT_OPTS
La sentencia SQL para crear la tabla sera
El nombre de la vista empieza con SYS, ya la siguiente:
que ste es el dueo, el prejo DBA se utiliza para
acceder a las tablas de administradores de las bases Create table RAT
de datos, posteriormente el nombre de la base de ( usuario varchar (10),
datos denota el tipo de informacin, por ejemplo, Fecha date,
PRIV_AUDIT_OPTS se reere a los estatutos SQL Cliente varchar (6),
que utilizaron los usuarios auditados. Saldo_anterior number (10,2)
Saldo_actual number (10,2) )
Para realizar la consulta, se implementa una
instruccin SQL como la siguiente: En esta tabla, la columna usuario sirve
para registrar el usuario que realiza la transaccin;
SELECT * FROM fecha almacena el da y la hora en que se efecta
SYS.DBA_PRIV_AUDIT_OPTS la transaccin; cliente se reere al cliente al cual
se le actualiz el saldo y nalmente saldo anterior
Si desea conocer la composicin de alguna y saldo actual registran los valores que tena el
de las tablas o vistas, es decir, qu informacin saldo del cliente antes y despus de llevar a cabo
almacena, puede utilizar el comando DESCRIBE, la transaccin.
de esta forma se detallan todas las columnas que
tiene la tabla. El TRIGGER, que se crear, slo reaccionar
en el caso de que se haga una actualizacin, pero
DESCRIBE SYS.DBA_PRIV_AUDIT_ es posible que reaccione a inserciones y borrados,
OPTS el cdigo necesario es el siguiente:

6. AUDITANDO LAS TRANSACCIO- Create trigger auditor


NES after update on cuentas
for each row
Los sistemas gestores de bases de datos begin
relacionales tienen un objeto especial llamado insert into RAT
TRIGGER (desencadenador). values ( user, date, :new.cliente,
:old.saldo, :new.saldo ) end
El TRIGGER consiste en un conjunto de
De esta forma se almacenan en nuestro
139
Villalobos. Auditando en las Bases de Datos

registro de auditora los valores de usuario (user), vera afectado. Considerando lo anterior debemos
fecha (date), cliente (:new.cliente), saldo_anterior aplicar los siguientes consejos:
(:old.saldo), saldo_actual (:new.saldo).
1. Utilice TRIGGER en tablas crticas.
Las variables, :new.saldo y :old.saldo son 2. Audite slo transiciones relevantes.
proporcionadas por Oracle. 3. Construya varios registros de auditora, no
use solo uno.
Dependiendo de la cantidad de transacciones 4. Ubique los registros de auditora en un
que se reciban, nuestro registro de auditora crecer disco aparte de los discos de datos de los
cada vez ms. sistemas.
5. Revise el tamao del registro de auditora.
Si esto mismo se les aplica a todas las tablas 6. Elimine informacin que ya no sea necesa-
que conforman un sistema de informacin en una ria.
corporacin, el tamao del archivo de auditora sera 7. Respalde en forma peridica.
muy grande, el rendimiento de las transacciones se

140

Potrebbero piacerti anche