|
轉自:http://space./241166/viewspace-592356
我的數據真的安全嗎 在今年的央視3.15晚會上,最受關注的是曝光了倒賣個人信息的黑幕。雖然說曝光的內容主要是黑客通過病毒木馬盜竊個人信息,但是也讓大眾對自己的個人信息安全提出了疑問:我在銀行、電信、醫(yī)院、政府部門登記的各種信息是不是一定能保證安全呢? 其實需要被保護的數據遠遠不止我們的個人信息,還有企業(yè)的財務數據、客戶資料、政府部門的各種統(tǒng)計數據、稅務資料等等。英國就曾經發(fā)生記錄有全國所有接受兒童津貼的家庭詳細信息的光盤在快遞過程中遺失,最后導致稅務署長辭職,財務大臣出面向公眾道歉的事。 最容易發(fā)生數據泄漏的是保存在文件系統(tǒng)(包括光盤)上的各種數據,例如一些Excel表格,或者更簡單的文本文件。這些文件很容易被人拷貝走,因為很少有人對目錄和文件的訪問權限進行嚴格的管理。有些保存數據的目錄被臨時共享,但是共享時沒有對可以訪問者加以限制,甚至有人忘了取消共享;有些筆記本被盜,或者還有些機器中了木馬,這些情況下文件系統(tǒng)中的數據都會完全暴露給了信息竊取者。 好在目前大量的數據都是保存在數據庫中的。數據庫提供了基本的用戶名/口令保護,必須有相應的用戶名/口令才能查詢到數據,而且不同用戶之間也不能隨意看到對方的數據。 但是數據一旦保存在數據庫里就真的安全了嗎?事實并非如此簡單。因為在數據庫中還存在一些所謂的“超級用戶”(也稱為DBA——數據庫管理員的英文文縮寫),例如Oracle數據庫中的sys和system用戶,IBM DB2數據庫的db2admin用戶, Microsoft SQL Server或Sybase數據庫的sa用戶。只要用這些超級用戶登錄數據庫,就可以看到數據庫中所有用戶的數據,也可以修改任何用戶的數據。
過度集中的權力帶來高風險 為什么會存在這些超級用戶呢?這些超級用戶是數據庫創(chuàng)建過程中的缺省用戶,可以認為是數據庫中的“造物主”,因為所有新的用戶都是由他們創(chuàng)建的。他們就象Unix系統(tǒng)的root用戶,Windows的Adminstrator用戶,有著至高無上的權力。當然,為了安全,一般這種超級用戶的口令都被掌握在極少數人手里。 但是過度集中的權力都會帶來問題,當超級用戶擁有最高權力的時候,意味著他或她可以做任何想做的事,而且可以不留下任何痕跡。這種誘惑力太大了,如果你也看過科幻電影《透明人(Hollow Man)》,就知道這種誘惑可能會讓一個原本善良的人滑向罪惡的深淵。 事實上,我們有過這么一些例子:某大型企業(yè)的DBA在公司的財務系統(tǒng)數據庫中查到老總的工資,曬到了網上;某外包公司的技術人員利用非法獲取的DBA口令在移動公司的數據庫中篡改充值卡數據,為自己牟利了三百多萬;愛爾蘭的某個政府雇員利用自己的管理員身份把高收入人群的信息偷出來交給自己的弟弟,而他弟弟據此勒索那些富人的錢財;美國一個金融服務公司的DBA在五年時間內盜取了八百多萬客戶的名單,自己開了家公司靠出賣這些信息贏利;而金融危機爆發(fā)以后,也有聽到被裁員的員工帶走公司機密的案例。 舉這些例子并不是想說明DBA是不可靠的(事實上絕大部分的DBA都是稱職的數據保護者),而是過于集中的權力給DBA這個角色帶來了很大的風險。 那么如何防止這些濫用特權的行為呢?有些企業(yè)想的辦法是把超級用戶的密碼分成兩段,必須由兩個人一起輸入才能登錄,所有操作也必須兩人同時在場。這看上去更安全了,但是就象保管金庫的兩個人可以串通了一起監(jiān)守自盜一樣,這個方法并不能解決本質的問題。
三權分立 現實世界里解決權力過度集中的方式之一就是三權分立(這里的“三”可以泛指為“多”)。我們想象一下,如果有人可以執(zhí)行管理數據的操作,有人負責控制管理數據的規(guī)則,另外還有人監(jiān)督和審計前兩類人的行為,那么權力過度集中的問題就可以通過互相制約被解決。這就和政治學里著名的行政、立法、司法三權分立不謀而合。
以下是數據管理三權分立的詳細規(guī)劃: 第一類用戶是數據庫管理員,他們有數據的管理權(行政權)。他們可以授予和取消普通用戶數據訪問的權限,執(zhí)行數據管理的各種操作。他們仍然能做一些特殊的,需要數據庫級權限的操作,例如備份整個數據庫的數據。但是傳統(tǒng)的數據庫管理員的“萬能”的權力被大大削減,包括創(chuàng)建新用戶的權限也會被收回。 第二類用戶是安全管理員,他們擁有安全規(guī)則的制定權(立法權),和之前的由DBA管理用戶權限不同的是,他們在數據庫原有的權限管理之外,對數據的訪問控制做更周密和靈活的規(guī)則設置。例如指定某些敏感數據的集合只能被指定的用戶訪問,如果沒有被指定,即使是DBA也無法訪問。又例如,即使是數據的所有者,也可以被安全管理員限制不能刪除自己的數據。安全管理員可以規(guī)定某些操作只能在某個時間段內執(zhí)行,或者某些操作只能在指定的IP地址上執(zhí)行。 但是安全管理員不能為用戶授予各種權限,也就是說,如果要想讓某個用戶(包括安全管理員自己)看到另一個用戶的數據,還必須由另一個用戶自身或者數據庫管理員先對該用戶授權。 這是一種互相制約的機制。安全管理員可以創(chuàng)建新用戶,可以指定新用戶為某些敏感數據的允許訪問者,這是個必要條件。但是并不意味著這個新用戶就可以看到這些敏感數據,他還需要得到DBA的授權。而DBA也不再能隨意查詢或修改其他用戶的數據。DBA原來的種種特權也可以被安全管理員根據實際需求通過命令規(guī)則進行限制。 第三類用戶是審計管理員,他們擁有數據操作的審計權(司法權)。他們可以監(jiān)督前兩類用戶的操作,如果發(fā)現有不符合法規(guī)或內部控制要求的活動,他們可以調查這些活動的細節(jié)。這些活動可能包括數據庫管理員將權限授給不合適的用戶,或者安全管理員臨時取消某些安全規(guī)則,以方便某些用戶執(zhí)行非法操作等等。 審計管理員和安全管理員一樣,本身都不能執(zhí)行對其他用戶的具體數據的操作,這是一種平衡。但是審計管理員擁有一套機制,可以保護審計記錄數據不會被數據庫管理員或者安全管理員刪除或者篡改。 對于普通的數據庫用戶,相當于平民大眾,他們的日常操作不會受到任何影響,所有訪問數據庫的應用程序也不需要做任何修改。但是他們對敏感數據的所有操作,也可以被記錄下來,受到審計管理員的審計和監(jiān)督。 至此,濫用數據庫超級用戶特權的安全漏洞可以完全被堵住。整個數據管理的安全性也得到了本質的提高。
數據庫發(fā)展的新方向 這套三權分立的機制看上去比較復雜,而且需要至少三個人才能實現。但是如果被管理的數據確實很重要,泄漏或破壞的后果非常嚴重的話,那么相信我,建立這么一套機制是必要的。 尤其是設立審計管理員之后,對一些沒有事先采取防范措施導致的事故可以做事后的追溯,從而可以清楚地區(qū)分事故的責任。 有人要問,我只有一個DBA,如何做三權分立?其實,只要有一個安全控制和審計軟件系統(tǒng),安全管理員和審計管理員并不需要由專職的懂數據庫的技術人員擔當,因為他們的操作非常簡單,都是通過圖形化的界面完成。舉個例子,審計管理員就可以由IT部門經理自己擔任,他只需要通過報表和報警信息就可以完成日常的審計,而且還可以了解自己的下屬都在做什么。 也有人要問,三權分立看上去很不錯,但是實現起來是不是很困難呢?事實上,數據管理的三權分立已經成為數據庫發(fā)展新的方向之一。首先,各種主流的數據庫都已經提供了數據庫審計的功能,而以Oracle Audit Vault為代表的數據庫審計軟件能把企業(yè)組織內部所有的數據庫(無論是Oracle, DB2,還是SQL Server, Sybase)的審計信息集中管理起來,解決了審計管理員的問題。其次,在安全控制上,各主流的數據庫廠商也已經或即將推出相應的解決方案。 當然,目前對基于文件系統(tǒng)的數據管理實現三權分立還有些難度,所以,還是把敏感的數據存放在數據庫中吧,這是更好的選擇。
關于Oracle 的數據庫有很多新資料現在可以在官網下載,還有官方提供的試用軟件,大家可以多到那里看看:http:///oracle/iwom-DBO/index.asp?frm=yqf |
|
|
來自: shawnsun007 > 《數據管理》