編輯手記:最近很多朋友會(huì)問(wèn)關(guān)于數(shù)據(jù)庫(kù)用戶授權(quán)的問(wèn)題,,經(jīng)常問(wèn)這樣的問(wèn)題,,我能不能直接給用戶DBA的角色,多方便,。恩,,方便是方便了,惡意操作和誤操作也方便了,。今天再苦口婆心告訴你,,過(guò)度授權(quán)有哪些風(fēng)險(xiǎn)。 過(guò)度授權(quán)的風(fēng)險(xiǎn) 從安全角度考慮,,數(shù)據(jù)庫(kù)的授權(quán)應(yīng)當(dāng)遵循最小權(quán)限授予法,,即僅授予滿足用戶需要的最小權(quán)限。這是因?yàn)樵跀?shù)據(jù)庫(kù)中,,如果進(jìn)行了不當(dāng)授權(quán),,則可能為數(shù)據(jù)庫(kù)帶來(lái)安全風(fēng)險(xiǎn)。 在數(shù)據(jù)庫(kù)中,,EXECUTE/CREATE ANY PROCEDURE都是非常重要的權(quán)限,,如果被授予普通用戶,則可能為數(shù)據(jù)庫(kù)帶來(lái)安全風(fēng)險(xiǎn),。 以下是在Oracle Database 8.1.7中的測(cè)試,,首先創(chuàng)建了兩個(gè)測(cè)試用戶: 當(dāng)使用測(cè)試用戶連接后,EXECUTE ANY PROCEDURE的權(quán)限使用戶具有了訪問(wèn)和執(zhí)行dbms_sys_sql包的權(quán)限,,這個(gè)Package可以被用戶利用來(lái)獲得更高的權(quán)限: 通過(guò)如下一段代碼,,Hacker用戶就可以很多DDL語(yǔ)句,,諸如修改其他用戶的口令,對(duì)自我進(jìn)行授權(quán)等: 通過(guò)DBMS_SYS_SQL.parse_as_user,,hacker可以在數(shù)據(jù)庫(kù)內(nèi)任意為非作歹了,。用戶loser的口令已被更改: 在Oracle 9i中,如果用戶具有EXECUTE/CREATE ANY PROCEDURE的權(quán)限,,則同樣用戶可以做出很多跨越常規(guī)的授權(quán): 現(xiàn)在CREATE ANY PROCEDURE的權(quán)限可以使用戶創(chuàng)建任何過(guò)程: 現(xiàn)在EXECUTE ANY PROCEDURE的權(quán)限,可以使用戶執(zhí)行創(chuàng)建的過(guò)程,,進(jìn)行跨越職權(quán)的授權(quán):
檢查一下當(dāng)前用戶具有的權(quán)限: 重新連接會(huì)激活角色授權(quán),,可以注意到用戶已經(jīng)具備了DBA的職權(quán):
雖然在不同的版本中,Oracle一直在強(qiáng)化其安全管理,,但是仍然需要我們小心謹(jǐn)慎的管理數(shù)據(jù)庫(kù)權(quán)限,,確保數(shù)據(jù)庫(kù)安全。 如何加入"云和恩墨大講堂"微信群 |
|
來(lái)自: 數(shù)據(jù)和云 > 《待分類(lèi)》