觀點

資料庫安全 祖傳珍寶守護神

2005 / 04 / 28
編輯部
資料庫安全 祖傳珍寶守護神

貴組織的財務健全度以及商譽,全維繫在你的資料庫上。若是發生了嚴重的漏洞或是稽核上的鬆懈、不安全的資料庫設定與政策的實行,就別想通過Sarbanes-Oxley、HIPAA,以及歐盟個人資料保護指令的規定。
所以,最簡單的作法,就是做好資料庫的保全。但是要怎麼做呢?
最近出現的一堆安全產品,如資料庫掃瞄器、稽核/監控與入侵偵測等,都強調可以幫助你回復並維持資料庫的健全。而加密這種方法更是早早就存在了,但是部署與管理(如部署、存取控制、資料復原以及金鑰交換等)過於複雜,讓產品有出等於沒出一樣。
如果錢不是問題的話,也可以找到厲害的外部專家,進行侵略式的滲透測試,找出資料庫中幾乎所有的弱點。
但這些有辦法解決你的問題嗎?外掛式安全產品是否符合成本效益?最佳典範的應用程式是否足夠?
可以確定的是,你理應利用資料庫軟體本身的安全設定與強化功能。Microsoft以及Oracle都在它們下一代的資料庫產品中加入了更高一級的安全功能,或許你該注意如何善用這些加強的功能。
資料庫保全沒有固定的方法。但若是對現有的技術有個概略性的認識,倒是可以幫助你決定要採用哪些組合,才能讓你兼顧成本與風險。
資料庫弱點掃瞄
目前許多安全管理員只負責強化公司的資料庫,但卻沒有系統管理者的權限可以直接存取系統。這些權限通常只給開發經理或管理人員使用。
在進行網路弱點評估時,你必須由外界的角度來看。這時你可以做的便是滲透測試(這種做法略帶侵略性及風險),或是使用專門用來偵測資料庫弱點所用的掃瞄器。
滲透測試找出的資料庫弱點是最正確的(同時也是最貴的),但測試本身可能會因人為錯誤而讓資料庫損毀。
滲透測試會利用『SQL DELETE』命令模仿SQL的操作與隱碼攻擊,如果你的系統真的有弱點的話,就會造成嚴重的問題。任何錯誤都可能將資料抹除。如果能在資料庫的鏡像備份中測試的話當然是最好,不過如果你沒有相同的前端及網路設備的話,你就無法真正模擬出駭客攻擊的目標了。
真正的問題在於:你確信你雇用的顧問不會對你的資料造成任何嚴重的損害嗎?
假若你無法雇用昂貴的顧問來測試資料庫的話,你可能就得倚賴你手下的人了。
如果你的遭遇確實如此,那麼你可能得為你的人買一套實用的工具。忘了Nessus和Foundstone這類的網路掃瞄器吧;這些工具目前的版本只能找尋沒安裝的修正程式,就像輕拂過資料庫的表面而已(這些工具在來年可能會推出具有完整的資料庫掃瞄功能的版本)。特別為資料庫所設計的弱點評估工具,可以對資料庫的組態與設定不良所造成的漏洞,進行更細微的檢測。
在實務上,如果讓你的人員使用資料庫掃瞄器的話,ROI會高於雇用顧問的方式,相較於專門的資料庫專家進行滲透測試所找出的漏洞,資料庫掃瞄器也可以找到8~9成。但是,省下來的成本,效益上是否大過於高出來的風險?你在安全上所做的所有努力,是否會讓你對資料庫的安全性更有自信?
純粹的資料庫弱點掃瞄器的廠商不多。英國的Next Generation Security Software理所當然地是業界翹楚。它旗艦級的資料庫掃瞄程式—NGS Squirrel,具有專為SQL Server、Oracle與DB2等資料庫所設計的產品。每一項產品都包含了不安全設定、更新等級、預設使用者帳號、隱藏的平台弱點,甚至是一些Web介面弱點的資料庫檢查。
Application Security的AppDetective則包含了Oracle、SQL Server、DB2、Sybase以及Domino等模組,可以進行應用程式探索、滲透測試以及資料庫稽核等功能。Application Security還提供了主控台產品—AppSecIncConsole,以便管理它們的軟體組件。
Safety Lab的Shadow Database Scanner是一套開放原始碼,以ActiveX為基礎的工具,它可以讓程式人員直接改寫它的功能。這項產品支援了Oracle、SQL Server、DB2、Domino、MySQL,以及MiniSql等。

資料庫稽核與入侵測試
為了避免拿活生生的資料庫開玩笑,一些組織已改採用符合性監控(compliance monitoring)與資料庫入侵偵測等產品。
許多產品都可對資料庫做不間斷地監控/稽核、標記變更,並記錄及分析所有的使用者交易。
這些工具的另一項好處,則是它們可做為符合性監控之用,特別是針對HIPAA、歐盟個人資料保護指令,以及Sarbanes-Oxley的規定,它們全都可以快速地找出問題、維護詳盡的記錄,並做出資料庫所有活動的報表。
如果你的公司正在尋找符合性檢查工具,或只是在看耐用的資料庫安全產品,你都可以考慮Guardium的SQLGuard。它除了可以監控潛在的危險以及針對你的資料庫而來的惡意攻擊外,它還可以監控並記錄所有的使用者動作。它獨特的階層型三層式(稽核、健全度以及政策)功能,讓你可以進行被動地稽核,進行十幾項安全企業測試,監控政策的符合性,以檢查你的資料庫狀態。
SQLGuard最突出的功能,就是它可以記錄使用者活動並進行細部分析(drilldown)。在它的管理介面中,你可以選取任何一個資料庫使用者,然後再可執行的動作樹狀清單中進行點選。它的稽核功能包括了SQL帳戶建立細節、管理者等級的查詢,以及全新開發的預存函式(stored procedure)。
IPLocks提供Oracle、SQL Server、DB2、Sybase以及Hi RDB等提供了全套的安全監控。IPLocks可以標記可疑的設定,發佈警告、細詳報表與趨勢分析;它可以監控使用者動作、標記可疑的行為以及存取權限、角色與架構/資料表/元素等物件的變更。
Lumigent的Entegra則是另一套監控/稽核工具,可用在SQL Server以及Oracle上。Entegra可記錄所有的資料存取,讓你可以追蹤使用者行為與資料庫的變更。它具有Web GUI介面,可讓安全管理者追蹤特定的資料庫動作,並進行細部分析以找出潛在的問題。Entegra利用Crystal Reports產生它的報表。
Application Security的AppRADAR是一套入侵偵測工具,專為複雜的應用程式層的資料庫攻擊而設計。雖然AppRADAR比掃瞄網路用的IDS要能找出各多與資料庫相關的攻擊,但是若只是為了一種媒體,就要專門購買另一套系統來偵測,對一般公司而言也是不太可能的。若要省錢的話,可以使用掃瞄主機用的IPS,便可對你的資料庫提供主動的保護,這類的產品有SANA Security的PrimaryResponse、Cisco Systems的Okena StormWatch、McAfee的Entercept以及ThirdBrigade的Deep Security等。

外部密碼方案
加密是由核心進行保護的一種方法—若是駭客讀不出來訊息內容的話,就算是信用卡號碼也無法為他帶來任何益處。
但言下之意是,你必須另外花錢來達到這類的安全保障。即時的企業交易所需的加密與解密,硬體資源的需求非常可觀:它需要配置大量記憶體的多重處理器系統。金鑰交換、資料復原與存取控制(誰可以存取加密的資料)等議題也隨之而來。
加密的範圍可分為欄位、記錄、資料表、整個資料庫,或是某個檔案系統。加解密的資料越多,所需的CPU資源也越大。
近來有種方法,是將資料庫中的資料整個加密起來,當使用者有存取權時,才能將資料解密。這種方法也就是以角色為基礎的資料庫加密,而這也是Ingrian Networks的DataSecure平台後端的樞紐技術。一般產品是在檔案或資料庫層級上,將整個資料庫加密起來,相較起來,這項技術具有優異的效能表現。
nCipher的SecureDB為Oracle與SQL Server資料庫,提供了欄位等級的選擇性加密,可提供更細微的控制,即使是系統管理者,都無法在未授權的情況下進行存取。這種方法去除了加密整個資料庫的麻煩,也讓組織可以自行決定要加密哪些東西。nCipher也提供了作為安全金鑰管理用的硬體模組。
Application Security的DBEncrypt也對SQL Server與Oracle在欄位層級上,提供了各式各樣的加密演算法。它可以讓你點選要加密的欄位、可解密的使用者,以及要使用的加密演算法。
ProTegrity的Secure.Data可以在資料庫層級上保護資料,提供真正雙層式、以軟體實作的多樣化加密演算法,而且它更強大的地方,是能夠在更多的平台上運作(Oracle、IBM、DB2、Microsoft SQL Server、Sybase、Windows上的Informix、UNIX、Linux、OS/400,以及大型主機系統等)。Protegrity會常駐在運行的資料庫系統上,並且能夠透過插入、刪除、變更或讀取的限制,對特定的欄位、記錄進行保護。
NetLib的Encryptionizer也對SQL Server提供了整個資料庫與檔案的加密。
且撇開這些產品不談,Microsoft與Oracle都承諾了將在下一代的產品中,加進多種加密與解密的功能,也擠壓了協力資料庫加密廠商的生存空間。

選擇在你
可以確定的是,漏洞、系統與應用程式設定不良、產業標準以及日行性的安全挑戰等都將成為你揮之不去的夢魘。雖然我們可以預見將來的技術,能做到自動化更新、加強設定,以及弱點報告等功能,但我們還是得聰明到能夠將問題分成不同的等級。要打贏這場資料庫安全之戰,你最好的武器就是強化作業政策、買進高ROI的技術,組成常態性的內部反應部隊來因應日常的安全作業,包括資料庫仲裁、安全、標準化設定等,並每半年進行一次使用者帳戶檢核。
大多數的資料庫風險,都可以透過完善的設定,以及你已經建立的網路防護來改善,因此很難去評斷是否值得另外夠買資料庫專用的補充性安全產品,尤其是Oracle與Microsoft都說要把這些安全功能內建進去了。
但反過來說,如果這些能夠讓外界存取的資料庫是貴公司的血脈的話,你可能就會認真考慮為這些資料庫加上另一層的保護了。

JAMES C. FOSTER是Computer Sciences Corporation公司安全方案開發部門的副總。他是Hacking the Code(Syngress,2004)一書的技術顧問,也是Advanced Security Code Development(Addison-Wesley,2004)以及Ultimate Security Programmer’s deskRef(Syngress,2004)等書的領銜作者。如對本文有任何意見,請寄:iseditor@asmag.com