前言
本文总结自网宿安全演武实验室安全应急响应团队日常工作实践,主要介绍在Linux服务器环境出现明确或疑似的被入侵表现之后,安全人员如何在服务器系统中确认入侵结果,执行入侵后的溯源取证、入口定位、行为还原、后门定位等工作,以便及时清理病毒后门、加固系统,降低入侵影响。
应急响应流程
在实际安全事件处理中,应急响应流程从处置过程可总结为调查、评估、抑制、分析、恢复、报告这6个阶段:
- 调查:定位涉事资产、涉事部门人员、以及相关业务信息,组建应急沟通群。
- 评估:判断事件类型(如挖矿、勒索、DDoS、Webshell等),评估事件影响范围和影响严重程度。
- 抑制:根据影响情况及时进行备份数据(如果安全事件与数据和程序相关,则要求相关业务方、机器管理员对存有数据和程序的存储介质进行备份,以保护数据和证据的安全、完整)、隔离涉事资产(如配置防火墙、关站、关服务、断网等)、备走流量等措施,以保护现场、防止扩散。
- 分析:对受影响的服务器主机和业务系统进行入侵排查,主要进行取证和溯源,并根据定位到的入侵点提出相关安全加固建议。可通过信息收集、日志查看、样本分析、业务系统漏洞测试等方法来分析。
- 恢复:清理服务器主机上涉事的病毒和后门,若无法全部定位清理,则建议重装系统。业务方按照给出的加固建议进行相关配置加固和漏洞修复并经过安全部门应急处置组的验证后,方可恢复业务。后续安全组将基于分析提取的恶意样本特征、入侵漏洞、攻击行为等,根据实际情况增加相应的检测规则并持续监控。
- 报告:将安全事件发现和处理的全过程进行总结,形成安全事件应急响应处置报告,并通报上级。
图1 应急响应流程图
应急排查思路
基于Linux系统一切皆文件的特性和网宿应急团队历史应急实践,Linux系统服务器入侵事件排查可从4个方面入手分析:
- 进程分析:通过运行进程分析,可以发现异常或未知的进程,这些可能是恶意软件或攻击工具执行的迹象;进程运行细节,如进程ID、启动时间、关联用户、执行路径、子进程创建、资源使用情况,可以帮助安全人员理解攻击意图、进行溯源分析。
- 文件分析:通过检查文件的创建、修改、删除痕迹,可以识别系统中的可疑文件或被篡改的文件;对可疑文件进行深入分析,可以提取恶意代码样本,进一步分析其功能和攻击手段。
- 网络分析:对系统网络连接、流量进行分析,可以发现恶意软件命令和控制(C&C)服务器、横向渗透和对外攻击的行为,可以帮助确定攻击的来源和目标,为切断攻击链、隔离受感染系统提供依据,在其他入侵特征不明显的情况下,还可以通过网络流量分析来进一步确认入侵与否。
- 日志分析:系统和应用的日志文件中记录了大量的操作信息,可以追踪攻击者的活动路径和行为模式,可查找到攻击者留下的入侵痕迹,帮助明确攻击活动时间线,揭示系统或组件中存在的安全漏洞(如弱口令爆破)。
这4个分析维度相互依赖、相互补充,通过综合分析这些维度,可以更全面地理解和响应安全事件,构建起对整个安全事件脉络的完整理解。
下图为Linux应急排查思维导图,本篇先从进程方面进行介绍。
图2 Linux应急排查思维导图
进程分析
进程是木马、病毒或后门程序运行的体现,如果能够定位到某恶意进程,则可以该进程作为突破,定位出一系列的恶意行为。
排查工具
入侵事件可分为两种场景:无rootkit行为和有rootkit行为。rootkit攻击技术是指恶意软件隐藏自身或指定目标进程、网络、文件等信息从而避免入侵被发现的行为。rootkit攻击技术又分为用户态的rootkit和内核态的rootkit,用户态的rootkit主要手法有系统命令替换、进程注入、动态库劫持等;内核态的rootkit比较复杂,主要利用内核模块LKM实现,这里先不做展开。一种粗略判断系统命令是否被替换的方法是利用软件包校验,如centos上,利用rpm -Vf [系统命令所在路径],若对应的系统命令出现S.5....T.,则表明系统命令已被修改。一种粗略判断是否存在LKM rootkit的方法是查看/sys/module目录下是否有加载可疑内核模块,当然LKM rootkit可隐藏自身加载行为。可借助其它rootkit查杀工具判断服务器是否存在rootkit,如chkrootkit、rkhunter等。
两种场景所需排查工具不同,无rootkit行为的攻击事件,用系统自带的命令或工具基本就能定位清楚,有rootkit行为的攻击需要借助一些专业化的工具,比如busybox、LiME+Volatility内存取证。无rootkit情况下,常用排查工具有系统自带的top、ps、lsof、pstree、strace、ltrace等,还可查看/proc/[pid]目录下各项进程相关信息进行排查。有rootkit情况下,常用的系统命令可能被替换,影响排查结果,需要借助一些专业化的工具,如使用busybox自带的ps、top、lsof等工具。busybox是一个集成了三百多个常用Linux命令和工具的软件,从简单的,如ls、cat、echo等,到复杂的,如grep、find、mount、telnet等,有Linux工具里的瑞士军刀之称。安装后在busybox后直接带上对应命令即可执行,如busybox ls。下载地址: