PostgreSQL Anonymizer 1.0: Privacidad en el diseño para Postgres
Limoges, Francia, 17 de mayo de 2022
PostgreSQL Anonymizer es una extensión que oculta o reemplaza información personal identificable (PII) o datos comercialmente sensibles de una base de datos PostgreSQL.
La extensión cuenta con 3 estrategias de anonimización diferentes: Enmascaramiento dinámico, enmascaramiento estático y volcados anónimos. También ofrece una gran variedad de funciones de enmascaramiento, como sustitución, aleatorización, falsificación, seudonimización, codificación parcial, barajado de datos, adición de ruido y generalización.
NOTA: Esta versión se considera lista para producción
Implementación de la «Privacidad en el Diseño» para PostgreSQL
Después de 4 años de la introducción del GDPR, su aplicación sigue siendo compleja para muchas empresas y organizaciones. Especialmente, la aplicación del principio de «privacidad en el diseño» sigue siendo un auténtico dolor de cabeza… ¿Cómo es posible incluir las normas de protección de datos directamente en el diseño de una aplicación?
La gran mayoría de las actuales herramientas de anonimización trabajan fuera de la base de datos, utilizando el mismo enfoque que las herramientas ETL. Como resultado, la responsabilidad de redactar la política de anonimización suele asignarse a los DBA de producción.
La extensión PostgreSQL Anonymizer introduce un enfoque diferente, ya que pretende involucrar a los desarrolladores y arquitectos desde el principio, durante los pasos preliminares del diseño, declarando las reglas de enmascaramiento con SQL, directamente en el propio modelo de base de datos, tal y como ocurre con una restricción de integridad o un índice.
Cuando un desarrollador quiere añadir una nueva columna a una tabla, suele definir algunas reglas y restricciones que se aplican a la misma columna. Con PostgreSQL Anonymizer, también puede declarar que esta columna contiene información personal y escribir una regla de enmascaramiento para describir cómo se transformarán los datos durante el proceso de anonimización.
La extensión ofrece un panel de técnicas de enmascaramiento: aleatorización, ruido, falsificación, eliminación parcial, seudonimización, generalización, etc.
Para Thierry Aimé, que trabaja en la Oficina de Arquitectura y Estándares de la Dirección General de Finanzas Públicas de Francia (DGFiP), las extensiones desempeñan un papel fundamental en la política de protección de datos:
CREATE TABLE player( id SERIAL, lastname TEXT, birth DATE, points INT ); SECURITY LABEL FOR anon ON COLUMN player.lastname IS 'MASKED WITH FUNCTION anon.fake_last_name()'; SECURITY LABEL FOR anon ON COLUMN player.birth IS 'MASKED WITH VALUE NULL';
Como alternativa, si la columna puede declararse como un identificador indirecto, el DBA de producción podrá utilizar una función de anonimato K para comprobar que no exista riesgo de identificar a un individuo dentro del conjunto de datos.
La protección de datos requiere un esfuerzo de equipo. Cada persona involucrada en el ciclo de vida de la aplicación debería comprometerse. De acuerdo con este enfoque, la extensión PostgreSQL Anonymizer proporciona herramientas para desarrolladores y DBAs que ayudan a implementar las reglas de enmascaramiento de datos desde el principio, respetando así el principio de «Privacidad en el Diseño».
Instalación
Esta extensión está oficialmente soportada en PostgreSQL 9.6 y versiones posteriores.
En los sistemas Red Hat, CentOS y Rocky Linux, puede instalarse directamente desde el repositorio RPM oficial de PostgreSQL:
dnf install postgresql_anonymizer14
A continuación, deberán cargar la extensión con:
ALTER DATABASE foo SET session_preload_libraries = 'anon';
Crear la extensión en la base de datos:
CREATE EXTENSION anon CASCADE;
Y por último, inicializar la extensión:
SELECT anon.init();
Para otros sistemas, consulten la documentación de instalación:
https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/
Agradecimientos
PostgreSQL Anonymizer ha sido financiado por las siguientes entidades:
- La Dirección General de Finanzas Públicas de Francia (DGFiP)
- BioMerieux, líder mundial en el campo del diagnóstico in vitro
Les agradecemos por su ayuda y comentarios.
Este proyecto incluye código, correcciones de errores, documentación, revisiones de código e ideas de docenas de colaboradores. Esta versión 1.0 constituye una excelente ocasión para expresar nuestro agradecimiento a todos ellos.
Cómo contribuir
PostgreSQL Anonymizer es parte de una iniciativa de Dalibo Labs. Está desarrollado principalmente por Damien Clochard.
Este es un proyecto abierto, por lo que se agradecen las contribuciones. Necesitamos sus comentarios e ideas. Hágannos saber lo que piensan de esta herramienta, cómo se ajusta a sus necesidades y qué características faltan.
Si desean colaborar, pueden consultar aquí una lista de trabajos menores:
https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs