資料庫安全漏洞淺析
資料庫漏洞的種類繁多和危害性嚴重是資料庫系統受到攻擊的主要原因,通過研究資料庫漏洞分類,有助於人們對漏洞的深入理解並加以預防和避免。
美國Verizon就“核心資料是如何丟失的”做過一次全面的市場調查,結果發現,75%的資料丟失情況是由於資料庫漏洞造成的,這說明資料庫的安全非常重要。
資料庫安全漏洞從來源上,大致可以分為四類:預設安裝漏洞、人為使用上的漏洞、資料庫設計缺陷、資料庫產品的bug。
1. 預設安裝漏洞
¨ 資料庫安裝後的預設使用者名稱和密碼
在主流資料庫中往往存在若干預設資料庫使用者,並且預設密碼都是公開的,攻擊者完全可以利用這些預設使用者登入資料庫。
例如,Oracle中有sys、system、sysman、scott等700多個預設使用者;MySQL本機的root使用者可以沒有口令;網路上主機名為build的root和使用者可以沒有口令。
¨ 資料庫安裝後的預設埠號
在主流資料庫中預設埠號是固定的,如Oracle是1521、SQL Server是1433、MySQL是3306等。
¨ 資料庫安裝後低安全級別設定
資料庫安裝後的預設設定,安全級別一般都較低。
如MySQL中本地使用者登入和遠端build主機登入不校驗使用者名稱密碼
如Oracle中不強制修改密碼、密碼的複雜度設定較低、不限定遠端連結範圍、通訊為明文等。
¨ 啟用不必要的資料庫功能
在資料庫的預設安裝中為了便於使用和學習,提供了過量的功能和配置。如Oracle安裝後無用的示例庫、有威脅的儲存過程; MySQL的自定義函式功能。
典型資料庫洩密案例:Korea會展中心資料庫被入侵
2011年5月,黑客入侵Korea會展中心資料庫,在網上爆出其中大量的客戶資料資料,並展示資料庫操操作過程。
黑客首先通過埠掃描技術,檢測出該伺服器上開放著1521埠(Oracle資料庫的預設埠),首先探明該主機便是資料庫伺服器。接著利用掃描程式,檢測到預設系統使用者dbsnmp並未被鎖定,且保留著資料庫安裝時的預設密碼。
之後黑客利用許可權提升的漏洞,將dbsnmp使用者的許可權提升至DBA,開始了資料庫訪問之旅。
2. 人為使用漏洞
¨ 過於寬泛的許可權授予
在很多系統維護中,資料庫管理員並未細緻地按照最小授權原則給予資料庫使用者授權,而是根據最為方便的原則給予了較為寬泛的授權。
例如,一個普通的資料庫維護人員被授予了任意表的建立和刪除、訪問許可權,甚至是給予DBA角色;
例如,一個大學管理員在工作中只需要能夠更改學生的聯絡資訊,不過他可能會利用過高的資料庫更新許可權來更改分數。
¨ 口令複雜度不高
弱口令:非預設的資料庫口令也是不安全的,通過暴力破解,攻擊者不斷地輸入使用者名稱和密碼組合,直到找到可以登入的一組。暴力過程可能是靠猜想,也可能是系統地列舉可能的使用者名稱/密碼組合。通常,攻擊者會使用自動化程式來加快暴力過程的速度。口令破解的工具有很多,並且通過Google搜尋或sectools.org等站點就可以輕易地獲得,這樣就會連線到Cain、Abel或John the Ripper等流行的工具。
密碼曝光:一些公眾許可權的儲存過程、表的呼叫會導致密碼曝光。例如,通過執行公眾許可權的儲存過程msdb.dbo.sp_get_sqlagent_properties可以獲得SQL Agent密碼;通過查詢公眾許可權的表RTblDBMProps可檢視DTS密碼;Microsoft SQL Server允許本地使用者通過資料轉換服務(DTS)包屬性對話方塊獲得資料庫密碼。
例如,Oracle 10.1及早期版本,sysman使用者的密碼明文儲存在emoms.properties中,10.2後,雖加密儲存,但金鑰也存在該檔案中,且用DES演算法,很容易解密。
因此建議管理員細緻地按照最小授權原則給予資料庫使用者授權;資料庫使用者口令長度應大於等於10,並且應該包括字母和數字,應該通過一個口令檢驗函式來實施這一點。
3. 資料庫設計缺陷
¨ 明文儲存引起的資料洩密
在當前的主流資料庫中,資料以明文形式放置在儲存裝置中,儲存裝置的丟失將引起資料洩密風險。
資料庫資料檔案在作業系統中以明文形式存在,非法使用者可以通過網路、作業系統接觸到這些檔案,從而導致資料洩密風險。
通過UE這樣的文字工具即可得到部分明文的資訊,通過DUL/MyDUL這樣的工具能夠完全實現將資料檔案格式化匯出。
典型資料庫洩密案例:7天酒店資料庫被盜
會員人數超過1650萬,酒店總數逼近600家,在美國紐約證券交易所上市的7天連鎖酒店集團無疑是國內經濟型連鎖酒店集團的龍頭企業之一,但更多人所不知道的是,從去年開始,7天酒店在國內黑客圈中成了“明星”。
黑客通過“刷庫”直接盜走整個資料庫資料。即黑客利用企業網站存在的漏洞入侵資料庫伺服器,直接將整個資料庫檔案拷貝,通過DUL/MyDUL這種類似的工具將所有二進位制方式儲存的資料還原成清晰地格式化資料。
¨ SYSDBA、DBA等超級使用者的存在
在資料庫中,以sys和sa為代表的系統管理員,可以訪問到任何資料;除了系統管理員,以使用者資料分析人員、程式設計師、開發方維護人員為代表的特權使用者,在特殊的時候,也需要訪問到敏感資料,從而獲得了許可權。這些都為資料的洩密留下了極大的隱患。
例如,掌握特權使用者口令的維護人員,進入了CRM系統,只需具有對資料庫的只讀性訪問許可權,這樣,這個使用者就可以訪問讀取資料庫內的任何表,包括信用卡資訊、個人資訊。
¨ 無法鑑別應用程式的訪問是否合法
對於合法的資料庫使用者,通過合法的業務系統訪問資料是正常的行為,但是資料庫的一個缺陷在於,無法鑑別應用程式的合法性。
在現實系統維護或開發過程中,應用系統後臺使用的合法資料庫使用者,常由於人為因素或管理不善,使用者名稱及口令很容易洩露給第三方,第三方則可以通過命令列或管理工具直接訪問密文資料,批量竊取資料。
典型資料庫洩密案例:陝西移動1400萬手機使用者個人資訊洩漏
今年3月以來,周雙成利用職務之便,多次侵入陝西移動使用者資料庫,盜取手機使用者個人資訊,販賣給偵探公司。
周雙成利用工作之便,能在研發和維護系統過程中獲知資料庫口令,資料庫口令洩漏後,完全可以繞開合法的業務系統,直接使用該使用者通過其他程式(自己編寫的木馬程式)定期訪問資料庫,進而竊取資料庫中的客戶隱私資訊。
4. 資料庫產品bug
¨ 緩衝區溢位
這類漏洞是由於不嚴謹的編碼,使資料庫核心中存在對於過長的連線串、函式引數、SQL語句、返回資料不能嚴謹的處理,造成程式碼段被覆蓋。
通過覆蓋的程式碼段,黑客可以對資料庫伺服器進行各種操作,最常見的是使資料庫崩潰,引起拒絕服務。
例如,SQL Server中利用緩衝區溢位,攻擊者可以通過以下函式或儲存過程執行任意程式碼:RAISERROR、FORMATMESSAGE、xp_sprintf、 sp_Mscopyscriptfile、xp_sqlinventory、xp_sqlagent_monitor、sp_OACreate、sp_OAMethod、sp_OAGetProperty、sp_OASetProperty、sp_OADestroy;另外,xp_peekqueue、xp_displayparamstmt、xp_execresultset等40多個函式或擴充套件儲存過程也存在緩衝區溢位。
¨ 拒絕服務攻擊漏洞
資料庫中存在多種漏洞,可以導致服務拒絕訪問,如命名管道拒絕服務、拒絕登入、RPC請求拒絕服務等。
例如Microsoft SQL 7.0服務允許一個遠端攻擊者通過不正確格式的TDS資料包引起拒絕服務;本地或遠端使用者通過向命名管道傳送一個長請求引發拒絕服務。
例如MySQL中Data_format()函式在處理使用者提交的引數時存在漏洞,畸形的引數資料會導致MySQL伺服器崩潰。
¨ 許可權提升漏洞
黑客攻擊者可以利用資料庫平臺軟體的漏洞將普通使用者的許可權轉換為管理員許可權。漏洞可以在儲存過程、內建函式、協議實現甚至是SQL語句中找到。
例如,Oracle中一系列系統物件如PL/SQL包,預設賦予了Public角色的執行許可權,藉助這些包執行注入了” grant dba to user”的函式或過程,或直接作為引數執行即可。有PUBLIC執行許可權的包共計30多個,例如:ctxsys.driload.validate_stmt()將grant語句作為引數即可完成許可權提升。
例如,在SQL Server中,通過Job輸出檔案覆蓋,沒有許可權的使用者可以建立job並通過SQL Server代理的許可權提升執行該job。
例如,一個金融機構的軟體開發人員可以利用有漏洞的函式來獲得資料庫管理許可權。使用管理許可權,惡意的開發人員可以禁用審計機制、開設偽造的賬戶以及轉賬。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25496391/viewspace-742211/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺析NewSQL資料庫——TiDBSQL資料庫TiDB
- 資料庫的讀現象淺析資料庫
- 淺析列式資料庫的特點NR資料庫
- 淺析圖資料庫 Nebula Graph 資料匯入工具——Spark Writer資料庫Spark
- LLM大模型向量資料庫技術架構淺析大模型資料庫架構
- 淺析雲資料庫配置錯誤的危險性資料庫
- 淺析大資料框架 Hadoop大資料框架Hadoop
- 資料安全運營淺析
- 國產資料庫達夢資料庫(DM7)例項初始化引數淺析資料庫
- 淺析Beautiful Soup庫和Lxml庫XML
- 淺析Redis基礎資料結構Redis資料結構
- 淺析vue的雙向資料繫結Vue
- 淺析證券行業資料庫基礎平臺創新實踐行業資料庫
- 淺談圖資料庫資料庫
- 淺析大資料 學習大資料後能做什麼大資料
- 淺析HTTP資料接收不同步攻擊HTTP
- 淺析大資料研究常用的軟體工具大資料
- MapReduce資料序列化讀寫概念淺析!
- 淺談資料庫事務資料庫
- web應用常見7大安全漏洞,淺析產生的原因!Web
- Netty 中的記憶體分配淺析-資料容器Netty記憶體
- ClickHouse OLAP大資料資料庫系統發現多個安全漏洞大資料資料庫
- iOS Block淺淺析iOSBloC
- 淺析大資料時代的資料安全合規體系建設大資料
- 淺析pplx庫的設計與實現。
- 優秀開源庫SDWebImage原始碼淺析Web原始碼
- Android NDK祕籍--淺析靜態庫和動態庫Android
- 淺析RedisRedis
- Jvm 淺析JVM
- CGLib淺析CGLib
- 淺析XMLXML
- MongoDB淺析MongoDB
- 淺析 JWTJWT
- 淺析 DDD
- RunLoop 淺析OOP
- 淺析 ReentrantLockReentrantLock
- Unstated淺析
- 淺析SharedPreferences
- Nginx淺析Nginx