返回列表

腾讯云代理返现 腾讯云服务器CPU占用率100%怎么排查找出恶意进程

腾讯云国际 / 2026-09-02 17:58:17

如果需要更深入咨询了解可以联系全球代理上TG: @cloudcup  他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,微软云开户充值。oss防风控上传加密系统。客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。

先止血:确认不是“正常高峰”导致的误判

很多团队第一次看到CPU 100%会直接重启或直接关机,结果把“正在写入证据”的过程打断,后续很难复盘是谁触发了恶意进程。建议按下面顺序做。

  1. 保留现场:先记录时间点与业务影响范围。必要时先导出进程列表与高CPU线程信息(后文给命令)。

  2. 观察是否突然性:如果是短时间内从正常飙到100%,更像是异常程序启动(挖矿、爆破、爬虫、勒索脚本、恶意更新等)。如果是持续稳定,仍需排查是否有异常任务或循环调用。

  3. 临时降风险:先限制外联与高危端口(例如把不需要的安全组入方向临时收紧)。在定位前,避免恶意程序继续扩散。

腾讯云代理返现 排查框架:用“谁在吃CPU”定位到进程,再判断是否恶意

1)确认CPU 100%对应的“用户态/内核态”

这一步能快速把排查方向分到两类:用户态进程或内核/驱动/中断问题。

  • 看负载结构(Linux):

    top -H -p 1
    uptime
    mpstat -P ALL 1
    

经验上:

  • 用户态占比高:通常是某个进程/线程疯狂计算或循环IO。

  • 内核态/中断偏高:可能是网络洪泛、驱动异常、存储重试风暴等;同时也不排除恶意程序触发了大量网络事件。

腾讯云代理返现 2)直接找“最吃CPU”的进程与线程

CPU 100%时,你不需要全盘慢慢找,应该把重点缩到 Top N。

  • 按CPU排序(进程):

    ps -eo pid,ppid,user,%cpu,%mem,etime,comm --sort=-%cpu | head -n 20
    
  • 腾讯云代理返现 按CPU排序(线程)(当服务是多线程时更有效):

    top -H -p <PID>
    # 或者查看该PID的线程top
    ps -L -p <PID> -o pid,tid,%cpu,comm --sort=-%cpu | head -n 20
    

把最可疑的PID/PPID/启动耗时(etime)记下来。恶意进程常见特征是:

  • 短时间内启动(etime很短),但立即占满CPU。

  • 父进程不符合预期(例如由nginx、cron、www-data直接拉起了陌生可执行文件)。

  • 可执行文件路径不在常规目录(例如/tmp、/var/tmp、奇怪的隐藏目录、带随机字符路径)。

3)确认进程“从哪里来”:命令行、可执行路径、打开的网络连接

仅看到CPU高不够,必须判断它在做什么。

  • 查看完整命令行与路径:

    PID=<你的PID>
    cat /proc/$PID/cmdline | tr '\0' ' '
    echo
    readlink -f /proc/$PID/exe
    
  • 查看父进程链路:

    ps -o pid,ppid,comm -p $PID --forest
    pstree -ap $PID | head -n 50
    
  • 看网络连接与外联目的:

    ss -tpn | grep -E "pid=$PID|users:\(\(\"
    # 或
    lsof -Pan -p $PID -i
    

恶意进程排查的关键点:

  • 挖矿:常见特征是外联到矿池域名/IP、命令行带有“矿池/钱包/线程数”等参数。

  • 腾讯云代理返现 僵尸网络/扫描:会出现大量短连接、目标IP/端口分散、连接数异常。

  • 腾讯云代理返现

    恶意脚本:可能来自bash -c、sh、脚本解释器拉起隐藏可执行文件。

常见恶意类型与“如何快速判断”

挖矿类:CPU打满是常态,但要抓“外联线索”

如果你定位到某个可执行文件CPU高,接下来重点看它的外联:

  • 连接到外部固定端口(例如常见矿池端口)且持续不断。

  • 命令行里带有明显钱包/矿池参数(即使被混淆,仍可能有长串参数或可疑URL)。

爆破/扫描类:常见伴随“连接激增”和日志异常

如果CPU 100%同时伴随:

  • 腾讯云代理返现 web访问日志短时间内大量重复请求、URL变化极小或带恶意payload。

  • 系统日志提示认证失败、ssh连接异常频繁。

那通常不是“业务流量正常高峰”,而是恶意流量或脚本行为。建议立即把暴露面缩小(比如收紧安全组,仅保留必要端口与IP段),并继续追踪触发父进程的入口。

勒索/加密蠕虫类:更要优先“止扩散”而不是硬排查

如果你在同一时间发现多个进程异常、磁盘IO异常上升、文件被大量创建/改写,那么先隔离再取证。避免在还在传播时继续放任。做法包括:

  • 限制出站网络与外联端口(只保留业务必须)。

  • 腾讯云代理返现 把受影响实例与同账号其他实例的暴露面一起收紧,避免横向移动。

处置步骤:从“隔离”到“删除/修复启动项”,避免反复中招

1)隔离可疑进程(先停,再确认影响)

在确认PID可疑后,通常按“先降载、再停掉”更稳。

  • 先降载(可选):

    renice +10 -p <PID>
    
  • 再停止(谨慎,避免误伤正常服务进程):

    kill -STOP <PID>   # 观察是否仍在拉升CPU
    kill -TERM <PID>   # 优雅停止
    kill -KILL <PID>   # 最后手段
    

如果该进程由计划任务或服务守护拉起,杀掉后会迅速重现,说明你还没找到“启动入口”。

2)找“启动入口”:crontab、systemd、rc.local、容器自启动脚本

恶意程序重启常见来源:

  • 用户/系统的crontab -e

  • /etc/cron.*目录

  • systemd服务:/etc/systemd/system、/lib/systemd/system

  • 容器环境(如果你用容器):镜像内启动脚本、entrypoint被投毒

快速搜法(按常见位置直接查):

# cron
crontab -l
sudo crontab -l
ls -al /etc/cron.*

# systemd
sudo systemctl list-unit-files | grep -E 'mal|mine|min|crypt|agent' || true
sudo find /etc/systemd/system -maxdepth 1 -type f -name '*.service' -print

# 可执行文件在可疑目录的进程
# 结合前面 readlink /proc/$PID/exe 的路径去搜同路径是否出现在启动配置里

3)删除/替换:先确认文件是否被运行,再移除并保留证据

删除要“先取证后清理”。建议:

  • 把可执行文件、可疑脚本、启动配置复制到取证目录(例如/root/incident-YYYYMMDD)。

  • 再删除或替换文件。

  • 检查系统完整性(至少对关键目录的文件变更做对比)。

如果你直接删掉可执行文件但启动入口没处理,下一次仍会被拉起。

资源限制与成本控制:CPU 100%期间怎么避免账单失控

定位恶意进程时,CPU持续打满会带来两类风险:一是业务不可用,二是成本/配额承压。企业场景里常用做法:

  • 临时收缩暴露面:将安全组仅留必要端口、必要来源IP段,降低被攻击的并发。

  • 限制峰值承压:如果你的业务允许降级(例如关闭非核心功能、降低任务并发),先做降级再排查。

  • 不要盲目扩容:CPU 100%源头是异常进程,扩容只会让恶意程序有更多资源。

账号/认证/续费与风控:为什么你可能在“排查中断”或“无法继续开资源”

不少团队排查恶意进程时,恰好遇到账号状态变化,导致自动化脚本无法继续部署补丁、或新实例无法快速拉起做隔离。这里把相关决策风险提前列出来。

1)账号购买与实名认证/企业认证未就绪

如果你是从他人处购买或使用新账号,建议在开始排查前就确认:

  • 账号主体实名认证是否完成;

  • 腾讯云代理返现 企业主体是否完成企业认证(涉及更高权限/更多资源申请时会更关键);

  • 是否存在主体不一致导致的权限受限。

2)充值续费/到期导致的服务中断

CPU异常可能会触发运维加急操作(例如临时扩容、切换实例、增加安全策略)。如果账户余额不足或续费到期,在关键窗口可能无法完成操作。建议你在排查开始前确认:

  • 资源是否接近到期;

  • 是否有未完成的续费/补款流程;

  • 是否存在支付失败重试导致的状态异常。

3)支付方式与风控审核影响:可能导致“临时加资源失败”

在遇到风控审核或支付审核时,你可能无法快速新增资源或调整网络策略。常见表现是你以为是技术问题,其实是账号侧审批未过。

排查恶意CPU进程时,建议把“隔离/扩容/迁移”这些动作做成预案,并确保账号侧不会卡住。

对比表:不同“现象”对应不同“优先排查点”

现象 优先怀疑 先查什么 典型入口
CPU 100%且从正常突然飙升 新进程启动/脚本投毒 Top进程/线程、cmdline、exe路径 cron、systemd、web漏洞后的落地脚本
CPU 100%同时网络连接激增 扫描/爆破/蠕虫行为 ss/lsof查看外联与连接数 SSH爆破、web扫描、恶意脚本
CPU高但对应进程路径在/tmp或随机目录 隐藏可执行文件 父进程链路、启动项引用 计划任务、服务单元
杀掉进程几分钟后又恢复 启动入口未清理 systemd/crontab/开机脚本 重启脚本、守护进程、容器自启动

常见错误:把排查做成“越查越乱”

  • 直接重启:证据丢失,且如果启动入口没改,重启后仍会出现。

  • 只盯CPU不看网络与启动入口:会导致你每次都只能“杀当下”,无法阻断再次拉起。

  • 误杀关键业务进程:尤其是多线程服务,杀错PID可能造成核心业务不可用。

  • 扩容当止血:源头是恶意进程时,扩容只会加速恶意行为消耗资源。

FAQ

Q1:我找到了CPU最高的进程,但不确定是不是恶意,怎么办?

先判断三件事:进程启动时间是否异常短、exe路径是否在可疑目录、外联目的是否异常。再结合父进程链路,看它是如何被拉起的;通常恶意会有“异常父进程 + 可疑路径 + 外联证据”至少两项命中。

Q2:杀掉进程后CPU过了一会又变回100%,是不是我没查到?

大概率是启动入口还在:crontab/systemd/脚本或容器自启动。你需要把前面取到的可疑exe路径,反向搜索是否出现在启动配置中,然后清理并重建镜像/脚本(如果是容器投毒)。

Q3:排查过程中不能暴露更多端口,我该怎么做隔离?

先做最小化访问:收紧安全组仅保留业务必需端口;必要时仅对跳板机/固定运维IP放行。隔离完成后再做离线取证,避免让恶意程序持续探测扩散。

Q4:账号侧续费/认证问题会影响我的排查吗?

会。比如你需要快速拉起隔离实例、回滚部署或调整网络策略时,如果账号存在认证未完成、支付审核/风控中断、余额到期等情况,操作会失败。建议在排查前先确认账号状态与资源到期时间。

选择建议:你该把决策重点放在什么

  • 定位决策:以“进程->命令行与可执行路径->网络外联->父进程链路->启动入口”作为唯一主线,不要分散精力做表面排查。

  • 处置决策:先隔离外联与收缩暴露面,再停进程,最后清理启动入口,避免反复中招。

  • 腾讯云代理返现

    账号风险决策:排查期更要确认实名认证/企业认证、充值续费、支付方式是否可用,避免关键窗口操作受阻。

如果需要更深入咨询了解可以联系全球代理上TG: @cloudcup  他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,微软云开户充值。oss防风控上传加密系统。客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系