PDA

Ver la Versión Completa : Realizar auditoria de acciones de usuarios


mantrax
18-10-2007, 19:28:19
Que componentes conocen que permitan realizar auditoria de usuarios? quiero que registre quien y cuando realizó una acción.

Nombren los que ustedes usen... para explorar las posibilidades.

jhonny
18-10-2007, 20:18:59
Creo que lo que necesitas es algo como el Ethereal (http://www.ethereal.com/).

mantrax
19-10-2007, 02:51:43
Gracias por tu respuesta pero yo me referia a lo que hacia dentro de mi sistema. Un componente que permita auditar que campos modificó, eliminó o insertó, cuando, que tablas se cambiaron.

Delphius
19-10-2007, 05:42:33
Hola mantrax,
Ha decir verdad desconozco si existe un componente o un sistema de terceros que haga lo que pides.

La manera más "simple" que se me ocurre y es la que yo conozco es añadiendo las tablas necesarias para llevar dicho control de acciones. El problema de esto es claramente visible: La base de datos crece mucho más rápido de lo normal.
Y el sistema tiene (o debería tener) la "lógica" de ir registrando la información necesaria para el auditor.

Creo y entiendo, con la poca experiencia que llevo, que el mayor problema de llevar la auditoria es definir su alcance. Pues dependiendo de que, como y cuanto se audite se debe armar la estructura correcta en la base de datos. Por ponerte un ejemplo, si un proceso de auditoria exige controlar y verificar TODA operación posible para un usuario se podría llegar a tener un 50% más de tablas, es decir que por cada dos tabla que representen (mejor dicho que registre) algún tipo de operación permitida es posible que exista otra tabla que será la encargada de registrar la información necesaria para llevar el proceso de auditoria.

No se si me explico. Lo que trato de decirte es que el proceso de auditoria, y el mismo modelo y naturaleza del negocio, influyen en el diseño de la base de datos. No es sencillo, sobre todo si consideramos que una auditoria a pesar de estar programada puede que surgan cosas inesperadas. Con lo cual la culpa no es del auditor sino del encargado de realizar dicha operación. Es común ver que en procesos de auditoria surjan problemas porque la información (mejor dicho datos) necesaria para el auditor no existe.

No tengo a mano mis apuntes de auditoria... alli tengo un ejemplo de como proceder con el armado del diseño de una base de datos encargada de llevar el control de acceso (según las buenas prácticas de la ley y la norma ISO 17799)

Tal vez te interese un poco (aunque he repetido casi lo mismo) lo que expuse anteriormente aqui (http://www.clubdelphi.com/foros/showthread.php?t=48551).

A ver... si se me ocurre un ejemplo sencillo de como hacer esto.
Supongamos que el departamento de auditoria de una empresa debe llevar a cabo la auditoria de las operaciones de los movimientos de materia prima debido a que se han detectado irregularidades en los numeros en el stock. Tienen la sospecha de que hay alguien que está robando. Una situación típica. Supongamos que el sistema cuenta con la tabla de movimientos. Esta tabla contiene los siguientes campos:
1. IDMov
2. IDMaterial
3. Cantidad
4. IDTipoMov

Bueno. IDTipoMov mantiene una referencia foranea hacia otra Tabla que se encarga de Llevar un registro de cada operación permitida: Ingreso, Egreso, Devolución.

La pregunta ahora es ¿Es suficiente esta tabla para responder a las dudas de los auditores? Es obvio que no. Si desean hallar al culpable deben asociarlo con esta tabla. La tabla Movimientos debe tener incluso estos campos:
5. Fecha/Hora
6. IDUsuario

Bueno... la cosa mejora... solo son dos campos... ¿seguro? No. Ahora se debe llevar un registro de la asistencia del personal. ¿Como? Fácil... con una tabla de accesos:
1. IDAcceso
2. Fecha/Hora
3. IDUsuario

¡Ya hemos añadido una tabla!
Y bueno... así se puede proseguir... la idea es detectar que se desea auditar y determinar como armar las relaciones entre las tablas para llevar el registro de datos que le son útiles al auditor.
El ejemplo es sencillo... pero asi como puede existir una sola tabla de "movimientos"... pueden ser varias. Todo dependerá del negocio.

Espero que se me entienda.

Saludos,