Diferencia entre revisiones de «Anonimizador Uso»

De SIU
Saltar a: navegación, buscar
Línea 19: Línea 19:
 
'''sudo apt-get install postgresql-contrib.9.1'''
 
'''sudo apt-get install postgresql-contrib.9.1'''
  
demo@g3w2-demo:/usr/share/postgresql/9.1/extension$ sudo apt-get install postgresql-contrib.9.1
+
<source lang="php" enclose="div">demo@g3w2-demo:/usr/share/postgresql/9.1/extension$ sudo apt-get install postgresql-contrib.9.1
 
Leyendo lista de paquetes... Hecho
 
Leyendo lista de paquetes... Hecho
 
Creando árbol de dependencias
 
Creando árbol de dependencias
Línea 25: Línea 25:
 
Nota, seleccionando “postgresql-contrib-9.1» para la expresion regular “postgresql-contrib.9.1»
 
Nota, seleccionando “postgresql-contrib-9.1» para la expresion regular “postgresql-contrib.9.1»
 
postgresql-contrib-9.1 ya está en su versión más reciente.  
 
postgresql-contrib-9.1 ya está en su versión más reciente.  
c) Desde psql ejecutar el comando: create extension pg_crypto;
+
</source>
 +
 
 +
c) Desde psql ejecutar el comando:  
 +
 
 +
create extension pg_crypto;
  
 
d) probar si se creo correctamente invocando a digest
 
d) probar si se creo correctamente invocando a digest

Revisión del 15:17 11 abr 2018

Como usar el Anonimizador

Configuración

Antes de utilizar el anonimizador, es necesario configurarlo ejecutando los siguientes pasos:

1 - Una de las funciones que se usa en los criterios de anonimización es la sha256, para usar esta función es necesario instalar previamente las funciones pgcrypto. En primer lugar vamos a verificar si las pgcrypto están instaladas:

a) Probar si existe la función digest que se ve a continuación

bd_claro=# select encode(digest('hola', 'sha256'), 'hex');
                        encode
-----------------------------------------------------------------
b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79
(1 row)

b) Si el paso anterior nos da error, debemos proceder a instalar el contrib (aquí explicamos como se instala en versión 9.1 de postgres, si tenes versión 8.4, fíjate en este link) con el comando:

sudo apt-get install postgresql-contrib.9.1

demo@g3w2-demo:/usr/share/postgresql/9.1/extension$ sudo apt-get install postgresql-contrib.9.1
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Nota, seleccionando “postgresql-contrib-9.1» para la expresion regular “postgresql-contrib.9.
postgresql-contrib-9.1 ya está en su versión más reciente.

c) Desde psql ejecutar el comando:

create extension pg_crypto;

d) probar si se creo correctamente invocando a digest

postgres@g3w2-demo:/usr/share/postgresql/9.1/extension$ psql bd_claro psql (9.1.11, server 9.1.14) Type "help" for help. bd_claro=# \l bd_claro=# create extension pgcrypto; CREATE EXTENSION bd_claro=4 select encode(digest('hola', 'sha256'), 'hex');

                            encode

b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79 (1 row) encode 2 - Hay que crear los procedimientos de cada criterio de anonimización en la base de datos a anonimizar. Esto se debe hacer en la misma base a enmascarar o en otra base. El nombre de la base a la que se conecta lo toma de la variable de environment DBNAME, el default es postgres.

Para crear los procedimientos y tablas que usa el programa mask en la base a enmascarar se debe ejecutar

./install_mask.sh server port nombre_de_la_base

como se puede ver en la siguiente pantalla:

postgres@g3w2-demo:/home/masking/anonimizar$ ./install_mask.sh localhost 5432 bd_claro Procesando tables_mask.sql psql:tables_mask.sq1:4: NOTICE: schema "mask" does not exist, skipping DROP SCHEMA CREATE SCHEMA 3 – Ahora tenemos que indicar cuales son las tablas y columnas que queremos anonimizar. También tenemos que indicar que tipo de criterio vamos a aplicar para transformar o anonimizar los datos originales. Cada criterio tiene asociado un procedimiento almacenado de postgres, que tenemos que especificar junto al esquema, la tabla y la columna a anonimizar. El nombre por defecto del archivo de configuración es mask.conf sin embargo puede tener cualquier nombre siempre y cuando seteemos la variable de entorno MASKCONFIG con el nombre del archivo como se ve a continuación.

demo@g3w2-demo:/home/masking/anonimizar$ export MASKCONFIG=mask.conf.mapuche_v4 El contenido del archivo de configuración se ve a continuación. Los campos de izquirda a derecha son: esquema, tabla, columna, procedimiento almacenado que hace la conversión.

mapuche, dh01, desc_nombr, mask.rand_nombre('$desc_nombr') mapuche, dh01, nro_docum, mask.shuffle_dni(100,40000000,'$nro_docum') mapuche, dh01, desc_appat, mask.rand_apellido('$desc_appat') mapuche, dh01, desc_apmat, mask.rand_apellido('$desc_apmat') mapuche, dh01, desc_apcas, mask.rand_apellido('$desc_apcas') Uso

El anonimizador requiere como input la salida de un pg_dump plano (formato –Fp) donde hacer los reemplazos de los datos sensibles. Es por eso que es mandatorio que el programa mask reciba por standard input la salida de un pg_dump, como se puede ver en el siguiente gráfico:


El pg_dump se puede generar al mismo momento que se pasa al mask, o ser generado previamente. En cualquier caso el resultado será también la salida de un pg_dump con los datos sensibles reemplazados, el resto del archivo pg_dump se mantiene sin cambios. Por lo tanto se lo puede importar como a cualquier pg_dump. El nombre de la base de datos a anonimizar se debe setear en la variable DBNAME, tal como se ve a continuación junto a otras variables de entorno que soporta el progama mask

postgres@g3w2-demo:/home/masking/anonimizar$ more env_local.sh export DBNAME=bd_claro export DBPORT=5432 export DBHOST=127.0.8.1 export MASKCONFIG=mask.conf.mapuche_v4 export DEBUG=9 export MASKDIR=Mome/masking/anonimizar

  1. export VARSTARTCHAR=%

Mas abajo un ejemplo de como invocar al anonimizador para la base bd_claro

postgres@g3w2-demo:/home/masking/anonimizar$ pg_dump bd_claro 1 ./mask > bd_anonima.sql postgres@g3w2-demo:/home/masking/anonimizar$ ls -l bd_anonima.sql -rw-rw-r-- 1 postgres postgres 59303 oct 31 15:30 bd_anontma.sql postgres@g3w2-demouhome/masking/anonimizar$ El archivo generado (en nuestro caso bd_anonima.sql) es el que debemos usar como base anonimizada para importar o enviar.