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