談談最近MongoDB資料庫勒索事件

前言

雖然這事在國內好像沒怎麼聽聞…………但國外可是鬧翻了…………

也不得不驚醒某些喜歡把自己的雲伺服器與資料庫裸奔的用戶。

事件概述

其實我也是前兩天才知道這事,事情經過是這樣的。

  • Victor Gevers大大在12月27日發現一些裸奔的MongoDB用戶的數據被黑客刪除並發推引起了互聯網的注意。(黑客把資料庫里的數據都刪除了,並留下一張warning的表,裡面寫著如果想「贖」回數據,就給0.2比特幣(約等於200$)到xxxxx地址)

  • 元旦當天,Victor Gevers大大轉發了條關於Amazon伺服器與MongoDB的推並說:「請在2017年給我們原生的MongoDB資料庫加上默認設置和取消防火牆吧!」

  • 1月3日,CSOonline發推Exposed MongoDB installs being erased, held for ransom(關於裸奔的MongoDB被刪除數據並被勒索事件。事件慢慢越鬧越大。

  • 1月4日Victor Gevers大大發推說:「一個名為Hijacked的黑客組織入侵了將近2000個MongoDB資料庫。」,但這個名為Hijacked的黑客組織好像覺得玩脫了。就此收手了~然而事情還沒完…………

  • 1月4日,就在Hijacked收手沒多久,一個名為0wn3d的黑客組織又上演了同一齣戲碼…………而且贖金更貴………0.5比特幣(約等於550$)……

  • 1月5日Victor Gevers大大發推說:「幸運的是沒有任何人交付贖金,「匪徒」給的地址無法解碼!所以任何資料庫被入侵的用戶,請千萬不要交付贖金,並可以向我尋求幫助!」

  • 1月5日,名為harak1r1的黑客組織也幹了這事,這次是0.2比特幣…………

  • 1月5日,名為0704341626asdf的黑客組織也幹了這事,這次更搞笑的是他們在留言里說到:「你tm在想什麼???讓資料庫在公網上裸奔????」

  • 1月5日,Victor Gevers大大警告大家:請千萬不要交付贖金,因為沒人保證黑客會保存你的數據!

  • 1月6日這次是名為mongo3l1t3,贖金0.2比特幣……

  • 1月6日,這次是名為kraken0,贖金1比特幣……

  • 1月6日,這事鬧上了BBC NEWS:Web databases hit in ransom attacks - BBC News………………

  • 1月7日,國內的耗子大大發了微博,至此國內也開始關注這事(要知道國外這事可是大新聞…………)

  • 1月7日,耗子大大就此事發了篇博文:從 MongoDB 「贖金事件」 看安全問題 | | 酷 殼 - CoolShell

  • 至此就是這件事的最新動向。

其實不是資料庫不安全,只是用戶問題

  • 其實這事也不能全怪MongoDB,因為其實這事就是因為某些用戶他把自己的資料庫擺上公網,然後還不設置賬戶密碼而引起的………………也正如0704341626asdf說到:「你tm在想什麼???讓資料庫在公網上裸奔???」。其實這事真的不難,很簡單,我都能輕鬆做到…………只要你稍微懂點資料庫基本就可以了…………

  • 為什麼不設置賬戶密碼???這個主要是因為在安裝原生的MongoDB時,默認條件下,MongoDB是不啟用認證和訪問控制功能,說白了就是MongoDB不會提示你設置賬戶密碼,也不會提示你任何ip都能訪問你的資料庫,這對一些網路安全意識薄弱的人簡直是致命傷!!

  • 理論上許多的雲平台(比如騰訊雲,阿里雲)這些資料庫默認是不會也可以不用暴露在公網上的,雲平台也不推薦你這麼做,我估計是某些用戶貪方便懶的折騰內網連接而開放的公網埠……………

入侵個資料庫給你們看看~

雖然入侵資料庫這不是什麼好事,我之前也沒怎麼接觸過MongoDB,但為了證明究竟入侵有多簡單,我馬上裝了個MongoDB併入侵了一個資料庫(當然我什麼都沒幹,就只是進去了一下)

  • 首先,先在shodan搜索 MongoDB country:"CN" ,然後你會獲得很多在中國公網的MongoDB資料庫ip地址(ip地址都打碼,要看自己去搜)

  • 然後我隨便選個ip,在終端進行登陸,因為沒有賬戶密碼,所以我輸入 ./mongo --host xxx.xxx.xx.xx 這個命令就完成登陸了,接下來我就可以對他的資料庫的數據進行任何的增刪查改了,當然這裡我只輸入 show dbs 顯示所有的資料庫,然後什麼都沒幹,畢竟我又不是想幹壞事…………

  • 正是因為沒有賬戶密碼設置,結果我輕鬆入侵…………

有多少這樣裸奔的資料庫?

  • 我在shodan搜MongoDB country:"CN",是有12788個結果返回的,就是在中國說有12788個放在公網上的MongoDB資料庫,至於其中有多少事沒有賬戶密碼的我不清楚,但從我剛才隨便選一個就成功了,估計沒有賬戶密碼的佔大部分……

  • 接著我直接搜MongoDB,更是在全球範圍里搜到53022個結果…………

  • 不敢說shodan的搜索是完完全全的,也不敢說搜到的資料庫全都是裸奔,但從上面的情況來看,裸奔的資料庫估計成千上萬………………

一些補救措施

由於我對MongoDB並不是那麼熟悉,這裡我借用vex2的《MongoDB 資料庫被入侵刪除事件分析》這篇文章里的方法

如果您是 MongoDB 管理員,下面的其他提示可能對您有用:

  1. 檢查 MongDB 帳戶以查看是否沒有人添加了密碼( admin )用戶(使用 db.system.users.find()命令);

  2. 檢查 GridFS 以查看是否有人存儲任何文件(使用 db.fs.files.find()命令);

  3. 檢查日誌文件以查看誰訪問了 MongoDB ( show log global 命令)。

預防方法

這個其實也沒什麼好說的,就幾點。

  1. 先把你資料庫的賬戶密碼設置好了再說……

  2. 盡量不要把你的資料庫擺上公網!業務處理都盡量在內網進行!

  3. 如果要擺上公網,一定要設置好訪問許可權,綁定訪問源 IP!

  4. 備份數據~

後記

還是那句話:「你tm在想什麼???讓資料庫在公網上裸奔???」。

所以說請注意你的雲端設備是否加了把「安全鎖」~

好吧~滾去複習了…………orz

引用文章:

[1]從 MongoDB 「贖金事件」 看安全問題 | | 酷 殼 - CoolShell 作者:左耳朵耗子

[2]MongoDB 資料庫被入侵刪除事件分析 作者:helloworld01


推薦閱讀:

TAG:IT行業 | 網路安全 | 資料庫 |