Linux应急响应思路和技巧:进程分析篇
2024-7-3 08:50:29 Author: www.aqniu.com(查看原文) 阅读量:29 收藏

Linux应急响应思路和技巧:进程分析篇

日期:2024年07月03日 阅:61

目录

前言

应急响应流程

应急排查思路

进程分析

排查工具

恶意进程定位

高mem/cpu占用

伪装内核进程

带隐藏路径进程

进程名随机

带特征字符串

带恶意域名

带可疑路径进程

带delete标识进程

memfd无文件进程

隐藏进程

异常启动用户

提权进程

异常shell执行进程(如tcsh)

进程名伪造

audit审计追踪异常行为进程

恶意容器进程

其它

溯源技巧

追踪启动用户

追踪父进程

利用audit审计

利用病毒家族特征

小结

应急响应( Incident Response/ Emergency Response )是指一个组织为了应对各种突发事件发生所做的准备工作以及在事件发生后所采取的措施。本文总结自网宿演武安全实验室安全应急响应团队日常工作实践,主要介绍在Linux服务器环境出现明确或疑似的被入侵表现之后,安全人员如何在服务器系统中确认入侵结果,执行入侵后的溯源取证、入口定位、行为还原、后门定位等工作,以便及时清理病毒后门、加固系统,降低入侵影响。

在实际安全事件处理中,应急响应流程从处置过程可总结为调查、评估、抑制、分析、恢复、报告这6个阶段:

  1. 调查:定位涉事资产、涉事部门人员、以及相关业务信息,组建应急沟通群。
  2. 评估:判断事件类型(如挖矿、勒索、DDoS、Webshell等),评估事件影响范围和影响严重程度。
  3. 抑制:根据影响情况及时进行备份数据(如果安全事件与数据和程序相关,则要求相关业务方、机器管理员对存有数据和程序的存储介质进行备份,以保护数据和证据的安全、完整)、隔离涉事资产(如配置防火墙、关站、关服务、断网等)、备走流量等措施,以保护现场、防止扩散。
  4. 分析:对受影响的服务器主机和业务系统进行入侵排查,主要进行取证和溯源,并根据定位到的入侵点提出相关安全加固建议。可通过信息收集、日志查看、样本分析、业务系统漏洞测试等方法来分析。
  5. 恢复:清理服务器主机上涉事的病毒和后门,若无法全部定位清理,则建议重装系统。业务方按照给出的加固建议进行相关配置加固和漏洞修复并经过安全部门应急处置组的验证后,方可恢复业务。后续安全组将基于分析提取的恶意样本特征、入侵漏洞、攻击行为等,根据实际情况增加相应的检测规则并持续监控。
  6. 报告:将安全事件发现和处理的全过程进行总结,形成安全事件应急响应处置报告,并通报上级。

基于Linux系统一切皆文件的特性和网宿应急团队历史应急实践,Linux系统服务器入侵事件排查可从4个方面入手分析:

  1. 进程分析:通过运行进程分析,可以发现异常或未知的进程,这些可能是恶意软件或攻击工具执行的迹象;进程运行细节,如进程ID、启动时间、关联用户、执行路径、子进程创建、资源使用情况,可以帮助安全人员理解攻击意图、进行溯源分析。 
  2. 文件分析:通过检查文件的创建、修改、删除痕迹,可以识别系统中的可疑文件或被篡改的文件;对可疑文件进行深入分析,可以提取恶意代码样本,进一步分析其功能和攻击手段。
  3. 网络分析:对系统网络连接、流量进行分析,可以发现恶意软件命令和控制(C&C)服务器、横向渗透和对外攻击的行为,可以帮助确定攻击的来源和目标,为切断攻击链、隔离受感染系统提供依据,在其他入侵特征不明显的情况下,还可以通过网络流量分析来进一步确认入侵与否。
  4. 日志分析:系统和应用的日志文件中记录了大量的操作信息,可以追踪攻击者的活动路径和行为模式,可查找到攻击者留下的入侵痕迹,帮助明确攻击活动时间线,揭示系统或组件中存在的安全漏洞(如弱口令爆破)。

这4个分析维度相互依赖、相互补充,通过综合分析这些维度,可以更全面地理解和响应安全事件,构建起对整个安全事件脉络的完整理解。

下图为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。下载地址:https://www.busybox.net/downloads/busybox-x.x.x.tar.bz2

恶意进程定位

mem/cpu占用

关注高mem内存占用和cpu占用高的进程。如果mem占用高,则可能为内存型DoS病毒。如果cpu占用高,且进程为多线程,并伴有外连行为,则大概率为挖矿木马;如果外连行为数量多,且连接端口为常见远程服务端口,则大概率为横向扫描工具;如果外连行为数量多,连接类型和端口各异,则大概率为僵尸网络DDoS病毒 

伪装内核进程

关注父进程pid非2的带“[]”的进程,一般为恶意进程伪装成内核进程。[kthreadd]进程(pid = 2)由idle通过kernel_thread创建,是所有内核进程的父进程。内核进程的命名规则都是[xxx],用中括号括起来的,带中括号的进程的父进程正常情况下应该是2(也就是[kthreadd]),而用户态的进程正常情况下不会这样命名。

带delete标识进程

关注进程路径带deleted标识的进程,特别是打开文件中也有大量伴有deleted标识的情况,恶意进程通常启动后即刻删除自身程序,这类进程较为可疑。

audit审计追踪异常行为进程

可开启audit审计来追踪异常进程行为,再根据日志进行进一步的深入分析。可监控setuid/setreuid/setresuid/setgid/setregid/setresgid系统调用提权行为,异常shell提权行为,异常更新密码行为,系统命令异常修改行为,系统关键配置文件异常修改行为(如selinux配置、环境变量脚本、sudo特权配置、系统服务启动脚本),关键密码文件异常修改行为,定时任务异常修改行为,内核模块异常操作行为,异常编译行为,敏感目录下的程序执行行为,关键日志文件异常修改行为(特别是非正常回滚的清空行为),异常ptrace进程注入行为,异常登录行为,异常服务启动或停止行为(如停止防火墙服务、停止系统日志管理服务),还可设置蜜罐文件监控其异常清除或修改行为,具体规则和分析方法将在日志分析篇列出。如果存在怀疑的进程,可加入-F pid=[可疑进程pid]来过滤出关心进程。auditctl使用参考链接:https://linux.die.net/man/8/auditctl 

恶意容器进程

基于容器轻量级、灵活性、快速部署与可扩展性、环境一致性与隔离性、持续集成与持续部署(CI/CD)、可降低基础设施成本等优势的展现,越来越多的企业选择容器技术来帮助自身提升竞争力,攻击者也逐渐将攻击视线移向容器。当入侵事件产生时,如果服务器上有搭建容器环境,那么可以关注下是否存在配置了恶意进程启动命令的容器,如下为攻击者设置了恶意容器启动进程命令的示例,容器创建时将宿主机/目录挂载至容器/host目录,然后拷贝ssh后门公钥至宿主机,通过访问127.0.0.1从而进行容器逃逸,之后下载TeamTNT黑产团队挖矿木马并执行。

溯源技巧

追踪启动用户

可追踪恶意进程启动用户,定位入侵入口。如下,恶意进程启动用户为postgres,由此追踪至postgresql组件,根据日志定位出postgres有弱口令爆破痕迹,以及服务器PostgreSQL使用版本存在任意代码执行漏洞(CVE-2019-9193,影响9.3-11.2版本)。

利用audit审计

恶意程序通常存在守护进程,多个进程间互相守护,kill掉后会自动重启,可利用audit审计,层层向上定位守护进程,最终定位到启动初始恶意进程的进程,可能就可以定位到入侵入口。还可利用audit审计监控落盘的恶意程序文件,层层向上可能会定位到最初存在rce的进程。还可以利用audit审计监控下载相关(如curl、wget)操作命令,定位到最初调用下载的进程。

利用病毒家族特征

根据可疑进程特征,或病毒引擎检测结果,查找病毒所属家族、黑产组织、类似样本分析资料,根据网上资料和样本分析结果提供的入侵方式(如利用的组件漏洞、web漏洞、爆破、未授权访问等),对照当前服务器是否存在对应的有漏洞组件、网站是否存在对应的漏洞、弱密等,进行有针对性地进一步验证。

小结

进程分析主要目标是能够完整定位服务器上存在的恶意进程并进行取证,确认服务器是否被黑和被黑后产生什么活动和后果,分析出恶意进程之间的调用和守护关系,以及大致了解恶意进程所采用的攻击技术和所进行的恶意活动(如伪装、隐藏、性能消耗等),以便于后续结合其它方向的应急排查结果做进一步的分析,对样本分析、病毒清理和特征提取有辅助作用。以下总结了Linux应急排查进程分析过程中的一些排查命令。

图18  Linux应急排查进程分析思维导图

下一篇我们将介绍Linux应急排查的文件分析部分。Linux系统“一切皆文件”的设计哲学提供了更直观透明的与系统交互的方式,同时也方便我们更快速准确地排查安全问题,因为攻击本身与系统的交互也需要通过文件,持久化、防御绕过、恶意样本落盘、提权等攻击阶段都会涉及到文件。相信在下一篇,通过对文件内容分析、文件权限&属性分析、文件修改&创建活动分析、恶意样本分析等的介绍,能够对安全事件应急排查有更深入的了解。

基于全球广泛分布的边缘节点,依托10余年安全运营和海量攻防数据,「网宿安全」构建从边缘到云的智能安全防护体系,提供DDoS防护、Web应用防护、爬虫管理、远程访问安全接入、安全SD-WAN、主机安全等全方位的安全产品及服务,覆盖云安全、企业安全和安全服务等领域,助力企业构筑基于零信任和安全访问服务边缘(SASE)模型的全新安全架构,护航网络安全,为数字时代保驾护航。 网宿科技(300017)成立于2000年,2009年于创业板首批上市,是全球领先的边缘计算及安全服务商,业务遍及全球70多个国家和地区。公司始终致力于提升用户的数字化体验,满足用户随时随地、安全、可靠的数据处理及交互需求。


文章来源: https://www.aqniu.com/vendor/105501.html
如有侵权请联系:admin#unsafe.sh