隨著新版個資法三讀通過,企業對於資料保護工作已不能等閒視之。根據統計,機關行號有超過 9 成以上的機密資料都是存在於資料庫當中,要如何妥善保護資料「金庫」,也成為重要課題。
因應法規即將實施,各家資料庫系統紛紛強化其安全機制,坊間還有許多專業的資料庫安全產品。面對眾多解決方案,企業應該如何選擇呢?
國內某醫院一名醫生,因一起醫療糾紛發生之後,為避免責任歸屬,自行至資料庫當中竄改病人的病歷,目前這項官司仍然在繼續當中…。
令人好奇的是,該名醫生為何能夠到資料庫中修改任何資料而系統管理員卻不知?該醫院的資料庫安全管理出現了哪些漏洞呢?
Sybase 技術部經理翁志宏表示,由於資料庫大都被佈建於內部網路,並非是直接對外的媒介,且多數企業在內部網路之外皆已建置防火牆等多層次的資安設備進行防護工作,因此由外而內的攻擊較少;而根據統計,有 61% 的資料安全漏洞是由內部人員所造成的,特別是 DBA 、程式開發人員、合作廠商等,換句話說,資料庫的資料外洩,主要是來自於有內部人員的資料偷竊行為。正如前文所述,醫生可以自行至資料庫竄改病歷資料一般。
對於要防範內部人員將資料庫的機密資料竊取出去,資料庫系統無不強化其安全機制,其中之一就是要先做好身份權限的管控。
資料庫內建的安全機制
目前主流的資料庫系統, 包括 O r a c l e 、 S Q LServer 、 DB2 、 Sybase 等皆內建詳細的身分權限控管的功能,主要是透過密碼認證的方式,確保讓有權限者可以登入資料庫;換句話說,提供企業做好並定義使用者的帳號、密碼管理。
另外,這些資料庫系統也皆內建了存取控制 (AccessControl) 功能,讓資料庫中的每個物件 (Object) 都可做到不同的權限控管。翁志宏表示,例如,一般可透過「Grant」與「Revoke」指令(授權與刪除授權)讓管理者可以設定每一個 Table 的存取權限。
除此之外,Sybase 的 Adaptive Server 提供了角色區分的功能,可以讓管理者定義不同的系統角色,例如系統管理者 (System Administrator, SA),或是系統安全管理者 (System Security Officer),並允許系統安全管理者可以再定義額外的角色,每一種不同的角色可以對應有不同的存取權限。
為了要防範資料庫管理員 (Database Administrator,DBA) 以及具備超級權限使用者可能會利用過高的資料庫權限來修改資料庫資料,Oracle 推出了可另外選購的 Oracle Database Vault,提供了進一步職責劃分控制功能,可防止擅自更改資料庫,例如,如果一個使用者具備「Create User」許可權,但不具備正確的用戶管理許可權,則 Oracle Database Vault 將可阻止該 DBA 建立新用戶帳號。
稽核拖垮資料庫效能
為了有利於事後追蹤,資料庫也都內建了稽核 (Audit) 功能,可以記錄誰登入、誰登出、誰存取了哪些資料庫的物件等,將所有資料庫存取行為都完整記錄下來。一般來說,管理者只要開啟資料庫系統中內建稽核功能,資料庫就會開始收集相關資料庫活動。如此一來,當發生資料外洩的情況時,企業可以透過稽核記錄,追查到是誰將資料外洩出去。
然而,資料庫開啟稽核的過程,會大大影響資料庫的效能,甚至可能影響應用程式的正常執行。 IBM 軟體事業處經理胡育銘表示,曾經有一家電信客戶,稽核人員要求開啟稽核功能,只開了半天的時間,大家就受不了了,因為資料庫的效能會因而變得相當緩慢(最高可能影響到 70% 的效能),甚至影響到正常交易工作,因此多數的企業都不會啟用該功能。大多只會在有特定的需求,或是針對特定事件進行追蹤,才會開啟該功能。
以微軟的 SQL Server 為例,想要進行特定事件追蹤,資料庫管理員可以開啟 SQL Trace 或 SQL ServerProfiler 以監控 SQL Server 的各種活動,並產生各種紀錄檔以供事後分析。
(…未完,更多精采內容請參閱網路資訊雜誌 223 期 6 月號)
