Redis服務器被劫持風波
前言
俗話說安全猛于虎,之前多多少少有所小體會;這次的上線Redis服務器被劫嚴重影響了開發測試和線上環境,在解決的過程也對安全方面了解了很多;總結了這次過程的排查流程以及采取的相應測試,在此與大家共享。
被劫風波
01
問題
1、開發,生產,測試服務器(shiro :246;開發:251; 測試:204;生產:164,165)每臺機器的Redis服務(全部或部分,其中若為單機版的Redis則為全部,有集群則為部分)未啟動;
注:判斷Redis啟動沒問題的步驟:
(1)利用命令: ps -ef | grep redis 查詢Redis服務(下圖以246為例,黃框部分代表6379的Redis服務正在運行)
(2)在客戶機上利用Redis Desktop Manager客戶端連接服務(能夠連上并加裝上數據說明Redis服務正常)---(若連接不上檢查服務器和個人機的防火墻,以及Redis的配置文件中的bind綁定的IP)
2、將Redis服務重新啟動,發現Redis服務沒有起來:
(1)查詢Redis所占用的進程---用ps -ef |grep redis 命令查詢Redis服務的進程號(如下圖,黃框中代表Redis在6379的端口啟動著,所占用進程為3684)
(2)用kill -9 3684(Redis所占用的進程號,集群版可能有多個端口號需要都殺掉)
(3)用./redis-server & 命令啟動Redis
(4)正常啟動后發現不報錯,并能正常訪問,這次發現Redis服務竟然沒有起來
02
排查過程
1、通過檢查所有Redis服務發現共同的特點:使用默認端口6379的都掛掉;其中246的情況最為嚴重(246上執行命令反應比較環慢)
2、在246上查看服務器性能消耗情況(執行top命令,出來數據后用Ctrl+C組合鍵數據按CPU排序,用Ctrl+M鍵按內存排序),發現有一惡意進程持續占用CPU特別高,如下:
3、懷疑此惡意進程是黑客通過定時任務或開機啟動腳本植入,在246服務器上用crontab –r發現一定時任務:
4、去網上查,操作了部分:將/var/spool/cron目錄下的root文件刪除(文件內容為3中的定時任務),用(kill-9 PID)將惡意進程(AnXqV.yam)殺掉觀察;
5、發現過了五六分鐘這個進程又自己起來,此時在246上通過命令find / -name AnXqV查看發現有很多文件和網上遇到情況一樣確認被挖礦入侵
6、通過本地瀏覽器訪問定時任務中的網址:http://www.haveabitchin.com/pm.sh?0222從黑客網站上下載一個腳本(pm.sh);
7、分析pm.sh中的文件發現了黑客想做的事情,大概內容如下:
8、根據pm中的相關路徑將246上如下惡意文件刪除:
(1)/var/spool/cron/root
(2)/var/spool/cron/crontabs/root
(3)~/.ssh/authorized_keys
(4)/var/spool/cron/authorized_keys
(5)/tmp中的11個文件
查看了這幾個文件除了log文件其他均為亂碼,查看log文件內容:
①一直試圖在訪問病毒的網站
②在DNS上查找一些網址,猜測它是監測服務器是否可以有通路訪問到它的網站
③在站長之家上查詢IP信息,再查詢Digital Ocean猜測應該是某黑客在Digital Ocean上租用的服務來搞的:
④其中它對應的網站:
9、檢查其他Redis服務器上有無可疑文件,發現204上的一個可疑文件,/var/spool/cron/中的root;
10、將246上的可疑文件和redis緩存文件dump.rdb以及204上的可疑文件刪除,啟動各個Redis服務器的服務正常。
注:246上刪除redis的緩存文件如下:
/tmp/dump.rdb
/usr/local/redis/bin/ dump.rdb
/var/spool/cron/ dump.rdb
11、現在再看看情況,其中有疑惑的地方:
(1)病毒通過哪臺機器以及如何入侵到局域網,現在連外網機器除了ITOO的生產Jboss外還有其他機器
(2)246和204的病毒是自己本身上的病毒還是局域網其他機器來遙控的
03
Redis防護建議
1、Redis本身防護
(1)不要使用默認端口(6379)
(2)增加Redis用戶名和密碼
(3)在Redis綁定指定IP訪問(位置配置文件[redis.config]中的bind節點)
2、Linux服務器
(1)Redis服務器不要暴露在外網
(2)開啟防火墻,限制IP可以訪問(iptables命令)
(3)用容器(如Docker等)管理起服務器,這樣中病毒后排查不出原因需要重新裝環境的時候影響小并且可以快速恢復。
04
參考資料
1、CentOS7安裝redis被AnXqV挖礦程序入侵
2、阿里云服務器被挖礦minerd入侵的解決辦法
3、Google基礎設施安全設計概述翻譯和導讀
4、codis與pika的docker化?(Redis替代解決方案)
總結
1、安全無小事,重視起安全;
2、在偵查病毒的時候,真如一朋友所說想破案一樣;
3、要事第一,學會衡量;在這次解決的過程中,因為嚴重影響了開發人員的開發,所以在解決的過程中要先穩定開發環境,不能讓人員閑置起來。
馬哥教育精英線下Linux班鄭州校區開班倒計時,優惠四重享,贈送高達4000元的學習大禮包:
第一重:4月30日前報名,立減400元,名額有限搶完為止;
第二重:4月30日前報名,贈送馬哥教育內部Linux知識精講教材一本(價值666元);
第三重:4月30日前報名,贈送馬哥教育實體服務器使用資格(價值1666元);
第四重:4月30日前報名,贈送馬哥教育云學堂學習權限1個(價值1999元);