安全動(dòng)態(tài)

一場(chǎng)屠戮MongoDB的盛宴反思:超33000個(gè)數(shù)據(jù)庫(kù)遭遇入侵勒索

來(lái)源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2017-01-14    瀏覽次數(shù):
 

信息來(lái)源:FreeBuf

mongodb_0_0.jpg

許多人沒(méi)有想到,去年12月一件不起眼的小事,在新年伊始卻演變成了一場(chǎng)屠殺。如今,受害的一方似乎正由于自身的疏忽和遲鈍而顯得愈發(fā)無(wú)力反抗,一個(gè)接一個(gè)倒下。

截止本周三(1月11日),已經(jīng)有20名以上的黑客加入到這場(chǎng)對(duì)MongoDB用戶(hù)一邊倒的碾壓中來(lái),遭到入侵、勒索的數(shù)據(jù)庫(kù)超過(guò)了33,000個(gè),并且這一數(shù)字還在不斷上升中。(源自凱捷咨詢(xún)的Niall Merrigan提供的數(shù)據(jù))MongoDB是目前包括eBay,紐約時(shí)報(bào),LinkedIn在內(nèi)的全世界多家公司廣泛采用的數(shù)據(jù)庫(kù)。

源于0.2比特幣的勒索

去年12月27日,安全專(zhuān)家兼GDI Foundation聯(lián)合創(chuàng)始人Victor Gevers(@0xDUDE)在Twitter上稱(chēng)由于存在配置漏洞,可不通過(guò)任何認(rèn)證直接訪問(wèn)某些MongoDB數(shù)據(jù)庫(kù),而黑客早已盯上了這些目標(biāo)。當(dāng)時(shí),第一波被黑的MongoDB數(shù)據(jù)庫(kù)中,Gevers觀察到數(shù)據(jù)內(nèi)容被清空,黑客還留下了一條“WARNING”信息:

MongoDB-ransom warning.png

“SEND 0.2 BTC TO THIS ADDRESS 13zaxGVjj9MNc2jyvDRhLyYpkCh323MsMq AND CONTACT THIS EMAIL WITH YOUR IP OF YOUR SERVER TO RECOVER YOUR DATABASE !”

意思就是:要求支付0.2比特幣到指定地址用以還原數(shù)據(jù)。署名“Harak1r1”的黑客(或組織)大肆入侵了MongoDB數(shù)據(jù)庫(kù),清空里面的內(nèi)容并向擁有者索要0.2比特幣(約$211)的贖金,否則數(shù)據(jù)將不予歸還。Gevers發(fā)現(xiàn)了這次攻擊并隨即在Twitter上警告了MongoDB數(shù)據(jù)庫(kù)用戶(hù)。遺憾的是,這份警告并沒(méi)有引起MongoDB使用者足夠的重視。而嗅覺(jué)敏銳的黑客們卻迅速地圍了上來(lái),盛宴開(kāi)始。

MongoDB屠戮全面開(kāi)啟

當(dāng)時(shí)Gevers暫時(shí)只統(tǒng)計(jì)到了有近200個(gè)MongoDB數(shù)據(jù)庫(kù)實(shí)例(instance)被黑客入侵當(dāng)做勒索籌碼。FreeBuf安全快訊對(duì)此進(jìn)行了追蹤報(bào)道,在1月3日,這個(gè)數(shù)字達(dá)到了2,000以上。接下來(lái)的日子里,攻擊規(guī)模不斷擴(kuò)大,受害者數(shù)量急劇上升。僅在1月9日早間開(kāi)始的12小時(shí)內(nèi),受到黑客勒索的數(shù)據(jù)庫(kù)就從12,000個(gè)翻倍達(dá)到了27,633之多。

參與其中的黑客數(shù)量也增加到至少15人以上,其中一位名為“kraken0”的黑客已經(jīng)入侵了15,482個(gè)MongoDB數(shù)據(jù)庫(kù)并向每位受害者索取了1比特幣(約$921)贖金。盡管安全專(zhuān)家已經(jīng)告誡眾多MongoDB數(shù)據(jù)庫(kù)用戶(hù)不要向黑客支付贖金(很多黑客并不會(huì)如宣稱(chēng)的那樣保留了數(shù)據(jù),多數(shù)情況是直接刪掉了),但已知仍有至少22個(gè)受害機(jī)構(gòu)或個(gè)人繳納了贖金。

之所以會(huì)有如此眾多的數(shù)據(jù)庫(kù)實(shí)例被這次沖擊迅速收割,主要是因?yàn)楹芏嗍褂谜邲](méi)有遵照生產(chǎn)環(huán)境部署手冊(cè),缺少安全認(rèn)證,直接將服務(wù)器暴露在公網(wǎng)里以及版本過(guò)于老舊。對(duì)于攻擊者而言,使用在線工具就可以較輕松地發(fā)現(xiàn)存在問(wèn)題的數(shù)據(jù)庫(kù)。事實(shí)上,黑客還發(fā)掘到了另一個(gè)商機(jī):他們有人開(kāi)始販賣(mài)用來(lái)攻陷數(shù)據(jù)庫(kù)的軟件賺錢(qián)。這種工具被稱(chēng)作“Kraken Mongodb ransomware”,只要價(jià)值$200的比特幣就可以買(mǎi)到該程序的C#源碼。

產(chǎn)生如此后果的另一個(gè)重要原因是部分使用者安全意識(shí)淡薄,反應(yīng)遲鈍。作為最初發(fā)現(xiàn)者的Gevers就曾對(duì)SecurityWeek這樣吐槽:

“永遠(yuǎn)不要低估某些公司的反應(yīng)有多么愚蠢,有些只是移除了勒索信息,還原了數(shù)據(jù),卻依舊讓服務(wù)器門(mén)戶(hù)大開(kāi)?!?

Gevers有所怨言是不無(wú)道理的。作為安全專(zhuān)家,他長(zhǎng)時(shí)間致力于數(shù)據(jù)庫(kù)漏洞探測(cè)并會(huì)向企業(yè)提供風(fēng)險(xiǎn)報(bào)告。然而,他的預(yù)警卻被許多公司視而不見(jiàn),僅在去年一年就有138份相關(guān)報(bào)告石沉大海。即使他對(duì)這波攻擊迅速做出了告警,卻依然收效甚微。

Exposed-MongoDB-per-day.jpg

安全組織“ShadowServer”通過(guò)AISI(Australian Internet Security Initiative)每天約提供400個(gè)MongoDB數(shù)據(jù)泄漏預(yù)警,服務(wù)澳洲90%的網(wǎng)絡(luò)提供商

暗潮涌動(dòng)

輕視安全問(wèn)題是要付出代價(jià)的。事實(shí)上MongoDB數(shù)據(jù)庫(kù)泄漏問(wèn)題早在2015年就被報(bào)導(dǎo)過(guò)。當(dāng)時(shí)Shodan(搜索引擎)的負(fù)責(zé)人John Matherly統(tǒng)計(jì)到有30,000個(gè)以上的MongoDB數(shù)據(jù)庫(kù)實(shí)例,近600TB的數(shù)據(jù)暴露于公網(wǎng)之上,無(wú)需任何認(rèn)證就可訪問(wèn)。很多版本滯后的數(shù)據(jù)庫(kù)配置文件里沒(méi)有做IP捆綁(bind_ip 127.0.0.1),在用戶(hù)不甚了解的時(shí)候留下了安全隱患。雖然MongoDB的開(kāi)發(fā)團(tuán)隊(duì)在下一個(gè)版本里修復(fù)了這個(gè)問(wèn)題,但截止事發(fā),仍然有數(shù)量眾多的數(shù)據(jù)庫(kù)管理者沒(méi)來(lái)得及更新。

這次勒索事件的一個(gè)顯著后果就是世界范圍內(nèi)存儲(chǔ)在MongoDB數(shù)據(jù)庫(kù)里數(shù)據(jù)量的大幅下滑。據(jù)Merrigan提供的信息顯示,在短短3天內(nèi)就有114.5TB的數(shù)據(jù)因此消失。據(jù)估計(jì),目前網(wǎng)上約有50,000個(gè)開(kāi)放訪問(wèn)的MongoDB數(shù)據(jù)庫(kù),也許用不了多久所有沒(méi)做好安全措施的數(shù)據(jù)庫(kù)都會(huì)被黑客攻陷。這個(gè)過(guò)程需要多久?據(jù)Gevers估算,這個(gè)過(guò)程可能用不了幾周。

毫無(wú)疑問(wèn),黑客們的瘋狂給人們敲響了警鐘。現(xiàn)在應(yīng)該會(huì)有很多人后悔了。

database_security.jpg

現(xiàn)在補(bǔ)救還來(lái)得及

Gevers確認(rèn),目前已有來(lái)自包括IP,醫(yī)療,金融服務(wù),旅游等行業(yè)在內(nèi)的多家公司就此次攻擊事件求助,但他不愿意透露求助企業(yè)的名稱(chēng)。他建議:有時(shí)一個(gè)數(shù)據(jù)庫(kù)會(huì)被不同的黑客攻擊多次,受害者很有可能把贖金給錯(cuò)了人,這更是一個(gè)無(wú)底洞。因此不僅不要支付贖金,更要想辦法讓攻擊者證明丟失的數(shù)據(jù)是否還真實(shí)存在。Gevers表示,如果有適當(dāng)?shù)木W(wǎng)絡(luò)監(jiān)控程序,可以判斷丟失的數(shù)據(jù)是被轉(zhuǎn)移了還是被直接刪掉了。不過(guò)這樣做需要把出站的數(shù)據(jù)流量同系統(tǒng)日志里的訪問(wèn)記錄做多方面比較才行。

MongoDB官方建議如下:

如何知道自己有沒(méi)有受到攻擊:

1. 如果已經(jīng)為數(shù)據(jù)庫(kù)正確配置了訪問(wèn)控制,攻擊者應(yīng)該訪問(wèn)不到數(shù)據(jù),可參考安全手冊(cè)(https://docs.mongodb.com/manual/security/

2. 驗(yàn)證數(shù)據(jù)庫(kù)和集合。在最近的案例中,攻擊者丟棄了數(shù)據(jù)庫(kù)和/或集合,并用一個(gè)ransom需求的新的替換它們。

3. 如果啟用訪問(wèn)控制,請(qǐng)審核系統(tǒng)日志以進(jìn)行未經(jīng)授權(quán)的訪問(wèn)嘗試或可疑活動(dòng)。

如果已經(jīng)受到攻擊:

1. 如果您是MongoDB企業(yè)支持客戶(hù),請(qǐng)盡快提交P1訂單,我們的技術(shù)服務(wù)工程師可以指導(dǎo)您完成以下過(guò)程。

2. 您的首要任務(wù)是保護(hù)您的集群以防止進(jìn)一步的未授權(quán)訪問(wèn)。您可以參照我們的安全實(shí)踐文檔。

3. 通過(guò)運(yùn)行 usersInfo 來(lái)檢查是否有添加,刪除或修改的用戶(hù)。

4. 檢查日志以查找攻擊的時(shí)間。檢查是否有刪庫(kù)或者刪表,修改用戶(hù)或創(chuàng)建贖金記錄的命令。

5. 如果你有定期對(duì)受損數(shù)據(jù)庫(kù)進(jìn)行備份,則可以還原最近的備份。您需要評(píng)估最近的備份和攻擊時(shí)間之間可能已更改的數(shù)據(jù)量。如果您使用Ops Manager或Cloud Manager進(jìn)行備份,則可以恢復(fù)到攻擊之前的時(shí)間點(diǎn)。

6. 如果您沒(méi)有備份或以其他方式無(wú)法還原數(shù)據(jù),那么您的數(shù)據(jù)可能會(huì)永久丟失。

7. 您應(yīng)該假設(shè)攻擊者已經(jīng)復(fù)制了受影響的數(shù)據(jù)庫(kù)的所有數(shù)據(jù)。請(qǐng)按照內(nèi)部安全流程對(duì)數(shù)據(jù)泄露事件進(jìn)行恰當(dāng)處理。

8. 最后,請(qǐng)參閱我們的安全最佳做法和資源,以便將來(lái)保護(hù)您的數(shù)據(jù)。

如何防范此類(lèi)攻擊?

1. 做好訪問(wèn)認(rèn)證。打開(kāi)你的MongoDB配置文件(.conf),設(shè)置為auth=true

2. 做好防火墻設(shè)置。建議管理者關(guān)閉27017端口的訪問(wèn)。

3. Bind_ip,綁定內(nèi)網(wǎng)IP訪問(wèn)。

4. 做好升級(jí)。請(qǐng)管理者務(wù)必將軟件升級(jí)到最新版本。

 
 

上一篇:歐盟委員會(huì)提議實(shí)施高標(biāo)準(zhǔn)隱私規(guī)則 更新歐盟機(jī)構(gòu)數(shù)據(jù)保護(hù)規(guī)則

下一篇:2017年01月14日 聚銘安全速遞