起因,公司一台新买的云服务器被人入侵了。
在计划任务里植入了一段CURL请求,定时每秒从别人远程地址里下载一个超大文件,把CPU占满(100%)。
这个计划任务无法删除,删除后又会自动恢复。
检测过系统登录日志、shell脚本日志、文件修改时间、敏感文件名称等等,一些常规可能被入侵或修改的地方都一无所获。
后来经过排查与请教同行,同事发现是由于linux中,redis组件开启了远程管理权限,又没设置密码的问题,导致redis的端口被入侵者扫描到。
然后入侵者通过命令远程登录进服务器,修改ssh协议的配置文件(增加一个自己设置的密码),重新编译后重置下文件修改时间。
然后就可以通过ssh协议把自己的公钥拉入服务器,从而留下后门。
届时登录服务器上传shell脚本,又或是实施其他更可怕的行为,不是很简单的事情?
该事件反思:
当安装任何服务器组件时,我们都应该设置一个较为复杂的密码,防止被入侵者通过扫描端口,暴力破解后轻易在你的服务器上留下后门。
还有一些例如redis、mysql等组件,在没必要开启远程管理的时候,不要轻易开放登录权限。