據最新報道顯示,繼MongoDB和Elasticsearch以後,MySQL成爲下個數據勒索目標,從2月12日凌晨開始,已有成百上千個開放在公網的MySQL數據庫被劫持,刪除了數據庫中的存儲數據,攻擊者留下勒索信息,要求支付比特幣以贖回數據。mysql
遍觀MongoDB和Elasticsearch以及如今的MySQL數據庫勒索,能夠發現都是基線安全問題致使被黑客劫持數據而勒索,緣由在於這些服務都開放在公網上,而且存在空密碼或者弱口令等使得攻擊者能夠輕易暴力破解成功,直接連上數據庫從而下載並清空數據,特別是不正確的安全組配置致使問題被放大。redis
其實相似問題已不是第一次,近期雲鼎實驗室觀測到多起案例,攻擊呈現擴大態勢,不只僅是勒索,更多的是服務器被入侵,從而致使數據被下載。基線安全問題已經成了Web漏洞以外入侵服務器的主要途徑,特別是弱口令等狀況。錯誤的配置能夠致使相關服務暴露在公網上,成爲黑客攻擊的目標,加上採用空密碼等弱口令,黑客能夠輕易入侵這些服務。sql
值此事件爆發之際,建議對本身的服務器進行自查,避免相關數據丟失等問題,具體自查方式可參考以下:
一、排查服務器開放的端口及對應的服務,如無必要,關閉外網訪問;可使用NMap 直接執行 nmap 服務器IP(在服務器外網執行),可獲得如下結果即爲開放在外網的端口和服務。mongodb
二、重點針對這些開放在公網上的服務進行配置的檢查,檢查相關服務是否設置密碼,是否弱口令。
三、如無必要,均不要使用root或者其餘系統高權限帳號啓動相關服務。數據庫
1、採用正確的安全組或者iptables等方式實現訪問控制;
2、關閉相關服務外網訪問和修改弱密碼:
一、MongoDB
a. 配置鑑權
下面以3.2版本爲例,給出 MongoDB設置權限認證,具體步驟以下:安全
1. 切換到 admin 庫; 2. 建立管理員用戶,命令以下(user和pwd能夠根據須要設置): db.createUser({user: "root",pwd: "password",roles: [ "root" ]}) 3. 使用管理員用戶登陸後,根據角色建立您須要的用戶
b. 關閉公網訪問
可經過MongoDB的bind_ip參數進行配置,只需將IP綁定爲內網IP便可,以下:服務器
1. 啓動時增長bind_ip參數:mongod --bind_ip 127.0.0.1,10.x.x.x 2. 在配置文件mongodb.conf中添加如下內容: bind_ip = 127.0.0.1,10.x.x.x 其中10.x.x.x爲您機器的內網IP.
二、Redis
a. 配置鑑權ui
b. 關閉公網訪問spa
c. 其餘命令行
相關配置完畢後重啓Redis-server服務
三、MySQL
a. 配置鑑權
MySQL安裝默認要求設置密碼,若是是弱命令,可經過如下幾種方式修改密碼:
//以root登陸MySQL後, USE mysql; UPDATE user SET password=PASSWORD('新密碼') WHERE user='root'; FLUSH PRIVILEGES;
//以root登陸MySQL後, SET PASSWORD FOR root=PASSWORD('新密碼');
mysqladmin -u root -p 舊密碼 新密碼
b. 關閉公網訪問
四、其餘服務
請參考以上方式或者官方文檔進行配置
本文轉載自騰雲閣,已得到做者受權。