企業數據庫是承載企業信息資產安全的重要介質和平臺,即使在云和大數據時代,其仍然是信息安全工作者不可忽略的危險地帶。由于關系數據庫可以支持范圍廣泛的不同類型的 應用程序和專利使用,他們通常在多個層次應用安全。安全的每一層被設計用于特定目的,并且可以用于提供授權規則。為了獲得訪問你最值得信賴的信息,用戶必 須在其中的一個或多個層次具有相應的權限。作為一名數據庫或系統管理員,你的工作是要確保障礙是適當的高度——也就是說,你的安全模型同時考慮到了安全性 和可用性。本文將介紹如何從服務器、網絡、操作系統三個緯度考慮保障企業數據庫安全。
服務器級安全
數據庫應用程序是否安全,依賴于它所運行的服務器是否安全。因此,首先考慮數據庫被托管的物理服務器上的安全設置是非常重要的。在規模較小,配置簡單的組 織,你可能只有一臺機器需要確保安全。大型組織可能要安置多臺服務器。這些服務器可能地理上是分布的,甚至是復雜的集群配置。
你應該采取保護服務器的第一步是確定哪些用戶和應用程序應該能夠訪問它。現代數據庫平臺一般都是通過網絡進行訪問,并且大多數數據庫管理任務可以遠程執 行。因此,除了物理維護數據庫的硬件,沒有必要有人能夠直接物理訪問一個數據庫。這也是非常重要的物理保護數據庫以防止非授權用戶訪問數據庫文件和數據備 份。如果非授權用戶可以獲得你服務器的物理訪問,就更難以防止進一步的破壞。
網絡級安全
如前所述,數據庫在各自的操作系統平臺上工作,為用戶提供他們所需要的數據。因此,一般的操作系統和網絡級的安全也適用于數據庫。如果基礎平臺是不安全 的,這對于數據庫是顯著的漏洞。因為它們被設計為網絡應用程序,你必須采取合理步驟,以確保只有特定的客戶端可以訪問這些機器。
為保護數據庫的一些標準“最佳實踐”包括限制網絡和網絡地址直接訪問計算機。例如,你可能會實施路由規則和包過濾,以確保你的內部網絡上只有特定用戶才可以與服務器進行通信。
舉個例子,微軟的SQL Server數據庫平臺使用默認的1433 TCP端口為客戶端與數據庫之間進行通信。如果你明確知道有沒有必要讓你網絡的特定子網用戶能夠直接訪問該服務器,那么阻止網絡訪問此TCP端口是明智 的。這樣做還可以防止惡意用戶和代碼(如病毒)從網絡上攻擊本機。另一個安全的做法是,改變服務器監聽的默認端口。這可以很簡單地通過使用圖1所示的服務 器網絡實用工具來完成。
圖1使用服務器網絡工具來配置安裝Microsoft SQL Server網絡協議設置
當然,現實中很少數據庫是單獨工作的。一般情況下,這些系統常常由用戶通過任務關鍵型應用程序直接訪問。
保障數據庫中信息安全的另一種方法是使用加密。大多數現代數據庫支持客戶端和服務器之間的加密連接。雖然這些協議有時會顯著地增加處理和數據傳輸開銷(特 別是對于大量結果集或非常繁忙的服務器),但在某些情況下可能需要提高安全性。此外,通過使用虛擬專用網絡(VPN),系統管理員可以確保敏感數據在傳輸 過程中仍然受到保護。
根據實施, VPN解決方案可以提供的額外好處是使網絡管理員能夠無需客戶端或服務器重新配置而實現安全。數據加密也是網絡層以外領域的一個重要安全功能。通常情況 下,數據庫管理員將他們的數據備份,并將存儲在文件服務器上。這些文件服務器可能不如作為承載數據“實時”副本的敏感數據庫安全。要記住這是非常重要的, 默認情況下,大多數關系數據庫系統沒有為備份提供非常強大的安全功能。在大多數情況下,數據庫備份如實時數據庫本身具有同等價值,因此加密,妥善的管理文 件系統權限,以及相關的最佳實踐應被遵循。最后,數據加密也能有效地在數據庫中使用。許多類型的系統存儲敏感數據,如信用卡號碼和密碼(用戶可能使用幾個 不同的應用程序)。一個潛在的問題就在于這樣一個事實:數據庫開發人員和管理員常常需要為了做好自己的工作而擁有對這些數據庫表單的全部訪問權限。模糊數 據的一種方法是加密儲存在數據庫表中的值。在這種方式中,授權用戶將能夠在需要時訪問和修改數據,但只限于調用應用程序能夠破譯并使它可用的數據。對于某 些數據庫廠商,如Oracle,加密存儲在數據庫之外,若發生密鑰丟失,表列中的數據也將丟失。
操作系統安全
在大多數平臺上,數據庫安全與操作系統安全攜手并進。網絡配置設置,文件系統權限,認證機制和操作系統的加密功能都可以在確保數據庫保持安全中起到一定的 作用。例如,在基于Windows的操作系統,只有NTFS文件系統提供了各級別的文件系統安全(FAT和FAT32分區不提供任何文件系統安全功能)。 在使用集中目錄服務基礎架構環境中,系統管理員保持及時的權限設置,并確保盡快停用不必要的帳戶是非常重要的。幸運的是,許多現代關系型數據庫平臺,可以 利用它們運行在操作系統上的優勢。以下我們將更詳細討論。
大多數數據庫系統都要求用戶輸入一些驗證信息才可以訪問數據庫。數據庫安全的第一個層級可以基于一個標準的用戶名和密碼組合。或者,以提高可管理性和單點 登錄為目的,數據庫系統可以與企業現有認證系統集成。例如,微軟的Windows操作系統平臺上運行許多關系數據庫產品可以利用一個基于域的安全模型的安 全功能。根據個人的用戶帳戶和組成員,他或她可以進行無縫的“通過驗證” ,不需要重新鍵入用戶名或密碼。其中這種方法眾多好處之一是可以集中管理用戶帳戶的能力。當一個用戶帳戶是在組織的目錄服務的級別被禁用,則不需要采用進 一步的步驟防止用戶訪問數據庫系統。此外,組織越來越多地轉向基于生物特征的身份驗證(通過使用指紋識別,視網膜掃描,以及相關驗證方法),以及智能卡和 基于令牌的認證。數據庫管理員可以利用這些機制所依托的操作系統,用于識別用戶。因此,集成安全是強烈推薦的,無論從易用性還是易于管理性而言。
值得注意的是:實施一個新數據庫的重要組成部分是在安裝過程中或安裝后立即更改默認密碼(和帳戶名,如果可能的話)。許多數據庫管理員決定,他們將“稍后 完成這個任務”,但是這通常意味著它將被忽視。使用默認的用戶名和密碼相當于給予了惡意用戶入侵服務器的利刃。當你一旦安裝新的服務器,就請務必花幾分鐘 來關閉這個潛在漏洞。
服務器登錄可以直接被授予權限。例如,用戶可以被給予關閉或重啟數據庫或在服務器上創建一個新的數據庫能力的權限。登入級權限一般適用于服務器作為一個整 體,可以用來進行相關的備份和恢復,性能監控,以及數據庫的創建和刪除任務。在某些情況下,用戶與服務器的登錄權限可能能夠授予這些權限給其他用戶。因 此,充分了解你所依靠的數據庫平臺的安全體系結構,對保證你的信息安全是非常重要的。
要記住另一個重要的考慮是,大多數關系型數據庫平臺允許操作系統管理員具有對數據庫的許多隱性權限。例如,系統管理員可以啟動和停止服務,并可以移動或刪 除數據庫文件。此外,一些數據庫平臺自動授予系統管理員數據庫的登錄并允許全部權限。雖然某些情況下這可能是可取的,但要執行總體安全時必須牢記這點。在 某些情況下,這一點很重要,并不是所有的系統管理員有權限訪問存儲在這些服務器上的敏感數據。以這種方式配置系統將是一個挑戰,而實施的具體方法會根據正 在運行操作系統和數據庫平臺。
大多數情況下,一臺服務器的登錄只允許一個用戶連接到數據庫。它不會隱性允許用戶執行數據庫內的任何特定的動作。