一、自查是否感染恶意“挖矿”程序
(一)硬件排查法
挖矿程序通常会占用大量的系统资源和网络资源,通常会导致主机卡顿情况并且主机异响严重,在线业务或服务频繁无响应,内部网络拥堵,反复重启,排除系统和程序本身的问题后重启依然无法恢复,如出现上述情况,就需要考虑是否感染了恶意挖矿程序。也有部分挖矿程序仅在主机空闲时间启用定时任务挖矿,隐蔽性较强。
(二)技术排查法
挖矿病毒被植入主机后,利用主机的运算力进行挖矿,主要体现在CPU使用率高,有大量对外进行网络连接的日志记录。
(1)CPU占用率
Windows主机中挖矿病毒后的现象如下图所示(Ctrl+alt+delete打开任务管理器,选择“性能”):
点击“进程”,并通过占用率排序,查找CPU占用率高的进程。如非系统进程,及时关闭。
Linux主机枚举进程,使用top 命令显示CPU占用率降序排序,CPU占用率超过70%且名字比较可疑的进程,大概率是挖矿病毒。如下图所示:
(2)进程行为
Linux主机根据程序CPU资源占用率排序,进一步执行枚举进程命令行:ps -aux。
病毒一般都携带可疑的命令行,当你发现命令行中带有url等奇怪的字符串时,就要注意了,它很可能是个病毒下载器。
(3)网络连接状态
通过netstat命令可以查看操作系统网络状态信息。如Windows主机可使用netstat -ano命令查看主机网络连接状态和对应进程,判断是否存在异常的网络连接。
Linux主机可使用netstat -napt命令查看主机网络连接状态和对应进程,判断是否存在异常的网络连接。
上图的 80、443端口,一般是正常业务开放端口。如果显示存在对其他大量主机的特殊端口(如22,445,3389,6379等端口),特别是110,8888,8999,8080等,或者全端口发起网络连接尝试,则当前主机可能已经存在挖矿病毒。
(4)自启动行为
Windows主机可在任务管理器“启动”栏查看是否有未知进程启用自启动,如有,则可能已感染挖矿病毒。
Linux主机可查看/etc/crontab有无可疑定时程序,如有,则可能已感染挖矿病毒。
(5)文件篡改行为
Linux主机若发现/etc/passwd 文件下有增加陌生用户,/etc/rc.local文件增加陌生动态库文件,cat /proc/$$/mountinfo查看有进程被mount,则可能已感染挖矿病毒。
二、“挖矿”处置方法
如发现主机或服务器存在感染挖矿病毒的现象,可以通过以下步骤进行处置:
(一)Windows系统
1、由于挖矿木马具有很强存活能力,建议使用杀毒软件对恶意程序进行清除操作,对主机进行全盘扫描和查杀。不同类型挖矿病毒传播方式不同,个别类型的挖矿会通过内网进行横向扩散,尽可能实施断网杀毒;
2、如杀毒软件无法清除,建议重新安装系统及应用;
3、在防火墙关闭不必要的访问端口号或服务,重启再测试是否仍有可疑进程存在;
4、将系统登录设置强密码(8位以上,大小写字母、数字及特殊字符的组合)。
(二)Linux/Mac系统
1、通过安装防病毒软件,对主机进行全盘扫描和查杀。不同类型挖矿病毒传播方式不同,个别类型的挖矿会通过内网进行横向扩散,尽可能实施断网杀毒;
2、如无法清除的建议重新安装系统及应用;
3、如具备较强动手能力,可参照以下说明进行处置:
(1)排查是否存在异常的资源使用率(内存、CPU等)、启动项、进程、计划任务等,使用相关系统命令(如netstat) 查看是否存在不正常的网络连接,top 检查可疑进程,pkill 杀死进程,如果进程还能存在,说明一定有定时任务或守护进程(开机启动),检查/var/spool/cron/root 、/etc/crontab 和/etc/rc.local等;
(2)查找可疑程序的位置将其删除,如果删除不掉,查看隐藏权限。lsattr chattr 修改权限后将其删除;
(3)查看/root/.ssh/目录下是否设置了免秘钥登录,并查看ssh_config配置文件是否被篡改。
4、在防火墙关闭不必要的访问端口号或服务,重启再测试是否还会有可疑进程存在。
5、将系统登录设置强密码(8位以上,大小写字母、数字及特殊字符的组合)。
三、如何避免感染恶意“挖矿”程序
1、多台机器不使用相同的账号和口令,登录口令要有足够的长度和复杂性(8位以上,大小写字母、数字及特殊字符的组合),并定期更换登录口令。
2、定期检测电脑、服务器、WEB网站中的安全漏洞,及时更新补丁。
3、安装安全软件并升级病毒库,定期全盘扫描,保持实时防护。
4、从正规渠道下载安装软件,不安装未知的第三方软件,不点击未知的链接,不打开来历不明的邮件及附件。
针对于服务器:
1、在使用的相关系统、组件和服务出现公开的远程利用漏洞时,系统管理员以及运维人员应该尽快更新到最新版本,或在未推出安全更新时采取恰当的缓解措施。
2、对于在线系统和业务需要采用正确的安全配置策略,使用严格的认证和授权策略,并设置复杂的访问凭证。
3、梳理系统、应用权限,删除多余、无用账号,做好账号权限分离。
4、定期检查服务器是否存在异常,查看范围包括但不限于:
(1)是否有新增账户、未知进程;
(2)系统日志是否存在异常;
(3)杀毒软件是否存在异常拦截情况。