一、问题背景
某日袋鼠云运维小哥进行例行运维巡检,通过监控视图发现客户应用服务器cpu使用率突然呈上升趋势。通过专属服务群第一时间与业务方联系,与业务方确认是否有正在执行的定时任务,或者大范围拉取账单等业务操作。然而仔细分析了业务日志后,确认当时业务上并没有进行会消耗大量计算资源和网络资源的操作。
二、异常现象
随着时间推移,运维人员收到不同应用系统主机系统资源占用过高的告警通知,但客户反馈业务上并没有受到明显影响,且处于业务低峰期。
进一步分析排查,发现异常实例cpu使用率,负载,网络流量,磁盘IO,TCP连接数都先后出现上升趋势,现象如下图:
CPU使用率:持续10分钟维持在90%
系统平均负载:平均1分钟负载超过25
网络流量:持续10分钟高于日常水平
磁盘IO:每秒写入的字节数迅速上升
TCP 连接数:established连接数持续10分钟上升
三、异常分析
1) 在排除业务上并没有相关的异常操作后,运维人员进一步分析了系统是否有受到外部攻击。通过阿里云云盾安全产品,确认基线检查及流量检测并无异常,业务入口SLB流入流出流量也呈正常趋势,可以排除受到外部攻击的可能。
2) 运维人员登录机器继续排查,连接服务器间接出现请求被拒绝的情况,提示connection reset by peer错误信息。
成功登入机器后发现有大量ssh登入链接。
大量的sshd进程引起cpu占用过高。
四、异常处理
经过上述分析,与业务方确认ssh 连接客户端是否为内部系统IP地址,最终定位异常实例被内网其他机器恶意破解,进行非法访问入侵。运维人员第一时间对异常实例进行恢复操作,包括关闭已建立的连接,清除可疑执行程序,修改sshd服务默认端口,重置服务器登录密码,调整安全组访问策略,检查服务器是否有其它后门等一些列安全加固操作后,主机性能恢复正常。
五、案例总结
从服务器安全防护的角度出发,应将业务部署在云上隔离的网络环境,并修改默认远程服务监听端口,按需开放安全组访问限制。如果业务部署早期未做相关规划,建议尽快迁移经典网络下的服务器到专有网络环境,同时需要定期对服务器进行体检及安全检查,以确保服务器安全。
本文首发于:数栈研习社
数栈是云原生—站式数据中台PaaS,我们在github上有一个有趣的开源项目:FlinkX。FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等,也可以采集实时变化的数据,比如MySQL binlog,Kafka等,是全域、异构、批流一体的数据同步引擎,大家如果有兴趣,欢迎来github社区找我们玩~