資料庫和金庫,哪個能防監守自盜?

2021-04-22 15:22:52 字數 2566 閱讀 2179

有乙個朋友,最近心情很不好。因為他是在單位裡主管資訊系統運維的,而最近有人發現他們單位裡的一些業務資料被刻成光碟在網上兜售,這下領導就找他談話了,要他查清楚這些資料是如何洩漏的。他找了資訊部門裡所有能接觸到資料的人,包括幾個資料庫管理員,談話,結果什麼也沒查出來——當然不會有人承認是自己幹的。而業務部門的主管則把皮球徹底地踢給了他,說資訊部門應該提供相關證據,他們才能在業務部門裡自查。這事讓他一籌莫展,而領導承受的壓力也很大,對他也沒有好臉色。他已經不去想年終的獎金了,整天就擔心著自己的位子。他倒的一肚子苦水讓我想到了資料安全的一些問題。

在整個資訊系統中,資料庫就是最後一道防線。因為黑客也好,內賊也好,他們想得到的東西就存放在這裡。這裡就象是銀行的金庫大門,外面的重重防衛就是為了避免讓居心不良的人到達這裡。而金庫大門通常也是最堅固的。但是大家應該都還記得2023年轟動全國的邯鄲市農業銀行兩名金庫看管員監守自盜五千萬的事。雖然金庫有60厘公尺厚的鋼板加水泥的牆,可這兩哥們串通之後憑著自己掌管的兩把鑰匙,多次大搖大擺地在攝像頭下面把錢運走。這說明什麼?說明再堅固的對外防線也不能防止監守自盜。如果有利慾薰心的資料庫管理員利用管理員的特權盜走敏感資料,就會引發同樣的故事。

而金庫案告破之後,上至農行河北省分行行長辭職,副行長免職,下至兩人所在的現金管理中心人員全部下崗接受審查,中間還牽連了一大批中層幹部。如果當初這些領導對安全管理足夠重視,就不會這樣丟掉烏紗帽了。而最近即將出台的兩個法律《刑法修正案第七版》和《個人資訊保**》都規定國家機關或者金融、電信、交通、教育、醫療等單位工作人員非法洩露、**、竊取個人資訊的行為也將受刑法制裁。如果等到這兩個法律實行,我的這位朋友的麻煩就更大了。

每個單位都有資料庫,還有很多單位的資料庫和應用系統維護是外包給其他公司的。每個資料庫都有管理員(簡稱dba)或所謂的超級使用者,只要有這些dba的口令,就可以登入到資料庫裡,查詢甚至是修改所有的資料,而且dba還可以刪除相關的操作記錄,讓人無法追查。管理這些dba比管理現實生活中的金庫管理員還要困難,因為有時候你不知道哪些人已經有了「鑰匙」。在某些缺乏管理的單位裡,如果某個不是資料庫管理員的傢伙因為某種「合理的」原因,向資料庫管理員詢問口令,而且管理員也不認為是件事兒的話,那麼他就很容易擁有了「鑰匙」。和現實的金庫要同時用兩把鑰匙不同,資料庫的「鑰匙」只要一把就夠了。

2023年也曾經有個案子在電信業內比較轟動。一位整合商的前員工,利用他曾經在某省移動安裝裝置的機會,從該省移動公司系統進入了另乙個省市移動公司的充值中心資料庫,獲得資料庫管理員許可權。四個月裡,他利用這個許可權在資料庫中把14000個已經使用過的充值卡記錄把「已充值」狀態改為「未充值」,並修改其有效日期,啟用了這些已經使用過的充值卡。然後他在網上打折**,獲利380萬元。最後,由於他忘記更改一批卡的有效日期,買主打**到移動公司投訴,移動公司才發現被人動了手腳。

現在,我們知道撬資料庫要比撬金庫容易多了。不過,有時候這些資料的價值很可能不止五千萬。事實上,因為家醜不能外揚,被報道出來的資料洩漏或篡改事件只是冰山的一角。從這點上看,資料庫的監守自盜要比金庫的監守自盜更有吸引力。

那麼這些敏感單位的領導,尤其是其資訊部門的領導,如何預防這種事情的發生呢?

首先,要加強安全教育,讓所有人都重視安全,提高安全意識。要讓每個有「鑰匙」的人清楚自己的責任,禁止資料庫使用者口令的外洩。

其次,建立健完有效的安全制度,設立或明確專門負責資訊保安的部門和責任人,制訂資料操作的安全規範。對批量查詢等操作進行必要的限制,定期更改資料庫管理員口令等。

第三,採用相關的資料庫安全技術,限制資料庫管理員使用者的特權,實現職責分離。也就是說,資料庫管理員只能執行資料庫的備份恢復和日常維護,禁止訪問任何業務系統的資料。例如oracle資料庫有乙個產品叫database vault(有趣的是,vault就可以翻譯為「金庫」),可以將所有業務系統的資料圈定為乙個域。如果不授予資料庫管理員這個域的訪問權的話,資料庫管理員就訪問不到這些資料。這個授權管理就由上一條提到的資訊保安責任人來完成。

第四,對資料庫關鍵操作進行審計,以備事後回溯追查。對異常的資料查詢和資料更改記錄審計日誌,這對想幹壞事的人也能起到震懾作用。各種資料庫本身都有審計功能,只是平時大多沒有被開啟。如果是oracle資料庫的話,還可以採用oracle audit vault(又是乙個「金庫」)。它能把分散在各個資料庫伺服器上的資料庫審計日誌集中保護起來。這很重要,因為分散儲存的審計日誌還是有可能被資料庫管理員刪除或篡改的。另外,它還能自動產生審計報告,以及對符合某種預設條件的審計記錄觸發報警,及時通知資訊保安責任人。

其中第三點,看似對資料庫管理員的權力削弱,其實是對資料庫管理員的保護。如果明確資料庫管理員沒有訪問業務資料的能力,那麼再有資料洩漏的時候,資料庫管理員也可以洗清嫌疑。如果這樣,我的這位朋友和他手下的資料庫管理員們也就不至於首當其衝受到懷疑了。如果加上第四點的措施,他還可以提供相關的證據,和業務部門分清責任。

回到上面某省移動充值中心資料庫的例子,如果當初某省移動實行了以上四條措施,那麼罪犯根本就無機可乘:首先,罪犯沒有機會得到資料庫管理員口令;其次,即使得到了當時的口令,也很快因為口令定期更改而失效;第三,即使在資料庫管理員口令有效期內也沒辦法查詢和修改充值卡資料;最後,即使他做到了,很快也會被審計系統發現,而不是等到四個月後由於罪犯自己的疏忽才東窗事發。只要措施得當,資料庫的監守自盜還是可以防止的。

各位資訊部門的領導們想要安心度過這個經濟危機下並不好過的年關的話,還是要趕緊採取行動把前面四項工作做好。有句話怎麼說的來著,「年關將到,注意防盜」。

mysql事件日誌 MySQL資料庫事件監控日誌

本文主要向大家介紹了mysql資料庫事件監控日誌 通過具體的內容向大家展現,希望對大家學習mysql資料庫有所幫助。建立監控表 create table t event history id int unsigned not null primary key auto increment,dbnam...

通過HttpModule實現資料庫防注入

昨天剛把資料庫防注入的原型發了上去,發覺好像還漏了點東西,現在把它全部補上.sql注入是常常被一些菜鳥級黑客高手慣用的手法,就是基於sql的注入實現,防注入程式其實就是處理http請求,把get和post的請求資料中做過濾.通過相應的關鍵字去識別是否有 sql注入攻擊 string sqlstr a...

C 引數化查詢資料庫防注入

採用sqlclient方式連線資料庫 1 string name lui 語句中直接在sql語句中寫新增的引數名,不論引數型別都是如此.sqlcommand cmd new sqlcommand connection1 cmd.commandtext insert into tuserlogin v...