少妇尝试黑人粗吊受不了,久久精品免费久精品蜜桃,男受被做哭激烈娇喘gv视频,扒开女人狂c操

?
內(nèi)容中心
按關(guān)鍵字查找
ORACLE 12C 安全隱患系列(一)
作者:思成 發(fā)布時間:2017-03-15

從三月開始,安華金和安全實(shí)驗(yàn)室會陸續(xù)推出系列文章,專門以O(shè)racle數(shù)據(jù)庫為研究對象,展開安全隱患的分析研究,為大家?guī)戆踩婪督ㄗh,幫助大家做好數(shù)據(jù)庫安全防護(hù)。本期推出ORACLE 12C 安全隱患系列(一),如果您或您的團(tuán)隊(duì)正在使用Oracle12C,或打算使用Oracle12C,請一定按照本文思路對用戶的inherit privileges權(quán)限進(jìn)行合理分配,杜絕安全隱患。

摘要

在12.1之后的Oracle版本中引入了一個和安全相關(guān)的權(quán)限—INHERIT PRIVILEGES。這個權(quán)限可以賦予用戶或角色。喜的是,Oracle引入這個權(quán)限的目標(biāo)是解決調(diào)用者權(quán)限可能造成的安全隱患。然而悲的是,在12.1的默認(rèn)配置下,INHERIT PRIVILEGES并不會起到提高安全性的作用。只有用戶重新配置INHERIT PRIVILEGES才能真正達(dá)到Oracle設(shè)計(jì)INHERIT PRIVILEGES提高安全性目的。

要弄清楚如何正確配置INHERIT PRIVILEGES,首先要搞清楚三個問題:1.調(diào)用者方式的安全隱患。2. INHERIT PRIVILEGES是如何工作的?3. INHERIT PRIVILEGES應(yīng)該如何配置?

調(diào)用者方式-存在安全隱患

Oracle函數(shù)、存儲過程的創(chuàng)建不同于其他數(shù)據(jù)庫,可以采取兩種截然不同的方式建立。一種是定義者權(quán)限(Definer’s right),一種是調(diào)用者權(quán)限(Invoker’s right)。調(diào)用者權(quán)限創(chuàng)建的函數(shù)或存儲過程,在創(chuàng)建過程中不會判斷創(chuàng)建者是否擁有對存儲過程或函數(shù)中調(diào)用的表、視圖和對象的執(zhí)行權(quán)限。簡單地說,就是調(diào)用者方式允許低權(quán)限用戶在函數(shù)或存儲過程中使用超越自身的權(quán)限。允許超越自身權(quán)限帶來了便利,也同時給數(shù)據(jù)庫帶來非法提權(quán)、非法操作、非法獲取敏感信息等一系列安全隱患。

為了講清楚隱患,這里舉一個例子:有一個低權(quán)限用戶hacker_user,他只有創(chuàng)建存儲過程和會話權(quán)限。

01.png

hacker_user使用調(diào)用者權(quán)限創(chuàng)建了函數(shù) add_number。并把a(bǔ)dd_number的執(zhí)行權(quán)限賦予全體,讓所有用戶都可以通過hacker_user. add_number的方式調(diào)用該函數(shù)。

02.jpg

至此無論是有DBA權(quán)限的dba_user還是只有會話權(quán)限的normal_user都可以使用hacker_user. add_number完成運(yùn)算任務(wù)。

03.png

當(dāng)hacker_user. add_number得到其他用戶充分信任后,hacker_user動了提升自己權(quán)限的心思。于是hacker_user首先使用調(diào)用者方式創(chuàng)建一個用于提權(quán)的存儲過程(change_me_dba)。由于使用的是調(diào)用者方式,即使“GRANT DBA TO hacker_user這種高危語句被嵌入其中,存儲過程也能順利創(chuàng)建。

04.png

接著hacker_user再偷偷對add_number進(jìn)行修改,在add_number中調(diào)用change_me_dba.

05.png

hacker_user整個布局完成后,就靜靜等著其他用戶像以往一樣調(diào)用hacker_user. add_number。這種攻擊的方式不僅難以防護(hù),還難以被察覺。低權(quán)限用戶使用hacker_user. add_number,依然會正常運(yùn)算,同時也不會出現(xiàn)任何報錯信息。例如用normal_user調(diào)用hacker_user. add_number 正確運(yùn)算,且無報錯,如果不去檢查hacker_user. add_number的源碼會很難發(fā)現(xiàn),實(shí)際上hacker_user在私下已經(jīng)偷偷對hacker_user. add_number動了手腳。

06.png

由于無異常、不報錯,被hacker_user修改后的add_number能安全地潛伏在數(shù)據(jù)庫中。等到類似dba_user這樣的DBA用戶調(diào)用hacker_user. add_number后,它會神不知鬼不覺地進(jìn)行提權(quán)。

07.png

同樣地,即便是有DBA權(quán)限的dba_user調(diào)用也不會有任何異常。除非查詢dba_role_privs,才會抓到hacker_user的“狐貍尾巴”。

08.png

但分析如何提權(quán),必須對所有hacker_user中的內(nèi)容進(jìn)行分析,因?yàn)榘l(fā)現(xiàn)問題的時候hacker_user很可能早就把a(bǔ)dd_number改了回去,把change_me_dba做了刪除,做到毀尸滅跡,以防止安全人員找到提權(quán)手法后,進(jìn)行針對性封堵。

INHERIT PRIVILEGES的機(jī)制

Oracle12.1為了解決上述問題,引入了inherit privileges和inherit any privileges 這兩組權(quán)限,用以限制用戶訪問其他用戶,使用調(diào)用者權(quán)限創(chuàng)建的函數(shù)或存儲過程。在12.1上正確配置權(quán)限后用dba_user調(diào)用add_number,不僅不會執(zhí)行,且會出現(xiàn)ORA-06598錯誤,用以防止低權(quán)限用戶借用高權(quán)限進(jìn)行非法操作。

09.png

inherit privileges通過GRANT和REVOKE進(jìn)行賦權(quán)或取消賦權(quán)。invoking_user(dba_user)只把自己的inherit privileges賦予自己信任的procedure_owner(hacker_user)中,防止調(diào)用不安全的存儲過程或函數(shù)。

GRANT INHERIT PRIVILEGES ON USER  invoking_user  TO  procedure_owner;    
REVOKE INHERIT PRIVILEGES ON USER  invoking_user  FROM  procedure_owner;

引入inherit privileges原本可以很好地解決低權(quán)限用戶利用調(diào)用者方式,騙取高權(quán)限的問題。但Oracle12.1默認(rèn)對inherit privileges權(quán)限的賦予存在一定的問題。12.1在創(chuàng)建新用戶或升級到12.1后對老用戶都自動做了GRANT INHERIT PRIVILEGES ON USER USERNAME TO PUBLIC 的操作,使得inherit privileges的限制直接作廢。默認(rèn)狀態(tài)下hacker_user依然可以用上述手段完成提權(quán)操作。

10.png

好的解決方法也需要合理的配置。如果配置不當(dāng),安全將成為一句空話。inherit privileges權(quán)限的辦法是好的,但不科學(xué)的默認(rèn)配置毀了這一切。

INHERIT PRIVILEGES的合理配置

默認(rèn)任何用戶都把inherit privileges賦予PUBLIC的行為,很大程度是從兼容性的角度考慮的。雖然達(dá)到了兼容的目的,但卻破壞了安全的效果,而且很可能給后來者留下錯誤使用inherit privileges的范例??偨Y(jié)下來,inherit privileges合理配置應(yīng)該遵循兩點(diǎn):1.用戶只給可信且必要的存儲過程和函數(shù)的用戶賦予inherit privileges;2.DBA用戶不要給任何用戶inherit privileges 權(quán)限,防止出現(xiàn)低權(quán)限用戶被破解后利用調(diào)用者權(quán)限竊取DBA權(quán)限,實(shí)施非法行為。

針對上述兩個要點(diǎn),我們首先檢查當(dāng)前數(shù)據(jù)庫DBA用戶有SYSTEM、SYS和DBA_USER.

11.png

下一步再檢查這些DBA用戶是否已經(jīng)給其他用戶inherit privileges,如果存在請進(jìn)行回收,否則可能造成安全隱患。

12.png

dba_user用戶inherit privileges權(quán)限賦予public,回收該權(quán)限。否則,還可能出現(xiàn)DBA用戶誤使用有風(fēng)險的函數(shù)或存儲過程的現(xiàn)象。

13.png

對每一個DBA使用類似檢查,修改DBA默認(rèn)的賦權(quán)對象,再按照實(shí)際需求把用戶的inherit privileges權(quán)限賦予必要用戶。如此,既不影響用戶使用,又在一定程度上避免安全隱患。

當(dāng)然如果您不愿意手動進(jìn)行上述檢查和部署,可以通過安華金和的漏掃產(chǎn)品DBScan,進(jìn)行針對性的專項(xiàng)檢查,并根據(jù)您的配置方案進(jìn)行權(quán)限的自動部署。

結(jié)論

Inherit privileges的出現(xiàn)說明Oracle對于安全問題已經(jīng)越來越重視。但百密終有一疏,在默認(rèn)情況下,新功能Inherit privileges形同虛設(shè),并不能起到加強(qiáng)數(shù)據(jù)庫安全的效果。如果您或您的團(tuán)隊(duì)正在使用Oracle12C,或打算使用Oracle12C,請一定按照本文思路對用戶的inherit privileges權(quán)限進(jìn)行合理分配,杜絕安全隱患。


?
欧美色亚洲一区二区三区| 久久久久久久久久久毛片| 黄片中文字幕在线免费看| 国产91精品久久久天天| 午夜精品一区二区三区在视| 黄色视频插进去| 熟女一区二区| 久久综久久美利坚合众国| 中年少妇无套内谢很舒服| 久久精品亚洲中文字幕坂雪| 亚洲狠狠av一区二区三区| 骚片试看视频的| 男人的鸡巴叉入女人逼里| 天天操天天操天天操天天| 九幺短视频软件安装免费| 怎么看男的是不是老司机| 御书房双乳晃动干柴烈| 久久精品女人Aⅴ综合免| 女生被操到不要不要视频| 夜夜爽夜夜叫夜夜高潮漏水| 国产高清十八禁视频网站| 特一级熟女毛片免费观看| 一本色道88久久亚洲精品| 在线播放国产精品三级网| 精品国产自在久国产应用| 欧美一区二区高清无92| 日韩 亚洲 欧美 精品| 星空无限MV国产剧梁佳| 一个人看xxx视频大全| 青娱乐AV在线免费观看| 漫画韩漫画免费在线观看| 真人无码作爱免费视频,| 大鸡吧抽插的999视频| 日本肥老太成熟| 色欲AV在线中文字网站| 啪啪啪网站小粉白虎嫩逼| 欧美日韩精品人妻二区三区| 曰韩无码无遮挡A级毛片| 久久精品中文字幕第一页| 人与动另类z0z0欧美| 啊插我射到里面在线视频|