什么是应急响应.
一个组织为了 应对 各种网络安全 意外事件 的发生 所做的准备 以及在 事件发生后 所采取的措施 。说白了就是别人攻击你了,你怎么把这个攻击还原,看看别人是怎么攻击的,然后你如何去处理,这就是应急响应。
目录:
[Linux 入侵排查思路:](#Linux 入侵排查思路:)
[(1)排查 系统日志.](#(1)排查 系统日志.)
[(2)网络连接.(排查 异常的连接.)](#(2)网络连接.(排查 异常的连接.))
[(3)排查 资源占用.(挖矿,木马)](#(3)排查 资源占用.(挖矿,木马))
[(4)排查 开机启动项.](#(4)排查 开机启动项.)
[(5)排查 定时任务.](#(5)排查 定时任务.)
[(6)排查 环境变量配置文件.](#(6)排查 环境变量配置文件.)
[(7)排查 SSH后门.(排查 可疑账号)](#(7)排查 SSH后门.(排查 可疑账号))
[(8)善用 威胁情报.](#(8)善用 威胁情报.)
应急响应工作流程:
常见的应急响应分类:
Linux 入侵排查思路:
(1)排查 系统日志.
日志文件是记录I系统运行信息的文件,Linux系统内记载很多不同类型的日志.
查看登录信息.
lastlog
cd /var/log/ # 进入日志文件.
统计失败的次数.
sudo grep "Failed password" auth.log | wc -l # 统计失败的次数
或者
sudo grep "Failed password" secure | wc -l
攻击次数排列,由高到低.
awk '{if($6=="Failed"&&$7=="password"){if($9=="invalid"){ips[$13]++;users[$11]++}else{users[$9]++;ips[$11]++}}}END{for(ip in ips){print ip, ips[ip]}}' auth.* | sort -k2 -rn | head
其他的日志排查可以查看:https://segmentfault.com/a/1190000021752790
(2)网络连接.(排查 异常的连接.)
sudo netstat -antup # 查看所以的网络连接
(3)排查 资源占用.(挖矿,木马)
进程是 Linux 当前正在处理的任务,当运行某个软件时将为其创建一个进程.
排查话术:CPU是否远超平时居高不下,如果是的话那么可能被植入了挖矿病毒
sudo ps -efcaux # 查看所有进程(挖矿看 CPU 占多少.)
看着 进程 文件位置.
sudo lsof -p 1778 # 查找 PID 的文件位置
sudo lsof -p PID
查找绝对 文件 路径.
sudo ls -al /proc/1778/exe
sudo ls -al /proc/进程PID数/exe
关闭进程.
sudo kill -9 43
sudo kill -9 进程号
列出 CPU 的占用顺序(从高到低.)
top
再根据 CPU 高的查看这个文件的位置.
ps -ef|grep Xorg
ps -ef|grep 文件名
排查 前10的内存.
ps -aux | sort -k4nr|head -10
排查 网络宽带 .
排查话术:网络流量上下行有异常吗?有异常的话是哪个IP?
sudo apt-get install iftop # 安装这个命令 查看
ip addr # 查看所以网卡.(问问运维那个网卡是业务网卡)
sudo iftop -i eth0 -P
sudo iftop -i 业务网卡 -P
(4)排查 开机启动项.
ls -alt /etc/init.d
这个目录下面放了可执行脚本或文件,不认识的文件 和 运维 确认一下,看看是不是木马.
这个下面放的全是开机启动的服务.(排查的时候看看时间是不是在病毒发生的时候)
ls -alt rc # 点击 Tab.
列出 开机启动项 服务.(所有被设置为开机自启动文件)
systemctl list-unit-files | grep enabled
enabled # 开启的服务
如果发现恶意服务,使用下面命令 关停 或者 删除.
sudo systemctl stop e2scrub_all.timer # 停止服务
sudo systemctl stop 服务名
sudo systemctl disable e2scrub_all.timer # 删除这个服务.
sudo systemctl disable 服务名.
关错了,避免尴尬也可以偷偷 启动 或者 添加 服务.
sudo systemctl start e2scrub_all.timer # 启动服务.
sudo systemctl start 服务名
sudo systemctl enable e2scrub_all.timer # 添加和启动服务.
sudo systemctl enable 服务名
(5)排查 定时任务.
定时定点执行Linux程序或脚本.
crontab -e # 用来创建定时任务.
定时保存的路径有以下几个.
vi /var/spool/cron/ # 目录里的任务以用户命名.
vi /etc/crontab # 调度管理维护任务.(排查里面有没有新的添加)
vi /etc/cron.d/ # 这个目录用来存放任何要执行的crontab文件或脚本
(排查有没有新的添加文件 再和运维核对 进行排查)
vi /etc/cron.hourly # 每小时执行一次
vi /etc/cron.daily # 每天执行一次
vi /etc/cron.weekly # 每周执行一次
vi /etc/cron.monthly # 每月执行一次
(6)排查 环境变量配置文件.
这些文件用于设置系环境变量或启动程序,每次Linux登入或切换用户都会触发这些文件.
vi /etc/bash.bashrc # 排查环境变量配置文件.
vi .bash_logout # 这个文件系统默认里面有.(退出用户的时候也会执行)
vi /etc/profile # 排查这个文件中是否有执行的木马
vi .profile # 排查这个文件中是否有执行的木马
(7)排查 SSH后门.(排查 可疑账号)
SSH 是一种加密的网络传输协议,通常利用SSH来传输企令行界面和远程执行命.
users # 查看账户.(排查有没有不认识的账户)
cat /etc/passwd # 查看所以账户.(排查有没有不认识的账户)
下面命令的后缀解析:
/bin/bash # 账户可登录,登录后使用/bin/bash解释执行脚本
/bin/sh # 账户可登录,登录后使用/bin/bash解释执行脚本
/bin/false # 不可登录,不会有任何提示.
/usr/sbin/nologin # 不可登录,拒绝用户登录.
密钥篡改:(这个文件是用来存储公钥的,然后我们再使用私钥来登录就行)
cat authorized_keys
(排查文件有没有多的公钥,就是多出来一条数据.)
重装覆盖:(就是把 SSH 重装一遍,安装一个有后门的.)
ls -lt /usr/bin/ssh /usr/sbin/sshd
# 查看文件时间是不是新的.但是时间可能也被修改.
ssh -V # 查看版本.(是不是我们之前安装的版本)
(8)善用 威胁情报.
威胁情报是识别和分析网络威胁的过程。威胁情报平台可以查出一些域名和IP地址得 信誉 度,一旦发现它们存在网络攻击痕迹迅速封禁.
https://x.threatbook.com/ # 微步在线
https://www.virustotal.com/gui/ # VirusTotal(上传文件,检查木马)
https://ti.360.net/#/homepage # 360威胁平台
https://ti.nsfocus.com/ # 绿盟威胁情报平台
https://ti.dbappsecurity.com.cn/ # 安恒威胁情报平台