目录
一、应急响应流程
1 准备阶段
2 检测阶段
3 抑制阶段
4 根除阶段
5 恢复阶段
6 总结阶段
现场处置流程
二、系统排查
1、系统信息
2、用户信息
3 启动项
4 任务计划
5 其他:Windows防火墙规则
三、进程排查
1 windows
1.1 任务管理器
1.2 cmd > tasklist
1.3 查看正在进行网络连接的进程cmd > netstat -ano | findstr 'ESTABLISHED'
2 Linux
2.1 netstat -ap
2.2 特定pid对应的执行程序:ls -alt /proc/PID
2.3查看进程打开的文件 lsof -p PID
2.4 kill -9 PID 杀死进程
2.5 查看隐藏进程
2.6 查看占用资源较多的进程top
四、服务排查
1 windows服务
2 Linux 服务
五、文件痕迹排查
1 windows
1.1敏感目录
1.2时间点查找
1.3 webshell文件
2 linux
2.1敏感目录
2.2时间点查找
六、日志分析
1 windows日志
1.1 系统日志
1.2安全性日志
1.3应用程序日志
1.4 应急响应中常见的事件id
1.5日志分析
2 Linux日志
1 查看日志
2 日志分析
3 其他日志
七、内存分析
1 内存的获取
1.1 基于内核模式程序的内存获取
1.2 基于系统崩溃转储的内存获取
1.3 基于虚拟机快照
2 内存的分析
2.1 Redline
2.2 Volatility
八、流量分析
筛选器
1 特定目的地址:ip.addr==ip
2特定源地址:ip.src==ip
3特定协议:直接输入http、http2、arp(小写)等
4特定端口:tcp.port==port / udp.port==port
5关键字:tcp contains 关键字
九、威胁情报
威胁情报金字塔
常用的威胁情报库/社区
一、应急响应流程
应急响应分为六个阶段,分别是
准备 —— 检测 —— 抑制 —— 根除 —— 恢复 —— 总结
这种划分方法也称PDCERF方法
实际上,应急响应并不是严格遵从这个方法的,大多数情况都要具体问题具体分析
1 准备阶段
以预防为主,主要是要进行风险评估等工作,包括建立信息安全管理体系、部署安全设备和安装防护软件、建立应急响应和演练制度等等。
2 检测阶段
这个阶段是在安全事件发生后的,主要是判断安全事件是否还在发生,安全事件产生的原因,对业务的危害程度以及预计如何处理。
常见的安全事件有:
- 中病毒(勒索、挖矿等)
- 信息泄露(账号信息、敏感资料)
- 业务服务被破坏(网页篡改、破坏,数据被删等)
- 系统崩溃、网络瘫痪(ddos、批量请求)
3 抑制阶段
抑制阶段主要是尽可能降低安全事件带来的损失,限制安全事件发生的范围和时长
一些抑制手段有:
- 断开网络
- 关闭受影响的系统
- 暂停受影响账号的使用
- 修改ACL
- 关闭未受到影响的其他业务
- 蜜罐
4 根除阶段
这个阶段是找出安全事件的根源,并完成清除掉隐患,避免安全事件二次发生,
5 恢复阶段
这个阶段是系统恢复到安全事件发生前的正常运行状态,并把备份数据恢复过来
6 总结阶段
这个阶段是总结这个安全事件的发生过程,并以此对涉事单位的安全技术配置、安全管理制度等进行分析评审,并以此为基础确定是否还会有新的风险,最后输出整改建议,包括安全设备采购、安全管理制度修订等
这个阶段可以输出
- 应急响应报告,包括安全事件发生流程、造成的危害、处置的方法
- 企业问题清单
现场处置流程
在现场中,首先通过访谈和现场确认,大概确认事件类型,再以此作针对性访谈和检查,然后制定应急方案,再逐步排查系统、进程、服务、文件痕迹、日志等
二、系统排查
1、系统信息
1.1 windows
系统信息工具:msinfo32.exe
命令行msinfo即可打开
展开软件环境:
此工具可进行以下信息的排查
- 系统驱动(描述、文件、开启状态等)
- 正在运行的任务(名称、路径、进程ID)
- 加载的模块
- 服务(名称、路径、状态等)
- 启动程序(命令、用户名、位置等)
查看系统信息
cmd > systeminfo
1.2 linux
OS信息 uname -a
OS版本信息 :cat proc/version
已载入模块信息:lsmod
CPU信息:lscpu
2、用户信息
2.1 windows用户信息
cmd > net user
cmd > net user username
上面的方法查看不了隐藏账户,解决:计算机管理—本地用户和组
注册表-HKEY_LOCAL_MACHINE-SAM-SAM-Domains-Account-Users-Names
这种方法可排查windows是否利用隐藏账户进行提取(导出F值查看是否有一样的)
2.2 linux
查看所有用户信息:cat etc/passwd
用户名:x(代表密码加密):用户ID:用户组:注释:用户主目录:默认登录shell
bin/bash 可登录 sbin/nologin 不可登录
查看超级权限账户:awk-F: '{if($3==0)print $1}'/etc/passwd
-F fs 指定描绘一行中数据字段的文件分隔符 默认为空格,这里为:
以:分隔字符,分割所有行,形成二维的字符矩阵,如果矩阵中第三列的值为0(即超级权限账户),打印出第一列字符(即账户名)
查看可登录账户:cat etc/passwd | grep 'bin/bash'
查看错误的用户登录信息:lastb
查看所有用户最后一次登录信息:lastlog
查看用户最近登录信息:/$ last
数据源:
- /var/log/wtmp wtmp存储登录成功的信息
- /var/log/btmp btmp存储登录失败的信息
- /var/log/utmp)utmp存储当前正在登录的信息
3 启动项
3.1 windows系统
任务管理器 - 启动项
注册表
- HKEY_CLASSES_ROOT 确保在Windows资源管理器中执行时打开正确的程序
- HKEY_CURRENT_USER 登录用户的配置、有用户的文件夹、屏幕颜色、控制面板设置
- HKEY_LOCAL_MACHINE 计算机硬件信息、驱动
- HKEY_USERS 所有用户配置文件的配置信息
- HKEY_CURRENT_CONFIG 系统当前配置
3.2 Linux
rc.local 启动加载文件
Linux中有两个,分别在etc/re.local和etc/init.d/rc.local,修改这两个文件可修改启动项
查看init.d下的文件
4 任务计划
攻击者可利用任务计划实现病毒的长期驻留
4.1 windows
计算机管理 — 任务计划程序 — 任务计划程序库 —
powershell > Get-ScheduledTask
cmd > schtasks
4.2 Linux
terminal /$ crontab -l
terminal /$ crontab -u username -l
查看所有任务计划文件 cat etc/cron*
5 其他
Windows防火墙规则
三、进程排查
进程:系统资源分配和调度的基本单位
1 windows
1.1 任务管理器
1.2 cmd > tasklist
进程和服务对应 cmd > tasklist /svc
加载dll进程 tasklist /m
加载特定dll tasklist /m name.dll
1.3 查看正在进行网络连接的进程cmd > netstat -ano | findstr 'ESTABLISHED'
-a 显示所有连接
-n数字形式显示地址和端口
-o显示进程id
LISTENING:侦听状态。ESTABLISHED:建立连接。CLOSE_WAIT:对方主动关闭连接或网络异常导致连接中断。
此外,还可以利用powershell和vmic命令进行查询
2 Linux
2.1 netstat -ap
-p 显示进程ID和名字
-a 所有
2.2 特定pid对应的执行程序:ls -alt /proc/PID
2.3查看进程打开的文件 lsof -p PID
2.4 kill -9 PID 杀死进程
rm -rf filename 删除文件,如root用户也无法删除,则先去掉i属性 chattr -i filename
2.5 查看隐藏进程
ps-ef|awk '{print}'|sort-n|uniq >1
ls/proc|sort-n |uniq >2
diff 1 2
sort -n 按整体数字大小排序:2 < 10,而不是 10 <2 (这种情况在以文件名排序时经常遇到)
>1 >2 写入文件1 2中
uniq 删除重复出现的行列
awk '{print}' =awk '{print $0}' 每一行由空格隔开 多行组成矩阵,取所有列,应该改为$2
同样,第二各命令应该改为 ls/proc|sort-n | grep -E '[0-9]+' | uniq >2
diff 1 2 对比1 2这两个文件
ps -ef 标准格式显示进程
ps-ef | awk '{print$2}' | sort-n | uniq > 1
ls/proc | sort-n | grep -E '[0-9]+' | uniq > 2
diff 1 2
2.6 查看占用资源较多的进程top
四、服务排查
服务可以看作是长时间运行在后台,不影响其他用户的进程,服务可以在计算机启动时启动,也可以暂停、重新启动。
phpstudy的apache是服务,AWVS14,Nessus也是以服务形式运行
1 windows服务
运行对话框 — services.msc
另外,也可以直接在对话框中搜索,或者在任务管理员中打开
2 Linux 服务
chkconfig --list 这个命令在centOS和redhat可以用,但是Ubuntu和kali中不可用(使用sudo service --status-all)
五、文件痕迹排查
大部分攻击都会留下文件痕迹的,可以试图从以下几个思路查找文件痕迹
- 常见的敏感路径
- 具有关键字特征的文件
- 安全事件发生时间
1 windows
1.1敏感目录
a)不同版本的系统的临时文件相对来说比较统一,所以攻击者准备好的存放路径往往会选择在临时文件目录temp(tmp),例如
b)浏览器下载文件
c)用户recent文件,这个文件主要是存储最近运行文件的快捷方式
d)预读取文件Prefetch
1.2时间点查找
a)安全事件发生日新增文件
forfiles命令
forfiles /m *.exe /d +2020/2/12 /s /p c:\ /c "cmd/ c echo @path @fdate @ftime"2 > null
/m 搜索文件
/d 大于或等于该日期 /dd小于或等于
/s 递归目录和子目录所有文件
/p 开始搜索的路径,这里是c盘
/c cmd/ c为默认,这里表示,返回路径、创建日期、创建时间
文件查看里搜索栏也可以进行相应操作
b)查看时间发生逻辑错误的文件,如创建2021年,修改是2020年
1.3 webshell文件
使用d盾、webshellkill等工具查找
2 linux
2.1敏感目录
a)/tmp目录和命令目录/usr/bin/usr/sbin
b)~/.ssh及/etc/ssh经常作为一些后门配置的路径
2.2时间点查找
a)攻击日期变动的文件
find ctime -7 -name *.sh
-type b/d/c/p/l/f:查找块设备、目录、字符设备、管道、符号链接、普通文件。
-mtime-n+n:按更改时间来查找,-n指n天以内,+n指n天前。
-atime-n+n:按访问时间来查找,-n指n天以内,+n指n天前。
-ctime-n+n:按创建时间来查找,-n指n天以内,+n指n天前。
b)排查创建、修改、访问时间
stat test.php
c)特殊文件
c1.权限为777的文件
find -tmp -perm 777
c2.webshell文件
使用findWebshell、Scan_Webshell.py扫描
c3.ls-alt/bin查看系统命令修改时间
c4.Linux后门检测
chkrootkit工具用来监测 rootkit 是否被安装到当前系统中。rootkit是攻击者经常使用的后门程序
c5.排查suid权限的程序
suid权限是用户对文件的权限,对象为文件
find/-type f -perm -04000 -ls -uid 0 2>/dev/null
-type f:根据不同的文件类型筛选 d:目录 c:字型装置文件 b:区块装置文件 p:具名贮列 f:一般文件 l:符号连结 s:socket
-perm -/+mode -04000
-perm按执行权限查找
+mode指部分满足权限 -mode指完全满足权限(还可以比此权限更高) mode指正好满足权限的 /mode指只要有权限就可以
-04000 -4000
-ls -uid 0 2
-ls 详细信息(创建时间、用户、大小等)
-uid 0 2 对于uid为用户id0-2?
六、日志分析
1 windows日志
当然,也可以直接在事件查看器上查看日志
1.1 系统日志
系统组件运行中产生的事件,包括应用程序、组件、驱动程序等,事件包括数据丢失、错误,系统或应用崩溃等
1.2安全性日志
安全日志主要记录安全事件有关的日志,包括登录或退出系统成功或失败信息,对重要文件的操作
1.3应用程序日志
应用程序所产生的各类事件
1.4 应急响应中常见的事件id
528/529 (旧版本) |
4624/4625 (旧版本) |
登录成功/失败 | 安全 (类型) |
680 | 4776 | 账户认证成功/失败 | 安全 |
624 | 4720 | 创建用户 | 安全 |
636 | 4732 | 把用户添加到启用安全性的本地组中 | 安全 |
632 | 4728 | 把用户添加到启用安全性的全局组中 | 安全 |
2949/2934 | 7045/7030 | 创建服务/创建服务失败 | 系统 |
2944 | 7040 | IPSEC服务从禁用变成自启动 | 系统 |
登录类型和数字对应表
登录相关日志事件ID对应描述表
启动事件相关日志事件ID对应描述表
日志被清除相关日志事件ID对应描述表
1.5日志分析
--事件查看器
--powershell
Get-EventLog Security-InstanceId 4672
Get-WinEvent-FilterHashtable @{LogName='Security';ID='4672'}
--FullEventLogView日志检索工具
2 Linux日志
Linux的日志存储在var/log中
wtmp 记录登录进入、退出、数据交换、关机和重启
cron 记录与定时任务相关的日志信息
messages 记录系统启动后的信息和错误日志
apache2/access.log 记录Apache的访问日志
auth.log 记录系统授权信息,包括用户登录和使用的权限机制等
userlog 记录所有等级用户信息的日志
xferlog(vsftpd.log) 记录Linux FTP日志
lastlog 记录登录的用户,可以使用命令lastlog查看
secure 记录大多数应用输入的账号与密码,以及登录成功与否
faillog 记录登录系统不成功的账号信息
1 查看日志
cat var/log/logname
查看邮件相关日志记录文件ls -alt /var/spool/mail
2 日志分析
tail-n 10 test.log查询最后10行的日志 head-n 10 test.log查询头10行的日志
tail-n+10 test.log查询10行后的所有日志 head-n-10 test.log查询除最后10行的其他所有日志
3 其他日志
3.1 IIS日志的位置
%SystemDrive%\inetpub\logs\LogFiles;
%SystemRoot%\System32\LogFiles\W3SVC1;
%SystemDrive%\inetpub\logs\LogFiles\W3SVC1;
%SystemDrive%\Windows\System32\LogFiles\HTTPERR。
可通过cmd > set查看%SystemDrive%和%SystemRoot%
3.2 apache日志
/var/log/httpd/access.log;
/var/log/apache/access.log;
/var/log/apache2/access.log;
/var/log/httpd-access.log。
3.3 ngnix日志
默认在/usr/local/nginx/logs目录下,access.log是访问日志,error.log是错误日志。如不在默认目录下,可以在ngnix.conf中查找.
3.4 oracle数据库
select * from v$logfile查询日志路径(默认为$ORACLE/rdbms/log)
select * from v$sql查询之前使用过的SQL
3.5 mysql数据库
show variables like 'log_%'查看是否启用日志
show variables like 'general'查看日志位置(默认为/var/log/mysql/)
七、内存分析
有时候对应急响应服务器进行内存的提取,可以分析处其中的隐藏进程。
1 内存的获取
1.1 基于内核模式程序的内存获取
这种方法一般是使用工具抓取,常用工具有FTK Imager、Dumpit、RAM Capture等
1.2 基于系统崩溃转储的内存获取
所有控制 — 系统 — 高级 — 启动和故障恢复 — 设置 — 启动和故障恢复 — 核心内存转储 — 找到转储文件进行获取
1.3 基于虚拟机快照
VMwareWorkstation在生成快照时会自动生成虚拟内存文件,如图vmen文件
此外,还有基于用户模式程序的、内核模式程序、操作系统注入、系统休眠文件、系统冷启动、硬件的内存获取。
2 内存的分析
2.1 Redline
可通过Redline导入分析,Redline会收集在主机上运行的有关进程信息、内存中的驱动程序,以及其他数据,如元数据、注册表数据、任务、服务、网络信息和Internet历史记录等,最终生成报告
2.2 Volatility
Volatility可以分析入侵攻击痕迹,包括网络连接、进程、服务、驱动模块、DLL、handles、进程注入、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit隐藏文件、cmdliner等
八、流量分析
Wireshark是一个网络封包流量分析软件。其功能是获取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPcap作为接口,直接与网卡进行数据报文交换。
筛选器
1 特定目的地址:ip.addr==ip
2特定源地址:ip.src==ip
3特定协议:直接输入http、http2、arp(小写)等
4特定端口:tcp.port==port / udp.port==port
5关键字:tcp contains 关键字
九、威胁情报
威胁情报的定义是基于证据的知识,包括上下文、机制、指标、隐含和可操作的建议,针对一个现存的或新兴的威胁,可用于做出相应决定的知识。 ——Gartner
结合威胁情报可以了解攻击者的信息
IOC(Indicator of Compromise)通常指在检测或取证中,具有高置信度的威胁对象或特征信息。
威胁情报金字塔
顶端的情报获取成本最高,同时也是价值最大的
IOC(Indicator of Compromise)通常指在检测或取证中,具有高置信度的威胁对象或特征信息。
常用的威胁情报库/社区:
- 微步在线
- Venuseye威胁情报中心
- 奇安信威胁情报中心
- 360威胁情报中心
参考:电子工业出版社《网络安全应急响应指南》文章来源:https://www.toymoban.com/news/detail-481459.html
(侵权请联系本人删除)文章来源地址https://www.toymoban.com/news/detail-481459.html
到了这里,关于【安全服务】应急响应1:流程、排查与分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!