探索生活百科

Volcano Engine开源基于差分隐私的SQL代理工具Jeddak-DPSQL

探索生活百科

2023-05-31 16:32:20 作者:宋俊毅

近期,火山引擎安全研究团队开源了Jeddak-DPSQL(项目地址:统计查询请求,返回满足差分隐私的查询结果。

据悉,火山引擎特别关注用户敏感数据。在火山引擎提供的数据分析产品中,广泛采用差分隐私技术来保护用户敏感信息。此类数据产品通常构建在ClickHouse等数据引擎上,并使用SQL查询来执行计算逻辑。查询逻辑往往比较复杂,因此对差分隐私的应用提出如下需求:

零改造、零感知:最大程度避免影响业务现有的查询方式,最好做到业务零感知、零改造;

良好灵活的适应性:可以适应不同数据引擎的查询语法,可以处理包括多级嵌套、多次计算、多表连接等复杂的SQL语句;

安全与可用性的平衡:能够根据业务数据质量需求计算合理的隐私预算,保持安全性与数据可用性之间的平衡;

为了更好地解决数据安全和隐私合规治理相关问题,火山引擎安全研究团队进行了产品研究。目前,市面上已经有产品在SQL查询场景中添加了差分隐私能力。发现这些产品大多不提供SQL自动化分析能力,需要主动调用API或者在SQL中调用UDF来引入差分隐私能力,接入成本较高。其中,OpenDP产品限制了SQL输入的方言,仅支持SQL 92标准,难以在Hive、ClickHouse等主流数据仓库引擎中透明应用。

同时,火山引擎安全研究团队也注意到云服务厂商会提供多种To B场景的数据分析产品。部分产品型号面临泄露用户隐私和法律合规风险。此类产品通常是通过数据库引擎使用clickhouse进行实时分析,并以SQL查询的形式执行计算逻辑。因此,考虑结合差分隐私技术,提供隐私保护的SQL查询能力。

基于上述挑战,火山引擎安全研究团队自主开发了Jeddak-DPSQL,希望能为同样面临此类问题的公司和个人提供一些参考和帮助,也希望更多的外部开发者能够共同努力我们将共同打造这个开源项目,完善Jeddak-DPSQL产品功能,共同构建更加完善的应用生态。

据了解,Jeddak-DPSQL兼容多种数据引擎和SQL方言,嵌入多种差分噪声扰动算法,具有隐私预算管理能力,可与底层数据引擎结合,确保数据分析师无感知情况。接下来,对 SQL 语句执行自动分析并向结果添加噪声。同时,Jeddak-DPSQL已在抖音集团相关业务中得到广泛应用和验证。

1。全面了解Jeddak-DPSQL

1。 Jeddak-DPSQL简介

Jeddak-DPSQL采用集中式差分隐私(简称CDP,适用于数据管理者可信的场景)模式,以中间件的形式接收SQL统计查询请求,并返回满足差分隐私的查询结果。一个典型的查询请求处理流程如下:

展开全文

●首先,核心服务接受客户提交的SQL查询语句,解析并重写该语句,以方便隐私噪声的计算(如将AVG计算改为SUM/COUNT);

●然后,核心服务调用元数据管理服务,计算重写后的SQL查询对应的数据表的敏感度,并在数据库上执行重写后的SQL查询,得到原始查询结果;

●最后,核心服务调用隐私预算管理服务获取为查询分配的隐私预算,并根据敏感度对原始查询结果添加噪声并返回。

2。 Jeddak-DPSQL解决的问题

案例背景

假设有一个数据库业务,存储用户消费数据,使用clickhouse引擎。一张user表存储用户信息。表中存在以下列:uid、name、age、sex、city,分别代表用户id、name、age、Gender、city。

询价要求

假设要查询用户数量和平均年龄的城市分布,使用SQL语句1:

风险

如果不应用隐私保护技术,可能会面临差分攻击的风险。例如,攻击者通过某种渠道得知张三的uid是803719,并构造了如下SQL语句2:

执行上述SQL语句1和SQL语句2,分别可以得到两个查询结果:

然后通过对比两个查询结果,我们可以知道张三的城市是北京,年龄大约是61岁(120008*49.3276 = 5919706.62、120007*49.3275 = 5919645.29、5919706.62 - 5919645.29 近似相等至 61)

上面是一个简单的例子。在真实场景中,攻击者可能会利用背景知识构建更加多样化和复杂的查询语句来窃取隐私。

因此,在上述SQL查询场景中,可以通过访问Jeddak-DPSQL来分析并重写SQL。重写后的SQL最终执行可以保证返回给用户的数据满足差分隐私要求,从而达到个人隐私保护的效果。

3。 Jeddak-DPSQL在Volcano Engine中的应用验证

1.Jeddak-DPSQL已接入Volcano Engine的增长分析(finder)、A/B测试等产品,间接服务300+外部客户,平均每天处理200+查询请求。 Jeddak-DPSQL服务不仅帮助企业满足隐私保护和业务合规的需求,也成为创新隐私计算技术应用的典范案例。

2。开放隐私计算OpenMPC公布了“2021年隐私计算十大杰出应用案例”。火花引擎云安全凭借“火蛇引擎DPSQL服务集成差分隐私”案例成功入选TOP10。

2。如何使用Jeddak-DPSQL

GitHub开源项目地址:

1。下载

2。快速部署

完成Jeddak-DPSQL的下载后,按照README中的部署指导部分完成服务部署。整个部署过程包括以下步骤:

● 服务依赖包安装:进入项目根目录,使用pip install -rrequirements.txt安装服务所需的完整pip包

●MetaData存储准备:使用DPSQL时,需要维护源数据表的MetaData信息,为后续噪声计算敏感度做准备。 Jeddak-DPSQL使用Mysql来存储相应的元数据信息,因此用户需要提前在自己的Mysql数据库中创建相应的表

●隐私预算消耗存储准备:使用Jeddak-DPSQL系统程序,可以记录查询表级数据时的隐私预算消耗。主要是通过Mysql记录,所以用户需要提前在自己的Mysql数据库中创建对应的表

●数据库连接配置:Jeddak-DPSQL主要使用的数据库是Mysql和Redis,所以需要配置这两个数据库连接地址

●服务启动:完成上述配置后,即可运行项目根目录下的m.scooter-sidecars.com脚本来启动服务

3。官方使用

完成Jeddak-DPSQL的部署后,您可以根据README中的快速入门部分体验该功能。整个过程如下:

●选择需要测试的数据源(Hive或ClickHouse),导入用于查询测试的原始数据集

●初始化元数据和隐私预算

○生成元数据

启动dpsql服务后,调用接口/api/v1/metadata/generate生成元数据。请参考:

○确认元数据生成完成

调用/api/v1/metadata/get接口确认元数据生成完成

●调用隐私保护查询接口,获取差分隐私保护的查询结果

更多接口使用方法请参考项目README中的API文档部分。

3。后续计划

火山引擎安全研究部相关负责人表示,Jeddak-DPSQL将长期维护,欢迎大家使用。他还指出,最近开源的Jeddak-DPSQL是第一个版本,因此还存在很多不完善的地方。他也希望更多的外部开发者能够共同建设这个开源项目,完善产品功能,构建更加完善的应用生态。 (作者:蔡得道)

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~