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. 明确信息系统网络与系统架构
  2. 明确信息系统的管理人员
  3. 明确信息系统的保护要求
  4. 计算损失和影响

组建管理人员团队

  1. 组件管理人员团队
  2. 组件技术人员团队
  3. 明确人员职责
  4. 建立应急响应组织人员清单

分析资产风险

  1. 制定应急处理的操作步骤
  2. 制定应急处理的报告路线
  3. 制定信息系统恢复的优先级顺序
  4. 明确配合的人员信息

风险加固

  1. 根据风险建立防御/控制措施
  2. 安全管理及安全技术层面要同时兼顾

保障资源储备

  1. 信息安全应急响应专项资金
  2. 应急响应所需的软硬件设备
  3. 社会关系资源

技术支持资源库

  1. 网络拓扑图
  2. 信息系统及设备安装配置文档
  3. 常见问题处理手册

1.3.2.检测阶段

日常运维监控

  1. 收集各类故障信息
  2. 确认信息系统的实时运行状况
  3. 信息安全时间探测

事件判断

  1. 确认事件给信息系统带来的影响
  2. 确认事件给信息系统造成的损害程度
  3. 一般事件与应急事件的判定

事件上报

  1. 确认应急事件类型
  2. 确认应急事件等级
  3. 通知相关人员
  4. 启动应急预案

1.3.3.事件通告

事件通告表

事件通告方式

  1. 即使通信工具
  2. 视频/电话会议
  3. 书面报告

1.3.4.事件等级判定

一般事件

较大事件

重大事件

特别重大事件

1.3.5.事件类型

恶意程序事件:计算机病毒事件、特洛伊木马事件、勒索软件、蠕虫事件、僵尸网络程序、挖矿程序等

网络攻击事件:拒绝服务攻击事件、漏洞攻击事件、网络钓鱼事件、后门攻击事件、网络扫描窃听事件、干扰事件等

Web 攻击事件:WebShell、网页挂马事件、网页篡改事件、网页暗链事件等

业务安全事件:薅羊毛事件、数据泄露事件、权限泄露事件等

1.3.6.遏制阶段

控制事件蔓延

  1. 采取有效的措施防止事件的进一步扩大
  2. 尽可能减少负面影响

遏制效应

  1. 采取常规的技术手段处理应急事件
  2. 尝试快速修复系统,消除应急事件带来的影响

遏制监测

  1. 确认当前的抑制手段是否有效
  2. 分析应急事件发生的原因,为根除阶段提供解决方案

遏制方法(常用):

  1. 针对受害资产所确定的范围进行隔离,包括网络隔离、关机、关闭服务;
  2. 持续监控网络及系统活动,记录异常流量的IP、域名、端口;
  3. 停止或删除不正常账号,隐藏账号、更改高强度口令;
  4. 挂起或关闭未授权的、可疑的应用程序和进程;
  5. 关闭不必要的、未知的和非法的服务;
  6. 关闭相应的共享;
  7. 删除系统各个用户下未授权的自启动程序;
  8. 使用反病毒二u案件或其他安全工具扫描、检查、清除病毒、木马、蠕虫、后门等可疑文件
  9. 设置陷阱,如蜜罐系统,或者反攻攻击者的系统。

1.3.7.根除恢复阶段

启动应急预案

  1. 协调各应急响应小组人员到位
  2. 根据应急场景启动相关预案

根除监测

  1. 根据应急预案的执行情况确认处置是否有效
  2. 尝试恢复信息系统的正常运行

持续监测

  1. 当应急处置成功后对应急事件持续监测
  2. 确认应急事件已根除
  3. 信息系统运行恢复到正常状况

根除方法(常用):

  1. 更改所有受影响的相关网络、系统、应急密码;
  2. 更新业务系统、中间件、操作系统、网络设备漏洞补丁;
  3. 开启或增强应用、系统防护功能,如安装更新杀毒软件病毒库,增强 WAF、IPS 防护级别;
  4. 对未受保护或者保护不够的系统增加新的防护措施;
  5. 增加或提升对应用系统的监控级别。

1.3.8.跟踪阶段

应急响应报告

  1. 由应急响应实施小组报告应急事件的处置情况
  2. 由应急响应领导小组下达应急响应结束的指令

应急事件调查

  1. 对应急事件发生的原因进行调查
  2. 评估应急事件对信息系统造成的损失
  3. 评估应急事件对单位、组织带来的影响

应急响应总结

  1. 对存在的风险点进行加固和整改
  2. 评价应急预案的执行情况和后续改进计划
  3. 对应急响应组织成员进行评价,表彰立功人员

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

Windows 安全事件 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)处理措施

  1. 禁止向公网开放管理端口,若必须开放应限定管理 IP 地址并加强口令安全审计(口令长度不低于 8 位,由数字、大小写字母、特殊字符等至少两种以上组合构成)
  2. 更改服务器 ssh 默认端口
  3. 部署入侵检测设备,增强安全防护

最有效的办法采用密钥方式,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.病毒汇总 勒索病毒解密工具

奇安信勒索病毒应急响应自求手册

解密工具集

360 勒索病毒处理

 

posted @ 2024-04-14 17:19  落落的学习  阅读(57)  评论(0编辑  收藏  举报