近年信息安全事件频发,信息安全的技能、人才需求大增。现在,不管是普通的企业,还是专业的安全厂商,都不可避免的需要掌握和运用好信息安全的知识、技能,以便在需要的时候,能够御敌千里。所谓养兵千日,用兵一时,拥有一支完善的团队或完整的流程,可以保障企业在出现重大安全事件时,能有条不紊的进行处置,及时把破坏范围缩小。
我们大致从八个方面阐述,分别是:应急响应的整体思路、应急响应的基本流程、应急工具集简介、系统日志及日志分析、威胁情报的作用、常见病毒及分类、理解漏洞和补丁、技能提升建议。
一、应急响应的整体思路应急响应的整体思路,就是上层有指导性原则和思想,下层有技能、知识点与工具,共同推进和保障应急响应流程的全生命周期。
原则和指导性思路3W1H原则:3W即Who、What、Why,1H即How,做应急响应要带着疑问来做事,一定要收集清楚这些信息。网络拓扑是怎么样的?需求是啥?发生了什么事?你能做什么?用户用了什么产品?产品版本多少?病毒库版本多少?多少主机中了?主机是普通PC还是服务器?服务器是做什么的?……信息收集越多,对应急响应越有利。
易失性原则:做应急响应免不了要做信息收集和取证的,但这里是有一定的先后顺序的,即最容易丢失的据,应该最先收集,其它的依次类推。
要素原则:做应急响应,主要是抓关键证据,即要素,这些要素包括样本、流量、日志、进程及模块、内存、启动项。
避害原则:做应急响应,要做到趋利避害,不能问题还没有解决,反而引入了新的问题。譬如,自己使用的工具被感染而不知情;给用户使用不恰当的工具或软件造成客户主机出现问题;给别人发样本,不加密,不压缩,导致别人误点中毒,最极端的场景就是给别人发勒索样本不加密压缩,导致别人误点中毒。
技能、知识点与工具应急工具集:应急响应必要的一套工具集合,可协助应急人员做分析,提高效率。
日志分析:能对日志进行分析,包括但不限于系统日志(Windows/Linux等)、应用日志、安全设备日志(防火墙、防病毒、态势感知等)。
威胁情报:安全事件可能不是孤立的,安全站点或搜索站点能找到安全事件的关联信息。
漏洞补丁知识:知道漏洞与补丁的关系,它们在应急响应中的角色,了解常见漏洞及补丁。
常见病毒及分类:知道病毒大致的分类以及常见的病毒。
样本分析:至少能对样本进行一次简单动态的分析。
操作系统知识:至少对Windows系统和Linux系统的有一定的知识储备,知道其基础的工作原理。
二、应急响应的基本流程应急响应大致可以分为五个部分,其基本流程包括收集信息、判断类型、深入分析、清理处置、产出报告。
收集信息:收集客户信息和中毒主机信息,包括样本。
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等。
深入分析:日志分析、进程分析、启动项分析、样本分析。
清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件。
产出报告:整理并输出完整的安全事件报告。
勒索和挖矿事件,可以占比50%以上,而且这两种安全事件业务特征极其鲜明,因此可以单独提流程出来处置。
信息收集表客户名称什么区域的什么客户感染主机数感染了多数台主机补丁情况打了哪些补丁,是否存在补丁漏打中毒现象勒索/挖矿/DoS/僵尸网络/后门/木马帐号密码确认是否有弱密码对外开发端口对外开发了哪些端口开启的服务开启了哪些服务操作系统版本操作系统版本信息客户需求确认客户具体需求取证要素:取证并非毫无头绪的,病毒本身必然有网络行为,内存必然有其二进制代码,它要么是单独的进程模块,要么是进程的dll/so模块,通常,为了保活,它极可能还有自己的启动项、网络心跳包。
总之,可以归结为如下4点要素:流量、内存、模块、启动项。
流量分析可以使用Wireshark,主要分析下当前主机访问了哪些域名、URL、服务,或者有哪些外网IP在访问本地主机的哪些端口、服务和目录,又使用了何种协议等等。
例如,使用Wireshark观察到,主机访问了sjb..org这种动态域名,即可粗略猜测这是一个CC服务器(如何判断一个域名是可疑域名,可以参考后文)。
有时候,可以根据网络协议来直接过滤分析流量。譬如,目前IRC协议已经很少被使用了,但利用IRC建立僵尸网络通道的现象仍比较普遍。使用Wireshark,直接在过滤条件里输入“irc”,回车看是否有相关流量。
如下图,刚好看到有相关的IRC协议流量,这便是可疑的。
Wireshark执行下“FollowTCPStream”操作,查看到当前Botnet主机正在加入一个IRC频道。另外,也可以从目的IP下手,可查到这是一个恶意IRC僵尸网络服务器。
网络流量这块,如果具体到对应建立的连接,也可使用TCPView工具进行查看。如下,我们使用TCPView查到了2条连接:
chenyu-a53.localdomain.-...:
chenyu-a53.localdomain.-amsterdam.nl.eu.undernet.org.
当我们分析病毒进程遇到困难的时候,其内存便是我们查找问题的最后一道防线。
以某Linux服务器应急事件为例子,如下图,我们找到三个病毒进程[ksoftirqd/7]的父子关系,可以看到,拉起了和,但是1号进程拉起来的,即init是其父进程。
这意味着,实际的父进程(原始病毒文件)在当前状态下是追查不到的了。
进程树已经追踪不到父进程了,能下手的地方不多。如反汇编[ksoftirqd/7]对应的病毒文件,则对于一次应急响应事件来说,时间是仓促的(不够)。但简单这样想,即不管病毒文件做了何种混淆、何种加壳,在最终运行于内存之上的代码上,终归是原始代码,至少堆栈就有不少信息。
Linux环境下dump内存,可以使用系统自带的gdb,键入命令gdbattach,attach到病毒进程,在gdb环境下,使用dumpbinarymemoryfilestart_addrend_addr将有效内存空间dump下来。
譬如:file为输出文件,可以指定为.dump,start_addr是起始地址,end_addr是终止地址,例dumpbinarymemory/tmp/.dump0xx(这里仅仅只是举例,实际地址在gdb中获取)
对于内存文件.dump,采用命令strings-n8.dump,获取长度8及以上的字符串内容,我们发现有如下一行:
/etc/security/ntps.conf
这是在病毒运行内存里面发现的,要么是病毒配置文件,要么是原始病毒文件。
我们cd/etc/security并使用ls-al查看内容如下:
可以看到,ntps.conf并非一个配置文件,它是可执行的(使用file命令可以知道这是个ELF可执行文件),文件修改时间应该是伪造的。
三、应急工具集简介工欲善其事,必先利其器,所谓巧妇难为无米之炊,其实应急响应亦是如此。应急响应和安全研究人员,必须事先就备好完整一套的工具集,随时可以取用。
应急工具类型流量分析工具:常用的流量分析工具是Wireshark、TCPView,也可以使用科来网络分析工具,Linux下对tcpdump比较熟悉的,也可以使用tcpdump。
进程分析工具:能对进程相关联信息进行分析的工具,主要是ProcessHacker和PCHunter等。
启动项分析工具:主要是AutoRuns工具,便于定位病毒启动项。
专杀工具:有些流行病毒家族,通常对杀软有抑制性,或者本身有感染性,需要专杀工具去查杀和修复正常文件。
辅助工具:WinHex、文件Hash工具、Everything搜索工具、Unlocker文件解锁工具等。
内存扫描工具:主要是MemScanner。
四、系统日志及日志分析日志类型Windows系统日志:Windows系统自带的审计日志、操作日志、故障日志。
Linux系统日志:Linux系统自带的审计日志、操作日志、故障日志。
应用日志:包括但不限于Web应用等众多繁杂的日志。
Windows系统日志
日志路径:C:\Windows\System32\winevt\Logs
必看日志:Security.evtx、System.evtx、Application.evtx
Linux系统日志
日志路径:/var/log
必看日志:secure、history
多数日志都是可读易懂的,譬如很容易就能看出来,下面这个日志记录了ssh爆破过程。
五、威胁情报的作用在安全事件中,威胁情报有时候会给我们提供大量有用的信息,甚至直接推动了安全事件的快速响应。
威胁情报的元素,包括但不限于域名、URL、IP、文件Hash、文件路径、文件名、数字签名、备案信息、排名信息。
威胁情报的获取源
谷歌: