複製鏈接
請複製以下鏈接發送給好友

數據庫安全

(系統運行安全和系統信息安全)

鎖定
數據庫安全包含兩層含義:第一層是指系統運行安全,系統運行安全通常受到的威脅如下,一些網絡不法分子通過網絡,局域網等途徑通過入侵電腦使系統無法正常啓動,或超負荷讓機子運行大量算法,並關閉cpu風扇,使cpu過熱燒壞等破壞性活動; 第二層是指系統信息安全,系統安全通常受到的威脅如下,黑客對數據庫入侵,並盜取想要的資料。數據庫系統安全特性主要是針對數據而言的,包括數據獨立性數據安全性數據完整性併發控制、故障恢復等幾個方面。
數據庫安全的防護技術有:數據庫加密(核心數據存儲加密)、數據庫防火牆(防漏洞、防攻擊)、數據脱敏(敏感數據匿名化)等。
中文名
數據庫安全
外文名
Database security
別    名
系統運行安全
相    關
數據庫系統安全特性
包    括
數據完整性併發控制

數據庫安全安全問題

據Verizon2012年的數據泄露調查分析報告和對發生的信息安全事件技術分析,總結出信息泄露呈現兩個趨勢:
(1)黑客通過B/S應用,以Web服務器為跳板,竊取數據庫中數據;傳統解決方案對應用訪問和數據庫訪問協議沒有任何控制能力,比如:SQL注入就是一個典型的數據庫黑客攻擊手段。
(2)數據泄露常常發生在內部,大量的運維人員直接接觸敏感數據,傳統以防外為主的網絡安全解決方案失去了用武之地。
數據庫在這些泄露事件成為了主角,這與我們在傳統的安全建設中忽略了數據庫安全問題有關,在傳統的信息安全防護體系中數據庫處於被保護的核心位置,不易被外部黑客攻擊,同時數據庫自身已經具備強大安全措施,表面上看足夠安全,但這種傳統安全防禦的思路,存在致命的缺陷 [1] 

數據庫安全事前診斷

發現外部黑客攻擊漏洞,防止外部攻擊:實現非授權的從外到內的檢測;模擬黑客使用的漏洞發現技術,在沒有授權的情況下,對目標數據庫的安全性作深入的探測分析;收集外部人員可以利用的數據庫漏洞的詳細信息。
分析內部不安全配置,防止越權訪問:通過只讀賬户,實現由內到外的檢測;提供現有數據的漏洞透視圖和數據庫配置安全評估;避免內外部的非授權訪問。
監控數據庫安全狀況,防止數據庫安全狀況惡化:對於數據庫建立安全基線,對數據庫進行定期掃描,對所有安全狀況發生的變化進行報告和分析。

數據庫安全事中控制

BCoffer基於主動防禦機制,可以防止明文存儲引起的數據泄密、突破邊界防護的外部黑客攻擊、內部高權限用户的數據竊取、逃開應用系統非法訪問數據庫,從根源上防止敏感數據泄漏。DBCoffer通過獨創的、已獲專利的三層視圖技術和密文索引等核心技術,突破了傳統數據庫安全加固產品的技術瓶頸,真正實現了數據高度安全、應用完全透明、密文高效訪問。

數據庫安全事後分析

DBFirewall基於主動防禦機制,實現數據庫的訪問行為控制、危險操作阻斷、可疑行為審計;通過SQL協議分析,根據預定義的禁止和許可策略讓合法的SQL操作通過,阻斷非法違規操作,形成數據庫的外圍防禦圈,實現SQL危險操作的主動預防、實時審計;面對來自於外部的入侵行為,提供SQL注入禁止和數據庫虛擬補丁包功能;通過虛擬補丁包,數據庫系統不用升級、打補丁,即可完成對主要數據庫漏洞的防控。

數據庫安全特徵

數據庫安全數據獨立性

數據獨立性包括物理獨立性和邏輯獨立性兩個方面。物理獨立性是指用户的應用程序與存儲在磁盤上的數據庫中的數據是相互獨立的;邏輯獨立性是指用户的應用程序與數據庫的邏輯結構是相互獨立的。

數據庫安全數據安全性

操作系統中的對象一般情況下是文件,而數據庫支持的應用要求更為精細。通常比較完整的數據庫對數據安全性採取以下措施:
(1)將數據庫中需要保護的部分與其他部分相隔。
(2)採用授權規則,如賬户、口令和權限控制等訪問控制方法。
(3)對數據進行加密後存儲於數據庫。

數據庫安全數據完整性

數據完整性包括數據的正確性、有效性和一致性。正確性是指數據的輸入值與數據表對應域的類型一樣;有效性是指數據庫中的理論數值滿足現實應用中對該數值段的約束;一致性是指不同用户使用的同一數據應該是一樣的。保證數據的完整性,需要防止合法用户使用數據庫時向數據庫中加入不合語義的數據。

數據庫安全併發控制

如果數據庫應用要實現多用户共享數據,就可能在同一時刻多個用户要存取數據,這種事件叫做併發事件。當一個用户取出數據進行修改,在修改存入數據庫之前如有其它用户再取此數據,那麼讀出的數據就是不正確的。這時就需要對這種併發操作施行控制,排除和避免這種錯誤的發生,保證數據的正確性。

數據庫安全故障恢復

數據庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。數據庫系統能儘快恢復數據庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。

數據庫安全安全策略

數據庫的安全配置在進行安全配置之前,首先必須對操作系統進行安全配置,保證操作系統處於安全狀態。然後對要使用的操作數據庫軟件(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基於數據庫的Web應用常出現的安全隱患,對於腳本主要是一個過濾問題,需要過濾一些類似“,; @ /”等字符,防止破壞者構造惡意的SQL語句。接着,安裝SQL Server2000後請打上最新SQL補丁SP4。
SQL Server的安全配置
1.使用安全的密碼策略
把密碼策略擺在所有安全配置的第一步,請注意,很多數據庫賬號的密碼過於簡單,這跟系統密碼過於簡單是一個道理。對於sa更應該注意,同時不要讓sa賬號的密碼寫於應用程序或者腳本中。健壯的密碼是安全的第一步,建議密碼含有多種數字字母組合並9位以上。SQL Server2000安裝的時候,如果是使用混合模式,那麼就需要輸入sa的密碼,除非您確認必須使用空密碼,這比以前的版本有所改進。同時養成定期修改密碼的好習慣,數據庫管理員應該定期查看是否有不符合密碼要求的賬號。
2.使用安全的賬號策略
由於SQL Server不能更改sa用户名稱,也不能刪除這個超級用户,所以,我們必須對這個賬號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在數據庫應用中使用sa賬號,只有當沒有其他方法登錄到 SQL Server 實例(例如,當其他系統管理員不可用或忘記了密碼)時才使用 sa。建議數據庫管理員新建立個擁有與sa一樣權限的超級用户來管理數據庫。安全的賬號策略還包括不要讓管理員權限的賬號氾濫。
SQL Server的認證模式有Windows身份認證和混合身份認證兩種。如果數據庫管理員不希望操作系統管理員來通過操作系統登錄來接觸數據庫的話,可以在賬號管理中把系統賬號“BUILTIN\Administrators”刪除。不過這樣做的結果是一旦sa賬號忘記密碼的話,就沒有辦法來恢復了。很多主機使用數據庫應用只是用來做查詢、修改等簡單功能的,請根據實際需要分配賬號,並賦予僅僅能夠滿足應用要求和需要的權限。比如,只要查詢功能的,那麼就使用一個簡單的public賬號能夠select就可以了。
3.加強數據庫日誌的記錄
審核數據庫登錄事件的“失敗和成功”,在實例屬性中選擇“安全性”,將其中的審核級別選定為全部,這樣在數據庫系統和操作系統日誌裏面,就詳細記錄了所有賬號的登錄事件。請定期查看SQL Server日誌檢查是否有可疑的登錄事件發生,或者使用DOS命令。
4.管理擴展存儲過程
對存儲過程進行大手術,並且對賬號調用擴展存儲過程的權限要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQL Server的這麼多系統存儲過程只是用來適應廣大用户需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升權限或進行破壞。如果您不需要擴展存儲過程Xp_cmdshell請把它去掉。使用這個SQL語句:
use master
sp_dropextendedproc 'Xp_cmdshell'
Xp_cmdshell是進入操作系統的最佳捷徑,是數據庫留給操作系統的一個大後門。如果您需要這個存儲過程,請用這個語句也可以恢復過來。
sp_addextendedproc 'xp_cmdshell', 'xpSQL70.dll'
如果您不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特徵不能使用)。
這些過程如下: Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的註冊表訪問的存儲過程,註冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,命令如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite
還有一些其他的擴展存儲過程,也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對數據庫或應用程序的傷害。
5.使用協議加密
SQL Server 2000使用的Tabular Data Stream協議來進行網絡數據交換,如果不加密的話,所有的網絡傳輸都是明文的,包括密碼、數據庫內容等,這是一個很大的安全威脅。能被人在網絡中截獲到他們需要的東西,包括數據庫賬號和密碼。所以,在條件容許情況下,最好使用SSL來加密協議,當然,您需要一個證書來支持。
6.不要讓人隨便探測到您的TCP/IP端口
默認情況下,SQL Server使用1433端口監聽,很多人都説SQL Server配置的時候要把這個端口改變,這樣別人就不會輕易地知道使用的什麼端口了。可惜,通過微軟未公開的1434端口的UDP探測可以很容易知道SQL Server使用的什麼TCP/IP端口。不過微軟還是考慮到了這個問題,畢竟公開而且開放的端口會引起不必要的麻煩。在實例屬性中選擇TCP/IP協議的屬性。選擇隱藏 SQL Server實例。如果隱藏了SQL Server實例,則將禁止對試圖枚舉網絡上現有的 SQL Server實例的客户端所發出的廣播作出響應。這樣,別人就不能用1434來探測您的TCP/IP端口了(除非用Port Scan)。
7.修改TCP/IP使用的端口
請在上一步配置的基礎上,更改原默認的1433端口。在實例屬性中選擇網絡配置中的TCP/IP協議的屬性,將TCP/IP使用的默認端口變為其他端口。
8.拒絕來自1434端口的探測
由於1434端口探測沒有限制,能夠被別人探測到一些數據庫信息,而且還可能遭到DoS攻擊讓數據庫服務器的CPU負荷增大,所以對Windows 2000操作系統來説,在IPSec過濾拒絕掉1434端口的UDP通信,可以儘可能地隱藏您的SQL Server。
9.對網絡連接進行IP限制
SQL Server 2000數據庫系統本身沒有提供網絡連接的安全解決辦法,但是Windows 2000提供了這樣的安全機制。使用操作系統自己的IPSec可以實現IP數據包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的端口連接,對來自網絡上的安全威脅進行有效的控制。
上面主要介紹的一些SQL Server的安全配置,經過以上的配置,可以讓SQL Server本身具備足夠的安全防範能力。當然,更主要的還是要加強內部的安全控制和管理員的安全培訓,而且安全性問題是一個長期的解決過程,還需要以後進行更多的安全維護。

數據庫安全控制方法

安全性控制是指要儘可能地杜絕所有可能的數據庫非法訪問。每種數據庫管理系統都會提供一些安全性控制方法供數據庫管理員選用,以下是常用的幾種方法。
  1. 用户標識與鑑別
  2. 授權
  3. 視圖定義與查詢修改
  4. 數據加密
  5. 安全審計 [2] 

數據庫安全安全威脅

拖庫現象頻發,黑客盜取數據庫的技術在不斷提升。雖然數據庫的防護能力也在提升,但相比黑客的手段來説,單純的數據庫防護還是心有餘而力不足。數據庫審計已經不是一種新興的技術手段,但是卻在數據庫安全事件頻發給我們以新的啓示。數據庫受到的威脅大致有這麼幾種:
內部人員錯誤
數據庫安全的一個潛在風險就是“非故意的授權用户攻擊”和內部人員錯誤。這種安全事件類型的最常見表現包括:由於不慎而造成意外刪除或泄漏,非故意的規避安全策略。在授權用户無意訪問敏感數據並錯誤地修改或刪除信息時,就會發生第一種風險。在用户為了備份或“將工作帶回家”而作了非授權的備份時,就會發生第二種風險。雖然這並不是一種惡意行為,但很明顯,它違反了公司的安全策略,並會造成數據存放到存儲設備上,在該設備遭到惡意攻擊時,就會導致非故意的安全事件。例如,筆記本電腦就能造成這種風險。
社交工程
由於攻擊者使用的高級釣魚技術,在合法用户不知不覺地將安全機密提供給攻擊者時,就會發生大量的嚴重攻擊。這些新型攻擊的成功,意味着此趨勢在 2012年繼續。在這種情況下,用户會通過一個受到損害的網站或通過一個電子郵件響應將信息提供給看似合法的請求。應當通知僱員這種非法的請求,並教育他們不要做出響應。此外,企業還可以通過適時地檢測可疑活動,來減輕成功的釣魚攻擊的影響。數據庫活動監視和審計可以使這種攻擊的影響最小化。
內部人員攻擊
很多數據庫攻擊源自企業內部。當前的經濟環境和有關的裁員方法都有可能引起僱員的不滿,從而導致內部人員攻擊的增加。這些內部人員受到貪慾或報復欲的驅使,且不受防火牆及入侵防禦系統等的影響,容易給企業帶來風險。
錯誤配置
黑客可以使用數據庫的錯誤配置控制“肉機”訪問點,藉以繞過認證方法並訪問敏感信息。這種配置缺陷成為攻擊者藉助特權提升發動某些攻擊的主要手段。如果沒有正確的重新設置數據庫的默認配置,非特權用户就有可能訪問未加密的文件,未打補丁的漏洞就有可能導致非授權用户訪問敏感數據。
未打補丁的漏洞
如今攻擊已經從公開的漏洞利用發展到更精細的方法,並敢於挑戰傳統的入侵檢測機制。漏洞利用的腳本在數據庫補丁發佈的幾小時內就可以被髮到網上。當即就可以使用的漏洞利用代碼,再加上幾十天的補丁週期(在多數企業中如此),實質上幾乎把數據庫的大門完全打開了。
高級持續威脅
之所以稱其為高級持續性威脅,是因為實施這種威脅的是有組織的專業公司或政府機構,它們掌握了威脅數據庫安全的大量技術和技巧,而且是“咬定青山不放鬆”“立根原在"金錢(有資金支持)"中”,“千磨萬擊還堅勁,任爾東西南北風”。這是一種正甚囂塵上的風險:熱衷於竊取數據的公司甚至外國政府專門竊取存儲在數據庫中的大量關鍵數據,不再滿足於獲得一些簡單的數據。特別是一些個人的私密及金融信息,一旦失竊,這些數據記錄就可以在信息黑市上銷售或使用,並被其它政府機構操縱。鑑於數據庫攻擊涉及到成千上萬甚至上百萬的記錄,所以其日益增長和普遍。通過鎖定數據庫漏洞並密切監視對關鍵數據存儲的訪問,數據庫的專家們可以及時發現並阻止這些攻擊。

數據庫安全UNIX 系統管理員

指定一位系統的UNIX系統管理員。此人員的職務是管理UNIX環境,包括使用者、應用程序、檔案系統及裝置。使用者的管理注重在建立適當安全性的使用者賬號上,及定期去除不再使用的賬號。UNIX系統管理員通常必須負責維持根密碼(root password)的安全性。UNIX系統管理員必須負責執行企業的安全政策(security policy)及5300系統上的標準 [3] 
參考資料
  • 1.    宋志敏, 南相浩, 唐禮勇, et al. 數據庫安全的研究與進展[J]. 計算機工程與應用, 2001, 27(1):85-87.
  • 2.    朱良根, 雷振甲, 張玉清. 數據庫安全技術研究[J]. 計算機應用研究, 2004, 21(9):127-129.
  • 3.    吳溥峯, 張玉清. 數據庫安全綜述[J]. 計算機工程, 2006, 32(12):85-88.