Post

watchdogs病毒查杀与使用ssh秘钥预防

上网习惯不好,CCLP中了个病毒。这篇笔记简要记录一下查杀过程,算是给自己提个醒了。

症状

CCLP开机启动1-2天后在极低负载的情况下CPU使用率异常地高(仅开启TeamSpeak 3服务器与DDNS脚本,CPU占用率在0-15%之间跳动)。

使用htop查看发现若干个名为watchdogs ssh a watchdog kthread的进程占用了这些异常资源。

此外,若干用户的ssh验证密码即使多次重设依然总是失败。

后来发现这些用户就是被入侵的用户

排查

一开始以为是长期开启服务器与脚本导致软硬件异常,开门狗程序使能。但多次重启后台与CCLP均无法排除这一问题,香橙派提供的开门狗测试程序也返回了正常的结果。

不得不求助万能的搜索引擎,直接搜索watchdogs ssh a watchdog kthread。语言隔阂还真有点正面影响,谷歌有关watchdogs的搜索结果全被某U姓游戏公司的三流游戏污染了,百度高匹配的结果表明watchdogs是一个挖矿病毒程序。

无差别攻击是真的牛批,单板机都给黑了挖矿。转发22端口确实是非常不好的习惯,侥幸心理也真不好。

简而言之(其它的我也不懂),watchdogs是一个有若干变种的经由ssh暴力破解弱密码入侵与传播的挖矿病毒。

手动查杀

为了这个病毒给CCLP下一套Linux杀毒套件显然太业余也太不值当了,所以我参考了这个网页手动进行了查杀。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# find malware processes pid
ps -ef | grep watchdogs

# find process location
ll /proc/$pid

# forcibly kill malware processes
kill -9 $pid

# remove malware scripts (just an example)
# Other possible directories exist. Also rm `ksoftirqds`, `.lsdpid`, etc.
rm -rf /dev/shm/watchdogs

# check scheduled tasks
crontab -l

可选的后续处理

  1. 删除用户
  2. 使用强密码
  3. 修改默认端口
  4. 使用ssh秘钥,关闭高权限用户的ssh远程登录

ssh秘钥生成与使用

部分参考此页面

首先,在客户端生成一对ssh秘钥。

1
ssh-keygen -t type -f filename -N passphrase

使用passphrase可以提高安全性,但在scp时可能需要多次输入passphrase,比较麻烦。更适合在单纯的ssh中使用。

TODO: 使用ssh-agent解决此问题

随后使用如下命令,或ssh-copy-id,或直接登陆主机将filename.pub中的内容加入需登陆用户的~/.ssh/authorized_keys中。

1
cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

另:要禁止某一用户的ssh登陆权限,在/etc/ssh/sshd_config中添加DenyUsers user一行即可。

又另:在上述文件中设置MaxAuthTries可以在若干次后禁用用户端的ssh尝试。

This post is licensed under CC BY 4.0 by the author.