據Verizon2012年的數據泄露調查分析報告[1]和對發生的信息安全事件技術分析,總結出信息泄露呈現兩個趨勢:
(1)黑客通過B/S應用,以Web服務器為跳板,竊取數據庫中數據;傳統解決方案對應用訪問和數據庫訪問協議沒有任何控制能力,比如:SQL注入就是一個典型的數據庫黑客攻擊手段。
(2)數據泄露常常發生在內部,大量的運維人員直接接觸敏感數據,傳統以防外為主的網絡安全解決方案失去了用武之地。
數據庫在這些泄露事件成為了主角,這與我們在傳統的安全建設中忽略了數據庫安全問題有關,在傳統的信息安全防護體系中數據庫處于被保護的核心位置,不易被外部黑客攻擊,同時數據庫自身已經具備強大安全措施,表面上看足夠安全,但這種傳統安全防御的思路,存在致命的缺陷。
數據最小化與模糊處理
保護敏感數據的最好、最有效的辦法是當初就不存儲或少存儲數據。因此,公司應該經常檢查數據最小化問題。
數據加密
公司可以對數據庫中的數據進行加密,以防止其被盜或意外泄漏。在加密數據庫中的數據時,有三個關鍵問題需要考慮:在何處加密數據、如何加密數據以及在何處存儲密鑰。下面將分別討論這些問題:
在何處加密數據――加密可以在應用層、數據庫或底層存儲器中進行。如果加密在數據庫中進行,則還可以對特定字段、列、表或者整個數據庫加密。當然,在應用層、數據庫和底層存儲器中加密各有利弊。
由于應用層加密是在系統的最高層對數據進行加密,所以數據對應用層之下的各層都不可見。如果加密在應用層進行,則數據庫、操作系統、網絡以及數據經過的所有其他路徑都只能看到加密后的形式。
應用層加密的問題在于,通常會有多個高層應用程序需要訪問數據,這些應用程序將需要密鑰副本對數據進行解密??梢垣@得密鑰副本的應用程序越多,密鑰遭到泄漏的可能性就越大。
但是,如果加密在較低的層進行,則你還需要進一步在其他層進行加密。例如,當數據流經數據庫和應用程序之間的網絡時需要對其進行加密,否則數據對網絡層將是可見的。這將會引入需要加以保護的其他加密密鑰。在何處進行加密是一種微妙的平衡,取決于應用程序和數據流的體系結構。
如何加密數據――加密可以利用軟件、硬件或者軟件硬件相結合的方式實現。具體采用何種方式加密,取決于你希望達到的吞吐量(Mb/s)。如果希望獲得較大的吞吐量,則你可能需要一些硬件加速方式。無論采用何種加密方式,有一個問題別無選擇:始終使用先進的、強大的、基于標準的加密和密鑰管理系統;不要試圖發明自己的加密和密鑰管理系統,你自己的加密和密鑰管理系統可能奏效也可能不能奏效。目前,一些高端服務器處理器已經內置了支持AES(高級加密標準)的加密基元(Encryption Primitives),可以實現比基于軟件的算法快得多(高達9倍)的加密。
在何處存儲密鑰――加密最大的挑戰不是加密本身,而是密鑰的存儲和分配。加密數據的安全性和可訪問性并不高于密鑰本身。密鑰必須悉心保護,以防攻擊者竊取。同時,密鑰必須與加密數據分開存儲,但又要可供加密/解密算法訪問。另一方面,必須對密鑰進行備份和復制,以便當原始數據和原始密鑰由于災難而丟失時可以解密備份數據。你選擇的任何密鑰管理系統必須支持下列功能:
安全存儲密鑰。
認證和跟蹤審計對密鑰的訪問。
托管或恢復密鑰,以防密鑰丟失。
備份密鑰并將密鑰安全地傳輸到遠程位置,以供恢復之用。
加密標準
許多加密和密鑰管理系統都通過了以下兩個實用標準的認證:美國聯邦信息處理標準(Federal Information Processing Standard,FIPS)140,其安全級別分為1到4級;通用標準評估保證等級(Common Criteria Evaluation Assurance Level,CCEAL),其安全級別分為1到7級。這些標準提供了一個指標,可以比較不同系統的加密算法、密鑰存儲和密鑰管理機制的安全性。級別越高意味著加密算法、密鑰存儲方法、防篡改硬件和密鑰管理機制越好。例如,FIPS在確定一個認證級別時,考慮了11個不同方面的安全性。你應該根據數據的敏感程度和你所在地區的監管要求,選擇合適的安全級別。
數據庫應用極為復雜,由多層松散耦合的組件構成。數據庫應用的安全性難以保證,但又包含了公司最敏感的數據。然而,利用數據最小化和加密技術,公司可以巧妙地在數據的安全性、可訪問性和可用性之間取得平衡。
總之,數據庫(http://www.49028c.com/mail)的防護手段不外乎這三個階段:事前診斷;事中控制;事后分析。做好這三個階段你的數據庫基本上就可以保證安全了。