《UDB MongoDB 0day 零漏洞,讓人放心的 UCloud NoSQL服務(wù)》要點:
本文介紹了UDB MongoDB 0day 零漏洞,讓人放心的 UCloud NoSQL服務(wù),希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:非關(guān)系型數(shù)據(jù)庫
近期,大批量的MongoDB實例因為配置漏洞遭遇了攻擊,黑客無需身份認證即可登錄MongoDB實例,從而刪除了大量數(shù)據(jù),并勒索受害者支付贖金才能要回自己的數(shù)據(jù).截止目前為止,被劫持的MongoDB實例已經(jīng)達到了一個驚人的數(shù)量.更加可惡的是,黑客在刪除完業(yè)務(wù)數(shù)據(jù)庫后,在里面的數(shù)據(jù)庫留下了這段嘲諷+敲詐的文章.UCloud君簡單翻譯了下:“你的數(shù)據(jù)庫可以通過公網(wǎng)IP免暗碼登陸,你tmd的是怎么想的?”嚇得UCloud君迅速針對這個漏洞去檢查了下自家的云MongoDB產(chǎn)品,確認并無遭受攻擊的風(fēng)險.
其實熟悉MongoDB的同學(xué)會不難發(fā)現(xiàn),漏洞原因非常簡單,而且由來已久.從根本上說,這其實是MongoDB在設(shè)計之初的一個小疏忽.MongoDB為了讓開發(fā)者能夠更快地上手使用,支持免去復(fù)雜的連接配置和鑒權(quán)方式的做法,默認情況下是無鑒權(quán)的,即免暗碼即可登陸.同樣的原理,其他類型的數(shù)據(jù)庫比如MySQL,只要配置了允許免暗碼公網(wǎng)IP訪問,同樣會存在遭遇攻擊的風(fēng)險.
通過調(diào)查,我們發(fā)現(xiàn)遭遇黑客攻擊的MongoDB實例必要同時具備以下兩個條件:
1 MongoDB實例免暗碼登陸
2 MongoDB實例開放了公網(wǎng)拜訪
通過上述的原因分析,一般都是以下兩種原因引發(fā)了悲劇:
1 MongoDB使用者平安意識不高(認為數(shù)據(jù)可有可無,并非關(guān)鍵性服務(wù))
2 MongoDB使用者的運維能力軟弱,根本沒想到這一點
1、建議您使用我們的UDB MongoDB,我們的云MongoDB產(chǎn)品文檔鏈接如下:
https://docs.ucloud.cn/database/udb-mongodb/index
2、對現(xiàn)有的云主機UHost自建MongoDB進行平安加固,步驟如下:
2.1 開啟暗碼認證方式訪問MongoDB(如果是副本集或mongos集群建議使用keyfile認證, UDB默認使用keyfile);
2.2 禁止通過公網(wǎng)IP拜訪MongoDB(即在配置文件中設(shè)置bind_ip為該云主機的內(nèi)網(wǎng)IP或127.0.0.1);
2.3 已經(jīng)使用鑒權(quán)的,建議將暗碼修改為足夠的復(fù)雜度,排除被暴力破解的可能
1、打通目標(biāo)庫和源庫之間的網(wǎng)絡(luò).這一步不做詳細討論,簡單地說,假如源庫自己就布置是在云服務(wù)商所在的云主機上,那么一般來說同一賬戶下的資源,網(wǎng)絡(luò)已經(jīng)是打通了的;假如是從其他IDC機房遷移到云MongoDB上,可以通過做一次代理的方式實現(xiàn)網(wǎng)絡(luò)互通.
2、建立源DB和目標(biāo)DB的副本集,以源庫作為主節(jié)點,目標(biāo)庫作為從節(jié)點,建立主從進行復(fù)制.這里還需要注意的是保證賬戶鑒權(quán)方式一致,即auth是否都關(guān)閉或者開啟,保證副本集名稱(replSet)一致,保證各節(jié)點使用的keyfile一致.三方面任何一個節(jié)點務(wù)必堅持一致,不然無法正常同步.假設(shè)源DB為三個節(jié)點的副本集,現(xiàn)在想遷移到云上,那么需要做成的副本集結(jié)構(gòu)圖如下:
3、待同步完成后,check從節(jié)點數(shù)據(jù)完整性后,將這幾個目標(biāo)DB的IP添加到副本集連接字符串URI中,重啟應(yīng)用層連接客戶端.
4、選擇云上的某個從節(jié)點作為主節(jié)點候選節(jié)點,提高它的選舉優(yōu)先級,人為觸發(fā)副本集的選舉過程(具體操作參加rs.reconfig()).這樣就可以將MongoDB云數(shù)據(jù)庫中的一個Secondary節(jié)點提升為新的Primary節(jié)點,提升完成后的布局圖如下:
5、確認業(yè)務(wù)正常,數(shù)據(jù)沒有問題后,將這幾個源DB的IP從副本集連接字符串URI中刪除,重啟應(yīng)用層連接客戶端.
6、登錄到MongoDB云數(shù)據(jù)庫的Primary節(jié)點中挨個刪除自建DB的數(shù)據(jù)節(jié)點,這樣就只保存了云數(shù)據(jù)庫的幾個節(jié)點.
7、遷移完畢.
以上過程可以平滑遷移到云數(shù)據(jù)庫上,其實在步驟3、步驟5還有一定的優(yōu)化空間,可以預(yù)先配置好URI,包含變更前URI、中間態(tài)URI和變更后URI,不同階段使用正確的URI配置文件,啟用或者關(guān)閉對應(yīng)的應(yīng)用層連接客戶端,這種策略可以縮短對業(yè)務(wù)的影響時間.
《UDB MongoDB 0day 零漏洞,讓人放心的 UCloud NoSQL服務(wù)》是否對您有啟發(fā),歡迎查看更多與《UDB MongoDB 0day 零漏洞,讓人放心的 UCloud NoSQL服務(wù)》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9592.html