手工处理云服务器被挖矿

收到报警

今天阿里云安全中心发来告警,警告ssh爆破成功,提示登录账号为mysql,紧接着就告警服务器开始挖矿,接下来我们来手工处理该问题。

第一步、禁止mysql用户自动登录

1
2
3
usermod mysql -s sbin/nologin
# 验证
su mysql

第二步、踢掉所有mysql用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
w
# 15:44:23 up 48 min, 3 users, load average: 0.00, 0.01, 0.04
#USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
#mysql pts/0 60.205.182.xx 14:55 46:15 0.00s 0.00s -bash
#mysql pts/1 60.205.182.xx 15:18 24:47 0.00s 0.00s -bash
#root pts/2 223.64.48.212 15:41 7.00s 0.00s 0.00s w

pkill -kill -t pts/0
pkill -kill -t pts/1

w
# 15:44:23 up 48 min, 3 users, load average: 0.00, 0.01, 0.04
#USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
#root pts/2 223.64.48.212 15:41 7.00s 0.00s 0.00s w

第三步、根据进程id删除挖矿软件,停止进程

1
2
3
ls -al /proc/18896/exe
rm -rf /dev/shm/kxmd
kill -9 18896

第四步、检查机器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看是否存在业务范围之外的可疑通信地址和开放端口
iptables -L -n
# 清除恶意矿池地址
vim /etc/sysconfig/iptables

# 查看定时任务是否有问题
crontab -l

# 检查ssh公钥是否正常
cat ~/.ssh/authorized_keys

# 无法修改或者删除,后按以下步骤操作
lsattr ~/.ssh/authorized_keys
cp /bin/chattr /bin/chattr2
chmod 777 /bin/chattr2
chattr2 -i ~/.ssh/authorized_keys
chattr2 -a ~/.ssh/authorized_keys
rm -rf ~/.ssh/authorized_keys

总结

  1. ssh修改端口、禁用密码登录;
  2. 使用fail2ban,自动封禁,加固ssh;
  3. 使用堡垒机,释放机器的外网ip;
  4. 安全组采用最小权限原则,如果开放公网权限,应用服务必须开启安全认证;
  5. 使用云服务安全产品。