摘要:起因年月,當大家都在為的逝去寫總結,并為年的到來做計劃的時候,一波黑客發動了一輪攻擊,攻擊的對象瞄準了數據庫。他們刪除了所有數據庫數據,并留下一個勒索數據庫。不幸的是,我也成為這幸運的一員。謹記,安全,安全,安全。
起因
2017年1月,當大家都在為16的逝去寫總結,并為17年的到來做計劃的時候,一波黑客發動了一輪攻擊,攻擊的對象瞄準了mongodb數據庫。他們刪除了所有數據庫數據,并留下一個勒索數據庫。不幸的是,我也成為這“幸運”的一員。
當收到用戶反饋說,無法登陸網站時,我還在奇怪。當我連上線上服務器時,看到了這個:
圖片描述
線上的數據庫“food”已經被清空,大小為:0.000GB。而且,多了一個數據庫“PLEASE_READ”,查看里面的數據,真是一個大大的驚喜。
{ "_id" : ObjectId("58702744f933f563e815c44f"), "Info" : "Your DB is Backed up at our servers, to restore send 0.1 BTC to the Bitcoin Address then send an email with your server ip", "Bitcoin Address" : "1J5ADzFv1gx3fsUPUY1AWktuJ6DF9P6hiF", "Email" : "kraken0@india.com" }
數據被刪,沒有做過備份,然后被勒索0.1BTC,有大神說黑客也沒有證據說明他對你的數據庫做了備份,且我也沒有BTC啊。
不過幸好這只是我自己玩玩的一個項目,剛上線不久,數據也不多,之前備份過一點數據,將該數據恢復了。
在查到勒索數據時,立馬查看了數據庫log文件:
可以看到,黑客也沒有使用特別高深的技術,就像怎么把大象放到冰箱里一樣,只用了三步:
直連數據庫
刪除數據(至于有沒有備份數據,就不知道了)
留下勒索信息
多么的簡單粗暴。
黑客能夠直接訪問數據,也是怪我沒有關閉外網訪問權限,尷尬!
還有就是,這是自己直接在官網下載安裝,沒有安裝發行版,而默認安裝的mongodb是沒有安全設置的。
關閉外網訪問權限,也就是限定只能是內網訪問。
在mongodb.conf中配置:
bind_ip 127.0.0.1
mongodb默認的端口是27017,修改端口:
port 27038
在admin 數據庫中創建用戶,如 supper 密碼為 supWDxsf67%H(此處均為舉例說明,請勿使用此賬號密碼)
步驟一:在未開啟認證的環境下,登錄到數據庫 [mongodb@rac3 bin]$ ./mongo 127.0.0.1:27028 (此處修改了默認端口) MongoDB shell version: 2.0.1 connecting to: 127.0.0.1:27028/test 步驟二:切換到admin數據庫 > use admin switched to db admin > 步驟三:創建管理員賬號 > db.addUser("supper", "supWDxsf67%H") 或 >db.createUser({user:"supper",pwd:"supWDxsf67%H",roles:["root"]}) { "n" : 0, "connectionId" : 4, "err" : null, "ok" : 1 } { "user" : "supper", "readOnly" : false, "pwd" : "51a481f72b8b8218df9fee50b3737c44", "_id" : ObjectId("4f2bc0d357a309043c6947a4") } 新增的用戶在system.users中 > db.getCollectionNames() [ "system.indexes", "system.users", "system.version" ] 說明: 1)MongoDB從V3版本開始取消使用addUser方法,采用db.createUser方法創建用戶; 2)賬號不要設置為常見賬號,密碼需要滿足一定的復雜度,至少8位以上,包括大小寫字母、數字、特殊字符混合體,不要使用生日、姓名、身份證編號等常見密碼。 步驟四:驗證用戶是否創建成功 > db.auth("supper","supWDxsf67%H") 1 > exit bye 步驟五:殺掉進程,重啟mongoDB服務 ./mongod --dbpath=/path/mongodb --bind_ip=192.168.0.1 --port=27028 --fork=true logpath=/path/mongod.log &
對數據進行本地異地備份,好的備份策略是保證數據安全的最后一根救命稻草。
推薦策略:可靠的本地備份+遠程備份存儲方案
MongoDB備份方式(API參考):
>mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017 -d: 需要備份的數據庫實例,例如:test -o: 備份的數據存放位置,例如:c:datadump,該目錄需要提前建立,在備份完成后,系統自動在dump目錄下建立一個test目錄,這個目錄里面存放該數據庫實例的備份數據。
MongoDB數據恢復方式(API參考):
mongodb使用 mongorestore 命令來恢復備份的數據。 語法 mongorestore命令腳本語法如下: >mongorestore -h dbhost -d dbname --directoryperdb dbdirectory -h: MongoDB所在服務器地址 -d: 需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2 --directoryperdb: 備份數據所在位置,例如:c:datadump est,這里為什么要多加一個test,而不是備份時候的dump。 --drop: 恢復的時候,先刪除當前數據,然后恢復備份的數據。就是說,恢復后,備份后添加修改的數據都會被刪除,慎用哦!
備份策略
全量備份:可以最快的時間快速恢復所有數據,缺點是備份成本大,時間長;
全量備份+增量備份:可以較快的恢復所有數據,缺點是恢復時間長,如果增量數據有問題,無法恢復所有數據;
搭建從庫,直接切換到從庫,前提是從庫的數據安全可靠。
更多安全措施參考
后記通過這次的教訓,更加深刻認識到數據庫安全的重要性,在以后的工作中一定要更加注重服務器和數據庫的安全,做好安全措施。
謹記,安全,安全,安全。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11228.html
摘要:起因年月,當大家都在為的逝去寫總結,并為年的到來做計劃的時候,一波黑客發動了一輪攻擊,攻擊的對象瞄準了數據庫。他們刪除了所有數據庫數據,并留下一個勒索數據庫。不幸的是,我也成為這幸運的一員。謹記,安全,安全,安全。 起因 2017年1月,當大家都在為16的逝去寫總結,并為17年的到來做計劃的時候,一波黑客發動了一輪攻擊,攻擊的對象瞄準了mongodb數據庫。他們刪除了所有數據庫數據,并...
摘要:表示受勒索軟件侵害的食品和農業企業因支付贖金生產力損失和補救成本而遭受重大經濟損失。公司也可能會丟失專有信息和個人身份信息,并可能因勒索軟件攻擊而遭受聲譽損失。年月,針對美國一家農場的勒索軟件攻擊致其運營暫時關閉,造成約萬美元的損失。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-siz...
閱讀 2729·2021-11-11 17:21
閱讀 619·2021-09-23 11:22
閱讀 3583·2019-08-30 15:55
閱讀 1646·2019-08-29 17:15
閱讀 580·2019-08-29 16:38
閱讀 913·2019-08-26 11:54
閱讀 2513·2019-08-26 11:53
閱讀 2757·2019-08-26 10:31