腾讯云代理返现 腾讯云服务器CPU占用率100%怎么排查找出恶意进程
先止血:确认不是“正常高峰”导致的误判
很多团队第一次看到CPU 100%会直接重启或直接关机,结果把“正在写入证据”的过程打断,后续很难复盘是谁触发了恶意进程。建议按下面顺序做。
保留现场:先记录时间点与业务影响范围。必要时先导出进程列表与高CPU线程信息(后文给命令)。
观察是否突然性:如果是短时间内从正常飙到100%,更像是异常程序启动(挖矿、爆破、爬虫、勒索脚本、恶意更新等)。如果是持续稳定,仍需排查是否有异常任务或循环调用。
临时降风险:先限制外联与高危端口(例如把不需要的安全组入方向临时收紧)。在定位前,避免恶意程序继续扩散。
腾讯云代理返现 排查框架:用“谁在吃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优惠、充值秒到账、官网下单享双重售后支持。