K2B Audit, la forma más sencilla de auditar su aplicación
Saber qué pasó con los datos es un requerimiento común en las aplicaciones de hoy en día. ¿Quién modificó determinado valor?, ¿cuándo? ¿quiénes fueron los que modificaron la lista de precios de mi producto?
¿Por qué auditar?
¿Por qué auditar?
Cuando se piensa en habiltiar la auditoría de una aplicación muchas veces se piensa solo con el objetivo de encontrar irregularidades en el uso del sistema. Sin embargo, la auditoría nos da mucho más: al permitir tener un historial completo de las modificaciones que se realizaron sobre los datos de nuestro negocio, nos permite por ejemplo: encontrar errores de operación (y nos da los datos para revertirlos) y nos brinda información valiosa de cómo varían nuestros datos en el tiempo.
Una linda tentación
Para que esta aseveración sea correcta uno se debe asegurar que:
Sí, hay otra manera.
Las transacciones no solamente centralizan las modificaciones de las entidades sino que definen la estructura de un modelo de datos. Leyendo los modelos de datos podemos saber qué atributos están presente en cada una de las tablas y esa información podemos usarla para generar código propio del DBMS.
Entonces con una herramienta podríamos, a partir de la estructura de la transacción, crear automáticamente los triggers que permitan registrar los cambios en la base, almacenando valor anterior y posterior de cada cambio.
K2B Audit es una herramienta que hace justamente eso. Permite generar código de triggers para auditar las tablas. Para esto cuentan con opciones que permiten:
1. Seleccionar qué transacciones se van a auditar.
2. Crear procedimientos que generan el código de triggers.
- Todas las modificaciones de las entidades sean realizadas usando la transacción (ya sea con su interfaz o usada como business component).
- Solo la aplicación hace modificaciones en la base de datos.
Sí, hay otra manera.
Las transacciones no solamente centralizan las modificaciones de las entidades sino que definen la estructura de un modelo de datos. Leyendo los modelos de datos podemos saber qué atributos están presente en cada una de las tablas y esa información podemos usarla para generar código propio del DBMS.
Entonces con una herramienta podríamos, a partir de la estructura de la transacción, crear automáticamente los triggers que permitan registrar los cambios en la base, almacenando valor anterior y posterior de cada cambio.
K2B Audit es una herramienta que hace justamente eso. Permite generar código de triggers para auditar las tablas. Para esto cuentan con opciones que permiten:
1. Seleccionar qué transacciones se van a auditar.
2. Crear procedimientos que generan el código de triggers.
3. Ejecutar el código de creación de triggers (Reorganize).
¿Qué usuario se audita?
Por lo general, desde la aplicación uno se conecta a la base de datos bajo un usuario único, por tanto esto muy pocas veces aporta información para la auditoría. Lo que se quiere realmente es auditar el usuario que se logueó a la aplicación.
¿Cómo se hace esto? GeneXus brinda la posibilidad de hacer que un procedimiento se ejecute después de que la aplicación se conecte con la base de datos (afterconnect).
K2B Audit hace uso de esta facilidad y provee un procedimiento que se ejecuta en el afterconnect y lo que hace es configurar el usuario en una variable local del DBMS, para que luego sea utilizada por los triggers.
Todo muy lindo, ¿y la performance?
Evidentemente siempre vamos a degradar en algo la performance teniendo auditoría. Aún en la solución de implementarla dentro de la transacción, se genera un overhead importante en la aplicación. Como forma de minimizar el overhead, lo que hacen los triggers es grabar la información de forma no estructurada, para que el trigger consuma el mínimo de tiempo posible. Luego en los momentos que la carga del sistema es baja, se podrá ejecutar un procedimiento que se encarga de estructurar esa información para que sea consultable y analizable.
Explotación
K2B Audit cuenta con una herramienta web (K2BAuditAnalyzer) que permite analizar los datos auditados.
Esta aplicación provee distintos tipos de consultas: Desde consultas básicas por operación; esto es fecha hora de modificación, usuario que hizo las mismas; hasta consultas más avanzadas filtrando por datos específicos de la aplicación.
Por ejemplo, estas consultas permiten saber quienes modificaron la factura AKA342, quienes modificaron el atributo Sueldo del Funcionario “Juan Carlos”, etc. Este tipo de consultas es posible definirlas dinámicamente desde la aplicación de explotación de auditoría.
¿Cómo lo pruebo?
Desde el marketplace http://marketplace.genexus.com/viewproductversion.aspx?189,1,0,0, o desde el sitio www.k2btools.com se puede bajar una versión free edition que permite auditar hasta 5 tablas. Una vez instalado, se puede seguir el manual que está en la página para configurar la KB. No es necesario tener instalado K2BTools para usar K2BAudit.
Links recomendados:
Pueden acceder a las charla “K2BAudit la forma más sencilla de auditar su aplicación” realizada en el XXI Encuentro Genexus:
Parte 1: http://www.youtube.com/watch?v=bzFs83U2pgA&feature=related
Parte 2: http://www.youtube.com/watch?v=OkX9ViVgLOM&feature=related
¿Qué usuario se audita?
Por lo general, desde la aplicación uno se conecta a la base de datos bajo un usuario único, por tanto esto muy pocas veces aporta información para la auditoría. Lo que se quiere realmente es auditar el usuario que se logueó a la aplicación.
¿Cómo se hace esto? GeneXus brinda la posibilidad de hacer que un procedimiento se ejecute después de que la aplicación se conecte con la base de datos (afterconnect).
K2B Audit hace uso de esta facilidad y provee un procedimiento que se ejecuta en el afterconnect y lo que hace es configurar el usuario en una variable local del DBMS, para que luego sea utilizada por los triggers.
Todo muy lindo, ¿y la performance?
Evidentemente siempre vamos a degradar en algo la performance teniendo auditoría. Aún en la solución de implementarla dentro de la transacción, se genera un overhead importante en la aplicación. Como forma de minimizar el overhead, lo que hacen los triggers es grabar la información de forma no estructurada, para que el trigger consuma el mínimo de tiempo posible. Luego en los momentos que la carga del sistema es baja, se podrá ejecutar un procedimiento que se encarga de estructurar esa información para que sea consultable y analizable.
Explotación
K2B Audit cuenta con una herramienta web (K2BAuditAnalyzer) que permite analizar los datos auditados.
Esta aplicación provee distintos tipos de consultas: Desde consultas básicas por operación; esto es fecha hora de modificación, usuario que hizo las mismas; hasta consultas más avanzadas filtrando por datos específicos de la aplicación.
Por ejemplo, estas consultas permiten saber quienes modificaron la factura AKA342, quienes modificaron el atributo Sueldo del Funcionario “Juan Carlos”, etc. Este tipo de consultas es posible definirlas dinámicamente desde la aplicación de explotación de auditoría.
¿Cómo lo pruebo?
Desde el marketplace http://marketplace.genexus.com/viewproductversion.aspx?189,1,0,0, o desde el sitio www.k2btools.com se puede bajar una versión free edition que permite auditar hasta 5 tablas. Una vez instalado, se puede seguir el manual que está en la página para configurar la KB. No es necesario tener instalado K2BTools para usar K2BAudit.
Links recomendados:
Pueden acceder a las charla “K2BAudit la forma más sencilla de auditar su aplicación” realizada en el XXI Encuentro Genexus:
Parte 1: http://www.youtube.com/watch?v=bzFs83U2pgA&feature=related
Parte 2: http://www.youtube.com/watch?v=OkX9ViVgLOM&feature=related
Comentarios
Publicar un comentario