IT圈子里一直以來都有著“刪庫跑路”的經典段子,廣為傳頌。老師機會心一笑而很多新手一臉懵逼躍躍欲試,但可能很多人還不知道,這些刪庫段子早就演變成真實案例,也不是第一次了,希望整個行業大佬們長點心,提高內部數據安全門檻尤為重要,下面小編就給大家講講Mongodb刪庫勒索事件。
一、緣由
前段時間Mongodb數據庫遭到惡意刪庫勒索事件:是因為對外網開放訪問然而又沒有開啟授權機制被刪庫、遠程拖庫、勒索。接著又曝出Elasticsearch被勒索事件,緣由一樣,Elasticsearch服務泄露在公網上并且Elasticsearch是沒有賬號安全體系的。聯想到前些日子,Redis未授權訪問bug,同樣是因為Redis沒有展現在公網、沒有設置授權認證,和而引發的。
小編做為網盾科技專職運維人員,這些漏洞和勒索事件,只要有一件發生就必須引起警覺和漏洞掃描防治措施的啟動。
當數據庫被入侵,就會把數據刪除,哪怕不太重要也會多多少少引起一些問題,讓你花更多時間去補回數據。
如果利用Redis未授權訪問漏洞,入侵了服務器,那這臺服務器就危險了,木馬會根據歷史操作記錄,數據庫操作記錄,那么各項數據會被竊取,如果長期潛伏,就像一個小偷手上有你家的備用鑰匙,來去自如,想想都覺得害怕。
而且有的木馬很難完全清掉,你只能重裝系統了。
莫非說過:越害怕發生的事情就越會發生。所以不要心存僥幸,安全問題重在預防。
二、解決辦法:
對于將后臺服務、數據服務的端口展現在公網解決辦法如下:
其一,初級階段開發人員都有一個疑問,我要是把 host 綁到了內網 ip,我在本地開發的時候怎么到訪問服務,怎么去測試呢?總不能每次都登錄到服務器,使用 curl 來訪問吧,那得多麻煩。
直接上答案,推薦力度按次序由小到大:
1)使用 NGINX做反向代理,將一個公網 ip 和端口代理到 es 的服務上,使用完之后就把 NGINX 這個代理關掉。當然,NGINX 本身是支持基礎安全賬號機制的。
2)在服務器上部署一個 shadowsocks 服務,本地開一個 client 連過去,然后把 es 的訪問地址(比如 10.0.0.10:9200)代理到 shadowsocks client開放的 代理上(比如socks5),就可以自由訪問了。當然,你可以訪問其他所有的內網服務哦。
3)最推薦的方案,選用一臺網盾高防服務器,在高防服務器上裝一個 openVPN 服務,只要本地開發人員連接 VPN ,內網的服務就可以訪問了。并且高防服務器還能幫助網站拒絕服務攻擊,定時掃描現有的網絡主節點,查找可能存在的安全漏洞的服務器類型,包括WAF防御。這里小編推薦IDC服務商網盾科技就有這樣的產品。
其二,有沒有啥方法可以防止以后又出現這種傻×行為呢?比如就有一個 es 服務不小心配置成 0.0.0.0 了
有方案,上防火墻,常見的就是 iptables。簡單講,就是對本地開放的 ip 和端口建立白名單,比如常見的 iptables 配置如下,這個配置開放了 80( http 服務 )、443( https 服務)和 22 ( ssh 端口)這三個端口

一些個人經驗總結
1)后端服務即那些不對直接和用戶交互的服務、數據庫服務,一定要添加防火墻規則,合理控制訪問權限,避免被攻擊利用。
2)前端進程和后端進程一定要分別部署在不同的機器上,避免前端因為漏洞等被侵入,造成后端服務和數據不可用,可以規避風險。
3)對于數據庫,最好是定時備份,最壞情況下數據丟失被刪除也不怕。
4)對于前端服務,可以限制某個IP的訪問頻率,避免被人利用攻擊。
5)選擇一臺網盾高防服務器,就可以一勞永逸啦??!
申請創業報道,分享創業好點子。點擊此處,共同探討創業新機遇!