应急响应
Last Update:
Word Count:
Read Time:
Page View: loading...
应急响应
是什么
随着信息化的高速发展,全球每年发生的网络安全事件不计其数,组织面临的安全威胁也逐年递增,当客户系统遭受病毒传播、网络攻击、黑客入侵,这类安全事件从而导致企业声誉受损,信息业务中断、系统宕机、网络瘫痪,数据窃取,并对企业和业务运行产生直接或间接的负面影响时,由信息安全专家提供入侵原因分析、业务损失评估、系统加固建议、以及黑客溯源取证的安全服务,从而减少因黑客入侵带来的损失。
分类
产生原因
大型企业的业务模式多,对外暴露的服务也多,由于对外暴露的服务多,导致被攻击的面
也会扩大
黑产团伙每天都会利用秒杀型漏洞批量扫描全网 IP
除了做黑产的大哥们,还有可能会遇到传说中的 APT
目的
应急响应的目标主要是为了阻断黑客攻击对整个安全事件发生的过程进行还原,找到问题发生的根源,并采取对应的补救措施,避免类似事件将来再次发生。
1. 判断这次应急是否是被成功入侵的安全事件
2. 阻断黑客攻击
3. 找出攻击者的第一入口点,提取恶意样本
4. 帮助客户梳理攻击者的攻击路线,提供漏洞修复方案
流程
事件判断
判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DDoS 等等。
临时处置
给出客户临时处置建议,断网隔离,保护现场环境。
信息收集分析
收集客户信息和中毒主机信息,包括样本,日志分析、进程分析、启动项分析、样本分析。
清理处置
直接杀掉进程,删除文件,打补丁,抑或是修复文件。
产出报告
整理并输出完整的安全事件报告。
应急要点:了解常见端口的攻击手法,不要相信客户说的话
处置思路
时间线
应急前沟通
1. 现场现象是什么? 如何发现的?(依据是什么)?
2. 什么时候发现的?
3. 目前是否有做物理隔离(断网)?
4. 受害机器是哪个?
5.受害服务有几台?(1 台 /N 台)
6. 最先发现是哪台?
7. 这台服务器对外有哪些服务?
8. 这台服务器于其他机器是否处于同一个内网?
9. 操作系统类型﹖是否有公网映射业务﹖远程管理方式﹖网络边界有没有流量监控设备﹖主机侧是否有 EDR 等安全设备
实战场景的应急响应
web 攻击事件
相关表现: 页面被篡改、恶意推广、黑词黑页、webshell
相关危害: 导致搜索引擎告警、微信等 app 分享告警、首页敏感内容、拖库、内网沦陷等
排查要点: 能否多个环境下复现异常现象; 确定相关资产是否存在; 恶意文件是否确实存在于服务器上
操作要点:备份 文件,webshell 后门 查杀 ; web 日志分析 ; web 中间件 缓存处理: web 中间件配置检查; 重启 web 中间件: 服务器后门检查;
防护措施: 加固相关 web 应用,修改相关系统的所有用户密码
链路劫持
相关表现: 区域性服务不可用或返回异常内容
相关危害: 导致搜索引擎告警、微信等 app 分享告警、首页敏感内容等
排查要点: 能否多个环境下复现异常现象; 确定相关资产是否存在; 恶意文件是否确实存在于服务器上
操作要点: 跨地区、运营商进行测试,确定受 影响范围; 在能复现的环境中判断是DNS 劫持还是 HTTP 劫持
防护措施: 重要业务 部署 https
代理隧道
相关表现: 持续性或间断性 外连行为 ,通常为 tcp 协议; 对 内网多个主机 有访问行为
相关危害: 作为 跳板机 攻击其他内网资产
排查要点:确定 存在代理隧道的 跳板机 ,通常为某时间段内集中访问内网多种资源的机器; 判断隧道类型
防护措施: 完善内网 acl,服务器按业务需要通过 白名单策略 访问外网
替换系统命令
相关表现: 无明显表现
相关危害: 将 后门、木马持久化 在系统中;窃取 账号、密码等重要凭证
排查要点: 使用包管理自带的 包校验功能 验证文件完整性; 分析恶意文件行为,确定影响面
操作要点: 使用 静态链接的 busybox; 重新安装被替换的包
命令:
rpm - Va —- 用于 RPM 软件包管理系统的
dpkg –verify —- 用于 Debian 软件包管理系统的
ld.so. preload 动态链接库劫持
相关表现: 无明显表现
相关危害: 将 后门、木马持久化 在系统中; 窃取账号、密码等重要凭证
排查要点: 检查 **/etc/ld. so. preload,ld.so**(如 /lib/x86_64-linux-gnu/ld-2.27.so)
操作要点: 使用静态链接的 busybox; 重启 被注入恶意模块的进程,必要时直接重启系统
内核态 rootkit
相关表现: 无明显表现
相关危害: 将 后门、木马持久化 在系统中; 隐藏文件、进程等信息
排查要点: 确定是否存在 无法使用常规命令查看的文件、进程;
操作要点: 使用 tyton 内核态 rootkit 检测工具 检测; 检查 **/etc/modules是否有 未知的内核模块 **
计划任务
相关表现:特定时间间隔触发 木马、后门、网络链接、DNS 请求、篡改页面等行为
相关危害: 将 后门、木马持久化 在系统中; 周期性篡改页面、拉取数据等
排查要点: 判断是否存在 周期性出现的异常 现象,检查 **/var/spool/cron/crontabs/,/etc/cron.*** 等常用计划任务配置文件
操作要点:停止 计划任务服务 后再操作 ; 注意 辨别利用 \r 回车符的障眼法 小技巧
远控木马
相关表现: 有 持续或间断性的对外网络链接 或 DNS 请求等通信行为
相关危害:窃取 系统资料、作为 跳板 进一步攻击内网其他机器
排查要点: 关注 tcp、udp、icmp 等一切网络行为,检查注册表、服务、开机目录、计划任务等一系列常见的 持久化点
操作要点: 检查网络连接,以及 IDS 设备 上的异常远控告警
ATT&CK 矩阵
Linux 应急响应
关键目录
/etc/passwd 用户信息文件
/etc/crontab 定时任务文件
/etc/anacrontab 异步定时任务文件
/etc/rc.d/rc.local 开机启动项
/var/log/btmp 登录失败日志,使用 last 命令查看
/var/log/cron 定时任务执行日志
/var/log/lastlog 所有用户最近登录信息,使用 lastlog 查看
/var/log/secure 验证、授权等日志
/var/log/wtmp 包含用户登录日志,使用 last 命令查看
/var/log/utmp 当前登录系统的用户信息,使用 last 命令查看
常用命令
查看进程资源占用:top
查看进程:ps -aux
查看网络连接:netstat -antpl 然后根据 pid,利用 ls -alh /proc/pid 命令查看其对应的可执行程序
开放端口的进程: lsof
显示错误的尝试登录信息: lastb
显示系统用户最近的登录信息:last
现实所有的用户最近的登录信息: lastlog
查找符合条件的字符串:grep
查看定时任务:crontab -l 、 cat /etc/crontab
查看历史命令: history、cat ~/.bash_history
查看当前目录下所有文件并排序:ls -alt
校验 RPM 软件包: rpm -Va、dpkg -verify
S: 表示对应文件的大小(Size)不一致;M: 表示对于文件的 mode 不一致;
5: 表示对应文件的 MD5 不一致;
D: 表示文件的 major 和 minor 号不一致;L: 表示文件的符号连接内容不一致;U: 表示文件的 owner 不一致;
G: 表示文件的 group 不一致;T: 表示文件的修改时间不一致;
查看文件(文件夹)详细信息:stat
查找当前目录下,指定天数内修改的指定类型(or 名称)文件: find ./ -mtime 0 - name *.jsp
查找当前目录下,指定天数内新增的指定类型(or 名称)文件: find ./ -ctime 0 - name *.jsp
登录成功的 IP
grep “Accepted “ /var/log/secure | awk ‘ {print $11}’| sort | uniq -c | sort -nr | more
定位有爆破行为的 IP
grep “Failed password”/var/log/secure|awk ‘ {print $11}’/ sort / uniq -c | sort -nr |more
查看隐藏进程
ps -ef | awk ‘{print}’l sort -n | uniq >1
ls /proc | sort -n | uniq >2
diff 1 2
应急工具
busybox
chkrootkit
Rkhunter
河马 webshell
web 日志分析
NCSA 扩展日志格式
目前常见的 WEB 日志格式主要由两类,一类是 Apache 的 NCSA 日志格式,另一类是 IIS 的 W3C 日志格式, 这里主要介绍的是 NCSA 扩展日志格式(ECLF)。
如何分析 web 日志
先搜索如 SQL 注入之类的攻击关键字?
先找出有恶意行为的用户?
常规黑客攻击思路
web 应急思路
文件内容中的恶意函数
PHP:eval(、 system(、 assert(
JSP: getRunTime(、FileOutputStream(
ASP:eval(、 execute(、ExecuteGlobal (
查看每个 IP 地址访问次数:
cat access.log |awk ‘ (print $1}’|sort|uniq -c
访问 URL 排序:
cat access.log |awk ‘ {print $11}’|sort|uniq -c|sort -rn |head
访问指定资源日志:
cat access.log |awk ‘ {print $7}’|grep /%25Domain |sort|uniq -c|sort -rn|more
sqlmap 攻击行为
案例
Windows 应急
windows 应急响应基础
常用命令
命令 | 说明 |
---|---|
Taskmgr | 任务管理器 |
regedit | 注册表 |
Msconfig | 系统配置(包含启动项) |
eventvwr.msc | 事件查看器 |
compmgmt.msc | 计算机管理(本地用户和组) |
gpedit.msc | 本地组策略 |
taskschd.msc | 计划任务 |
lusrmgr. msc | 本地用户和组 |
获取本机用户列表:net user
本机管理员:net localgroup administrators
查看当前会话: net session
查看当前运行的服务:net start
远程连接:net use
查看当前用户下的共享目录:net share
最近打开的文件:%UserProfile%\Recent 、%APPDATA%\Microsoft\Windows\Recen
查找文件中的字符串:findstr /m /i /s “hello”*.txt
查看网络连接: netstat - ano
操作系统的详细配置信息: systeminfo
获取系统进程信息:Wmic process
根据应用程序查找 PID: wmic process where name=”cmd.exe” get processid, executablepath, name
根据 PID 查找应用程序: wmic process where processid=”4296” get executablepath, name
获取系统进程信息:tasklist
对于要查询特定 dll 的调用情况,可以使用命令 tasklist /m dll 名称
计算样本 MD5:certutil -hashfile % 样本 exe% MD5
敏感目录
%WINDIR%
%WINDIR%\system32
%TEMP%
%LOCALAPPDATA%
%APPDATA%
应急工具
PCHunter 是一款强大的内核级监控软件,软件可以查看内核文件、驱动模块、隐藏进程、注册表, 内核,网络等等信息,和 PCHunter 功能相似的还有火绒剑,PowerTool 等。
Autoruns 登录时的加载程序、驱动程序加载、服务启动、任务计划等 Windows 中各种方面的启动项
Process monitor 主要是监控进程的行为应用程序运行时使用此软件来监控程序的各种操作。此软件主要监控程序的五种行为: 文件系统,注册表,进程,网络,分析。由于此款软件监控的是系统中所有的进程的行为,数据量往往很大,不利于我们分析数据,所以需要对其设置过滤选项,通过 Filter->Filter 选项可以看到右侧的窗口,在此窗口中增加过滤项。
TCPView 可以直接查看系统上与所有进程 UDP 和 TCP 端点的详细信息,
Microsoft Network Monitor 一款统计准确、占用资源小的网络流量监控软件
DumpIt Windows 一款绿色免安装的内存镜像取证工具,利用它可以将系统完整内存镜像下来, 替代工具:FTK Imager winPMem
Volatility
Volatility 开源内存取证框架
web 日志分析
Windows 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
Windows 主要有以下三类日志记录系统事件: 系统日志、安全日志、应用程序日志
打开方式:
1、开始 -> 运行 ->eventvwr
2、开始 -> 管理工具 -> 事件查看 -> 安全
系统日志
系统日志主要是记录了系统组件产生的事件。系统日志主要记录的信息包括驱动程序产生的信息、系统组件产生的信息和应用程序崩溃的信息以及一些数据丢失情况的信息
默认位置:%SystemRoot%System32WinevtLogsSystem. evtx
系统启动 ID 12
事件日志服务已启动 ID 6005
事件日志服务已停止 ID 6006
系统关闭 ID 13
安全日志
主要记录了与系统安全相关的一些事件。这种日志类型主要是记录了用户登入登出的事件、系统资源的使用情况事件以及系统策略的更改事件,如果要查看安全日志信息,则操作员必须具有系统管理员的权限。
默认位置:%SystemRoot%System32WinevtLogsSecurity.evtx
1102 清理审计日志
4624 账号成功登录
4625 账号登录失败
4768 Kerberos 身份验证(TGT 请求)
4769 Kerberos 服务票证请求
4776 NTLM 身份验证
4672 授予特殊权限
4720 创建用户
4726 删除用户
4728 将成员添加到启用安全的全局组中
4729 将成员从安全的全局组中移除
4732 将成员添加到启用安全的本地组中
4733 将成员从启用安全的本地组中移除
4756 将成员添加到启用安全的通用组中
4757 将成员从启用安全的通用组中移除
4719 系统审计策略修改
应用程序日志
指的在上的应用程序产生的日志。一般指的的是微软开发的应用程序,第三发开发的基于系统的应用程序如果使用日志记录的函数,则这个应用程序将可以通过事件查看器查看其日志信息。
默认位置:%SystemRoot%System32WinevtLogsApplication.evtx
防御
做一切的前置条件就是阻断病毒横向传播,不阻断传播,反复感染,一切都是徒劳!(方法见防御措施 1234)
1. 已攻陷主机排查与查杀处置:
1)通过天眼或天擎扫描排查已攻陷范围
2) 对于已攻陷主机通过天擎或专杀工具进行查杀。
2. 潜在威胁范围确定与应急处置;
1)防止扩散或被 C2 的处置措施,在网络出口封堵相关风险域名和 C2 域名和 IP。
3.其他防御措施:
1)对于重点服务器和主机,做好网络安全域划分并及时打 MS17-010 漏洞补丁,防止利用此漏洞的横向攻击。
2)开启 Windows 防火墙,尽量关闭 3389、445、139、135 等不用的高危端口.
3)每台服务器设置唯一口令 (切记不能多台服务器密码相同),且复杂度要求采用大小写字母、数字、特殊符号混合的组合结构, 口令位数足够长(15 位、两种组合以上)。
4) 如有 SQL SERVER 服务,更改 MSSQL 帐号密码,且复杂度要求采用大小写字母、数字、特殊符号混合的组合结构,口令位数足够长
(15 位、两种组合以上)。
5)部署全流量监测设备(天眼),及时发现恶意网络流量,进一步追踪溯源。