温馨提示×

如何识别Ubuntu中的恶意进程

小樊
36
2025-10-26 14:34:17
栏目: 智能运维

如何识别Ubuntu中的恶意进程

在Ubuntu系统中,恶意进程通常通过高资源占用、伪装路径/名称、异常网络行为等方式隐藏,需通过系统命令、日志分析、工具扫描多维度识别。以下是具体步骤:

1. 通过进程监控命令识别异常进程

① 使用top/htop查看资源占用
运行top命令(按P按CPU排序、M按内存排序),或安装htopsudo apt install htop)查看实时进程状态。重点关注:

  • 高CPU/内存占用:如某进程长期占用超过80%的CPU或50%的内存,且无明显业务用途(如名为unknownminer的进程);
  • 用户权限异常:非系统用户(如nobody、自定义用户)运行关键服务(如/usr/sbin/apache2nobody用户运行);
  • 进程名可疑:含随机字符(如xyz123)、伪装成系统进程(如sysupdateservicemanager)或安全程序(如watchbogsecagent)。

② 使用ps命令筛选异常进程
运行以下命令查看所有进程的详细信息,重点关注路径、参数、状态

ps aux --sort=-%cpu | more  # 按CPU占用降序排序
ps aux --sort=-%mem | more  # 按内存占用降序排序
ps -ef | grep -E "/tmp|/var/tmp|/dev/shm"  # 筛选可疑路径(如/tmp、/dev/shm)

若进程的COMMAND列包含可疑路径(如/tmp/.exploit/var/tmp/malware.sh)或参数带URL(如http://malicious-site.com/script.sh),需进一步核查。

2. 检查进程的网络连接与文件路径

① 使用lsof查看进程关联文件与网络
通过进程PID(从top/ps获取),运行以下命令查看其打开的文件和网络连接:

ls -l /proc/$PID/exe  # 查看进程对应的可执行文件路径(若路径为/tmp或隐藏目录需警惕)
lsof -p $PID          # 查看进程打开的所有文件(重点关注/tmp、/dev/shm等目录)
lsof -i -P -n | grep $PID  # 查看进程的网络连接(如监听端口、外连IP)

若进程打开了异常文件路径(如/dev/shm/.xmr/tmp/minerd)或连接到高危端口(如12345、3333),可能为恶意进程。

② 使用netstat/ss查看网络连接
运行以下命令查看系统的网络连接状态,重点关注监听端口外连IP

sudo netstat -antp | more  # 查看所有TCP连接(-a:所有,-n:数字地址,-p:显示进程)
sudo ss -antp | more       # 更高效的替代命令(推荐)

若发现未授权的监听端口(如12345)或外连到陌生IP(可通过whoisVirusTotal查询IP归属),需排查对应进程。

3. 分析系统日志定位恶意进程来源

① 查看认证日志(SSH登录)
运行以下命令查看最近的SSH登录记录,检查是否有异常IP登录失败尝试

sudo tail -n 50 /var/log/auth.log  # Ubuntu/Debian
sudo grep "Failed password" /var/log/auth* | uniq -c  # 统计失败次数
sudo grep "Accepted " /var/log/auth* | awk '{print $1,$2,$3,$9,$11}'  # 查看成功登录的IP和用户

若存在多次失败登录陌生IP成功登录,可能是攻击者植入恶意进程的入口。

② 查看Cron任务日志
恶意进程常通过Cron定时任务实现持久化,运行以下命令查看Cron日志:

sudo tail -n 50 /var/log/cron  # Ubuntu/Debian的Cron日志路径

若日志中出现未知脚本(如/tmp/malware.sh)或高频执行的任务(如每分钟执行一次),需检查对应任务的内容。

4. 使用安全工具深度扫描

① 安装chkrootkit检测Rootkit
Rootkit是恶意进程隐藏自身的常用工具,运行以下命令安装并扫描:

sudo apt install chkrootkit  # Ubuntu/Debian
sudo chkrootkit  # 扫描系统(重点关注“INFECTED”提示)

若扫描结果显示Rootkit感染,需立即隔离系统并重装系统。

② 安装rkhunter扫描隐藏恶意程序
rkhunter可检查系统文件的完整性、隐藏进程、端口监听等,运行以下命令:

sudo apt install rkhunter  # Ubuntu/Debian
sudo rkhunter --check  # 执行全面扫描

扫描结果中的**“Warning”“Found”**项需重点核查(如异常的隐藏文件、修改过的系统二进制文件)。

5. 处理恶意进程的后续步骤

  • 终止进程:通过kill -9 $PIDpkill -9 进程名终止恶意进程;
  • 删除文件:根据/proc/$PID/exelsof找到的路径,删除恶意可执行文件;
  • 清除持久化:检查并删除Cron任务(crontab -l)、启动项(systemctl list-unit-files)中的可疑条目;
  • 修复漏洞:若入侵原因是SSH爆破,需修改密码、禁用密码登录(改用密钥)、更新系统补丁。

通过以上步骤,可有效识别Ubuntu系统中的恶意进程,并采取针对性措施清除威胁。需定期执行这些操作,确保系统安全。

0