《云數(shù)據(jù)庫安全初探》要點:
本文介紹了云數(shù)據(jù)庫安全初探,希望對您有用。如果有疑問,可以聯(lián)系我們。
本文根據(jù)目前國內(nèi)外數(shù)據(jù)庫安全的發(fā)展現(xiàn)狀和經(jīng)驗,結合亞馬遜AWS[1]、阿里云、騰訊云、UCloud、華為云等國內(nèi)外云服務廠商,和IBM、微軟等IT巨頭的云服務情況,從云數(shù)據(jù)庫安全角度,介紹了云環(huán)境下數(shù)據(jù)庫安全四種技術路線與安全模型架構,和云數(shù)據(jù)庫安全的關鍵技術,適合從事云安全、云計算、數(shù)據(jù)安全等相關人員和安全喜好者學習探討.
本文來自安華金和.
每個公司對私有云、公有云的定義都不一樣,但是CIO們卻在不斷重演莎翁經(jīng)典對白:“公有云還是私有云,這是個問題”,政府、企業(yè)、金融、公共事業(yè)等都在建設或者規(guī)劃上云.引發(fā)這一問題的核心是:云環(huán)境的平安合規(guī)性問題,也就是云環(huán)境的法規(guī)遵從、云數(shù)據(jù)的平安如何保障、云環(huán)境風險管理.
云數(shù)據(jù)(庫)平安之技術路線
從法規(guī)遵從和企業(yè)、個人敏感信息防護的角度,相比私有云環(huán)境和傳統(tǒng)企業(yè)IT環(huán)境,公有云和混合云環(huán)境中的數(shù)據(jù)面臨著前所未有的,來自開放環(huán)境和云運維服務環(huán)境的平安挑戰(zhàn).筆者認為抓住主要矛盾,圍繞核心敏感數(shù)據(jù),進行最徹底有效的加密保護,比較典型的敏感數(shù)據(jù)包括身份證號、姓名、住址、銀行卡、信用卡號、社會保險號等等,以及企業(yè)的核心資產(chǎn)數(shù)據(jù).在此觀點下,筆者提出以加密保護為基礎的技術路線:
以敏感數(shù)據(jù)加密為基礎
以平安可靠、體系完善的密鑰管理系統(tǒng)為核心
以三權分立、敏感數(shù)據(jù)拜訪控制為主要手段
輔助數(shù)據(jù)庫防火墻、數(shù)據(jù)脫敏、審計等邊界系統(tǒng),規(guī)范和監(jiān)控數(shù)據(jù)的拜訪行為
云數(shù)據(jù)(庫)平安之模型和架構
實現(xiàn)以敏感數(shù)據(jù)加密為基礎的技術路線,最關鍵的是“密鑰由誰控制、在哪管理”;同時需要辦理數(shù)據(jù)加密防護和密鑰管理引起的對系統(tǒng)運行效率,系統(tǒng)部署和改造的代價,自動化運維的影響等一系列問題.對此,亞馬遜AWS的辦理方案中采用多種密鑰管理模型:
模型A:加密辦法,密鑰存儲,密鑰管理全部由用戶控制,典型的是整個KMS[2](密鑰管理系統(tǒng))部署在用戶的數(shù)據(jù)中心.
模型B:與模型A中的加密辦法是一樣的,區(qū)別在于密鑰的存儲是在云的KMS而不是在用戶端的數(shù)據(jù)中心.
模型C:本模型提供了完整的服務器端加密,加密辦法和密鑰的管理對于用戶是透明的.
AWS云數(shù)據(jù)平安模型
核心機制 | 平安性 | |
---|---|---|
模型A | 密鑰的存儲和管理完全掌握在用戶手上,“云”無法獲得密鑰或對用戶的數(shù)據(jù)進行加密、解密 | 平安性最好 |
模型B | KMS負責生成和存儲密鑰,負責進行加解密操作;但不負責密鑰生命期的管理,訪問控制,密鑰輪轉等 | 密鑰的平安性由云的KMS保障 |
模型C | 完全是服務器端加密,對用戶是透明的 | 數(shù)據(jù)的平安完全由云的平安性保證 |
圍繞三種平安模型,可以在多個層上實現(xiàn)數(shù)據(jù)加密防護—多層數(shù)據(jù)加密防護架構,具體如下:
1、 磁盤加密:采用的是Block-Level加密技術,必要云存儲卷采用Block存儲機制,例如AWS的EBS[3],阿里云的ECS[4]等.這種加密最大的好處在于,它對操作系統(tǒng)是透明的.
2、 文件加密:通過堆疊在其它文件系統(tǒng)之上(如 Ext2, Ext3, ReiserFS, JFS 等),為應用程序提供透明、動態(tài)、高效和平安的加密功能.典型的是用于加密指定的目錄.需要關注的是這種加密方式可能會產(chǎn)生較大的性能損失.
3、 數(shù)據(jù)庫加密:(1)以亞馬遜AWS的RDS[5]為例,典型的是使用DBMS[6]提供的數(shù)據(jù)庫透明加密,自動的對數(shù)據(jù)庫表空間數(shù)據(jù)進行加密,密鑰管理也是由DBMS提供的API或組件實現(xiàn),應用透明.由于RDS沒有對外開放RDS用于存儲數(shù)據(jù)的磁盤,因此前面提到的“透明”磁盤、文件加密技術無法在RDS上使用.(2)對于用戶在云上自行部署使用的DBMS,可以使用第三方專業(yè)數(shù)據(jù)庫加密廠商提供的產(chǎn)品,如安華金和的數(shù)據(jù)庫保險箱DBCoffer,可提供應用透明的按列加密才能,獨立的密鑰管理、三權分立、靜態(tài)數(shù)據(jù)掩碼才能.
4、 應用層加密:在數(shù)據(jù)到達數(shù)據(jù)庫和RDS之前,甚至發(fā)送到云端之前,實時保護用戶的敏感數(shù)據(jù);這里關鍵需要提供良好的應用透明性,保證絕大多數(shù)應用無需改造.云用戶(企業(yè))沒有必要信任云計算提供商以保護企業(yè)的數(shù)據(jù)平安.數(shù)據(jù)平安是由企業(yè)自己控制的.
5、 密鑰管理和加解密組件:作為數(shù)據(jù)加密掩護的核心組件,KMS負責進行密鑰生成、管理和銷毀,并提供加解密能力;同時根據(jù)需要提供密鑰的生命期管理、開放的API接口.
綜上,云用戶(企業(yè))可以根據(jù)自身的平安合規(guī)性需求,選擇適合的云數(shù)據(jù)平安模型和相應的數(shù)據(jù)平安技術(產(chǎn)品),對敏感數(shù)據(jù)進行加密防護.
多層云數(shù)據(jù)加密防護架構
云數(shù)據(jù)(庫)平安之關鍵技術
上文筆者提出了一套云環(huán)境下的“多層數(shù)據(jù)加密防護架構”.下面針對實現(xiàn)該平安防護架構與相關關鍵技術進行具體分析.需要說明的是,由于整盤加密和TDE[7]屬于云服務商和數(shù)據(jù)庫廠商的范圍,不在本文中討論.
KMS密鑰管理和加解密算法
密鑰管理包含了密鑰的創(chuàng)建、存儲、生命期管理、保護.密鑰的平安性直接決定了加密數(shù)據(jù)的平安性.建議密鑰獨立存儲,并采用根密鑰保護,根密鑰受硬件加密卡保護,或者被KMS服務的密碼保護.
密鑰平安體系
KMS密鑰管理通過用戶的口令掩護主密鑰,口令正確主密鑰解密;主密鑰對密鑰文件進行掩護,只有主密鑰成功解密后,密鑰文件才能使用,最后通過密鑰文件生成可用的密鑰.
加解密算法方面,除了需要的強加密算法(如AES256)和相關機構認證的硬件加密算法外,這里特別需要提出,為了實現(xiàn)應用的透明性,需要根據(jù)應用系統(tǒng)的需求提供專門的加密算法,如FPE[8],Tokenization,SSE[9]等.
FPE加密算法,是一種格式保存的加密算法,主要面向身份證、銀行卡號、信用卡號、社會保險號等具有數(shù)據(jù)特征的信息進行加密,該算法加密后的數(shù)據(jù)能夠保存原有的數(shù)據(jù)格式,從而對應用的業(yè)務邏輯不會產(chǎn)生任何影響,保證了應用的透明性.
Tokenization,是一種數(shù)據(jù)掩碼算法.與FPE[8]類似,通過對數(shù)據(jù)的“擾亂”,并保存數(shù)據(jù)的原有格式,達到加密的效果,同時保證應用的透明性.
FPE加密算法的效果
數(shù)據(jù)庫透明加密
數(shù)據(jù)庫透明加密是按列對數(shù)據(jù)進行加密的,針對指定的列,采納指定的加密算法和密鑰、鹽值等進行加密處理.加密后的數(shù)據(jù)以密文的形式存儲在DBMS[7]的表空間中.
只有經(jīng)過授權的用戶才能看到明文數(shù)據(jù),并且授權也是按列進行的,這種方式具備很好的靈活性和平安性.非授權用戶,將無法讀取加密列(查詢)和更改加密列的數(shù)據(jù).
權限管理上,數(shù)據(jù)庫透明加密采用了分權的機制,實現(xiàn)了三權分立,有效制約了數(shù)據(jù)庫管理員(DBA)這樣的特權用戶對數(shù)據(jù)的拜訪.同時這種保護又是透明的,不會對管理員的日常工作造成不便.
最重要的是數(shù)據(jù)庫透明加密應用透明,應用系統(tǒng)和外圍維護工具無需改造,涵蓋SQL語句透明、存儲程序透明、開發(fā)接口透明、數(shù)據(jù)庫對象透明、管理工具透明.
數(shù)據(jù)庫透明加密防護技術
優(yōu)勢:
對應用系統(tǒng)和數(shù)據(jù)庫管理工具透明
對數(shù)據(jù)庫帳戶細粒度控制,包含DB用戶,客戶端IP,客戶端MAC地址,應用程序或工具等
對敏感數(shù)據(jù)拜訪細粒度審計
限制:
必要針對不同的數(shù)據(jù)庫分別實現(xiàn)
需要實現(xiàn)專門的密文索引技術和透明拜訪技術,以滿足性能和應用透明性
無法適用于RDS、用戶在ECS上部署的DBMS實例
應用層透明加密
應用透明加密分為兩種實現(xiàn)技術:JDBC[10]/ODBC[11]加密驅動,和云訪問平安代理.其中最關鍵的是用于支撐應用透明的加密技術:FPE、Tokenization.
1、JDBC/ODBC加密驅動
應用層JDBC/ODBC加密驅動,可以通過在原有DBMS提供的JDBC/ODBC上,以Wrapper方式實現(xiàn),部署時替換JDBC/ODBC加密驅動,實現(xiàn)對應用透明的數(shù)據(jù)加解密,實現(xiàn)數(shù)據(jù)在到達DBMS/RDS之前進行加密,和數(shù)據(jù)離開DBMS/RDS到達Application之后進行解密,最終保證多數(shù)應用系統(tǒng)無需改造;同時在JDBC/ODBC加密驅動層實現(xiàn)獨立的權限控制,密鑰的獲取.
對敏感數(shù)據(jù),通過JDBC/ODBC加密驅動實現(xiàn)完整的敏感數(shù)據(jù)拜訪審計能力.
JDBC/ODBC加密驅動技術
優(yōu)勢:
實現(xiàn)按字段加密,數(shù)據(jù)在到達DBMS/RDS之前就完成加密,平安性好
實現(xiàn)對應用的透明性,只需更換JDBC驅動即可完成
實現(xiàn)對數(shù)據(jù)庫帳戶細粒度控制,包含DB用戶,客戶端IP,客戶端MAC地址,應用程序或工具等
部分實現(xiàn)應用用戶控制,包含應用帳號、應用客戶端的IP等
限制:
對第三方數(shù)據(jù)工具(如PLSQL,TOAD等)無法實現(xiàn)透明,數(shù)據(jù)為密文
對服務器端程序,如存儲過程、駐留在DBMS主機的自動化腳本等,無法實現(xiàn)透明
必要針對不同的數(shù)據(jù)庫實現(xiàn)相應的JDBC/ODBC Wrapper
2、云訪問平安代理
云訪問安全安全代理(CASB),往往采用的是應用網(wǎng)關的方式,作為HTTP或HTTPS的反向代理服務網(wǎng)關,對HTTP頁面中的敏感數(shù)據(jù)進行加密和Tokenization兩種不同的保護方式.通過處理HTTP的哀求和響應,實現(xiàn)面向字段的數(shù)據(jù)和上傳內(nèi)容的加密和解密,實現(xiàn)在數(shù)據(jù)發(fā)送到云端之前進行加密,密文數(shù)據(jù)離開云端到達客戶端之前進行解密.
云訪問平安代理網(wǎng)關典型部署在用戶數(shù)據(jù)中心側,用戶完全控制數(shù)據(jù)的加密密鑰和加解密過程.可以采用任意的inline proxy方式進行部署.
云訪問平安代理網(wǎng)關可以提供細致的面向應用系統(tǒng)用戶和組的訪問控制能力,同時提供面向應用系統(tǒng)用戶的細粒度訪問審計能力.
云訪問平安代理技術
優(yōu)勢:
實現(xiàn)按字段的加密,可以在數(shù)據(jù)到達云端之前就完成加密,平安性最好
具有高平安性,能夠提供面向應用用戶的解密權限控制,有效防止DBA的高權限和SQL注入攻擊行為
最大限度滿足合規(guī)性才能
限制:
對應用系統(tǒng)可能無法實現(xiàn)真正的應用透明,必要對應用進行部分改造
對第三方數(shù)據(jù)工具(如PLSQL,TOAD等)無法實現(xiàn)透明,數(shù)據(jù)為密文
對服務器端程序,如存儲過程、駐留在DBMS主機的自動化腳本等,無法實現(xiàn)透明
文件級透明加密防護
文件級透明加密防護通過在云主機操作系統(tǒng)上部署專門的加解密agent,實現(xiàn)對專門的數(shù)據(jù)文件或卷(Volume)的加解密.對操作系統(tǒng)帳戶具有權限控制才能.只有專門的DBMS系統(tǒng)帳戶才有對文件或卷進行加解密.
文件級透明加密防護技術
優(yōu)勢:
對數(shù)據(jù)庫系統(tǒng)(DBMS)和應用透明
同時支持布局化和非布局化文件的加密
有效控制操作系統(tǒng)用戶的拜訪,滿足通常的控制需求
限制:
無法提供細粒度的數(shù)據(jù)拜訪審計能力
必要針對不同的操作系統(tǒng)平臺提供專門的agent
無法控制數(shù)據(jù)庫帳戶對敏感數(shù)據(jù)的拜訪
數(shù)據(jù)自動脫敏
隨著云計算、彈性計算的廣泛使用,會出現(xiàn)兩種系統(tǒng)研發(fā)和測試的趨勢:
1)系統(tǒng)研發(fā)和測試在當?shù)丨h(huán)境完成,然后部署在云端.
2)系統(tǒng)研發(fā)和測試也在云端進行,充分利用云端的彈性計算資源,和便利簡潔的云化部署能力.
以上無論哪種方式,都面臨將生產(chǎn)數(shù)據(jù)全部或部分轉移到測試和研發(fā)環(huán)境中,出于合規(guī)性和平安性需求,轉移的數(shù)據(jù)必須進行“脫敏”處理.
數(shù)據(jù)自動脫敏技術能夠對測試庫中的數(shù)據(jù)、遷移過程中的數(shù)據(jù)、導出成文件的數(shù)據(jù)進行“脫敏”處理;并能保證數(shù)據(jù)關系一致性,例如分散在分歧表中的相同身份證號數(shù)據(jù)脫敏后仍然是相同的.
數(shù)據(jù)自動脫敏技術
數(shù)據(jù)庫防火墻
數(shù)據(jù)庫防火墻,是基于數(shù)據(jù)庫協(xié)議分析與控制技術的數(shù)據(jù)庫平安防護技術.基于主動防御機制,數(shù)據(jù)庫防火墻實現(xiàn)了對數(shù)據(jù)庫的訪問行為控制、危險操作阻斷、可疑行為審計.是集數(shù)據(jù)庫IPS、IDS功能為一體的綜合數(shù)據(jù)庫平安防護技術.
數(shù)據(jù)庫防火墻技術
實施云數(shù)據(jù)(庫)防護的6個步調
由于云環(huán)境、企業(yè)云應用系統(tǒng)、核心數(shù)據(jù)的復雜性,選擇適合的云數(shù)據(jù)保護方案變得尤為重要.那么什么樣的方案是適合的?筆者認為應該涵蓋以下幾個關鍵點:(1)滿足平安需求和相關法規(guī);(2)對各種危害來源進行有效防護;(3)可接受的部署和維護復雜性.
因此,為了保護云端的數(shù)據(jù),需要有計劃、有步驟的實施云數(shù)據(jù)(庫)平安防護,這里結合前面的架構和關鍵技術,提出以下實施云數(shù)據(jù)(庫)防護的6個基本步驟:
步驟1:分析并確定需要掩護的關鍵數(shù)據(jù)
在對云數(shù)據(jù)進行掩護前,首先需要準確的分析哪些數(shù)據(jù)需要掩護,和為什么要掩護這些數(shù)據(jù);評估和劃分哪些數(shù)據(jù)需要放置在云端,從而確定哪些數(shù)據(jù)是關鍵的必須掩護的數(shù)據(jù),例如用戶身份證號碼、銀行卡或信用卡號碼、社保號碼等.另一個需要關注的就是法規(guī)遵從性需求.
步調2:選擇適合的技術方案和加密算法
作為云數(shù)據(jù)防護是否能夠成功實施的關鍵,企業(yè)需要在關鍵數(shù)據(jù)的平安性、保持云應用系統(tǒng)的功能可用性,和系統(tǒng)可維護性方面綜合考慮,來確定適合企業(yè)需要的加密保護的技術方案.下面的兩張圖表對前面提到的加密防護的關鍵技術能夠提供的防護效果,平安性和部署復雜性進行了對比,供讀者參考.
多層云數(shù)據(jù)加密防護效果分析
平安性和實施部署復雜性分析
加密辦法的選擇也很重要,這里舉個典型例子,在很多應用系統(tǒng)中會對銀行卡號數(shù)據(jù)進行格式校驗,如果數(shù)據(jù)不符合格式會造成應用系統(tǒng)無法接受“錯誤”的銀行卡號數(shù)據(jù),因此對銀行卡號加密同時,還需要保留其格式特征,可供選擇的加密算法包括FPE和Tokenization.而姓名等數(shù)據(jù)則可以采用AES256等更通用的加密算法.
步驟3:掩護好數(shù)據(jù)的加密密鑰
為了保護密文數(shù)據(jù)不會被非法竊取,避免云服務廠商和第三方維護人員訪問到明文數(shù)據(jù),最好的做法是將密文數(shù)據(jù)的密鑰控制在云用戶自己手中;讀者可以參考前面的圖1云數(shù)據(jù)平安模型和表1 平安模型對比.
步驟4:實施需要的防數(shù)據(jù)泄漏措施
雖然采取了必要的數(shù)據(jù)加密措施,但并不能徹底解決來自應用系統(tǒng)環(huán)境和云運維環(huán)境的平安威脅,典型的如來自云應用系統(tǒng)的SQL注入攻擊、后門程序、利用數(shù)據(jù)庫漏洞的攻擊行為、第三方運維人員的誤操作等.因此需要采用數(shù)據(jù)庫防火墻這樣的數(shù)據(jù)邊界防護技術,利用其細粒度的訪問控制、防攻擊、防批量數(shù)據(jù)下載等特性,實現(xiàn)有效的防數(shù)據(jù)泄漏.
步驟5:監(jiān)控并審計數(shù)據(jù)的拜訪行為
一方面,黑客攻擊行為千變?nèi)f化,另一方面,系統(tǒng)的復雜性帶來的數(shù)據(jù)正常維護和管理行為往往也是不可預期的.因此,需要對重要數(shù)據(jù)的拜訪行為采取持續(xù)、及時的監(jiān)控和審計,形成有效的風險報告提供給用戶發(fā)現(xiàn)新的風險,幫助用戶更好的進行數(shù)據(jù)保護.
步調6:利用自動脫敏防止測試環(huán)境數(shù)據(jù)泄漏
除了云環(huán)境的數(shù)據(jù)防護,企業(yè)內(nèi)部的測試環(huán)境也是一個重要的信息泄漏源,特別是需要“抽取”云端生產(chǎn)數(shù)據(jù)用于測試系統(tǒng)時;利用數(shù)據(jù)自動脫敏技術可以在有效的掩護生產(chǎn)數(shù)據(jù)的同時,為測試環(huán)境提供可用的符合用戶預期的測試數(shù)據(jù).
名詞術語解釋
[1]AWS:本文主要指亞馬遜的云計算服務
[2] KMS:Key Managerment System,是一種基于軟件或硬件加密卡技術的密鑰管理系統(tǒng),實現(xiàn)了密鑰的生命期管理,提供豐富的加解密算法和接口
[3] EBS:Elastic Block Store,本文主要指亞馬遜的彈性塊存儲服務
[4] ECS:Elastic Compute Service,本文指阿里的云服務器服務
[5] RDS:Relational Database Service,本文主要是指阿里的云數(shù)據(jù)庫服務
[6] DBMS:Database Management System,數(shù)據(jù)庫管理系統(tǒng)
[7] TDE:Transparent Data Encryption,數(shù)據(jù)庫透明加密,一種由數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫加密技術
[8] FPE:Format Preserving Encryption,是一種保留數(shù)據(jù)格式的加密算法,加密后的數(shù)據(jù)格式與明文數(shù)據(jù)的格式堅持一致.
[9] SSE:Searchable StrongEncryption,一種加密后數(shù)據(jù)可查詢檢索的加密算法,類似同態(tài)加密的結果
[10] JDBC:Java Data Base Connectivity,一種用于連接多種關系型數(shù)據(jù)庫的Java數(shù)據(jù)庫連接
[11]ODBC:Open Database Connectivity,開放數(shù)據(jù)庫互連,是Microsoft提出的數(shù)據(jù)庫拜訪接口標準
如果您必要了解更多內(nèi)容,可以
參加QQ群:486207500
歡迎參與《云數(shù)據(jù)庫安全初探》討論,分享您的想法,維易PHP學院為您提供專業(yè)教程。
轉載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14463.html