突发事件应急处理流程包括:准备阶段(Preparation)、检测阶段(Examination)、抑制阶段(Suppresses)、根除阶段(Eradicates)、恢复阶段(Restoration)、总结阶段(Summary)六个阶段。
本次预案重点关注准备、检测、抑制3个环节。
1、准备阶段
首先应对目标主机或服务器进行基线检查(结合安全设备自带脚本),对常见的脆弱项及时进行加固
对于windows操作系统,应检查以下配置:
1》账户管理,windows中应该禁用来宾,删除无用账户,重命名管理员;配置密码策略符合复杂性,长度等要求,配置账户锁定策略锁定阈值,以及不显示最后的用户
2》授权管理,应该遵循权限最小化原则,本地与远程关机只授权给管理员组,不允许everyone从网络访问,只允许授权用户从本地登陆计算机,共享文件夹按照实际需求来设置,不设置为everyone
3》日志配置,启用审核策略更改,对尝试更改用户权限分配策略、审核测策略、账户策略或信任策略的操作,无论成功还是失败都需要审核,设置日志文件大小,根据磁盘空间配置日志文件大小
4》服务安全,禁用不需要的服务,例如关闭445端口开启的共享服务
5》防火墙配置,确认防火墙已启用,设置符合需求的入站出站规则
6》其他安全配置,安装防病毒软件,实时更新病毒库和实时防御功能,设置屏幕保护密码和保护时间,根据操作系统实时更新补丁
关于linux,关注以下方面
1》重要文件,例如
/etc/passwd #记录本地用户的属性信息,如UID、GID
/etc/shadow #存放用户的口令信息 只有系统管理员能查看
/etc/pam.d/system-auth #账户安全配置文件
/etc/login.defs #修改登录的配置文件
/etc/profile #Linux全局变量信息
/etc/ssh/sshd_config #ssh服务配置文件
/etc/hosts.allow 与 /etc/hosts.deny
2》关注账户口令
删除不需要的用户和组,锁定不需要的用户,检查root账号uid是否为0,检查是否存在空口令账号,设置口令策略,配置账户认证失败锁定策略,设置终端超时配置。
3》关注权限管理
最小化权限,初始化文件权限,控制只有sudo权限只有root用户其所有权限
4》日志配置,查看syslog等日志是否开启,并查看相应配置,以及日志保存位置等
5》服务安全,改变常用服务的端口,禁止root账户远程登录,允许使用密钥进行ssh登录,停用或禁止不需要的服务
6》防火墙配置,查看防火墙是否开启,不必要的端口不开放,查看自启动项是否有涉及安全隐患的服务
除此之外,还应该关注数据库系统,中间件、防病毒软件、操作系统补丁等的脆弱项加固。
2、检测阶段
检测阶段确认入侵事件是否发生,如真发生了入侵事件,评估造成的危害、范围以及发展的速度,事件会不会进一步升级。然后根据评估结果通知相关的人员进入应急的流程。
包括:事件类型、事件影响范围、受影响系统、事件发展趋势、安全设备等
#安全事件分类主要参考中央网信办发布《国家网络安全事件应急预案》,网络安全事件分为有害程序事件、网络攻击事件、信息破坏事件、信息内容安全事件、设备设施故障、灾害性事件和其他网络安全事件等。
(1)有害程序事件分为计算机病毒事件、蠕虫事件、特洛伊木马事件、僵尸网络事件、混合程序攻击事件、网页内嵌恶意代码事件和其他有害程序事件。
(2)网络攻击事件分为拒绝服务攻击事件、后门攻击事件、漏洞攻击事件、网络扫描窃听事件、网络钓鱼事件、干扰事件和其他网络攻击事件。
(3)信息破坏事件分为信息篡改事件、信息假冒事件、信息泄露事件、信息窃取事件、信息丢失事件和其他信息破坏事件。
(4)信息内容安全事件是指通过网络传播法律法规禁止信息,组织非法串联、煽动集会游行或炒作敏感问题并危害国家安全、社会稳定和公众利益的事件。
(5)设备设施故障分为软硬件自身故障、外围保障设施故障、人为破坏事故和其他设备设施故障。
(6)灾害性事件是指由自然灾害等其他突发事件导致的网络安全事件。
(7)其他事件是指不能归为以上分类的网络安全事件
2.1 事件输入点的确定(点)
确定事件输入点,主要通过进场后问询的方式,获知客户从何发现其系统受到攻击。比如是管理员发现系统频繁扫描内网,或是系统资源耗尽,亦或者是安全设备的某条告警成功等。目的是从问询中初步确定事件的起因是什么。但确定起因时不可先入为主,直接断定存在攻击行为,应通过异常去定位产生该异常的原因,分析产生该异常的原因确定是否为真实攻击,或者只是系统应用或者配置等方面产生的异常行为。已基本确定为攻击事件,才进行下一步攻击时间线的确定。因此,该阶段需要确定三点: 1.异常是什么,2.产生异常涉及的系统是哪些(ip,业务,开放的服务,系统类型),3.这些受害主机产生异常的原因是什么,即可否确定为受到真实攻击。
2.2 攻击时间线的确定(线)
攻击时间线的确定是从通过事件输入点中涉及的受害系统相关日志(安全设备日志,系统各种日志等)进行着手,确定攻击从何时开始,是否已结束,何时结束,是否为首台被攻击主机,。输入点阶段中涉及的受害系统不一定就是首台被攻击的主机,有可能是其他主机被攻击成功后进行横向扩散后导致的主机异常。若为内网扩散导致,此时应通过日志分析确定出受攻击的源头被攻击主机,从源头主机确定出真正的受攻击时间线。此处应注意日志中的时间是否统一,否则需要时区转换(大多数时候系统自带日志和安全设备日志会相差8小时)
2.3 受影响面,内网扩散面的确定(面)
受影响面的确定,其实就是要基于时间线从攻击入方向分析出攻击者留下什么,得到什么,确定出其真实攻击意图。此过程需要以攻击成功后产生的异常为基本着手点,对异常账号、异常文件、异常进程、异常网络连接、日志、定时任务、开机自启动项等等进行排查,完全确定出攻击者在系统中进行过的操作,确认受害主机在攻击中受到的全部影响。从攻击者留下的东西描绘攻击者画像(技术水平等),从攻击者得到的东西确定其攻击意图。
内网扩散面确定,需要配合内网中部署的安全设备日志,以被攻破的源头主机为视角,从源头主机出方向分析内网扩散中攻击了哪些其他主机,哪些主机被扩散攻击成功,哪些没成功是何原因,最终得出内网扩散需要的条件。
2.4 检测实施
(1)检测搜集系统信息
记录时使用目录及文件名约定:
在受入侵的计算机的D盘根目录下(D:\)(如果无D盘则在其他盘根目录下)建立一个qihoo目录,目录中包含以下子目录:
artifact:用于存放可疑文件样本
cmdoutput:用于记录命令行输出结果
screenshot:用于存放屏幕拷贝文件
log:用于存放各类日志文件
文件格式:
命令行输出文件缺省仅使用TXT格式。
日志文件及其他格式尽量使用TXT、CSV和其他不需要特殊工具就可以阅读的格式。
屏幕拷贝文件应该使用JPG格式。
可疑文件样本最好加密压缩为zip格式,默认密码为:wljslmz
搜集操作系统基本信息
右键点击“我的电脑>属性” 将“常规”、“自动更新”、“远程”3 个选卡各制作一个窗口拷贝(使用 Alt+PrtScr )。并保存到 qihoo\screenshot 目录下,文件名称应该使用:系统常规 -01、自动更新-01、远程-01 等形式命名。
进入 CMD 状态,“开始 > 运行 > cmd”,进入 D 盘根目录下的 wljslmz 目录,执行一下命令:
解释
netstat -nao > netstat.txt (网络连接信息)
tasklist > tasklist.txt (当前进程信息)
ipconfig /all > ipconfig.txt(IP 属性)
ver > ver.txt (操作系统属性)
日志信息:
目标:导出所有日志信息;
说明:进入管理工具,将“管理工具 > 事件察看器”中,导出所有事件,分别使用一下文件名保存: application.txt、security.txt、system.txt。
帐号信息:
目标:导出所有帐号信息;
说明:使用 net user,net group,net local group 命令检查帐号和组的情况,使用计算机管理查看本地用户和组,将导出的信息保存在 D:\wljslmz\user中
(2)主机检测
日志检查:
目标:
从日志信息中检测出未授权访问或非法登录事件;
从IIS/FTP 日志中检测非正常访问行为或攻击行为;
说明:
检查事件查看器中的系统和安全日志信息,比如:安全日志中异常登录时间,未知用户名登录;
检查%WinDir%\System32\LogFiles 目录下的WWW 日志和FTP 日志,比如WWW 日志中的对shell.asp 文件的成功访问。
帐号检查:
目标:检查帐号信息中非正常帐号,隐藏帐号;
说明: 通过询问管理员或负责人, 或者和系统的所有的正常帐号列表做对比,判断是否有可疑的陌生的账号出现, 利用这些获得的信息和前面准备阶段做的帐号快照工作进行对比。
进程检查:
目标:检查是否存在未被授权的应用程序或服务
说明:使用任务管理器检查或使用进程查看工具进行查看,利用这些获得的信息和前面准备阶段做的进程快照工作进行对比,判断是否有可疑的进程。
服务检查:
目标:检查系统是否存在非法服务
说明:使用“管理工具”中的“服务”查看非法服务或使用360 安全卫士、Wsystem 察看当前服务情况,利用这些获得的信息和准备阶段做的服务快照工作进行对比。
自启动检查:
目标:检查未授权自启动程序
说明:检查系统各用户“启动”目录下是否存在未授权程序。
网络连接检查:
目标:检查非正常网络连接和开放的端口
说明:关闭所有的网络通讯程序,以免出现干扰,然后使用ipconfig,netstat –an 或其它第三方工具查看所有连接,检查服务端口开放情况和异常数据的信息。
共享检查
目标:检查非法共享目录。
说明:使用net share 或其他第三方的工具检测当前开放的共享,使用$是隐藏目录共享,通过询问负责人看是否有可疑的共享文件。
文件检查:
目标:检查病毒、木马、蠕虫、后门等可疑文件。
说明:使用防病毒软件检查文件,扫描硬盘上所有的文件,将可疑文件进行提取加密压缩成.zip,保存到 wljslmz\artifact目录下的相应子目录中。
查找其他入侵痕迹:
目标:查找其它系统上的入侵痕迹,寻找攻击途径
说明:其它系统包括:同一IP 地址段或同一网段的系统、同一域的其他系统、拥有相同操作系统的其他系统。
3、抑制阶段
原则:首先应该确认受害范围,然后进行隔离处置,封堵攻击源后尽快恢复系统业务
目的:采用针对性的安全措施降低事件损失、避免安全事件的扩散和安全事件对受害系统的持续性破坏。主要分为:物理遏制、网络遏制、主机遏制、应用遏制等。常见手段:断网、降权、网络封堵等。
针对已失陷主机一般首先应禁用所有有限或无线网卡,或者直接拔掉网线,然后进行以下操作
3.1 将主机和当前业务网络隔离
操作意义:将沦陷主机从业务环境中隔离出来防止黑客通过该主机进行下一步渗透
方法1:直接交换机上shutdown该服务器接口
实例设置方式:int G0/0/24 shutdown (G0/0/24为示例接口)
方法2:直接服务器上关闭网卡
实例设置方式:ifdown eth0(eth0为示例接口)
方法3:断开网线
实例操作:将服务器网口线缆移除
3.2 接入到带网络的隔离环境中(建议带网络)并对流量进行捕获,检查。
操作意义:记录下当前沦陷主机工作的网络连接方便溯源和检查异常的通信程序
方法1:直接接入带网络的环境然后通过TCPDUMP或者 Wireshark 本地抓包
实际操作:tcpdump -i eth10 -c 10000 -w eth1.cap,
或者直接在Wireshark上选择接口开始抓包,然后通过netstat -anob >> 1.txt 保存一份连接信息,最后对抓出来的数据包进行分析和过滤(例如你应用是使用TCP8080端口 你可以使用过滤器not tcp.port == 8080 查看非业务流量)
方法2:通过端口镜像进行抓包
实际操作:通过使用端口镜像命令将服务器流量引入到抓包主机对流量进行收集
然后通过netstat -anob >> 1.txt 保存一份连接信息,最后对抓出来的数据包进行分析和过滤
3.3 日志保存和分析
操作意义:检查日志服务器日志和本地日志(不仅限于服务器)发现入侵痕迹。
优先检查secure日志,和系统应用日志,cron ,btmp日志等。
/var/log/message 系统启动后的信息和错误日志
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/httpd,/var/log/mysqld.log 应用日志(该httpd只是举例说明)
/var/run/utmp 记录着现在登录的用户
/var/log/lastlog 记录每个用户最后的登录信息
/var/log/btmp 记录错误的登录尝试
/var/log/dmesg内核日志
/var/log/cpus CPU的处理信息
/var/log/syslog 事件记录监控程序日志
/var/log/auth.log 用户认证日志
/var/log/daemon.log 系统进程日志
3.4 通过应用副本文件检查应用服务端有没有被篡改
操作意义:检查应用是否受到感染。
方法1:通过MD5sum 命令 对比正常副本和当前服务器副本的MD5差距。检查应用是否受到感染。
方法2:通过类似Beyond Compare这类文件进行文件不同的比对。
3.5 检查常规用户和文件权限配置和系统配置
操作意义:检查系统异常表现,推测入侵手段。
检查帐户
# less /etc/passwd
# grep :0: /etc/passwd(检查是否产生了新用户,和UID、GID是0的用户)
# ls -l /etc/passwd(查看文件修改日期)
# awk -F: ‘$3= =0 {print $1}’ /etc/passwd(查看是否存在特权用户)
# awk -F: ‘length($2)= =0 {print $1}’ /etc/shadow(查看是否存在空口令帐户)
(window下可以 net user 类命令查看)
检查进程
# ps -aux(注意UID是0的)
# lsof -p pid(察看该进程所打开端口和文件)
# cat /etc/inetd.conf | grep -v “^#”(检查守护进程)
检查隐藏进程
# ps -ef|awk ‘{print }’|sort -n|uniq >1
# ls /porc |sort -n|uniq >2
检查后门
# cat /etc/crontab
# ls /var/spool/cron/
# cat /etc/rc.d/rc.local
# ls /etc/rc.d
# ls /etc/rc3.d
# find / -type f -perm 4000
(windows可以通过ICESWORD和任务管理器之类的工具检查)
检查计划任务
注意root和UID是0的schedule
# crontab –u root –l
# cat /etc/crontab
# ls /etc/cron.*
检查装载的内核模块
#lsmod
检查系统服务
Chkconfig
查目录权限
Ls -l
(windows鼠标右键的权限管理)
3.6 服务器杀毒
操作意义:通过杀毒程式检测后门
操作示例:直接安装较不热门且较强力杀毒软件查杀,例如麦咖啡,小红伞 avast!(推荐使用两款以上,防止免杀)。
3.7 业务数据备份
操作意义:备份业务数据用于恢复
操作示例:看业务环境 可以直接通过复制还是通过相关设备或者软件直接备份。
3.8 操作系统的重新安装,打上最新补丁(系统和服务软件),系统加固
操作意义:恢复业务运行,并加固系统
操作示例:通过重新安装官方下载的操作系统和服务程序,打上最新补丁保证主机不会因旧漏洞沦陷,通过最小权限规则法把用户权限设置为最低。
3.9 出口防火墙进行策略设置
根据事件类型,可以对流量进行限制,尤其是对于异常流量或来自可疑来源的流量进行限制(加入黑名单),以减少对网络的影响。
如果事件涉及到来自特定IP地址的攻击或异常流量,可以设置策略来封锁这些IP地址,以防止进一步的攻击。
对于需要访问外部网络的应用或服务,可以通过出口防火墙设置访问控制策略,限制其访问范围,确保只有必要的流量被允许通过。
设置日志监控策略,对出口流量进行实时监控和记录,以便及时发现异常情况并采取相应的应对措施。
3.10 服务安全性重新评估
操作意义:检测服务器加固最优状态下的防御能力
操作示例:利用扫描器进行扫描,查看445、3389、1434等高危端口是否开放,以及账户是否存在弱口令、无用或默认账号是否已禁用,查看是否存在异常进程,服务对外开放情况,以及全盘查杀和病毒库更新情况等。
常见处置场景
# 针对挖矿病毒的处置流程
挖矿病毒的特征一般是cpu占用率异常高,可以通过杀毒软件和流量分析进一步确认,一般挖矿病毒会持续性访问固定IP,且报文中类似json字符串,将IP于微步情报查询,一般都是恶意IP,防范挖矿病毒的措施有:(1)安装杀软(2)避免弱密码(3)关闭应用服务,共享、远程桌面控制等。
应对挖矿病毒的应急响应流程:(1)隔离被感染主机(2)确定挖矿进程(3)挖矿木马的清除,阻断矿池地址的连接,清除挖矿定时任务、启动项等,禁用可疑用户,定位挖矿木马文件的位置并删除,全盘杀毒、加固等
top命令查看服务器的进程运行状况,端口及外联情况,计划任务(2)对外联IP进行情报分析(3)定位挖矿进程及其守护进程PID(4)kill -9挖矿进程,并对挖矿病毒产生的文件进行清理,清理定时任务,排查是否有其他脆弱项
# 针对勒索病毒的处置流程
对未感染主机,实施以下处理
关闭ssh、RDP等协议、并且更改主机密码、备份系统重要数据、且文件 备份应该与主机隔离,禁止接入u盘,移动硬盘等可执行摆渡攻击的设备。
对感染主机,实施以下处理
禁用所有有线及无线网卡或者直接拔掉网线
防止病毒感染其他主机
禁止在被感染主机上使用U盘、移动硬盘等可执行摆渡攻击的设备
防护勒索病毒的手段:(1)部署防火墙、防病毒终端安全软件、限制未授权应用程序等(2)关注最新的漏洞,及时更新电脑上的终端安全软件(3)关闭不必要的端口,尤其是RDP,大部分勒索病毒都是通过RDP传播(4)使用office等软件,禁止宏运行,防止通过宏病毒感染主机(5)谨慎打开来历不明的邮件,防止被钓鱼邮件攻击(6)定期对数据进行备份并测试备份数据是否完整可用