成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jeddak-DPSQL 首次開源!基于差分隱私的 SQL 代理保護能力

開發(fā)
在實際解決公司內部面臨的問題風險后,我們決定對 Jeddak-DPSQL 進行開源,希望能夠為同樣面臨該類問題的企業(yè)和個人提供一定參考和幫助,

1. 背景

火山引擎對于用戶敏感數(shù)據(jù)尤為重視,在火山引擎提供的數(shù)據(jù)分析產品中,廣泛采用差分隱私技術對用戶敏感信息進行保護。此類數(shù)據(jù)產品通常構建于 ClickHouse 等數(shù)據(jù)引擎之上,以 SQL 查詢方式來執(zhí)行計算邏輯,且查詢邏輯往往較為復雜,因此對差分隱私的應用提出了以下要求:

  • 零改造、零感知:最大程度避免影響業(yè)務現(xiàn)有查詢方式,最好做到業(yè)務零感知、零改造;
  • 良好、靈活的適配性:能夠適配不同數(shù)據(jù)引擎的查詢語法,以及能夠處理包含多層嵌套、多重計算、多表連接等情形的復雜 SQL 語句;
  • 安全性與可用性平衡:能夠根據(jù)業(yè)務數(shù)據(jù)質量要求,計算合理的隱私預算,在安全性和數(shù)據(jù)可用性之間保持平衡;

針對以上需求,火山引擎安全研究團隊開發(fā)了 Jeddak-DPSQL:一種基于差分隱私的 SQL 代理工具。Jeddak-DPSQL 能夠兼容多種數(shù)據(jù)引擎和SQL方言,內嵌多種差分噪聲擾動算法,具備隱私預算管理能力,并且能夠與底層數(shù)據(jù)引擎結合,在數(shù)據(jù)分析師無感的情況下,對 SQL 語句進行自動化分析和結果加噪處理。作為數(shù)據(jù)安全和隱私合規(guī)治理的標準能力之一,Jeddak-DPSQL 已經在抖音集團相關業(yè)務中得到了普遍應用與驗證。

在實際解決公司內部面臨的問題風險后,我們決定對 Jeddak-DPSQL 進行開源,希望能夠為同樣面臨該類問題的企業(yè)和個人提供一定參考和幫助,同時也希望能夠有更多的外部開發(fā)者能夠一起對該開源項目進行共建,完善 Jeddak-DPSQL 產品功能,共同構建更完備的應用生態(tài)。

2. 全面了解 Jeddak-DPSQL

2.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 查詢,得到原始的查詢結果;
  • 最后,核心服務調用隱私預算管理服務得到為該查詢分配的隱私預算,并結合敏感度在原始的查詢結果中添加噪聲并返回。

圖片

2.2 Jeddak-DPSQL 解決的問題

案例背景

假設有一個數(shù)據(jù)庫 business,存儲用戶消費數(shù)據(jù),使用 clickhouse 引擎,其中一個表 user 存儲用戶信息,表中存在以下列:uid,name,age,sex,city,代表用戶id、姓名、年齡、性別、城市。

查詢需求

我們要查詢用戶數(shù)量和平均年齡的城市分布,使用 SQL 語句 1:

SELECT  COUNT(*) AS cnt,AVG(age) as agev, city
FROM business.user
group by city

風險

如果不應用隱私保護技術,可能面臨差分攻擊的風險,比如攻擊者通過某渠道得知張三的 uid 為 803719,構造下面的 SQL 語句 2:

SELECT  COUNT(*) AS cnt,AVG(age) as agev, city
FROM business.user
WHERE uid != 803719
group by city

通過執(zhí)行上面的 SQL 語句1和 SQL 語句2,可分別得到兩個查詢結果:

圖片

那么就可以通過比較兩次查詢結果得知張三所在的城市是北京,年齡大約 61 歲(120008x49.3276 = 5919706.62,120007x49.3275 = 5919645.29,5919706.62 - 5919645.29 約等于 61)

以上是一個簡單的例子,現(xiàn)實場景中,攻擊者可能通過背景知識構造更多樣、更復雜的查詢語句達到竊取隱私的目的。

因此,在上述 SQL 查詢場景下,可以通過接入 Jeddak-DPSQL 對 SQL 進行分析和重寫,最終執(zhí)行重寫后的 SQL 能夠保證返回給使用者的數(shù)據(jù)滿足差分隱私要求,進而達到對個人隱私保護的效果。

2.3 Jeddak-DPSQL 在火山引擎的應用驗證

  1. Jeddak-DPSQL已接入火山引擎的增長分析(finder)、A/B 測試等產品,間接服務300+外部客戶,日均處理查詢請求 200+。Jeddak-DPSQL服務不僅幫助業(yè)務滿足了隱私保護和業(yè)務合規(guī)的需求,同時也成為創(chuàng)新型隱私計算技術應用的典范案例。
  2. 開放隱私計算 OpenMPC 對外公布了“隱私計算 2021 年度優(yōu)秀應用案例 TOP 10”。火山引擎 云安全憑借“融合 差分隱私 的火山引擎 DPSQL 服務”案例,成功入選 TOP 10。

3. 如何使用 Jeddak-DPSQL

git 開源項目地址: https://github.com/bytedance/Jeddak-DPSQL

3.1 下載

git clone https://github.com/bytedance/Jeddak-DPSQL

3.2 快速部署

完成 Jeddak-DPSQL 下載后,按照 README 中的部署引導部分完成服務部署,整個部署過程包括以下步驟:

  • 服務依賴包安裝:進入項目根目錄,使用 pip install -r requirements.txt 安裝服務所需完整 pip 包
  • MetaData 存儲準備:在使用DPSQL 時,需要維護源數(shù)據(jù)表的 MetaData 信息,為后續(xù)加噪計算敏感度作準備。Jeddak-DPSQL 使用 Mysql 對相應元數(shù)據(jù)信息進行存儲,因此需要用戶提前在自己的Mysql數(shù)據(jù)庫中創(chuàng)建相應的表
  • 隱私預算消耗存儲準備:使用 Jeddak-DPSQL 系統(tǒng)過程,可以記錄對表級別的數(shù)據(jù)查詢時的隱私預算消耗。主要通過Mysql進行記錄,因此需要用戶提前在自己的Mysql數(shù)據(jù)庫中創(chuàng)建相應的表
  • 數(shù)據(jù)庫連接配置:Jeddak-DPSQL 中使用數(shù)據(jù)庫主要有 Mysql 和 Redis,因此需要對這兩個數(shù)據(jù)庫連接地址進行配置
  • 服務啟動:完成上述配置后可以在項目根目錄運行 bootstrap.sh 腳本啟動服務

3.3 正式使用

完成 Jeddak-DPSQL 部署后,按照 README 中的快速開始部分可以進行功能體驗,整個過程如下:

  • 選擇要測試的數(shù)據(jù)源(Hive 或 ClickHouse),導入要進行查詢測試的原始數(shù)據(jù)集
  • 初始化metadata和隱私預算

    1. 生成 metadata

   2. 啟動dpsql服務后, 調用接口 /api/v1/metadata/generate,生成metadata,可參考:

def meta_generate():
  args = {
      "db_config": {
          "host": <hive_host>,
          "database": <hive_dbname>,
          "username": <hive_username>,
          "password": <hive_password>
      },
      "table_name": "us_accidents_dec21_updated",
      "db_type": db_type
  }
  route_path = "/api/v1/metadata/generate"# local service,  host:127.0.0.1, port:5000url = "http://%s:%s/%s" % (host, port, route_path)
  headers = {"content-type": "application/json"}
  r = requests.post(url, jsnotallow=args, headers=headers)

if __name__ == '__main__':
   meta_generate()
  1. 3. 確認metadata 生成完成

  2. 4. 調用 /api/v1/metadata/get 接口,確認 metadata 生成完成

def meta_get():
    args = {
        "prefix": <hive_host>,
        "db_name": <hive_dbname>,
        "table_name": "us_accidents_dec21_updated"
    }
    route_path = "/api/v1/metadata/get"# local service,  host:127.0.0.1, port:5000url = "http://%s:%s/%s" % (host, port, route_path)
    headers = {"content-type": "application/json"}
    r =  requests.get(url, jsnotallow=args, headers=headers)
    print(r.text)
  •  調用隱私保護查詢接口,獲得經過差分隱私保護的查詢結果
def query_sql_noise(sql, data_source):
      key = {
          "sql": sql,
          "dbconfig": {
              "reader": data_source,
              "host": <hive_host>,
              "database": <hive_dbname>,
              "port": <hive_port>
          },
          "queryconfig": {
             "traceid": "traceid",
          }
      }
      route_path = "/api/v1/query"url = "http://%s:%s/%s" % (host, port, route_path)
      headers = {"content-type": "application/json"}
      r = requests.post(url, jsnotallow=key, headers=headers)
      return res
if __name__ == "__main__":
      sql = "select count(severityc) from menu_page group by severity"
      section = "hivereader"
      res = query_sql_noise(sql, section)
      print(res)

更多接口使用方式可以參考項目 README 中的 API Documentation 部分

4. 后續(xù)計劃

由于當前是 Jeddak-DPSQL 的首個開源版本,因此還存在很多不完善的地方,希望大家能夠多多諒解。Jeddak-DPSQL 計劃進行長期維護,歡迎大家使用,也希望有更多的外部開發(fā)者能夠一起對該開源項目進行共建,完善產品功能,構建更完備的應用生態(tài)。

5. 關于安全研究

火山引擎安全研究部門的愿景是創(chuàng)新突破前沿安全理論技術,賦能數(shù)字經濟。部門當前以數(shù)據(jù)安全中心私有化單品-可信隱私計算產品 Jeddak 為載體,從可信計算、聯(lián)邦學習、多方安全計算、差分隱私、密文計算、共識計算等方向著手,開展隱私計算技術的前沿研究和應用探索?;谶@些領域最新前沿理論技術,創(chuàng)新研發(fā)、突破瓶頸,實現(xiàn)數(shù)據(jù)全生命周期安全與隱私保護,以及可信隱私計算等應用服務落地:賦能業(yè)務、保駕護航;更進一步打破數(shù)據(jù)孤島,推動數(shù)據(jù)多源融合與流通交易,發(fā)揮數(shù)據(jù)價值。

責任編輯:龐桂玉 來源: 字節(jié)跳動技術團隊
相關推薦

2022-04-06 15:58:25

火山引擎差分隱私LDPDC

2020-04-30 13:45:56

隱私框架深度學習

2021-01-13 12:10:09

物聯(lián)網(wǎng)隱私網(wǎng)絡安全

2019-06-04 14:38:36

2017-11-03 10:58:00

Firefox追蹤技術隱私保護

2013-10-23 11:18:11

2019-04-16 09:15:59

開源技術 趨勢

2010-08-26 14:03:23

隱私保護

2020-09-02 14:13:48

Facebook 開發(fā)開源

2024-02-04 17:03:30

2023-07-30 22:34:56

隱私保護檢索

2017-01-03 10:23:18

大數(shù)據(jù)隱私保護

2024-03-14 15:26:46

2021-06-23 10:12:00

物聯(lián)網(wǎng)隱私保護IoT

2023-08-31 22:08:32

2022-05-19 12:04:07

隱私保護攻擊威脅
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99国产精品视频免费观看一公开 | 亚洲网站在线观看 | 91 中文字幕 | 久久综合伊人 | 日韩一区二区免费视频 | 欧美一级淫片免费视频黄 | 久久精品国产精品青草 | 国产91观看 | 久久久久一区 | 亚洲视频在线免费观看 | 国产亚洲精品久久久久动 | 久久久久精| 亚洲一区二区三区在线观看免费 | 国产午夜精品福利 | 久久精品青青大伊人av | 亚洲电影一区二区三区 | 91精品在线观看入口 | 国产精品视频一区二区三区 | 97人人爱| 成人在线视频免费观看 | 久久一区二区精品 | 日本一区二区高清不卡 | 久久国色 | 日本a级大片 | 国产原创在线观看 | 国产91久久久久 | 日韩在线观看一区 | 福利视频网址 | 成人一区二区三区 | 欧美精品一区二区三区在线四季 | 亚洲精品中文字幕中文字幕 | 亚洲精品4| 亚洲精品一区二区三区蜜桃久 | 九九免费在线视频 | 久久精品欧美一区二区三区不卡 | 精品伊人| 一区二区精品视频 | 中文在线a在线 | 美女视频一区二区三区 | 黄色国产在线视频 | 成人国产综合 |