年關將近mongodb生產庫被刪庫勒索

《從入門到刪庫跑路》別說這事情真不是程序員們茶餘飯後得一種自嘲。

隨着年關將近,騙子和駭客們也都各顯神通開始撈一波準備過個富足年。這該死得傢伙,偏偏命中了我們公司得mongodb報表庫,然而我們生產mongodb 並沒有做備份,之前一同事隨便搭得。

幸好mongodb得所有數據只是做爲報表使用,並無敏感數據,所有數據還能從業務庫導一份,聽到這個這個事情得時候很淡定。畢竟業務庫誤刪得操作也處理過,當年也是沒有備份、沒有binglog、業務也沒打sql日誌尚且能恢復,還有什麼比這更大得事情了呢?

於是先着手分析爲什麼被刪庫,最後發現配置中得Authrization配置爲disabled。於是將之改爲enable,然後重啓mongodb開啓認證。這裏本應該限制外網訪問,或者應該做個ip指向限定。纔不會發生這種事情。不管做了哪一樣安全策略都不會出現這種情況,然而都沒做。

重點:
  • 開啓安全認證
  • 限制外網訪問
  • ip限定訪問

接下來就是着手恢復數據。從業務庫組裝數據先然吃力不討好,發現業務代碼裏面在數據入庫得時候會把json數據打印出來。這下好辦了,直接使用文本多劍客從日誌撈數據
數據格式如下

log-info: 2018-12-20 09:11:37.418 [http-nio-8000-exec-3] INFO  com.report.biz.InsertRecord - ==>【正在寫入xxx報表數據:report:{"xxx","xxx","xxx":"xxx"}

先使用grep命令將相關格式數據行提取出來並輸出到report.log文件中

grep "正在寫入xxx報表數據:" xxx.log > report.log

然後對report.log文件進行處理直接提取出json

cat report.log|awk -F"[{}]" '{print "{"$2"}"}' >report.json

執行完以上命令之後
就形成一份每行一個得json文檔文件,接下來直接將文件導入就行了

mongoimport -h ip:27017 -u "username" -p "password" -d xxx-report() -c xxxReport(集合) ./report.json

好幾個集合,照貓畫虎半小時全部搞定。

幸虧機智如我,不然今年真的應了那句話,刪庫跑路

解決完問題:
現在準備查查誰連接了這臺服務器。看看能不能揭開勒索病毒得神祕面紗,從而將背後之人揪出來。不過我也知道,做這種事情應該是從肉雞中發起得,你應該追不到真正得元兇。不過例行檢查還是要做一做得。

查了下secure 得系統日誌,發現來自全球各國得ip嘗試進行服務器得登入以及掃描。然後阿里雲並沒有發起告警,看來也不能完全依賴阿里雲得告警系統啊。還是要自己多留點心做好安全防衛工作:看上面得重點。

發佈了119 篇原創文章 · 獲贊 28 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章