linux系统安全应急响应

         ~~~~~~~~         因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​
                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                 ————玛丽亚·杜埃尼亚斯

前言

在linux环境下处理应急响应事件往往会比较棘手,因为相对于windows,linux没有像autorun、procexp这样的应急响应利器,也没有统一的应急响应处理流程。
linux可能出现的入侵情况及现象
1、存在非法外联占用带宽
2、存在异常进程或者异常端口
3、CPU、内存报警
4、服务器无法正常连接
5、出现异常登录和异常账号
6、网站被注入木马、webshell

应急响应流程

处理linux应急响应主要分为4个环节:识别现象-> 清除病毒-> 闭环兜底-> 系统加固
首先从客户场景的主机异常现象出发
[1]先识别出病毒的可疑现象。
[2]然后定位到具体的病毒进程以及病毒文件,进行清除。
[3]完成前2步还不够,病毒一般会通过一些自启动项及守护程序进行重复感染,所以我们要执行闭环兜底确保病毒不再被创建。
[4]将主机上的病毒项清除干净后,最后就是进行系统加固了,防止病毒从Web再次入侵进来。
在这里插入图片描述

识别现象

这个环节要求我们通过系统的运行状态,安全设备告警,发现主机异常现象,以及确认病毒的可疑行为。
当我们登录主机后做的第一件事就应该先用history查看主机的历史命令。
排查用户相关信息

whoami       #查看当前用户
who          #查看当前登录系统的所有用户
w            #显示已经登陆系统的用户列表,并显示用户正在执行的指令
users        #显示当前登录系统的所有用户的用户列表
last         #查看最近登录成功的用户及信息,查看的是 /var/log/wtmp 文件
lastb        #查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
lastlog      #显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
cat  /etc/passwd                        #查看用户信息
cat /home/"用户名".bash_history          #查看普通账号的历史命令
cat  /etc/passwd | grep /bin/bash       #查看可以登录系统的用户
awk -F: '$3==0{print $1}' /etc/passwd   #查看超级用户(uid=0),有些黑客将普通用户的uid改为0,则该普通用户也拥有了超级权限
awk '/\$1|\$6/{print $1}' /etc/shadow   #查看可以远程登录的用户
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"  #查看拥有sudo权限的用户

举例说明一下,lastb查看一下最近登录失败的用户信息
在这里插入图片描述
last查看一下最近有哪些用户登录成功
在这里插入图片描述

排查进程端口相关信息

top                          #动态查看进程
ps -aux                      #查看占用内存和CPU较高的PID和实际的指令位置
ls -l /proc/18176/exe        #查看PID为18176的进程的可执行程序
ls -l /etc/init.d            #查看启动项
lsof -p 18176                #查看PID为18176的进程打开的文件
lsof -c sshd                 #查看进程sshd打开的文件
lsof -i:33946                #查看33946端口对应的一些进程
ps -p PID -o lstart          #查看进程的启动时间点
netstat -pantu | grep 18176  #查看端口连接情况,过滤含有18176的行,就可以查看连接的端口
fuser -n tcp 33946           #查看33946端口对应的进程PID
ps aux  /  ps -ef            #静态查看进程
pstree  -h pid -p -a         #查看某个进程的进程树
ps aux --sort -pcpu          #静态查看进程,根据cpu使用情况排行,从高到低
ps aux --sort -pmem          #静态查看进程,根据内存使用情况排行,从高到低

举例说明一下比如top,如果cpu占用率超过70%且名字可疑,大概率是中了挖矿病毒了。
在这里插入图片描述
ps -aux 看下是否有可疑进程 ,当你看见命令行中带有url等奇怪的字符串时候,它很有可能就是个病毒downloader。
在这里插入图片描述

清除病毒

通过第一个环节中的各项现象的排查,可以帮助我们定位到病毒进程和病毒文件。到这一步,我们就需要将其杀死。

清除可疑进程的进程链,结束病毒进程

ps -elf | grep [pid]
kill -9 [pid]

定位病毒进程对应的文件路径,删除病毒文件

ls -al /proc/[pid]/exe
rm -f [exe_path]

闭环兜底

当我们发现,杀掉了恶意进程后,过一段时间,该进程又会重新启动,则说明该进程有守护进程。则我们第一想到了就是crontab定时任务了。
检查是否存在可疑定时任务

crontab -l            #查看定时任务
more   /var/log/cron  #查看定时日志文件
cat /etc/anacrontab   #查看anacrontab异步定时任务

枚举主机所有服务,查看是否有恶意服务

service --status-all

枚举系统文件夹的文件,按修改事件排序查看7天内被修改过的文件

find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -la

检查是否存在病毒守护进程

lsof -p [pid]

跟踪进程运行情况

strace -tt  -T -e  trace=all  -p $pid

扫描是否存在恶意驱动

lsmod

查看authorized_keys是否有攻击者上传的ssh私钥

ls -l  /etc/.ssh

安装chkrootkit 进行扫描:

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense
./chkrootkit

安装rkhunter 进行扫描:

Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvf rkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c

系统加固

最后一个环节也是非常重要的,我要通过此次的分析,知道黑客是如何入侵主机的,进而修复该漏洞,防止黑客再次入侵。
查看 /var/log/secure文件

cat /var/log/secure* | grep Accepted   #查看登录成功的记录
cat /var/log/secure* | grep Failed     #查看登录失败的记录
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'  #查看登录成功的日期、用户名及ip
grep "Failed password for root" /var/log/secure | awk '{print $11}'  #查看有哪些ip在爆破主机的root账号
grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr  #查看爆破用户名字典

日志分析

/var/log/message              包括整体系统信息
/var/log/auth.log             包含系统授权信息,包括用户登录和使用的权限机制等
/var/log/userlog              记录所有等级用户信息的日志
/var/log/cron                 记录crontab命令是否被正确的执行
/var/log/xferlog(vsftpd.log)  记录Linux FTP日志
/var/log/lastlog              记录登录的用户,可以使用命令lastlog查看
/var/log/secure               记录大多数应用输入的账号与密码,登录成功与否
/var/log/wtmp                 记录登录系统成功的账户信息,等同于命令last
/var/log/faillog              记录登录系统不成功的账号信息,一般会被黑客删除

linux平台下的恶意软件威胁以僵尸网络蠕虫和挖矿病毒为主,大多作为服务器暴露在公网,web应用漏洞多。通常包括redis未授权漏洞入侵、ssh弱口令暴力破解、web程序漏洞入侵等。我们要养成不使用弱密码,勤打补丁的好习惯。

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux安全应急响应是指在发生安全事件或遭受攻击时,对Linux系统进行紧急处置和响应的过程。以下是一些常见的Linux安全应急响应步骤: 1. 确认安全事件:首先要确定是否发生了安全事件,包括检查系统日志、网络流量分析和异常行为检测等。 2. 隔离受影响的系统:如发现受到攻击的系统,应立即将其隔离,以防止攻击扩散或进一步损害其他系统。 3. 收集证据:在处理安全事件之前,应收集相关证据,包括攻击日志、恶意文件和异常配置等。这些证据对于后续调查和分析非常重要。 4. 分析攻击:对收集到的证据进行深入分析以确定攻击类型、攻击者的目的和方法。这有助于加强安全防御和预防类似攻击再次发生。 5. 恢复系统:在确保已经理解并清除了安全威胁之后,可以开始恢复受损系统的正常运行。这可能包括修复被攻击的漏洞、移除恶意软件和重新配置受损的系统。 6. 安全加固:在响应安全事件后,应加强系统的安全防御机制,包括更新补丁、加强访问控制、安装防火墙以及加强账户和密码管理等措施。 7. 审查和改进:对安全事件的响应过程进行审查和改进,以提高安全性和应急响应的效率。这包括分析事件的原因和教训,制定更好的安全策略和流程。 请注意,这只是一个基本的安全应急响应框架,实际情况可能因事件类型和具体环境而有所不同。在面临安全事件时,建议寻求专业的安全团队或专家的帮助来进行处理和恢复。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值