自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)泄露事件頻發(fā),數(shù)據(jù)庫敏感字段如何治理?

數(shù)據(jù)庫
近年來,有關(guān)數(shù)據(jù)泄露相關(guān)的新聞事件屢見不鮮,不斷地引發(fā)大眾的討論和擔(dān)憂。各家企業(yè)都或多或少在承受相關(guān)的數(shù)據(jù)安全風(fēng)險,這種可能性會給企業(yè)運行帶來額外的風(fēng)險,包括大眾的質(zhì)疑以及政府的處罰等。

1.背景

1.1 數(shù)據(jù)安全風(fēng)險

近年來,有關(guān)數(shù)據(jù)泄露相關(guān)的新聞事件屢見不鮮,不斷地引發(fā)大眾的討論和擔(dān)憂。各家企業(yè)都或多或少在承受相關(guān)的數(shù)據(jù)安全風(fēng)險,這種可能性會給企業(yè)運行帶來額外的風(fēng)險,包括大眾的質(zhì)疑以及政府的處罰等。

  • Facebook超5億用戶個人數(shù)據(jù)遭到泄露;
  • Elector Software投票應(yīng)用泄露超650萬以色列選民個人數(shù)據(jù);
  • T-Mobile數(shù)據(jù)失竊,超過1億用戶的個人信息被泄露售賣;
  • 亞馬遜因違反GDPR被重罰7.46億歐元……

從現(xiàn)有的事件統(tǒng)計來看, 數(shù)據(jù)庫未得到正確配置和黑客攻擊相對來說是比較主要的誘因;在這種嚴(yán)峻的個人信息保護形勢背景下,各國都在強化健全相關(guān)的法律合規(guī)機制。

1.2 數(shù)據(jù)安全法律與合規(guī)的完善

1.2.1 現(xiàn)行法律與合規(guī)

  • 國內(nèi):個人信息保護法、數(shù)據(jù)安全法、網(wǎng)絡(luò)安全法
  • 海外:GDPR(EU,一般數(shù)據(jù)保護條例), PDPB(India,個人數(shù)據(jù)保護法),DBNL(US,數(shù)據(jù)泄漏通知法)

1.2.2 工業(yè)和信息化部關(guān)于互聯(lián)網(wǎng)行業(yè)市場秩序?qū)m椪涡袆?/strong>

2021年7月工信部組織的專項整治行動中,威脅數(shù)據(jù)安全的問題,主要體現(xiàn)在:


  • 用戶數(shù)據(jù)收集
  • 用戶數(shù)據(jù)傳輸
  • 用戶數(shù)據(jù)存儲

未按法律法規(guī)要求建立數(shù)據(jù)安全管理制度和采取必要的安全技術(shù)措施,將會遭到包括曝光、約談、下架、停止網(wǎng)絡(luò)接入、行政處罰等在內(nèi)的處罰。

1.3 敏感數(shù)據(jù)治理現(xiàn)狀和難點

對于工信部的整改要求,我們梳理了目前的現(xiàn)狀以及可能遭遇的風(fēng)險: 

  • 整改時間緊張

時間方面緊張,留給內(nèi)部處置的時間只有兩個半月,而整改本身涉及范圍和難度都很大; 

  • 涉及項目模塊廣

包括互聯(lián)網(wǎng)團隊的所有部門,相關(guān)應(yīng)用模塊超過300個;

  • 規(guī)定本身可能變化、更新

整改的規(guī)定或者說要求可能會隨實際情況發(fā)生變化、更新,需要及時對變化的要求進行轉(zhuǎn)化、同步。

問題實際上就是聚焦在這幾個部分,什么是敏感數(shù)據(jù),怎么發(fā)現(xiàn)它并進行脫敏,以及整體需要怎么去適配?;谶@些難點,我們的最終目標(biāo)就是借此次整治機會,建立一個長期有效的數(shù)據(jù)安全管理制度和體系。

2.敏感數(shù)據(jù)字段發(fā)現(xiàn)

2.1 定義

首先需要定義或者說確定哪些數(shù)據(jù)可以認(rèn)為是敏感數(shù)據(jù):

  • 用戶的個人信息,在近幾年發(fā)生的數(shù)據(jù)泄漏事件中,大眾也更關(guān)注此類信息的受侵害程度;
  • 對廠商而言,設(shè)備以及設(shè)備的相關(guān)數(shù)據(jù),如操作記錄,imei等唯一標(biāo)識也存在敏感風(fēng)險。

而且,從上述數(shù)據(jù)衍生而出的,例如: 

  • 內(nèi)容平臺發(fā)表或存儲的數(shù)據(jù);
  • 用戶行為和特征衍生而出的用戶畫像;
  • 財務(wù)賬務(wù)數(shù)據(jù)。


圖片


這些都屬于會顯著引起大眾關(guān)注的場景。

2.2 數(shù)據(jù)分級規(guī)范

針對這種復(fù)雜的敏感數(shù)據(jù)態(tài)勢,vivo針對《個人信息保護法》,《數(shù)據(jù)安全法》中賦予企業(yè)的合規(guī)責(zé)任和義務(wù)制定了具體的分級規(guī)范;簡而言之,就是會按照影響的強度和范圍對數(shù)據(jù)字段進行劃分,這個定級是具體到字段級別:

  • 對企業(yè)運行的影響;
  • 對用戶個人隱私、權(quán)益的影響。

其中可能引發(fā)負(fù)面影響和侵害用戶權(quán)益、隱私的風(fēng)險等級以上的數(shù)據(jù)都需要進行不同程度的脫敏。

圖片


我們希望通過對不同的安全級別采用不同的操作策略,來確保數(shù)據(jù)安全風(fēng)險可控。

2.3 現(xiàn)狀與改進措施

在具備標(biāo)準(zhǔn)的規(guī)范級別后,我們需要對現(xiàn)存的和新增的數(shù)據(jù)進行定級分類,但當(dāng)前存在以下問題:

  • 對新的字段沒有明確級別,往往需要使用后才進行定級分類;
  • 數(shù)據(jù)字段識別引擎待優(yōu)化,主要支持用戶類型的識別,對非用戶數(shù)據(jù)支持較差;
  • 存量數(shù)據(jù)依賴人工判定,工作量大;
  • 缺少衡量評價指標(biāo),質(zhì)量不可控。

針對這些現(xiàn)狀問題,在各個環(huán)節(jié)進行了優(yōu)化改進,形成了完整的敏感數(shù)據(jù)字段自動發(fā)現(xiàn)的方案:

圖片


2.4 系統(tǒng)自動定級與訂正

通過敏感數(shù)據(jù)識別引擎,對結(jié)構(gòu)化數(shù)據(jù)進行整體掃描,自動識別出敏感數(shù)據(jù),支撐其進行數(shù)據(jù)分類分級及數(shù)據(jù)治理,以便根據(jù)結(jié)果對敏感數(shù)據(jù)做進一步的安全防護和后續(xù)的精細(xì)化管理。

具體的環(huán)節(jié)中,我們通過系統(tǒng)定期掃描業(yè)務(wù)集群的庫、表、集合、字段,對其中的字段進行分類分級,并根據(jù)已有的數(shù)據(jù)進行打分(準(zhǔn)確率),再通過人工訂正糾偏對評分系統(tǒng)進行反饋調(diào)整,達(dá)成一個長期的正向提升循環(huán)。


圖片


我們定義了兩個指標(biāo)用來支持評分機制的改進:

  • 覆蓋率:有分類分級的數(shù)據(jù)量/全部數(shù)據(jù)量;
  • 準(zhǔn)確率:用戶數(shù)據(jù)分類分級正確的量*0.1/(抽檢用戶數(shù)據(jù)量*0.1+抽檢非用戶類別中用戶類別的數(shù)據(jù)量*0.9)。

計算公式中的1:9關(guān)系,是由我們現(xiàn)存數(shù)據(jù)分類中用戶數(shù)據(jù)和非用戶數(shù)據(jù)占比核算得到,實際上是用于均衡計算實際的用戶分類分級準(zhǔn)確率,而這樣設(shè)計的初衷,即盡可能減少誤判用戶數(shù)據(jù)為非用戶數(shù)據(jù)的情況。

2.5 小結(jié)

最終,基于當(dāng)前的能力現(xiàn)狀,我們實現(xiàn)了:

  • 對MySQL/TIDB/ElasticSearch/MongoDB在內(nèi)的四種數(shù)據(jù)庫的敏感字段識別;
  • 支持全自動的實時敏感數(shù)據(jù)字段識別,包括對業(yè)務(wù)新建表、集合的掃描;
  • 支持總共超過100類用戶或非用戶數(shù)據(jù)的分級分類,最終實踐的定級準(zhǔn)確率不低于85%;
  • 基于這樣建成的能力,我們可以達(dá)成敏感數(shù)據(jù)分類分級,以及即席查詢這類場景下對敏感數(shù)據(jù)的保護能力。

那么,在我們解決了如何發(fā)現(xiàn)敏感字段的問題后,就需要對這些敏感數(shù)據(jù)進行處置,這也是本次專項治理的核心環(huán)節(jié)。

3.數(shù)據(jù)加解密

3.1 方案選型

針對具體的處置環(huán)節(jié),需要考慮的要求相對就更多了,而且在不同的層面上,相關(guān)方關(guān)注的要點可能也不太一致,需要在這些要點間進行取舍。

對開發(fā)和運維而言,是希望接入簡單,一次整改解決所有問題,基本保持現(xiàn)狀一致,同時兼具穩(wěn)定,有可用性保障,能支持更多類型數(shù)據(jù)庫形成統(tǒng)一方案等。

對安全而言,是關(guān)注符合合規(guī)要求,規(guī)避可能的風(fēng)險。

圖片


這里主要介紹MySQL方面的工作,我們內(nèi)部的團隊分別從多個方向入手,提供了對應(yīng)的解決方案:

  • 基于MyBatis插件的實現(xiàn)形式,業(yè)務(wù)可以使用定制的加解密方法在應(yīng)用內(nèi)部自行實現(xiàn)加解密;
  • 基于shardingsphere實現(xiàn)的應(yīng)用層加解密,業(yè)務(wù)通過改變接入層使用特殊的配置數(shù)據(jù)源;
  • 基于使用的MySQL架構(gòu)中存在的代理來實現(xiàn)通用的數(shù)據(jù)加解密,對應(yīng)用層完全透明,同時限定訪問解密數(shù)據(jù)的權(quán)限必須要通過代理。

3.2 方案對比

要求

SDK加解密(定制MyBatis插件)

ShardingSphere中間件(vivo-JDBC)

數(shù)據(jù)庫透明加解密(Proxy)

接入成本

高,需修改應(yīng)用程序

高,需修改應(yīng)用程序

低,無需修改代碼,只需配置脫敏規(guī)則

維護成本

業(yè)務(wù)自維護代碼

中間件團隊維護

數(shù)據(jù)庫團隊維護

推廣成本

高,只支持java語言

高,只支持java語言

低,屬于MySQL架構(gòu)一部分

高可用

應(yīng)用服務(wù)本身決定

應(yīng)用服務(wù)本身決定

MySQL高可用托管

客戶端軟件解密

不支持

不支持

支持

下游使用

不支持

不支持

支持,需接入Proxy

從一些常規(guī)的角度,通過調(diào)研實際實現(xiàn)和業(yè)務(wù)反饋,我們對比了三種方案的成效,從成本以及上下游兼容性來看,Proxy具有相當(dāng)?shù)膬?yōu)勢,綜合起來我們內(nèi)部是推薦使用使用Proxy做加解密,當(dāng)然另外的方案也是具有可行性的,他們本質(zhì)上都是同一種加解密算法的實現(xiàn),可以在各個方案間無縫切換。

圖片


總的來說,這幾種方案中,加解密發(fā)生的鏈路都位于發(fā)起服務(wù)端和數(shù)據(jù)庫層之間;為了提高效率,中間執(zhí)行具體轉(zhuǎn)發(fā)請求的服務(wù)端或代理Proxy都會緩存對應(yīng)的密文秘鑰,所有的密文秘鑰都托管于KMS服務(wù)平臺,在無法查到或啟動時進行請求,原則上不能中途修改密鑰,這會導(dǎo)致歷史數(shù)據(jù)被破壞。

3.3 Proxy加解密

3.3.1 原理

實現(xiàn)加解密的核心是在數(shù)據(jù)傳輸?shù)倪^程中進行攔截,對SQL和結(jié)果集進行對應(yīng)的改寫;而這一操作是基于預(yù)設(shè)的脫敏規(guī)則:

  • 邏輯字段:用戶認(rèn)識中的字段名稱
  • 明文字段:存儲原始數(shù)據(jù)的字段
  • 密文字段:存儲加密密文數(shù)據(jù)的字段

設(shè)計上,明文字段和密文字段會在一定時間內(nèi)共存,用來支持任意的明文密文切換,確保線上運行時的穩(wěn)定和可回滾能力;

業(yè)務(wù)查詢或?qū)懭胧且蕾囘壿嬜侄?,對?yīng)的規(guī)則會在傳輸中進行改寫,包括將明文/密文字段改寫為邏輯字段以及反向操作,分別對應(yīng)讀取包和寫sql的兩個階段;


圖片


這里展示一個比較常規(guī)的數(shù)據(jù)寫入模型,包含明文字段和密文字段password和password_cipher。脫敏規(guī)則中包含一個password和password_cipher字段, 那么Proxy在讀取SQL時,就會將對應(yīng)的字段和數(shù)據(jù)列進行改寫,包含名稱重新映射和數(shù)據(jù)加密處理改寫。

圖片


3.3.2 優(yōu)勢與不足

Proxy本身是基于MySQL協(xié)議實現(xiàn)的代理層,相對于直接使用SDK或shardingsphere這樣的偏向語言的方案,具有以下的優(yōu)勢:

  • 它是MySQL架構(gòu)中的一部分,這樣可以使得加解密操作限定在“數(shù)據(jù)庫架構(gòu)”的范圍內(nèi),對外部系統(tǒng)透明;
  • 兼容所有使用MySQL協(xié)議的數(shù)據(jù)庫,更容易應(yīng)用在相關(guān)的場景中,沒有接入阻礙;
  • 支持各種語言,不存在限制。

但它本質(zhì)上還是依賴加密列的實現(xiàn),因為對原始語義的破壞和算法的局限,無法支持比較和計算操作。

總的來說,我們基于Proxy實現(xiàn)了通用的加解密方案,可以完成對敏感數(shù)據(jù)的處置,基于目前可行的發(fā)現(xiàn)和處置措施,就可以對目前的敏感數(shù)據(jù)進行整治。

3.4 存量數(shù)據(jù)處理

我們可以把現(xiàn)行的業(yè)務(wù)數(shù)據(jù)分為兩大類:

  • 歸檔或備份類型的冷數(shù)據(jù),這類直接進行整個文件的加密,存儲到oss系統(tǒng)即可符合要求;
  • 在線數(shù)據(jù),即業(yè)務(wù)會進行讀寫的數(shù)據(jù),這類需要控制對業(yè)務(wù)的影響。
    ?

圖片


3.4.1 客戶端加密存量數(shù)據(jù)

這個模式是典型的源寫入加密,在新增密文字段后,可以反復(fù)地在表中使用條件匹配查找未寫入密文的行,對找到的行加鎖后可以查詢對應(yīng)行明文字段的數(shù)據(jù),改寫成一條寫入的sql向具備加解密能力的SDK或Proxy執(zhí)行,這樣可以通過循環(huán)操作將缺失的密文數(shù)據(jù)進行補全;

這種方式,可以由業(yè)務(wù)自己執(zhí)行,相對來說風(fēng)險可控,雖然會明顯地產(chǎn)生鎖開銷和額外的寫入壓力;

  • 讀取配置并獲取需要清洗的數(shù)據(jù)表字段
  • 查詢加密列為NULL的行的主鍵值,比如(SELECT article,dealer FROM `test`.`shop` FORCE INDEX(`PRIMARY`) WHERE `article_cipher` IS NULL OR `dealer_cipher` IS NULL OR `price_cipher` IS NULL ORDER BY article,dealer ASC LIMIT 10;)
  • 通過獲取到的主鍵值,查詢加密列的明文值,并對查詢行加鎖,比如:(SELECT article,dealer,price FROM `test`.`shop` FORCE INDEX (`PRIMARY`) WHERE `article` = 1 AND `dealer` = 'A' LIMIT 1 FOR UPDATE;)
  • 獲取到明文數(shù)據(jù)后,通過Proxy更新明文列,達(dá)到清洗數(shù)據(jù)目的,比如:(UPDATE `test`.`shop` SET `article` = 1,`dealer` = 'A',`price` = 3.530000 WHERE `article` = 1 AND `dealer` = 'A';)
  • 提交清洗事務(wù),循環(huán)執(zhí)行2,3,4過程達(dá)到清洗全表數(shù)據(jù),當(dāng)步驟2查詢返回空時結(jié)束

圖片


3.4.2 gh-ost工具加密(在線DDL變更工具+數(shù)據(jù)加密算法)

我們對MySQL表的在線變更是依賴gh-ost工具來實現(xiàn)的,它的機制上就是在原集群上創(chuàng)建一個影子表,通過select和Binlog row 復(fù)制,將原表的數(shù)據(jù)灌入到影子表中,最后通過一次鎖切換,實現(xiàn)訪問目標(biāo)變更。

那么這個環(huán)節(jié)實際上可以和我們的對敏感數(shù)據(jù)治理的工作結(jié)合起來,因為實現(xiàn)上會要求建立密文字段(或者不建立亦可),所以可以將加密歷史數(shù)據(jù)的環(huán)節(jié)直接放在新增密文字段操作發(fā)生時。


圖片



4.數(shù)據(jù)鏈路的上下游適配

4.1 業(yè)務(wù)接入改造

對于存在敏感數(shù)據(jù)治理的數(shù)據(jù)庫的上游,顯而易見就是涉及敏感數(shù)據(jù)的業(yè)務(wù)系統(tǒng),我們做的一切工作就是為了幫助解決原本沒有脫敏或不符合規(guī)范的數(shù)據(jù)落地;

那么對于常規(guī)業(yè)務(wù)接入,我們通過利用已經(jīng)集成在MySQL架構(gòu)內(nèi)的代理,只需要在使用層增加 脫敏規(guī)則,就可以無縫將傳輸?shù)牧髁窟M行加解密

  • 計算層無損變更
  • 確定并配置脫敏規(guī)則
  • 開啟用戶級別的開關(guān)
  • 自動透明加解密實現(xiàn)

圖片



4.2 實時采集

在實時采集任務(wù)原本的邏輯中,會從源取得實時數(shù)據(jù)變化對應(yīng)的Binlog,解析成相對于的下游格式,放到es/Kafka或其它下游中。

因為加密使得數(shù)據(jù)庫中實際存儲密文,那么Binlog內(nèi)的數(shù)據(jù)也會是密文數(shù)據(jù),這一過程中就需要在采集層實現(xiàn)類似Proxy的解密能力,通過獲取脫敏規(guī)則來改寫密文字段的行數(shù)據(jù),再向下游執(zhí)行。


圖片


5.總結(jié)與展望

5.1 總結(jié)

從發(fā)現(xiàn)、處理敏感數(shù)據(jù)以及適配敏感數(shù)據(jù)治理的解決方案:


圖片



5.2 展望

5.2.1挑戰(zhàn)

  • 通用的脫敏方案僅針對支持MySQL協(xié)議的數(shù)據(jù)庫;
  • 無法支持列的計算和比較操作,SQL兼容性受限;
  • 目前主要聚焦在存儲層進行加密。

5.2.2優(yōu)化規(guī)劃

針對這些,主要在兩方面規(guī)劃:

  • 提升SQL的兼容性,適配復(fù)雜的查詢或?qū)懭雸鼍埃?/span>
  • 強化目前局限于數(shù)據(jù)存儲層的加密方案,擴展多源數(shù)據(jù)場景的治理方案,完成整個生態(tài)的統(tǒng)一加解密方案。
責(zé)任編輯:龐桂玉 來源: dbaplus社群
點贊
收藏

51CTO技術(shù)棧公眾號