赞
踩
应急响应分为六个阶段,分别是
准备 —— 检测 —— 抑制 —— 根除 —— 恢复 —— 总结
这种划分方法也称PDCERF方法
Prepare准备)、Detection(检测)、Containment(抑制)、Eradication(根除)、Follow-Up(跟踪)
准备阶段以预防为主。主要工作涉及识别机构、企业的风险,建立安全政策,建立协作体系和应急制度。按照安全政策配置安全设备和软件,为应急响应与恢复准备主机。依照网络安全措施,进行一些准备工作,例如,扫描、风险分析、打补丁等。如有条件且得到许可,可建立监控设施,建立数据汇总分析体系,制定能够实现应急响应目标的策略和规程,建立信息沟通渠道,建立能够集合起来处理突发事件的体系。
检测阶段主要检测事件是已经发生的还是正在进行中的,以及事件产生的原因。确定事件性质和影响的严重程度,以及预计采用什么样的专用资源来修复。选择检测工具,分析异常现象,提高系统或网络行为的监控级别,估计安全事件的范围。通过汇总,查看是否发生了全网的大规模事件,从而确定应急等级及其对应的应急方案。
一般典型的事故现象包括:
(1)账号被盗用;
(2)骚扰性的垃圾信息;
(3)业务服务功能失效;
(4)业务内容被明显篡改;
(5)系统崩溃、资源不足。
抑制阶段的主要任务是限制攻击/破坏波及的范围,同时也是在降低潜在的损失。所有的抑制活动都是建立在能正确检测事件的基础上的,抑制活动必须结合检测阶段发现的安全事件的现象、性质、范围等属性,制定并实施正确的抑制策略。
抑制策略通常包含以下内容:
(1)完全关闭所有系统;
(2)从网络上断开主机或断开部分网络;
(3)修改所有的防火墙和路由器的过滤规则;
(4)封锁或删除被攻击的登录账号;
(5)加强对系统或网络行为的监控;
(6)设置诱饵服务器进一步获取事件信息;
(7)关闭受攻击的系统或其他相关系统的部分服务。
根除阶段的主要任务是通过事件分析找出根源并彻底根除,以避免攻击者再次使用相同的手段攻击系统,引发安全事件。并加强宣传,公布危害性和解决办法,呼吁用户解决终端问题。加强监测工作,发现和清理行业与重点部门问题。
恢复阶段的主要任务是把被破坏的信息彻底还原到正常运作状态。确定使系统恢复正常的需求内容和时间表,从可信的备份介质中恢复用户数据,打开系统和应用服务,恢复系统网络连接,验证恢复系统,观察其他的扫描,探测可能表示入侵者再次侵袭的信号。一般来说,要想成功地恢复被破坏的系统,需要干净的备份系统,编制并维护系统恢复的操作手册,而且在系统重装后需要对系统进行全面的安全加固。
总结阶段的主要任务是回顾并整合应急响应过程的相关信息,进行事后分析总结和修订安全计划、政策、程序,并进行训练,以防止入侵的再次发生。基于入侵的严重性和影响,确定是否进行新的风险分析,给系统和网络资产制作一个新的目录清单。这一阶段的工作对于准备阶段工作的开展起到重要的支持作用。
总结阶段的工作主要包括以下3方面的内容:
(1)形成事件处理的最终报告;
(2)检查应急响应过程中存在的问题,重新评估和修改事件响应过程;
(3)评估应急响应人员相互沟通在事件处理上存在的缺陷,以促进事后进行更有针对性的培训。
实际上,应急响应并不是严格遵从这个方法的,大多数情况都要具体问题具体分析
在现场中,首先通过访谈和现场确认,大概确认事件类型,再以此作针对性访谈和检查,然后制定应急方案,再逐步排查系统、进程、服务、文件痕迹、日志等
系统信息工具:msinfo32.exe
命令行msinfo即可打开
展开软件环境:
此工具可进行以下信息的排查
查看系统信息
cmd > systeminfo
OS信息 uname -a
OS版本信息 :cat proc/version
已载入模块信息:lsmod
CPU信息:lscpu
cmd > net user
cmd > net user username
上面的方法查看不了隐藏账户,解决:计算机管理—本地用户和组
注册表-HKEY_LOCAL_MACHINE-SAM-SAM-Domains-Account-Users-Names
这种方法可排查windows是否利用隐藏账户进行提取(导出F值查看是否有一样的)
查看所有用户信息: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存储当前正在登录的信息
任务管理器 - 启动项
注册表
rc.local 启动加载文件
Linux中有两个,分别在etc/re.local和etc/init.d/rc.local,修改这两个文件可修改启动项
查看init.d下的文件
攻击者可利用任务计划实现病毒的长期驻留
计算机管理 — 任务计划程序 — 任务计划程序库 —
powershell > Get-ScheduledTask
cmd > schtasks
terminal /$ crontab -l
terminal /$ crontab -u username -l
查看所有任务计划文件 cat etc/cron*
Windows防火墙规则
进程:系统资源分配和调度的基本单位
进程和服务对应 cmd > tasklist /svc
加载dll进程 tasklist /m
加载特定dll tasklist /m name.dll
-a 显示所有连接
-n数字形式显示地址和端口
-o显示进程id
LISTENING:侦听状态。ESTABLISHED:建立连接。CLOSE_WAIT:对方主动关闭连接或网络异常导致连接中断。
此外,还可以利用powershell和vmic命令进行查询
-p 显示进程ID和名字
-a 所有
rm -rf filename 删除文件,如root用户也无法删除,则先去掉i属性 chattr -i filename
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
服务可以看作是长时间运行在后台,不影响其他用户的进程,服务可以在计算机启动时启动,也可以暂停、重新启动。
phpstudy的apache是服务,AWVS14,Nessus也是以服务形式运行
运行对话框 — services.msc
另外,也可以直接在对话框中搜索,或者在任务管理员中打开
chkconfig --list 这个命令在centOS和redhat可以用,但是Ubuntu和kali中不可用(使用sudo service --status-all)
大部分攻击都会留下文件痕迹的,可以试图从以下几个思路查找文件痕迹
a)不同版本的系统的临时文件相对来说比较统一,所以攻击者准备好的存放路径往往会选择在临时文件目录temp(tmp),例如
b)浏览器下载文件
c)用户recent文件,这个文件主要是存储最近运行文件的快捷方式
d)预读取文件Prefetch
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年
使用d盾、webshellkill等工具查找
a)/tmp目录和命令目录/usr/bin/usr/sbin
b)~/.ssh及/etc/ssh经常作为一些后门配置的路径
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.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对应描述表
–事件查看器
–powershell
Get-EventLog Security-InstanceId 4672
Get-WinEvent-FilterHashtable @{LogName=‘Security’;ID=‘4672’}
–FullEventLogView日志检索工具
Linux的日志存储在var/log中
wtmp 记录登录进入、退出、数据交换、关机和重启
cron 记录与定时任务相关的日志信息
messages 记录系统启动后的信息和错误日志
apache2/access.log 记录Apache的访问日志
auth.log 记录系统授权信息,包括用户登录和使用的权限机制等
userlog 记录所有等级用户信息的日志
xferlog(vsftpd.log) 记录Linux FTP日志
lastlog 记录登录的用户,可以使用命令lastlog查看
secure 记录大多数应用输入的账号与密码,以及登录成功与否
faillog 记录登录系统不成功的账号信息
cat var/log/logname
查看邮件相关日志记录文件ls -alt /var/spool/mail
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.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 l o g f i l e 查询日志路径 ( 默认为 logfile查询日志路径(默认为 logfile查询日志路径(默认为ORACLE/rdbms/log)
select * from v$sql查询之前使用过的SQL
3.5 mysql数据库
show variables like 'log_%'查看是否启用日志
show variables like 'general’查看日志位置(默认为/var/log/mysql/)
有时候对应急响应服务器进行内存的提取,可以分析处其中的隐藏进程。
这种方法一般是使用工具抓取,常用工具有FTK Imager、Dumpit、RAM Capture等
所有控制 — 系统 — 高级 — 启动和故障恢复 — 设置 — 启动和故障恢复 — 核心内存转储 — 找到转储文件进行获取
VMwareWorkstation在生成快照时会自动生成虚拟内存文件,如图vmen文件
此外,还有基于用户模式程序的、内核模式程序、操作系统注入、系统休眠文件、系统冷启动、硬件的内存获取。
可通过Redline导入分析,Redline会收集在主机上运行的有关进程信息、内存中的驱动程序,以及其他数据,如元数据、注册表数据、任务、服务、网络信息和Internet历史记录等,最终生成报告
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.portport / udp.portport
5关键字:tcp contains 关键字
威胁情报的定义是基于证据的知识,包括上下文、机制、指标、隐含和可操作的建议,针对一个现存的或新兴的威胁,可用于做出相应决定的知识。 ——Gartner
结合威胁情报可以了解攻击者的信息
IOC(Indicator of Compromise)通常指在检测或取证中,具有高置信度的威胁对象或特征信息。
顶端的情报获取成本最高,同时也是价值最大的
IOC(Indicator of Compromise)通常指在检测或取证中,具有高置信度的威胁对象或特征信息。
常用的威胁情报库/社区:
应急响应-PDCERF 方法
https://blog.csdn.net/kongzhian/article/details/120141747
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。