在互联网世界中,服务器安全是每一个网站管理员和开发者都必须重视的问题。本文将分享一个真实案例,讲述服务器被黑后的排查过程,以及如何防止此类事件再次发生。

发现问题

一位网站管理员发现其服务器突然出现502错误,经过检查发现服务器上的shell profile没有按预期执行,这让他产生了不祥的预感。由于服务都是通过docker部署的,他发现运行了很多挖矿程序,这表明服务器已经被黑了。

清理工作

首先,管理员停掉了docker服务,并删除了挖矿镜像。接着,他发现了可疑的脚本,这些脚本用于挖矿程序的保活。此外,他还发现了哪吒探针和其他可疑进程,这表明攻击者已经获得了root权限。

接下来,管理员进行了标准的排查和清理工作,包括:

  1. 使用kill命令结束恶意进程,并删除恶意文件。
  2. 检查并清理环境变量。
  3. 清理systemd和crontab的自启脚本。
  4. 检查/etc/passwd文件,查找陌生用户。
  5. 检查服务器的进出流量。
  6. 检查/proc内容,确认有无隐藏进程。
  7. 检查LD相关内容,确认有无动态库被劫持。
  8. 检查内核是否被修改,因为服务器是裸金属服务器。
  9. 使用rkhunter和chkrootkit工具检测rootkits。

入侵路径

在分析恶意进程时,管理员发现了一个在前端目录下的可疑可执行文件。这个文件属于一个Next.js React项目,原本是用于开发在线阅读器的。由于React漏洞的爆发,这个项目成为了攻击者的目标,导致管理员的服务器被黑。

复盘与预防

从这次事件中,管理员总结了以下几点经验教训:

  1. 关闭不必要的服务,减少攻击面。
  2. 不要给普通用户设置sudo免密,以防止权限被滥用。
  3. 做好权限隔离,确保对外服务运行在独立的用户下。

结语

服务器被黑是一个严重的安全问题,需要及时处理和预防。通过这次事件,管理员意识到了服务器安全的重要性,并采取了一系列措施来加强服务器的安全性。希望这个案例能够提醒其他网站管理员和开发者,时刻关注服务器的安全状态,采取有效的措施来保护自己的服务器不受攻击。

标签: none

评论已关闭