18、应急响应
1.应急响应
1.1.国内相关组织
https://www.cert.org.cn
https://cnvd.org.cn
https://www.anva.org.cn
https://cverc.org.cn
1.2.应急响应生命周期
1.3.应急响应流程
1.3.1.准备阶段
分析资产风险
- 明确信息系统网络与系统架构
- 明确信息系统的管理人员
- 明确信息系统的保护要求
- 计算损失和影响
组建管理人员团队
- 组件管理人员团队
- 组件技术人员团队
- 明确人员职责
- 建立应急响应组织人员清单
分析资产风险
- 制定应急处理的操作步骤
- 制定应急处理的报告路线
- 制定信息系统恢复的优先级顺序
- 明确配合的人员信息
风险加固
- 根据风险建立防御/控制措施
- 安全管理及安全技术层面要同时兼顾
保障资源储备
- 信息安全应急响应专项资金
- 应急响应所需的软硬件设备
- 社会关系资源
技术支持资源库
- 网络拓扑图
- 信息系统及设备安装配置文档
- 常见问题处理手册
1.3.2.检测阶段
日常运维监控
- 收集各类故障信息
- 确认信息系统的实时运行状况
- 信息安全时间探测
事件判断
- 确认事件给信息系统带来的影响
- 确认事件给信息系统造成的损害程度
- 一般事件与应急事件的判定
事件上报
- 确认应急事件类型
- 确认应急事件等级
- 通知相关人员
- 启动应急预案
1.3.3.事件通告
事件通告表
事件通告方式
- 即使通信工具
- 视频/电话会议
- 书面报告
1.3.4.事件等级判定
一般事件
较大事件
重大事件
特别重大事件
1.3.5.事件类型
恶意程序事件:计算机病毒事件、特洛伊木马事件、勒索软件、蠕虫事件、僵尸网络程序、挖矿程序等
网络攻击事件:拒绝服务攻击事件、漏洞攻击事件、网络钓鱼事件、后门攻击事件、网络扫描窃听事件、干扰事件等
Web 攻击事件:WebShell、网页挂马事件、网页篡改事件、网页暗链事件等
业务安全事件:薅羊毛事件、数据泄露事件、权限泄露事件等
1.3.6.遏制阶段
控制事件蔓延
- 采取有效的措施防止事件的进一步扩大
- 尽可能减少负面影响
遏制效应
- 采取常规的技术手段处理应急事件
- 尝试快速修复系统,消除应急事件带来的影响
遏制监测
- 确认当前的抑制手段是否有效
- 分析应急事件发生的原因,为根除阶段提供解决方案
遏制方法(常用):
- 针对受害资产所确定的范围进行隔离,包括网络隔离、关机、关闭服务;
- 持续监控网络及系统活动,记录异常流量的IP、域名、端口;
- 停止或删除不正常账号,隐藏账号、更改高强度口令;
- 挂起或关闭未授权的、可疑的应用程序和进程;
- 关闭不必要的、未知的和非法的服务;
- 关闭相应的共享;
- 删除系统各个用户下未授权的自启动程序;
- 使用反病毒二u案件或其他安全工具扫描、检查、清除病毒、木马、蠕虫、后门等可疑文件
- 设置陷阱,如蜜罐系统,或者反攻攻击者的系统。
1.3.7.根除恢复阶段
启动应急预案
- 协调各应急响应小组人员到位
- 根据应急场景启动相关预案
根除监测
- 根据应急预案的执行情况确认处置是否有效
- 尝试恢复信息系统的正常运行
持续监测
- 当应急处置成功后对应急事件持续监测
- 确认应急事件已根除
- 信息系统运行恢复到正常状况
根除方法(常用):
- 更改所有受影响的相关网络、系统、应急密码;
- 更新业务系统、中间件、操作系统、网络设备漏洞补丁;
- 开启或增强应用、系统防护功能,如安装更新杀毒软件病毒库,增强 WAF、IPS 防护级别;
- 对未受保护或者保护不够的系统增加新的防护措施;
- 增加或提升对应用系统的监控级别。
1.3.8.跟踪阶段
应急响应报告
- 由应急响应实施小组报告应急事件的处置情况
- 由应急响应领导小组下达应急响应结束的指令
应急事件调查
- 对应急事件发生的原因进行调查
- 评估应急事件对信息系统造成的损失
- 评估应急事件对单位、组织带来的影响
应急响应总结
- 对存在的风险点进行加固和整改
- 评价应急预案的执行情况和后续改进计划
- 对应急响应组织成员进行评价,表彰立功人员
1.4.所需相关技术
网络安全事件故障监测技术、Windows 系统检测技术、unix 系统检测技术、入侵检测技术、数据库系统检测技术、现场取样技术、常见的应用系统检测技术、异常行为分析技术、系统安全加固技术、攻击追踪技术、安全风险评估技术、攻击隔离技术
威胁检测能力提升解决方案
威胁情报中心:微步在线、永安在线、virtustotal、snort
流量日志审计方案设计:网络流量、系统日志、应用日志、终端日志
ELK:日志分析工具(Elasticasearch,Logstash,Kibana)
SIEM:
实时威胁检测解决方案:入侵检测系统、内网威胁感知系统、web 攻击检测系统、主机安全检测系统、CWPP、EDR
2.应急响应预案
2.1.应急响应预案包括主要内容
确定风险场景
描述可能受到的业务
描述使用的预防性策略
描述应急响应策略
识别和排列关键应用系统
行动计划
团队和人员的职责
联络清单
所需资源配置
参考标准
GB/T 24364-2009《信息安全技术 信息安全应急响应计划规范》
GB/T 20988-2007《信息安全技术 信息系统应急响应规范》
GB/Z 20985-2007《信息技术 安全技术 信息安全事件管理指南》
GB/Z 20986-2007《信息安全技术 信息安全事件分类分级指南》
2.2.制定应急响应预案的原则
1.必须集中管理应急响应预案的版本和发布;
2.为了建立有效的版本控制体系,必须建立规范的应急响应预案的问题提交、解决、更新、跟踪、发布的渠道和流程;
3.建立相关的保密管理规定,保证应急响应预案中涉及的秘密信息得到保护;
4.应急响应预案在内容管理方面应注意内容的分布和粒度,可根据版本和内容的更新频度将应急响应的内容进行适当的分布;
5.建立合理的应急响应预案的保管制度,强调存放的安全性和易取得性。
特点:
清楚、简洁
高级管理层支持/组织承诺
不断改进和更新的恢复策略
及时的更新维护
3.应急响应技术
3.1.web 应急响应
入侵响应技术点
http 协议分析
http 报文首部(字段):Referer、cookie、user-agent、host、date、via
http 方法:get、post、put
http 状态码:200、201、302、403、404、500
web 日志记录的内容
http 方法、版本、响应状态码、报文尺寸、时间戳、Referer 和 user-agent首部
3.2.取证及工具
3.2.1.取证注意事项
工具携带
IP 保存
验证留存
沟通
第三人(防止伪造)
保护现场
3.2.2.工具
取证工具:Ghost、Windows PE、Linux CD
日志分析:
Log Parser #微软出品
LogView.exe #分析大型日志首选
MyEventViewer.exe #分析系统日志
Grep #全能王
日志切割:split、cat、head、tail、awk
过程验证:nc、curl、wget、sqlmap、hackbar
4.Windows IRE-被入侵后的排除思路
4.1.检查账号安全
调取账号口令列表,检查弱口令账户
检查高权限组中是否存在越权账户
通过注册表查看隐藏克隆账户:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names(需要给予权限,然后重新打开注册表)
4.2.查看最近的系统登录情况
1.处理
将事件查看器中的安全日志导出
拷贝到运维机器,然后用 Log Parser 进行分析
例如:将日志导出为 1.evtx 存放到 C 分区后执行命令(命令行):
Logparser.exe -i:EVT "SELECT TimeGenerated as logintime, EXTRACT_TOKEN(string, 5,'|') as username from c:\1.evtx where EventID=4642"(查看登录成功的用户)
Windows 自带分析工具:
2.事件 ID 及类型
常见安全事件 ID:
4624 - 登录成功
4625 - 登录失败
4634 - 注销成功
4647 - 用户启动的注销
4672 - 使用超级用户(如管理员)进行登录
4720 - 创建用户
4722 - 启用用户帐户事件,表示禁用的用户帐户已被启用。
4723 - 更改用户密码事件,表示用户密码已更改。
4724 - 创建安全组事件,表示新安全组已创建。
4728 - 成功授权事件,表示用户获得了指定对象的权限。
4738 - 设置用户密码事件,表示用户密码已更改或重置
常见系统事件 ID:
1074 - 通过这个事件ID查看计算机的开机、关机、重启的时间以及原因和注释
6005 - 表示计算机日志服务已启动,如果出现了事件ID为6005,则表示这天正常启动了系统。
6006 - 系统关闭
6008 - 非正常关机
6009 - 系统已经重新启动
6013 - 系统已经重新启动,原因是操作系统版本升级
7036 - 服务状态更改
7040 - 启动或停止监视者通知
7045 - 安装服务
104 - 这个事件ID记录所有审计日志清除事件,当有日志被清除时,出现此事件ID
4624 中的登录类型
2:交互式登录(Interactive);用户在本地登录;
3:网络(Network);最常见的情况是连接到共享文件夹或共享打印机时
4:批处理(Batch);通常表明某计划任务启动
5:服务(Service);每种服务都被配置在某个特定的用户账号下运行
7:解锁(Unlock);屏保解锁
8:网络明文(NetworkCleartext);登录的密码在网络上是通过明文传输的,如 FTP
9:新凭证(NewCredentials);使用带 /Netonly 参数的 RUNAS 命令运行一个程序
10:远程交互(RemoteInteractive);通过终端服务、远程桌面或远程协助访问
11:缓存交互;以一个域用户登录而又没有域控制器可用
4.3.检查可疑端口与进程
使用 netstat 命令查看网络端口信息:netstat -ano | findstr "ESTABLISHED"
主要留意可疑监听端口号与 ESTABLISHED 连接,然后通过 PID 查询进程:tasklist | findstr "PID"
4.4.确认进程详细信息
打开系统信息 msinfo32(或 systeminfo),确认进程详细信息
通过查询工作日志,却进程是否存在异常活动
Windows 的系统补丁缺失扫描:https://detect.secwx.com/
4.5.第三方软件辅助排查
使用 D 盾,重点审查没有签名的进程
4.6.进程排查思路
没有签名验证信息的进程
没有描述信息的进程
进程的启动用户
进程的路径是否合法
CPU 或内存资源占用长时间过高的进程
4.7.合法端口号列表
在系统中找到服务文件,查询端口号是否合法
文件路径:C:\Windows\System32\drivers\etc\services
4.8.检查系统启动项
打开 msconfig,查看启动项
注册表查看:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
打开本地组策略,域环境还需检查 DC 上的组策略:gpedit.msc 本地组策略,查看是否存在启动脚本
4.9.检查任务计划
查看所有任务计划,比对工作记录
管理工具中打开任务计划,还要在 cmd 中执行 at(schtasks.exe) 检查计划
4.10.检查服务启动类型
打开 services.msc 检查启动类型为 “自动” 的服务
4.11.检查可疑文件
查找用户最近使用的文件和目录
在C盘下对应用户目录的 recent 目录
如果得到 webshell 或木马的创建时间,就根据这个时间进行文件搜索
使用第三方软件对注册表进行排查
打开 Registry_Workshop 搜索注册表中某段时间修改的项
4.12.自动化查杀
使用多个查杀平台对系统进行扫描
病毒分析:PCHunter、Process Explore、Syslnspector等
查毒杀毒:卡巴斯基、360、瑞星等
webshell 查杀:牧云、D 盾_web 查杀、河马 webshell 查杀、深信服 webshell 网站后门检测工具等
在线检测平台:微步在线
https://x.threatbook.cn/
https://www.virustotal.com/gui/#/home/upload
https://lesuobingdu.360.cn/
https://www.virscan.org
5.Linux - IRE
5.1.账号安全
用户信息文件:/etc/passwd
影子文件:/etc/shadow
who:查看当前登录用户(tty 本地登录,pts 远程登录)
w:查看系统信息,知道某一时刻用户的行为
uptime:查看登录多久、多少用户,负载
检查账号中的危险信息:
查看特权用户(uid 为0):awk -F: '$3 == 0{print $1}' /etc/passwd
查询有秘密可以远程登录的账号信息:awk '/\$1|\$6/{print $1}' /etc/shadow-
除 root 账号外,其他账号是否存在 sudo 权限:more /etc/sudoers |grep -v "^#\|^$" |grep "ALL=(ALL)"
5.2.检查账号执行过的系统命令
bash_history
保存 10000 条历史记录:sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
历史操作命令的清除:history -c
此命令不会清除保存再文件中的记录,因此需要手动删除 .bash_profile 文件中的记录:cat /root/.mysql_histroy >> /tmp/root_sql_history.txt
5.3.检查异常端口
netstat -antlp |more
根据 PID 查看进程文件:ls -l /proc/ PID/exe
5.4.查看进程的状况
排查进行启动时间、CPU 占用、内存占用
启动时间排序:ps aux --sort=+strat
CPU 占用排序:ps aux --sort=+%CPU
内存占用排序:ps aux --sort=+rss
5.5.排查启动脚本
检查启动级别目录中存在的脚本
检查目录 /etc/rc.d/rc0~6.d 目录中的脚本
检查目录 /usr/lib/systemd/system/
5.6.查看计划任务
查看计划任务列表:crontab -l
查看计划任务目录:
/var/spool/cron/* /etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/*
/etc/anacrontab
/var/spool/anacron/*
查看一次性计划任务:at -l
5.7.查看开机自动切服务
systemctl list-unit-files | grep enabled
chkconfig --list
5.8.查找可疑文件
查找 root 最近 20 天修改过的文件:find /etc -iname "*" -ctime +20 -type f
查找有粘滞位的文件:find / -perm u=s
查找可执行的文件:find / -perm a=x -type f
5.9.通过查看日志找出渗透时间点
定位有多少 IP 在爆破主机的 root 账号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' |sort |uniq -c | sort -nr |more
grep "Failed password for root" /var/log/auth.log | awk '{print $11}' |sort |uniq -c | sort -nr |more
定位有哪些 IP 在爆破:
grep "Failed password" /var/log/secure |grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" |uniq -c
爆破用户名字典是什么:
grep "Failed password" /var/log/secure |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}' |uniq -c | sort -nr
5.10.通过查看日志找出渗透时间点
登录成功的 IP 有哪些
grep "Accepted " /var/log/secure | awk '{print $11}' |sort |uniq -c |sort -nr |more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
5.11.日志中关键安全记录
增加一个用户:
删除用户 kali 日志:
su 切换用户:
sudo 授权执行:
6.案例 SSH 暴力破解
1.TCP 初始化连接三次握手:发 SYN 包,然后返回 SYN/ACK 包,再发 ACK 包,连接正式建立。但是这里有点出入,当请求者收到 SYN/ACK 包后,就开始建立连接了,而被请求者第三次握手结束后才建立连接。
2.客户端TCP状态迁移: CLOSED -> SYN_SENT -> ESTABLISHED -> FIN_WAIT_1-> FIN_WAIT_2 -> TIME_WAIT -> CLOSED
服务器 TCP 状态迁移:CLOSED -> LISTEN -> SYN recv -> ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED
3.当客户端开始连接时,服务器还处于 LISTENING,客户端发一个 SYN 包后,服务端接收到了客户端的 SYN 并且发送了 ACK 时,服务器处于 SYN_RECV 状态,然后并没有再次收到客户端的 ACK 进入 ESTABLISHED 状态,一直停留在 SYN_RECV 状态。
1)日志分析
系统账号情况
确认攻击情况
管理员最近登录清理
2)处理措施
- 禁止向公网开放管理端口,若必须开放应限定管理 IP 地址并加强口令安全审计(口令长度不低于 8 位,由数字、大小写字母、特殊字符等至少两种以上组合构成)
- 更改服务器 ssh 默认端口
- 部署入侵检测设备,增强安全防护
最有效的办法采用密钥方式,ssh 限制登录次数
7.案例-挖矿病毒
7.1.分析
特征:
- CPU 使用率
- 内核被优化
- 主动外连进程
- 挖矿入侵者手法大多数都是利用公开漏洞、未授权、爆破、弱口令
- 抓矿池 IP
7.2.修复方案
1.尽量关闭不必要的端口,如:445、135,139等,对 3389 端口可进行白名单配置,只允许白名单内的IP连接登陆。
2.尽量关闭不必要的文件共享,如有需要,请使用 ACL 和强密码保护来限制访问权限,禁用对共享文件夹的匿名访问。
3.采用高强度的密码,避免使用弱口令密码,并定期更换密码。建议服务器密码使用高强度且无规律密码,并且强制要求每个服务器使用不同密码管理。
4.对没有互联需求的服务器/工作站内部访问设置相应控制,避免可连外网服务器被攻击后作为跳板进一步攻击其他服务器。
5.建议全网安装终端防御。
8.应急响应工具
Rootkit 检测:
rkhunter chkrootkit
Lynis GScan
webshell 检测
河马 webshell 查杀
cloudwalker 长亭牧云
webshellkiller
scan_webshell
LogParser 日志分析 针对 Windows
D 盾 + 火绒剑(已下架)
9.病毒汇总 勒索病毒解密工具