自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Zookeeper權(quán)限訪問控制簡介及實操

安全 漏洞
近日在某項目部署實施過程中,進行了線上漏洞掃描后,在出具的漏掃報告中存在一個需修復(fù)項“Zookeeper 未授權(quán)訪問”。通過查詢了解,得知需通過添加身份認證的方式來解決該修復(fù)項,在修復(fù)、驗證以及后續(xù)應(yīng)用上線的過程中,碰到了系列問題,特作記錄分享。

近日在某項目部署實施過程中,進行了線上漏洞掃描后,在出具的漏掃報告中存在一個需修復(fù)項“Zookeeper 未授權(quán)訪問”。通過查詢了解,得知需通過添加身份認證的方式來解決該修復(fù)項,在修復(fù)、驗證以及后續(xù)應(yīng)用上線的過程中,碰到了系列問題,特作記錄分享。

一、 問題介紹

Zookeeper是分布式協(xié)同管理工具,常用來管理系統(tǒng)配置信息,提供分布式協(xié)同服務(wù)。Zookeeper以樹狀結(jié)構(gòu)保存數(shù)據(jù),znode是Zookeeper的基本單元,可以存放數(shù)據(jù)信息、版本信息等等。如下圖,/是Zookeeper的根節(jié)點,A、B、C和D均為znode。

Zookeeper這樣的樹狀結(jié)構(gòu),在默認情況下,只需要提供Zookeeper服務(wù)端的IP和Port信息,任何用戶或者客戶端都可以直接連接服務(wù)端,不需要任何額外的認證,就擁有對znode增、刪、改、查、管理等操作權(quán)限。這樣的訪問方式是非常不安全,比較容易受到攻擊和數(shù)據(jù)的篡改。

二、 Zookeeper使用ACL進行訪問控制

鑒于存在這樣的安全隱患,Zookeeper通過ACL(Access Control List)的機制來解決這個問題。當(dāng)客戶端連接到Zookeeper并且做認證的時候,Zookeeper驗證所有從連接的服務(wù)端收集到的id,當(dāng)服務(wù)端試圖訪問不同的znode節(jié)點時,將通過ACL來做驗證。

ACL是由(scheme:expression, perms)對構(gòu)成,expression的格式為如下內(nèi)置schemes:

a. world 有一個特定的的id, anyone,代表所有人。

b. auth 不使用任何id,代表任何已認證的用戶。

c. digest 用 username:password 字符串來產(chǎn)生一個MD5串,然后該串被用來作為ACL ID。認證是通過明文發(fā)送username:password 來進行的,當(dāng)用在ACL時,表達式為username:base64 ,base64是password的SHA1摘要的編碼。

d. ip 使用客戶端的主機IP作為ACL ID 。

Perms的格式為如下操作權(quán)限:

a. CREATE:可以創(chuàng)建子節(jié)點,縮寫為C;

b. DELETE:可以獲取節(jié)點下的數(shù)據(jù)以及目錄下的列表,縮寫為D;

c. WRITE:可以在節(jié)點中寫入數(shù)據(jù),縮寫為W;

d. DELETE:可以刪除子節(jié)點,縮寫為D:

e. ADMIN:可以設(shè)置權(quán)限,縮寫為A;

這里有一點需要注意的是,ACL只適用于當(dāng)前節(jié)點,它是非遞歸的,而且是不可遞歸的。比如/aaa節(jié)點對用戶aaa只讀,但是/aaa/bbb節(jié)點,對所有用戶來說是world的認證方式。

三、 Zookeeper權(quán)限配置

通過文檔了解后,擬嘗試使用digest的認證方式作為漏洞的修復(fù)手段。

首先登錄Zookeeper控制臺,如下圖所示:

獲取當(dāng)前目錄權(quán)限:

由于該服務(wù)器是已修復(fù)的,因此顯示的是digest認證的信息。

重新在根目錄下創(chuàng)建目錄:

從這個步驟可以看出,ACL的認證是非遞歸的,即使根目錄的權(quán)限是digest,創(chuàng)建的子目錄權(quán)限仍然是world。

下圖通過setAcl的命令來設(shè)置新目錄的權(quán)限,并且查看是生效的。

當(dāng)?shù)卿浐笪词褂胐igster認證時,就會提示權(quán)限不足。

四、 應(yīng)用調(diào)用修改

既然提供服務(wù)的Zookeeper增加了認證,那么調(diào)用的java程序也是需要進行同步修改的。

按公司應(yīng)用的結(jié)構(gòu),只需要添加對應(yīng)配置即可。

另外在調(diào)試過程中發(fā)現(xiàn),公司使用的第三方j(luò)ar包zkclient.jar的版本是0.1,是不支持ACL的,需更換成高版本2.0即可。

作者介紹

陳旭,資深應(yīng)用維護工程師,畢業(yè)于浙江大學(xué)軟件工程學(xué)院,通過ITIL認證。先后在互聯(lián)網(wǎng)創(chuàng)業(yè)公司、地方電子口岸任職。主要負責(zé)中間件運維和自動化運維工具研發(fā),致力于提升運維服務(wù)的規(guī)范性和應(yīng)用服務(wù)的高可用性。

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2019-10-25 17:00:17

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技術(shù)周刊

2010-04-29 11:26:52

2022-09-02 08:33:23

ZooKeeper分布式

2010-04-13 16:30:13

Oracle權(quán)限

2010-05-14 18:16:44

MySQL統(tǒng)計函數(shù)

2010-04-14 11:22:12

Oracle同時訪問

2019-02-25 17:42:43

TCP協(xié)議狀態(tài)轉(zhuǎn)換

2011-09-01 10:33:38

數(shù)據(jù)控制語言DCL語句操作權(quán)限

2015-08-31 11:00:10

SPECvirt 云測試虛擬化

2021-04-02 08:02:10

Gin集成Casbin開源

2010-01-06 10:38:16

Linux安裝JDK

2010-04-12 09:36:29

Oacle merge

2010-05-17 15:34:30

MySql數(shù)據(jù)庫

2019-07-31 08:11:46

ACL訪問控制列表網(wǎng)絡(luò)通信

2010-04-09 10:13:13

Oracle數(shù)據(jù)字典

2010-04-15 14:18:30

Oracle創(chuàng)建

2010-05-10 17:00:53

Oracle死鎖進程

2010-04-13 14:00:00

Oracle inse

2024-04-28 10:52:25

CentOS系統(tǒng)RHEL系統(tǒng)

2021-09-22 15:36:31

勒索軟件攻擊數(shù)據(jù)泄露
點贊
收藏

51CTO技術(shù)棧公眾號