保護數(shù)據(jù)庫不是一件容易的事情,很多企業(yè),包括數(shù)據(jù)庫管理員在內(nèi),都存在僥幸心理,但黑客針對數(shù)據(jù)庫本身存在的缺陷很容易得逞,本文是Appsec的安全團隊公布的10個最常見的數(shù)據(jù)庫缺陷,黑客經(jīng)常利用它們發(fā)起攻擊并得手,你,該引起注意了。
1、默認,空白和弱用戶名/密碼
如果你管理著數(shù)百甚至數(shù)千個數(shù)據(jù)庫,要跟蹤是否在使用默認,空白和弱用戶名/密碼是一個艱巨的任務(wù),但消除默認,空白和弱用戶名/密碼是保護數(shù)據(jù)庫的第一步,黑客會利用工具遍歷這些用戶名和密碼,而且最恐懼的是連最初級的黑客也能黑掉你。
2、SQL注入
當你的數(shù)據(jù)庫對提交的SQL語句未做消毒處理,黑客可以利用URL構(gòu)造SQL注入代碼,暴露你的數(shù)據(jù)庫結(jié)構(gòu),甚至直接查詢出用戶登錄憑據(jù)信息,進而有機會進行權(quán)限提升,雖然大多數(shù)數(shù)據(jù)庫廠商都發(fā)布了相關(guān)補丁來防止SQL注入,但如果你的數(shù)據(jù)庫剛好忘記打補丁,那它已經(jīng)不屬于你了。
3、用戶和組權(quán)限分配不當
在給用戶和組分配權(quán)限,要確保分配適當,應(yīng)按照最小特權(quán)原則進行分配,并應(yīng)該遵循“權(quán)限–>角色(或組)–>用戶”逐級分配的原則,避免直接將權(quán)限分配給用戶,那樣會增加管理難度。
4、開啟不必要的數(shù)據(jù)庫功能
數(shù)據(jù)庫安裝好后許多功能都是開啟的,但一般來說,我們只會使用其中一小部分功能,如果你禁用或卸載那些不會使用的功能,將會增加數(shù)據(jù)庫被攻擊的攻擊面,禁用或卸載它們不禁減少了零日攻擊風險,也簡化了補丁管理,當這些功能需要打補丁時,你才不會限于慌亂。
5、殘缺的配置管理
數(shù)據(jù)庫給管理員提供了大量的配置參數(shù),有調(diào)整性能的,有增強功能的,但有些配置從安全角度來看是需要小心處理的,特別是很多默認配置就不安全,還有就是數(shù)據(jù)庫官員為了圖省事,喜歡走捷徑,如將SQL Server數(shù)據(jù)庫的sa用戶開放給開發(fā)人員使用。
6、緩沖區(qū)溢出
緩沖區(qū)溢出是黑客最喜歡干的事情,什么是緩沖區(qū)溢出呢,說直白一點就是,數(shù)據(jù)庫能接收100個輸入字符,但黑客傳入了200或更多字符,造成數(shù)據(jù)庫處理不了,但又缺乏保護機制,這個時候就會造成緩沖區(qū)溢出,我們平常給數(shù)據(jù)庫打的補丁大部分都是修復這種漏洞的,因此不要忘了給你的數(shù)據(jù)庫打上最新的補丁。
7、權(quán)限提升
這也是黑客最喜歡干的事情,當他們獲得一個低特權(quán)的用戶控制權(quán)時,就會想方設(shè)法提升賬號的權(quán)限,終極目標就是獲得管理員權(quán)限,一個常見的招數(shù)就是嘗試執(zhí)行屬于sysdba的函數(shù),因此保護好管理員所屬的函數(shù)和存儲過程非常重要,最好是逐個檢查它們的權(quán)限分配情況,不要輕易將它們分配給普通用戶。
8、拒絕服務(wù)攻擊
SQL Slammer曾經(jīng)讓無數(shù)企業(yè)和數(shù)據(jù)庫管理員頭大,讓人們意識到原來數(shù)據(jù)庫漏洞也可以被用來發(fā)起洪水流量攻擊,雖然SQL Slammer是在2003出現(xiàn)的,并且數(shù)據(jù)庫廠商早已推出了相關(guān)的補丁,但時至今日,仍然有大量的SQL Server數(shù)據(jù)庫未打補丁。
9、未打補丁的數(shù)據(jù)庫
我想你一定覺得我有點羅嗦了,但我覺得值得再重復提一次,許多數(shù)據(jù)庫管理員都未及時給數(shù)據(jù)庫打補丁,因為他們害怕執(zhí)行這個操作,擔心打補丁把數(shù)據(jù)庫弄壞了,雖然這種擔心很正常,但也不應(yīng)該作為借口,再說,現(xiàn)在數(shù)據(jù)庫廠商在發(fā)布補丁前都會經(jīng)過嚴格的測試的,如果你實在擔心害怕,可以在實驗環(huán)境中測試一下再應(yīng)用到生產(chǎn)環(huán)境。
10、未加密的敏感數(shù)據(jù)
不管你的安全措施做得有多到位,都不要在數(shù)據(jù)庫中以明文形式存儲敏感數(shù)據(jù),此外,所有數(shù)據(jù)庫連接都應(yīng)該全部加密。