近日,火山引擎安全研究團隊對外開源了Jeddak-DPSQL(項目地址:https://github.com/bytedance/Jeddak-DPSQL),這是基于差分隱私的SQL代理工具,適用于數(shù)據(jù)管理者可信的場景模式,以中間件的形式接收SQL統(tǒng)計查詢請求,返回滿足差分隱私的查詢結果。
【資料圖】
據(jù)悉,火山引擎對于用戶敏感數(shù)據(jù)尤為重視,在火山引擎提供的數(shù)據(jù)分析產品中,廣泛采用差分隱私技術對用戶敏感信息進行保護。此類數(shù)據(jù)產品通常構建于 ClickHouse 等數(shù)據(jù)引擎之上,以 SQL 查詢方式來執(zhí)行計算邏輯,且查詢邏輯往往較為復雜,因此對差分隱私的應用提出了以下要求:
零改造、零感知:最大程度避免影響業(yè)務現(xiàn)有查詢方式,最好做到業(yè)務零感知、零改造;
良好、靈活的適配性:能夠適配不同數(shù)據(jù)引擎的查詢語法,以及能夠處理包含多層嵌套、多重計算、多表連接等情形的復雜 SQL 語句;
安全性與可用性平衡:能夠根據(jù)業(yè)務數(shù)據(jù)質量要求,計算合理的隱私預算,在安全性和數(shù)據(jù)可用性之間保持平衡;
為更好解決數(shù)據(jù)安全和隱私合規(guī)治理相關問題,火山引擎安全研究團隊進行了產品調研,目前市面上在SQL查詢場景下加入差分隱私能力的產品,發(fā)現(xiàn)這些產品大多都沒有提供SQL 的自動化分析能力,需主動調用 API 或是在 SQL 中調用 UDF 來引入差分隱私能力,接入成本較高。其中OpenDP產品限定了輸入 SQL 的方言,僅支持 SQL 92標準,難以在 Hive、ClickHouse 等主流數(shù)倉引擎中透明應用。
同時,火山引擎安全研究團隊也注意到云服務廠商在To B場景下會提供多款數(shù)據(jù)分析產品,部分產品的模式面臨泄漏用戶隱私、法律合規(guī)的風險,該類產品通常是通過數(shù)據(jù)庫引擎使用面向實時分析的 clickhouse,計算邏輯用SQL查詢的方式執(zhí)行,因此考慮結合差分隱私技術提供隱私保護的SQL查詢能力。
基于上述挑戰(zhàn),火山引擎安全研究團隊自主研發(fā)了Jeddak-DPSQL ,希望能夠為同樣面臨該類問題的企業(yè)和個人提供一定參考和幫助,同時也希望能夠有更多的外部開發(fā)者能夠一起對該開源項目進行共建,完善 Jeddak-DPSQL 產品功能,共同構建更完備的應用生態(tài)。
據(jù)了解,Jeddak-DPSQL 能夠兼容多種數(shù)據(jù)引擎和SQL方言,內嵌多種差分噪聲擾動算法,具備隱私預算管理能力,并且能夠與底層數(shù)據(jù)引擎結合,在數(shù)據(jù)分析師無感的情況下,對 SQL 語句進行自動化分析和結果加噪處理。同時,Jeddak-DPSQL 已經在抖音集團相關業(yè)務中得到了普遍應用與驗證。
一、全面了解 Jeddak-DPSQL
1、 Jeddak-DPSQL介紹
Jeddak-DPSQL采用中心化差分隱私(Centralized Differential Privacy,簡稱CDP,適用于數(shù)據(jù)管理者可信的場景)模式,以中間件的形式接收SQL統(tǒng)計查詢請求,返回滿足差分隱私的查詢結果。一個典型的查詢請求處理流程如下:
●首先,核心服務接受客戶提交的SQL查詢語句,對該語句進行解析和重寫,以便于計算隱私噪聲(如將AVG計算改為SUM/COUNT);
●然后,核心服務調用元數(shù)據(jù)管理服務,計算重寫后的SQL查詢所對應的數(shù)據(jù)表敏感度,同時在數(shù)據(jù)庫上執(zhí)行重寫后的SQL查詢,得到原始的查詢結果;
●最后,核心服務調用隱私預算管理服務得到為該查詢分配的隱私預算,并結合敏感度在原始的查詢結果中添加噪聲并返回。
更多接口使用方式可以參考項目README中的API Documentation部分。
三、后續(xù)計劃
火山引擎安全研究部門相關負責人表示,Jeddak-DPSQL會長期維護,歡迎大家使用。他也指出,近期開源的Jeddak-DPSQL是首個版本,因此還存在很多不完善的地方,也希望有更多的外部開發(fā)者能夠一起對該開源項目進行共建,完善產品功能,構建更完備的應用生態(tài)。(作者:蔡德道)