为了快速帮助客户有序地应对疑似Linux系统被入侵的事件,我们整理了如下的排查过程,期望能够对客户制定遇到入侵事件时的响应机制提供一些帮助。
1.准备工作
1)检查人员应该可以物理接触到可疑的系统。因为黑客可能会通过网络监听而检测到你正在检查系统,所以物理接触会比远程控制更好。
2)为了当作法庭证据,需要将硬盘做实体备份。如果需要,断开所有与可疑机器的网络连接。
3)做入侵检测时,检查人员需要一台计算机专门对检查的过程进行检查项目的结果记录。
4)请维护可疑服务器的人员来配合,以确定机器上安装的软件和运行的服务、账户等信息,以便于安全检查人员提高检查的效率、准确性和针对性。
2.步骤
检测的步骤如图B-1所示。
(1)检测常用程序是否被替换
1)通常被替换的程序有login、ls、ps、ifconfig、du、find、netstat、ss等。执行一些命令参数,查看程序是否被替换。例如:
ls -alh
netstat -anp
2)通过检查md5sum和文件大小,判断是否被替换。例如:
md5sum /bin/netstat
3)上传chkrootkit和rkhunter两个工具,检测一下是否有Rootkit。
4)使用ClamAV Antivirus检查/sbin/bin/usr/sbin/usr/bin。使用的命令如下:
freshclam
clamscan -r PATH
(2)查找隐藏目录和文件
查找隐藏目录和文件时使用的命令如下:
find / -name ‘…’
find / -name ‘..’
find / -name ‘.’
find / -name ‘ ‘
(3)检测近期系统登录
使用last命令检测近期系统登录,特别注意非正常来源IP地址或者用户名的登录记录。
(4)检测系统用户
1)通过命令less/etc/passwd查看是否有新增用户。
2)通过命令grep’:0’/etc/passwd查看是否有特权用户(root权限用户)。
3)通过命令stat/etc/passwd查看passwd最后修改时间。
4)通过命令awk-F:’length($2)==0{print$1}’/etc/shadow查看是否存在空口令用户。
(5)查看进程
1)输入ps-aux查看输出信息,尤其注意有没有以./xxx开头的进程。如果有,则使用kill-9 pid杀死该进程,然后再运行ps-aux,查看该进程是否被杀死;如果此类进程出现结束后又重新启动的现象,则证明系统被人放置了自动启动脚本,这个时候要进行仔细查找。使用的命令如下
find / -name进程名 -print
2)通过命令lsof-p pid查看进程所打开的端口及文件。
3)检查隐藏进程,使用的命令如下:
ps -ef | awk ‘{print $2}’ | sort -n | uniq >1
ls /proc | sort -n |uniq>2
diff 1 2
(6)检查网络连接和监听端口
1)使用命令ip link|grep PROMISC检查。正常网卡不存在promisc,如果存在则可能有嗅探。
2)通过netstat-lntp查看所有监听端口。
3)通过netstat-antp查看所有已经建立的连接。特别注意本机主动连接到外部地址的连接,这可能意味着反弹shell。
4)通过arp-an查看arp记录是否正常。
(7)检查计划任务
1)通过命令crontab-u root-l查看root用户的计划任务。
2)通过命令cat/etc/crontab查看有无异常条目。
3)通过命令ls/var/spool/cron查看有无异常条目。
4)通过命令ls-l/etc/cron.*查看cron详细文件变化。
(8)检查开机启动项
1)检查开机启动项/etc/rc.local的内容。
2)使用systemctl或者chkconfig检查开机启动项。
(9)检查日志中的异常
注意:为了防止对原始日志的损坏,建议检查前最好先做好日志备份。
1)需要检查的日志类型如下。
·系统日志:message、secure、cron、mail等系统日志。
·应用程序日志:Apache日志、Nginx日志、FTP日志、MySQL、Oracle等日志。
·自定义日志:很多程序开发过程中会自定义程序日志,这些日志也是很重要的数据,能够帮我们分析入侵途径等信息。
·bash_history:这是bash执行过程中记录的bash日志信息,能够帮我们查看bash执行了哪些命令。
·其他安全事件相关日志记录。
2)分析异常时的注意事项如下:
·用户在非常规的时间登录。
·不正常的日志记录,比如残缺不全的日志或者诸如wtmp这样的日志文件,无故地缺少了中间的记录文件。
·用户登录系统的IP地址和以往的不一样。
·用户登录失败的日志记录,尤其是那些一再连续尝试、进入失败的日志记录。
·非法使用或不正当使用超级用户权限su的指令。
·无故或者非法重新启动各项网络服务的记录。
(10)Webshell检测
检查Web目录是否存在Webshell网页木马,重点检查类似upload目录。使用的工具包括:D盾或者LMD、安全狗。
3.检测注意项
1)如果这台机器业务很重要而不能被切断网络连接,那么一定要备份所有重要的资料,以避免黑客注意到正在进行检测而删除文件。
2)如果这台机器业务不是很重要,那么建议切断网络连接做物理隔离,将整个硬盘进行外置存储复制镜像。可以使用的工具包括dd等。
3)尝试找出黑客活动的证据:
·找到攻击者使用过的文件,包含被删除的文件(使用取证工具),查看这些文件做了什么,了解它的功能。
·检查最近被存取的所有档案。
·查找是否有远程控制或后门之类的传播。
·尝试找出攻击者如何进入系统,所有可能都要考虑到。
·修复攻击者利用的漏洞。
4.修复
1)不论系统被入侵到什么程度以及安全检测人员检查到受攻击的情况如何,只要系统被渗透过,最好的方法就是用原始工具重新安装系统。然后在新系统上安装所有的补丁,同时Web服务器按照安全标准配置目录权限和配置文件。
2)改变所有系统相关账号(包括数据库连接字符串)的密码。
3)尝试检查、恢复那些已经被攻击者篡改的文件。
5.出具检测报告
在排查过程后出具事件报告有助于进行分析总结,并为后期安全改进提供有针对性的指南。一般来说,报告至少要包括以下内容:
·检测的概要步骤
·初步检测结果
·指出什么地方(可能)出了问题
·入侵事件对业务造成的影响
·应对改进的建议