应急流程
应急响应是指在服务器被黑前做好事前准备和被黑后的一套处理手段。其中把应用流程模型称为PDCERF模型。
- P (Preparation准备) 建立应急响应的流程和响应小组,准备一份各业务系统资产列表和负责人的列表,准备应急工具busybox,WebShell检测,病毒查杀工具。
- D(Detection诊断)判断发生事件类型(ddos,挖矿,WebShell)来通过不同手段来处理事件。
- C(Containment抑制)联系负责人处理,先把机器从网络隔离出来
- E(Eradication根除)找出攻击者的源头和被攻击的原因来清楚后门,需要考虑 黑客是如何攻击来的?利用了什么漏洞?在服务器中做了什么?
- R(Recovery恢复)重新上线业务
- F(follow-up跟踪)监控机器和写应急报告
应急工具
BusyBos
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。
运维人员开始top、ps等未查找到异常进程是由于该病毒涉及到 Linux动态链接库预加载机制,是一种常用的进程隐藏方法,而系统的ls,ps等命令已被通过so库的preload机制被病毒劫持。
而busybox是静态编译的,不依赖于系统的动态链接库,从而不受ld.so.preload的劫持,能够正常操作文件。
系统加载动态链接库机制
1)执行命令会动态调用预先加载的库来添加变量
2)动态链接库会加载配置文件和环境变量
安装和使用
1 | cd /bin/ |
检查后门和系统命令是否给替换工具 Chkrootkit
Rkhunter
Linux病毒查杀工具:Clamav
WebShell查杀:D盾查杀 http://www.d99net.net/News.asp?id=62
排除步骤
1)事件分类
初步判断是什么安全事件,是服务器CPU过高还是出现陌生账户等。
Web入侵:网页挂马、网页篡改、网站Webshell
系统入侵:系统异常、RDP爆破、SSH爆破、主机漏洞病毒
木马:远控、后门
勒索软件信息泄漏:拖裤、数据库登录(弱口令)
网络流量:频繁发包、批量请求、DDOS攻击
2)抑制扩散
先对被入侵机器执行隔离,防止扩散,通过iptables完成网络层隔离1
2
3
4
5
6
7iptables-save >/root/iptables.bak ##备份系统的的 iptables文件
iptables -F
iptables -A INPUT -s 允许登录IP -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d 允许登录IP -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
iptables -A OUTPUT -j DROP
清理完后门后,回复网络1
iptables-restore < /root/iptables.bak
3)常见后门技术
增加超级用户帐号
破解/嗅控用户密码
放置SUID Shell
利用系统服务程序
TCP/UDP/ICMP Shell
Crontab定时任务
共享库文件
工具包rootkit
可装载内枋模块(LKM)
查看文档 https://kun0769-1258107287.cos.ap-guangzhou.myqcloud.com/Linux%E5%90%8E%E9%97%A8.html
4)检测系统
使用BusyBox工具来检测
1.检查系统用户
判断是否有黑客登录系统1
2
3
4
5
6
7
8last #登录时间与运维人员时间对不上
w #当前登录时间
cat /etc/passwd
grep :0 /etc/passwd
awk -F: '$3==0{print $1}' /etc/passwd #uid为0
ls -l /etc/passwd #查看passwd最后修改时间
cat /etc/passwd |ag -v 'nologin$|false$' #查看可以登录的用户
cat /etc/sudoers #查看sudo配置文件
2.检查异常进程
判断是否被种马1
2
3
4
5
6
7
8perf top -s pid,comm,dso,symbol #查看恶意进程
top #查看进程信息
lsof -p PID #查看进程占用信息
lsof -i :port #检查哪个进程使用该端口
ps aux
pstree #以树状图显示进程关系
strace -f -f PID #跟踪分析进程
kill -9 PID #杀死进程
3.检查异常系统文件1
2
3
4
5
6find / -name "name"
find / -mtime 1 -name * #文件创建时间查找
ls alh #目录下详细信息
find / -uid 0 -print #查看特权用户文件
ls -alt /tmp/
ls -alt /etc/init.d/ #查看开机启动项内容
4.检查网络1
2
3netstat -lntp #检查可以IP,端口
lsof -i:5000 #查看5000端口占用情况
watcch netstat -antop #实时监控网络连接
5.检查计划任务1
2
3
4crontable -l #查看当前任务计划
cat /etc/crontab
ls -alh /etc/cron.*
/var/spool/cron/
6.检查系统命令1
2
3env #环境变量
history
/etc/init.d
7.检查系统日志1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31/var/log/httpd/access_log
/var/log/httpd/error_log
/var/log/messages #包括主题系统信息,其中包含系统启动时间的日志,此外,mail cron daemon kern和auth等内容也记录在此
/var/log/dmesg #包含内核缓冲信息(kernel ring buffer),系统启动时,会在屏幕上显示许多和硬件有关的信息,可以使用dmesg查看
/var/log/auth.log #包含系统授权信息,包括用户登录和使用的权限机制
/var/log/daemon.log #包含各种系统后台守护进程日志信息
/var/logboot.log #包含系统启动的日志
/var/log/dpkg/log #包括安装或dpkg命令清除软件包的日志
/var/log/kern.log #包含内核产生的日志,有助于在定制内核时解决问题
/var/log/lastlog #记录所有用户的最近信息。需要使用lastlog命令查看内容
/var/log/maillog /var/log/mail.log #包含系统运行电子邮件服务器的日志信息。sedmail日志信息就全部送到这个文件中
/var/log/user/log #记录所有登记用户信息的日志。
/var/log/Xorg.x.log #来自X的日志信息
/var/log/alternatives.log #更新替换信息都记录在这文件中
/var/log/btmp #记录所有失败登录信息。使用last命令可以查看btmp文件 last -f /var/log/btmp |more
/var/log/cpus #涉及所有打印信息的日志
/var/log/anaconda.log #安装linux时,所有安装信息都储存在这文件中
/var/log/yum.log #包含使用yum安装软件包信息
/var/log/cron #每当cron进程开始一个工作,就会将相关信息记录在这文件中
/var/log/secure #包含验证和授权方面信息,sshd会将所有信息记录(包括失败登录)在这文件中
/var/log/wtmp或/var/log/apache2 #包含服务器access_log和error_log信息
/var/log/faillog #包含用户登录失败信息,此外,错误登录命也会记录在本文件中
除了上述log文件外,/var/log还基于系统的具体应用包含以下子目录
/var/log/lighttpd #包含light HTTPD的access_log和error_log
/var/log/mail/ #该目录包含右键服务器的额外日志
/var/log/prelink/ #包含.so文件被prelink修改的信息
/var/log/samba/ #包含由samba存储的信息
/var/log/sa/ #包含没有sysstat软件包收集的sar文件
/var/log/sssd #用于守护进程的安全服务
~/.bash_history #非常重要的日志 黑客会使用history -c清理相关的日志
8.检查WebShellD盾
深信服webshell查杀
9.检查系统后门chkrootkit
rkhunter
clamav