安華金和全面適配國產(chǎn)化操作系統(tǒng)及芯片CPU
數(shù)據(jù)安全治理關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫脫敏技術(shù)詳解
數(shù)據(jù)安全治理之API監(jiān)測(cè)系統(tǒng) ,解決API接口安全問題【安華金和】
新一代數(shù)據(jù)庫脫敏技術(shù),為敏感數(shù)據(jù)建立保護(hù)盾!
數(shù)據(jù)庫脫敏系統(tǒng)與金融行業(yè)案例解讀
數(shù)據(jù)安全治理建設(shè)思路的著力點(diǎn)——數(shù)據(jù)安全咨詢服務(wù)【安華金和】
數(shù)據(jù)庫防火墻功能有哪些?-數(shù)據(jù)安全-安華金和
數(shù)據(jù)安全關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫脫敏技術(shù)詳解【安華金和】
中國數(shù)據(jù)安全治理落地指導(dǎo)書籍《數(shù)據(jù)安全治理白皮書5.0》正式發(fā)布(附下載)
云技術(shù)是IT產(chǎn)業(yè)界的一場技術(shù)變革。云給市場帶來一種更加便宜、更加高效、更加靈活的IT解決方案。云的解決方案已經(jīng)被越來越多的用戶所認(rèn)可和采納。我國政府明確提出云技術(shù)是我國未來信息化產(chǎn)業(yè)發(fā)展的重點(diǎn)領(lǐng)域。
在我國云技術(shù)依舊處于成長期階段。據(jù)統(tǒng)計(jì) 2017年中國云計(jì)算機(jī)市場規(guī)模已經(jīng)達(dá)到2602億美元,增長率為18.5%,預(yù)計(jì)到2020年公有云規(guī)模將達(dá)到4114億美元。隨著云業(yè)務(wù)相關(guān)技術(shù)的成熟。安全成為云下一階段主要面臨的挑戰(zhàn)。
現(xiàn)今成熟的云平臺(tái)已經(jīng)基本解決用戶身份、憑證、系統(tǒng)漏洞、拒絕服務(wù)等多類安全問題。但在數(shù)據(jù)泄露上還有很多不足。除去內(nèi)鬼造成數(shù)據(jù)泄露外,最常見的是由于數(shù)據(jù)讀取權(quán)限設(shè)置細(xì)粒度不足導(dǎo)致。RDS做為云上數(shù)據(jù)主要存儲(chǔ)場景,如何做細(xì)粒度控制,將成為各個(gè)云廠商面臨的重要挑戰(zhàn)。對(duì)于行存數(shù)據(jù)庫,行控是最關(guān)鍵的細(xì)粒度控制。加強(qiáng)RDS的行控能力,是杜絕數(shù)據(jù)泄露的有效手段。
行控-RDS安全缺失
RDS是云上數(shù)據(jù)庫的簡稱。大部分中小企業(yè)用戶的核心數(shù)據(jù)會(huì)存儲(chǔ)在RDS中。RDS大部分是MySQL數(shù)據(jù)庫。我們走訪了大量云廠商,簡化掉復(fù)雜的云機(jī)制,大部分云廠商租給中小企業(yè)的RDS其實(shí)是以數(shù)據(jù)庫實(shí)例為單位出租的。在一臺(tái)實(shí)體物理機(jī)上有多個(gè)虛擬機(jī),每臺(tái)虛擬機(jī)上有多個(gè)進(jìn)程。每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)mysqld。每個(gè)mysqld都對(duì)應(yīng)不同的端口和數(shù)據(jù)庫配置文件。每一個(gè)啟動(dòng)的Mysqld都對(duì)應(yīng)一個(gè)實(shí)例。用戶租用的RDS就是一個(gè)數(shù)據(jù)庫實(shí)例。每個(gè)用戶通過云平臺(tái)訪問到自己被分配的數(shù)據(jù)庫實(shí)例中。
這種以實(shí)例為單位切割RDS和用戶的方式,依賴數(shù)據(jù)庫自身的特點(diǎn)。有效規(guī)避了,因?yàn)橛脩粽`操作導(dǎo)致數(shù)據(jù)庫崩潰,而影響到另一用戶使用數(shù)據(jù)庫的問題。同時(shí)由于從實(shí)例層就分割,可以有效的保障不同用戶的數(shù)據(jù)存儲(chǔ)的邏輯位置是相互分離,避免了惡意讀取或修改他人數(shù)據(jù)的問題。
早先云上業(yè)務(wù)模型較為簡單,隨著業(yè)務(wù)的復(fù)雜度上升。只依賴數(shù)據(jù)庫自身的權(quán)限切割,難以滿足用戶對(duì)數(shù)據(jù)庫中數(shù)據(jù)的細(xì)粒度控制需求。很多現(xiàn)場需求中,客戶要求同一張表中區(qū)分出保密數(shù)據(jù)、敏感數(shù)據(jù)和公開數(shù)據(jù)。不同的用戶訪問表,只能訪問到當(dāng)前用戶有權(quán)限訪問的數(shù)據(jù)。例如下圖表中紅色框?qū)?yīng)的是保密數(shù)據(jù)、藍(lán)色對(duì)應(yīng)的是敏感數(shù)據(jù)、黑色對(duì)應(yīng)的是公開數(shù)據(jù)。數(shù)據(jù)庫賬號(hào)分為三種:第一種是可以訪問保密數(shù)據(jù)、敏感數(shù)據(jù)和公開數(shù)據(jù)的tom賬號(hào)、第二種是只能訪問敏感數(shù)據(jù)和公開數(shù)據(jù)的 cat賬號(hào)。第三種是只能訪問公開數(shù)據(jù)的dog賬號(hào)。
RDS上數(shù)據(jù)庫賬號(hào)的權(quán)限控制只能到表級(jí),而現(xiàn)實(shí)中省級(jí)數(shù)據(jù)中心從各個(gè)地方采集到的數(shù)據(jù)不會(huì)因?yàn)榘踩?jí)別不同,而匯總到不同的表中。所以RDS現(xiàn)在的權(quán)控體系和客戶的安全需求產(chǎn)生了一定的差距。如果能讓RDS從表變成行控,則會(huì)解決此類安全需求。
一. RDS行控-視圖法
RDS數(shù)據(jù)庫最簡單實(shí)現(xiàn)行控的方法是采用視圖+觸發(fā)器的方法來,限制用戶訪問全部表。整體思路是假設(shè)有表A是用來記錄數(shù)據(jù)的。我們給表A重名成表B。在創(chuàng)建視圖A。利用數(shù)據(jù)庫語法不區(qū)分視圖和表的特性。使原來對(duì)表A(改名成表B)的操作遷移到視圖A上進(jìn)行。而視圖A,在讀取表B的時(shí)候,完成了對(duì)表B內(nèi)容的過濾。防止保密數(shù)據(jù)被用戶讀取。
上述雖然解決了讀的問題,但同是也引起了寫的問題。于是引入觸發(fā)器C當(dāng)寫視圖A的時(shí)候,再通過觸發(fā)器C。把寫視圖A的操作變成寫表B。具體流程如下圖所示:
紅色部分是準(zhǔn)備階段。準(zhǔn)備階段首先會(huì)把表A重名成表B。接著會(huì)根據(jù)表B建立視圖A。最后會(huì)部署觸發(fā)器C解決針對(duì)視圖A的寫,轉(zhuǎn)移到表B上。
綠色部分是讀過程,當(dāng)用戶讀取數(shù)據(jù)時(shí),首先會(huì)訪問視圖A。視圖A中有過濾的對(duì)象,保證從B中讀取的數(shù)據(jù)已經(jīng)剔除保密數(shù)據(jù)。最后返回給用戶使用。
紫色部分是寫過程,當(dāng)用戶寫入數(shù)據(jù)時(shí),首先會(huì)向視圖A寫。視圖A會(huì)利用觸發(fā)器C把寫操作轉(zhuǎn)移給表B。最終表B被寫入數(shù)據(jù)。
利用視圖+觸發(fā)器可以解決一部分RDS行控的需求。實(shí)際上這種方案,雖然可以做到應(yīng)用透明,但只適合保密數(shù)據(jù)特征明顯、分類清晰。數(shù)據(jù)安全層級(jí)不復(fù)雜的場景。數(shù)據(jù)安全層級(jí)復(fù)雜會(huì)導(dǎo)致整個(gè)設(shè)計(jì)思路過度復(fù)雜,性能等問題也會(huì)暴露,在某些場景下這種方案完全不能使用。
二. RDS行控-改SQL法
除了上述這種完全依賴數(shù)據(jù)庫自身機(jī)制實(shí)現(xiàn)RDS行控的方案外。還有些使用了改SQL的方式。在向數(shù)據(jù)庫發(fā)包的過程中,通過一個(gè)過濾組件,對(duì)SQL語句進(jìn)行改寫。也可以達(dá)到過濾保密數(shù)據(jù)的目的。
如上圖所示當(dāng)用戶訪問表A時(shí),經(jīng)過一個(gè)客戶配過策略的過濾器。過濾器會(huì)把SQL語句select * from A 改寫成 Select * from A where部門 !=財(cái)務(wù)部 。保證財(cái)務(wù)部(保密數(shù)據(jù))不會(huì)被非授權(quán)用戶查詢到。從而達(dá)到RDS行控的目的。
這種方法本質(zhì)是在數(shù)據(jù)之外,添加額外的控制產(chǎn)品達(dá)到增強(qiáng)數(shù)據(jù)庫權(quán)控的目的。這種方法比視圖法更加靈活、復(fù)雜度低、不會(huì)造成數(shù)據(jù)異常。部署起來也更加簡單。但根據(jù)策略修改SQL的性能和準(zhǔn)確性,在某些復(fù)雜場景下可能會(huì)存在一些問題。
三. RDS行控-過濾法
這種針對(duì)結(jié)果集的過濾方案是現(xiàn)在云上最常用的方法。用戶在訪問數(shù)據(jù)庫目標(biāo)表后,通過一個(gè)結(jié)果集過濾器,按照用戶的需求對(duì)保密數(shù)據(jù)進(jìn)行刪除,最終顯示公開數(shù)據(jù)。
這種方案好處是,在應(yīng)用側(cè)部署對(duì)數(shù)據(jù)庫影響小。可以做成支持多種數(shù)據(jù)庫的通用方案。但問題是這種方案是把數(shù)據(jù)庫的行控制轉(zhuǎn)移到應(yīng)用去做,這個(gè)過程中就可能已經(jīng)出現(xiàn)數(shù)據(jù)泄露。而且由于過濾的方法基本是關(guān)鍵字算hash的方法。這種方法天生存在被hash碰撞的安全風(fēng)險(xiǎn)。把數(shù)據(jù)庫的行控能力遷移到應(yīng)用中做是一種工程的手段,并不會(huì)加強(qiáng)RDS的安全性,甚至還給數(shù)據(jù)泄露留下伏筆。并且效率也是需要著重考慮的問題。
四. RDS行控-安全標(biāo)簽法
安全標(biāo)簽法主要是在RDS上做的一種安全增強(qiáng)功能。這種方案是通過在目標(biāo)表中添加偽列實(shí)現(xiàn)的。給表中的每一行添加偽列,偽列標(biāo)明這一行的安全等級(jí)。給數(shù)據(jù)庫賬號(hào)添加可以訪問的安全等級(jí)的標(biāo)簽。只有賬號(hào)擁有足夠安全等級(jí)的標(biāo)簽才可以訪問到相關(guān)的數(shù)據(jù)。
表會(huì)在用戶設(shè)完策略后新加偽列這一列,如上圖的第三列,偽列專門標(biāo)記出每一行的安全等級(jí)。安全標(biāo)簽法可以讓用戶靈活的自定義安全等級(jí)。做出更適合實(shí)際應(yīng)用場景的安全級(jí)別。安全標(biāo)簽策略應(yīng)該處在數(shù)據(jù)庫語法解析中。首先判斷數(shù)據(jù)庫賬號(hào)和表以及操作之間的權(quán)限關(guān)系。如果通過權(quán)限檢查,就應(yīng)該通過安全標(biāo)簽部分,識(shí)別真正能讀取的數(shù)據(jù)范圍。然后生成執(zhí)行計(jì)劃。最后執(zhí)行sql,拿到結(jié)果,完成整個(gè)查詢過程。查詢的內(nèi)容符合查詢用戶所支持的安全等級(jí)。
上述四種方法:視圖法、改SQL法、過濾法和安全標(biāo)簽法都在一定程度上可以實(shí)現(xiàn)RDS的行控需求。這四種方法使用的場景各不相同。但總體來說視圖法設(shè)置較為復(fù)雜、靈活性低是四種方法中適用面最窄的實(shí)現(xiàn)RDS行控的方案。其次改SQL法雖然靈活性比視圖法強(qiáng),但容易被存儲(chǔ)過程等其他SQL執(zhí)行方式繞過,也難以成為適應(yīng)性高的RDS行控解決方案。過濾法是現(xiàn)在使用最廣泛的RDS行控解決方案。這種方式雖然在一定程度上解決了視圖法和改SQL法存在的問題。但由于權(quán)控被前移到應(yīng)用側(cè),數(shù)據(jù)庫還是會(huì)返回敏感數(shù)據(jù)。依舊存在較大的安全風(fēng)險(xiǎn)。但這種方案只能認(rèn)為是RDS行控的工程解決方案。并不是一種徹底的解決方案。相比前三種方案安全標(biāo)簽法是最佳的RDS行控增強(qiáng)方案。這個(gè)方案有廣闊的適用空間,同時(shí)真正把權(quán)控做在數(shù)據(jù)庫中。避免了數(shù)據(jù)庫到應(yīng)用傳遞過程中出現(xiàn)的數(shù)據(jù)泄露問題。
試用申請(qǐng)
在線咨詢
咨詢電話
TOP