資料庫安全 祖傳珍寶守護神
作者: 資安人科技網 •編輯部 (2005/06/27)

祖傳珍寶正面臨了極大的危機-貴公司的智慧財產、客戶 ID 資訊與財務記錄等,都儲存在企業的資料庫中,這些都是你最重要的資產。各種設備所做出的軍事防衛,從防火牆到 IPSec 乃至於 Web 應用程式防護盾,在面臨到竊賊在 Web 上的攻擊,以及虛擬破壞者探索著各種瀏覽器的弱點與不安全的程式碼時,都無法確保資料的安全性。

貴組織的財務健全度以及商譽,全維繫在你的資料庫上。若是發生了嚴重的漏洞或是稽核上的鬆懈、不安全的資料庫設定與政策的實行,就別想通過 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


本篇文章由資安人科技網提供,不代表TWNIC立場。


1 2 3 4 5 6 7 8 9 10 11 12 13 14
 
 

財團法人台灣網路資訊中心
臺北市羅斯福路二段9號4樓之2 網路客服:http://www.twnic.net.tw/service/
Tel:+886-2-2341-1313 Fax:+886-2-2396-8832
版權聲明,禁止未經授權轉貼節錄