挖矿恶意软件应急响应记录
事件背景
本次故事的起因是,我向其他学院借了一台服务器跑代码。 这台服务器在学校内网,由于内网的连接较为麻烦,因此我做了内网穿透, 开放了ssh端口,方便我在外网访问。
异常发现
然后这天,我用btop观测代码性能指标的时候,发现存在两个奇怪的进程。 一个名叫sshd,另一个名叫rcu-sched。
这两个进程是由另一个学生账户启动的,且parent进程是systemd。 内存和cpu占用都相当高,已经达到我cpu密集型代码的程度了。
可疑指标分析
通过观察,我发现了以下几个明显的异常指标:
1. 资源占用异常
- sshd进程占用过多资源:正常的sshd守护进程应该只占用很少的CPU和内存资源,主要用于处理SSH连接请求。而这个sshd进程的资源占用达到了CPU密集型程序的水平,明显异常。
2. 父进程异常
- 父进程为systemd:正常情况下,用户启动的sshd会话进程的父进程应该是系统的sshd守护进程,而不是直接由systemd启动。这表明该进程可能通过其他方式(如定时任务)启动。
3. 进程启动用户异常
- 普通用户启动系统服务进程:sshd通常是由root用户启动的系统服务,普通用户启动名为sshd的进程本身就很可疑。
4. 执行路径异常
- 以./开头的执行路径:通过进一步检查发现,这些进程的执行路径是以
./
开头的相对路径,而不是标准的系统路径(如/usr/sbin/sshd
),这是典型的恶意软件特征。
5. 进程名称仿冒
- rcu-sched进程名称仿冒:rcu-sched是Linux内核的合法进程名,但内核进程通常显示为
[rcu_sched]
(方括号包围),且不会消耗大量用户态资源。这个进程明显是在仿冒系统进程名称。
初步响应
我立刻联系了借给我服务器的同学,询问这两个进程的来历。 他对这个问题感到很疑惑,表示自己并没有启动过这两个进程。 我又询问他是否有使用弱口令(他的用户名只有3个字母), 果然不出我所料,他的密码是123456。
我立刻建议他修改密码,并且检查了该用户的历史命令。并未发现异常。
威胁分析
然后我开始排查这两个进程的来历。 发现这个sshd是一个脚本文件,负责下载rcu-sched这个进程。 rcu-sched这个文件是一个门罗币挖矿程序。 持久化也做的比较简单,仅添加了crontab。
恶意软件分析
为了更深入了解恶意软件的行为,我使用了在线沙箱进行分析:
推荐的恶意软件分析沙箱
国内沙箱:
- 微步在线沙箱(https://s.threatbook.com/)- 我主要使用的分析平台,提供详细的行为分析报告
- 奇安信威胁情报中心(https://ti.qianxin.com/)- 提供威胁情报和样本分析
- 360威胁情报中心(https://ti.360.net/)- 360安全大脑威胁情报平台
国外知名沙箱:
- VirusTotal(https://www.virustotal.com/)- Google旗下的多引擎检测平台
- Hybrid Analysis(https://www.hybrid-analysis.com/)- CrowdStrike提供的免费恶意软件分析服务
- Any.run(https://any.run/)- 交互式恶意软件分析平台
- Joe Sandbox(https://www.joesandbox.com/)- 专业的恶意软件分析平台
- Cuckoo Sandbox(开源)- 可自建的恶意软件分析系统
通过微步沙箱分析,确认了该恶意软件的主要行为模式和IOC指标。
权限评估
然后又排查了一下是否存在提权,发现这个用户没有在sudo组中, 暂且认为没有提权风险。
排查过程中使用的命令
进程分析
# 查看系统进程和资源占用
btop
# 查看详细进程信息
ps aux | grep sshd
ps aux | grep rcu-sched
# 查看进程树结构
pstree -p
# 查看进程的详细信息
ls -la /proc/[PID]/
cat /proc/[PID]/cmdline
用户账户检查
# 检查用户历史命令
history
cat ~/.bash_history
# 检查用户组信息
groups [username]
id [username]
# 检查sudo权限
sudo -l -U [username]
持久化机制排查
# 检查crontab
crontab -l -u [username]
cat /var/spool/cron/crontabs/[username]
# 检查系统级定时任务
ls -la /etc/cron*
cat /etc/crontab
# 检查启动项
systemctl list-unit-files --state=enabled
ls -la /etc/systemd/system/
文件分析
# 查看可疑文件
ls -la [suspicious_file_path]
file [suspicious_file_path]
strings [suspicious_file_path]
# 计算文件哈希
md5sum [suspicious_file_path]
sha256sum [suspicious_file_path]
网络连接检查
# 查看网络连接
netstat -tulnp
ss -tulnp
# 查看活动连接
lsof -i
清除措施
进程终止
# 终止恶意进程
kill -9 [PID]
pkill -f sshd
pkill -f rcu-sched
文件清理
# 删除恶意文件
rm -f [malicious_file_path]
# 清除持久化机制
crontab -r -u [username]
安全加固
# 修改弱密码
passwd [username]
# 检查SSH配置
cat /etc/ssh/sshd_config
# 查看登录日志
last
lastlog
cat /var/log/auth.log | grep ssh