PostgreSQL Anonymizer 0.6:假名化和改进的匿名导出

发布于 2020-03-09,作者:Dalibo
相关开源

法国埃穆捷,2020 年 3 月 5 日

PostgreSQL Anonymizer 是一个扩展,用于隐藏或替换 PostgreSQL 数据库中的个人身份信息 (PII) 或商业敏感数据。

该扩展支持 3 种不同的匿名化策略:动态掩码原地匿名化匿名转储。它还提供了多种掩码函数选择:替换、随机化、伪造、假名化、部分加扰、洗牌、噪声添加和泛化。

假名化

假名化函数与伪造函数类似,因为它们会生成真实的值。主要区别在于假名化是确定性的:这些函数始终会基于种子和可选盐值返回相同的伪造值。

# SELECT anon.pseudo_email('Alice','salt123');
   pseudo_email
-------------------
 fcadell56@ucoz.ru                                                                                                                                                                                                       
# SELECT anon.pseudo_email('Alice','salt123');
   pseudo_email
-------------------
 fcadell56@ucoz.ru

警告:假名化经常与匿名化混淆,但实际上它们服务于两个不同的目的。使用假名化,可以使用伪数据和掩码规则重建真实数据。如果攻击者访问了这些元素,他或她可以使用 暴力破解字典 攻击轻松地重新识别某些人。因此,您应该使用与原始数据集相同的安全级别来保护任何假名化数据。《通用数据保护条例》(GDPR)明确指出,经过假名化的个人数据仍然被认为是个人信息。

改进的匿名导出

anon.dump() 函数速度慢且不实用。它现在已被弃用,并被名为 pg_dump_anon 的工具取代,您可以像使用常规的 pg_dump 命令一样使用它。

$ pg_dump_anon -h localhost -U bob mydb > anonymous_dump.sql

它使用与 pg_dump 相同的连接参数。支持 PostgreSQL 环境变量($PGHOST、PGUSER 等)和 .pgpass。但是,仅支持 plain 格式。不支持其他格式(customdirtar)。

检测隐藏的标识符

此扩展使得声明掩码规则非常容易。但是,当然,当您创建匿名化策略时,困难的部分是扫描数据库模型以查找哪些列包含直接和间接标识符,然后决定如何掩码这些标识符。

我们现在提供了一个 detect() 函数,它将基于字典搜索常见的标识符名称。目前,有两个字典可用:英语('en_US')和法语('fr_FR')。默认情况下使用英语字典

# SELECT anon.detect('en_US');
 table_name |  column_name   | identifiers_category | direct
------------+----------------+----------------------+--------
 customer   | CreditCard     | creditcard           | t
 customer   | id             | account_id           | t 
 vendor     | Firstname      | firstname            | t

标识符类别基于HIPAA 分类

如何安装

此扩展正式支持 PostgreSQL 9.6 及更高版本。

在 Red Hat / CentOS 系统上,您可以从官方 PostgreSQL RPM 存储库安装它

$ yum install postgresql_anonymizer12

然后在 postgresql.conf 文件的 shared_preload_libraries 参数中添加 'anon'。并重新启动您的实例。

对于其他系统,请查看安装文档

https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/

警告:该项目处于开发的早期阶段,应谨慎使用。

致谢

此版本包含来自 Sebastien Delobel、Sam Buckingham、Thomas Clark、Joe Auty、Pierre-Henri Dubois Amy 和 Olleg Samoylov 的代码、错误修复和想法。

非常感谢他们!

如何贡献

PostgreSQL Anonymizer 是 Dalibo Labs 计划的一部分。它主要由 Damien Clochard 开发。

这是一个开放的项目,欢迎大家贡献。我们需要您的反馈和想法!请告诉我们您对该工具的看法、它如何满足您的需求以及缺少哪些功能。

如果您想提供帮助,您可以找到初级任务列表。