服务器安全篇之六【入侵处理】
设计者:普金
服务器安全全篇含:
服务器安全篇之一【网络安全】
服务器安全篇之二【ssh安全】
服务器安全篇之三【系统安全】
服务器安全篇之四【数据库灾备与恢复】
服务器安全篇之五【入侵检测】
服务器安全篇之六【入侵处理】
一 概括
上一篇讲到入侵检测,检测到入侵或者已经被入侵就需要想办法做相应的处理
检测到入侵主要处理方式就是结合前几篇的网络安全防御策略进行处理,常用的方式有黑名单处理和bug修复
本篇主要讲检测到已经被入侵后的处理方式
二 入侵后处理
系统层面
Linux系统被入侵后处理步骤
使用前一定先创建快照备份,否则不要使用本文方法。
1、将ECS断开网络连接
使用ECS安全组单独对该ECS进行隔离;出方向禁止所有协议。入方向只允许运维的端口和指定IP进入,其他均禁止。
2、shell以root的权限运行
核心的点:将系统内部非正常的系统文件,杀掉进程;删除文件,删除注册表,删除计划任务,禁止/停止/删除服务。
参考脚本:
复制下述内容,放到Linux系统中,新建一个.sh文件保存。使用root权限进行运行。
木马病毒的文件名、服务名都有可能会发生变化;脚本只是辅助。
主要是使用busybox来执行指令,因为该命令不会调用动态链接库,不会被劫持。busybox的具体介绍
service crond stop
busybox rm -f /etc/ld.so.preload
busybox rm -f /usr/local/lib/libioset.so
chattr -i /etc/ld.so.preload
busybox rm -f /etc/ld.so.preload
busybox rm -f /usr/local/lib/libioset.so
#清理异常进程
busybox ps -ef | busybox grep -v grep | busybox egrep ‘ksoftirqds’ | busybox awk ‘{print $1}’ | busybox xargs kill -9
busybox ps -ef | busybox grep -v grep | busybox egrep ‘watchdogs’ | busybox awk ‘{print $1}’ | busybox xargs kill -9
busybox rm -f /tmp/watchdogs
busybox rm -f /etc/cron.d/tomcat
busybox rm -f /etc/cron.d/root
busybox rm -f /var/spool/cron/root
busybox rm -f /var/spool/cron/crontabs/root
busybox rm -f /etc/rc.d/init.d/watchdogs
busybox rm -f /usr/sbin/watchdogs
ldconfig
#再次清理异常进程
busybox ps -ef | busybox grep -v grep | busybox egrep ‘ksoftirqds’ | busybox awk ‘{print $1}’ | busybox xargs kill -9
busybox ps -ef | busybox grep -v grep | busybox egrep ‘watchdogs’ | busybox awk ‘{print $1}’ | busybox xargs kill -9
#清理开机启动项
chkconfig watchdogs off
chkconfig –del watchdogs
service crond start
echo “Done, Please reboot!”
计划任务文件处理
/etc/crontab
/etc/cron.d/
/var/spool/cron/
/var/spool/cron/crontabs/
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
/var/spool/cron/crontabs/root
这里面有没有异常的计划任务,如有者进行清理
busybox安装
wget -c https://busybox.net/downloads/busybox-1.31.1.tar.bz2
tar -jxvf busybox-1.31.1.tar.bz2 -C /usr/local/
cd /usr/local/busybox-1.31.1
make defconfig
make install
cp /usr/local/busybox-1.31.1/busybox /usr/bin
3、Redis业务特殊处理
如无业务必要,修改Redis只监听127.0.0.1,并为Redis设置认证密码。编辑Redis配置文件/etc/redis.conf以下行保存后使用service redis restart重启Redis服务:
bind 127.0.0.1 #配置只监听本地回环地址127.0.0.1
requirepass xxx #去掉行前注释,修改密码为所需的密码。
4、登录密钥处理
不影响业务的情况下,建议临时删除机器上.ssh/known_hosts和登录密钥文件。(蠕虫常常利用这个进行关联传播,会在短时间内扩散到所有内网机器)
应用层面
如果是应用层漏洞入侵怎么办
需用到入侵检测中说到的杀毒软件clamav进行检测并清理
清理完成后报告给相关开发人员检测修复代码bug
数据库层面
如果数据库被入侵篡改或删除了数据库表信息或干脆删库了,业务系统瘫痪了,及时按照《服务器安全篇之三【数据库备份与恢复】》这篇内容及时操作恢复数据库。
三 清理异常
清理异常步骤需要按照一定的规律准则来清除,不然清理不干净。
Rootkit木马程序是最难清理干净的,以这个来简单描述一下
1 系统命令类的如发现异常要第一时间清理,如ps ls kill netstat lsof等被替换的话,使用备份好的原命令与现有的命令进行md5sum校验,如md5值不同则是被替换的命令,删除并覆盖备份的命令。并使用chattr限制只允许执行不容许修改删除,后面木马清理完成再解除限制
2 检测自动启动项是否有可疑程序或脚本,有删除之
3 删除木马进程所在的执行文件和目录日志等所有
4 删除木马进程,观察是否还重新启动。
5 删除可疑用户
6 开启外网
四 总结
针对被入侵成功的服务器,之后的数据都做不到100%保险了,再次被入侵成功的几率很大。
所以,针对最入侵成功的服务器我们一般采用的方式是备份数据、重装系统,或更换服务器