服务器又被挖矿了,怎么防?
最近很多小伙伴服务器都被挖矿了,简单总结下在应急过程中,常遇到的一些被挖矿的特征,以及防护方法,工具后面会进行详细的介绍分享
问题所在
要防止被挖矿,首先要明白挖矿的本质
挖矿本质就是快速产出,利用可以利用的资源,实现快速产出,获取收益
为什么要明白这个道理,就是因为,挖矿的人,大多不会把时间花费在你的某台服务器上,大多做法是通过网络空间搜索引擎或端口扫描工具等,进行整个网段的批量扫描,根据扫描结果筛选出能够快速自动化拿到权限的机子,再去自动化跑脚本处理
比如我通过 fofa 直接搜索 redis,就可以拿到开放了 redis,并且可以直接登录的服务器的列表,那我肯定直接导出列表,针对这些 ip 去拿权限
常见特征
这种主要出问题的地方就是未授权漏洞,常见的未授权漏洞如下:
Hadoop 未授权——50070
Mongodb 未授权——27017
Redis 未授权——6379
Elasticsearch 未授权——9200
Memcached 未授权——11211
Zookeeper 未授权——2181/2888/3888
JBOSS 未授权——8080
Docker 未授权——2375
Rsync 未授权——873
还有 Gitlab、Jenkins、NFS、Samba 等都有某些版本或因为配置不当存在未授权可访问的漏洞
除未授权漏洞之外,最多的被挖矿的,就是弱密码,包括:
服务器系统用户弱口令
web 弱口令
中间件 web 管理端弱口令
应用弱口令
比如常用的 phpMyAdmin 弱口令、一些测试服务器 web 测试账号弱口令等
除以上两种,还有一些利用条件不高的高危系统或组件漏洞,也需要注意
事前自检
针对这种问题,最好的防护方法就是自己做扫描检测,在 fofa、shodan、zoomeye、censys 等网络搜索引擎,直接输入自己的服务器 ip 地址,即可看到服务器暴露了哪些服务、哪些端口,从而进行确认自己服务器的安全问题可能出现在那里
当然你也可以通过 nmap、zenmap、unicornscan、nast、msscan 等端口扫描工具来查看自己服务器对外的端口,确认服务器的安全状况,该加授权访问的加授权,该加白名单的加白名单
对于弱密码的情况,如果是可控的情况,肯定是直接设置不允许弱口令,比如 ssh,可以通过修改系统口令复杂度要求来完成,对于接手的服务器,或系统,可以通过一些工具,比如 xscan、f-scrack、hydra、hscan 等类型的工具,对弱口令进行扫描
若是 web 端的弱口令,我常用的方法是通过 brup+字典的形式进行扫描,你也可以通过 Cheetah、WebCrack 等工具来测试,前提是获得内部许可
针对系统及组件的漏洞,可以通过 Nessus 自己进行安全检测,也可以通过审计工具 lynis 对服务器安全基线进行扫描
应急恢复
若不幸,已经被挖矿,那只好紧急处理,处理的原则就是尽快恢复业务
云服务器就相对简单了,如果是平常有做定时快照,及异地数据备份的,先将挖矿服务器做快照备份,用于事后复盘,然后恢复快照恢复数据及业务
如果是物理服务器就比较麻烦了,如果业务不能长时间中断,可以考虑先将业务切换到其他服务器,然后再进行排查清理
常见 的排查工具如下:
GScan
rkhunter
FastIR
等,都可以生成应急报告,根据报告进行确认及排查处理
总结:
进攻是最好的防守,只有自己先了解了自己的弱点所在,才能做到更好的防御
版权声明: 本文为 InfoQ 作者【运维研习社】的原创文章。
原文链接:【http://xie.infoq.cn/article/23e3ad9083300d66e053e85ee】。文章转载请联系作者。
评论