百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux应急响应思路浅谈

ahcoder 2025-04-26 16:21 6 浏览

一、简介

Linux是一种广泛使用的开源操作系统,具有高效、稳定、安全等优点。但是,Linux也不是绝对安全的,它也可能遭受各种攻击和入侵。因此,Linux应急响应是一项非常重要和必要的安全工作,它涉及到对被攻击主机的排查、分析、止损和修复等操作。

本文旨在介绍日常工作中Linux应急响应的思路和常规排查方向,帮助读者快速定位攻击者的来源和行为,并采取有效的应对措施。

应急响应,主要是回答两个问题:

  1. 攻击者从哪里来
  2. 攻击者做了什么

弄清楚了这两个问题,就可以精准的进行止损和修复。

本文仅介绍日常工作中应急响应的思路和常规排查方向,对于同安全产品之间的攻防对抗,以后有机会专门讲述,本文暂不涉及。

二、主要排查方向

2.1 进程

进程的排查是应急响应中最重要的方向,没有之一。因为无论攻击者从哪里来,做了什么,他都要通过机器上的进程来完成他的目的。

对于进程来说,重要的信息有以下几个方面:

  1. 启动时间:通过启动时间可快速从机器上筛选出可疑的进程,而且恶意进程的启动时间是一个非常重要的信息,通过它可以关联追溯出整个攻击行为的时间线。
  2. 进程树:恶意进程的进程树清晰直观的反映了该恶意进程的来源,通过进程树可快速判断出部分入侵的入口。
  3. 进程启动目录:进程启动目录也可泄露出部分入侵者的攻击入口。比如攻击者通过Web应用获取到了主机权限,那么他后续的恶意进程就可能在Web目录下。
  4. 启动用户:部分特殊的进程启动用户也可反映出攻击入口,如git用户、www用户等。

通过2、3、4可判断出攻击者具体的攻击入口,然后再去排查入口应用的详细日志,就可回答我们的第一个问题:攻击者从哪里来。

当发现恶意进程后,即使在排查完相关信息后,也不要着急把它杀掉。如果攻击者进行了一定程度的对抗行为,比如删除了执行的脚本或配置文件等,如果进程还在,相关文件是可能能够恢复的。只要进程没关闭,该文件对应的inode和数据块依然保存着文件内容,不会立即释放,所以我们可以通过 /proc/pid/fd目录里的符号链接,找到被打开文件的inode,并读出数据块中的内容。

2.2 日志

  1. 安全产品日志 安全产品日志毫无疑问是我们手中最有力的武器之一。安全建设足够完善的理想情况下,仅通过安全产品就可还原出攻击者的整个攻击链路。比如WAF、Rasp日志查看攻击者的攻击入口和Payload,HIDS日志查看攻击者的行为,NIDS日志根据攻击者特征排查是否有其他失陷主机。
  2. 应用日志 这个是最重要的日志之一,只有通过它我们才能实锤攻击者具体的攻击入口和使用的漏洞。但是这个非常依赖公司的基础设施建设,如果公司基建非常好的情况下,能通过公司统一的日志服务来查询具体应用的日志。如果公司基建待完善,就只能祈祷业务自己开启了日志记录,否则攻击入口就只能通过各种线索来间接推断。我们可以通过查看应用服务器(如Apache、Nginx、Tomcat等)自带的access_log 和 error_log文件来查看Web请求和错误信息,并根据时间、IP、URL等条件进行筛选和分析。
  3. 命令执行日志 命令执行日志记录了攻击者在主机上的所有行为,毫无疑问是最直接的线索。我们可以通过查看系统自带的history、last、lastb、lastlog等命令来查看用户的历史命令和登录情况,并根据时间、用户、IP等条件进行筛选和分析。

通过对命令日志,安全产品日志以及系统文件、系统配置等方面的全面排查,就可回答我们的第二个问题:攻击者做了什么。

三、CheckList

下面是一个排查项的具体列表,可供应急响应时参考。

总体信息

  • w
    • 查看登录用户数量,平均负载,登录来源IP

进程

  • top
    • 查看可疑进程
  • lsof -p pid
    • 查看可疑进程打开的文件
  • cat /proc/pid/* |strings -n 5 |more
    • 读取内存中的信息
  • cat /proc/pid/cmdline
    • 查看启动进程的命令
  • /proc/pid/exe
    • 进程的二进制文件
    • strings 可查看二进制文件中的字符串,比如有些sshd后门会通过邮件发送登录信息
  • /proc/pid/cwd 进程当前工作目录
  • /proc/pid/fd 进程文件描述符
  • ps aux / ps -ef 中,start/stime列为进程开始执行的时间
  • 注意观察可疑进程的启动权限和父进程

网络

  • netstat -anpt | ss -anpt
    • 查看网络链接
  • lsof -i:port
    • 查看那个进程占用了该端口

开机启动项

  • runlevel
    • 查看运行级别,一般为3即完全命令行模式
  • ls -alt /etc/rc.d/init.d/
    • 查看各个启动级别全部的开机启动脚本
    • 该目录下和/etc/init.d/目录中内容相同
    • /etc/rcN.d/目录下的文件为指向部分/etc/rc.d/init.d/中文件的软连接,因为不同启动级别要启动的脚本不同
  • cat /etc/rc.d/rc.local
    • 查看开机启动任务
  • chkconfig --list
    • 服务

定时任务

  • crontab-u root -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/*
  • more /etc/cron.d/*
    • 可查看该目录下所有文件内容

账号

  • ls -l /etc/passwd | /etc/shadow
    • 查看两文件权限,所有者
  • awk -F: '$3==0{print $1}' /etc/passwd
    • 查看root权限用户
  • awk '/$1|$6/{print $1}' /etc/shadow
    • 查看有密码的账户(无密码只允许本机登陆)
  • grep -v "#34; /etc/sudoers
    • 查看sudo权限账号

日志

  • history
    • 查看各个用户历史命令
  • /var/log/message
    • 记录系统重要信息的日志
  • /var/log/sudo.log
    • 相应的时间段是否出现可疑的用户进行过SU操作
  • /var/log/secure
    • 包含验证和授权方面信息,如ssh登录成功失败
  • /var/log/cron
    • 定时任务日志
  • last | lastb | lastlog
    • 查看登录情况
  • Web服务器,access_log 和 error_log日志

文件&目录

  • /tmp, /var/tmp, /dev/shm
    • 敏感目录
    • ls -alt 按时间顺序查看
  • ls -alt 可疑目录/文件
    • 先用stat记录下时间点,不要直接用vim查看编辑文件内容,这样会更改文件的mtime,对于应急响应来说,时间点很重要。对比时间点更容易在Log找到其他的攻击痕迹。stat可看到mtime,atime,ctime。根据mtime查找其他后门文件,同时根据文件属组与属组对应运行服务判断入侵方式;
    • 如果权限组为root,需要检测是否被种rootkit;
    • 非web类后门,大部分人习惯把恶意文件放置在/tmp目录下;
  • find -mtime -7 -type f -name "*.jsp"
    • 查找7天内被修改过的jsp文件
  • find . -newermt '2018-10-30 13:00:00' ! -newermt '2018-11-01' - 查找具体时间的文件
  • find / -user root
    • 查找/目录下属于root用户的文件
  • find / -perm -4000 -type f
    • 定位含有S位权限的文件
  • find / -perm 4777 -type f
    • 定位777权限文件

四、总结

如果能通过攻击者的各种特征,在威胁情报平台或搜索引擎能查询到到相关利用方式的详细介绍,也可在排查时起到事半功倍之效。

在排查攻击入口时,如果实在没有找到明显的信息,也可通过主机运行进程的应用版本等信息,去猜测攻击入口,大胆假设,小心求证。

在实际的应急响应中,我们还需要注意以下几点:

  • 保存证据:在排查时,要尽量保留原始的证据,如程序、日志、文件等,不要随意修改或删除它们,以免丢失重要信息。
  • 避免影响业务:在排查时,要注意命令和工具对正常业务的影响,以防入侵虽及时止损,但应急行为却造成了业务故障。
  • 及时止损和修复:在排查时,在主要流程排查清楚和证据已经保存后,要及时采取止损和修复措施,如隔离主机、修改密码、杀死恶意进程,封禁恶意IP等,以免造成更大的损失或影响。

相关推荐

PC也能装MAX OS X

MACBOOK向来以其时尚的外观以及易用的OSX操作系统成为了时(zhuang)尚(bi)人士的最爱。但是其动不动就上万元的昂贵价格,也将一批立志时(zhuang)尚(bi)人士的拒之门外。但是最近...

一千多元的笔记本能买吗?英特尔11代+大屏幕,豆小谷值得选吗?

前言:有很多粉丝都问过本人,一千多元到底能买到什么样的笔记本?在此笔者只想说,这样的资金预算真的太低了!如果想买全新的,那大概率买的就是性能比较拉垮的上网本,比如搭载英特赛扬N系列、J系列处理器的轻薄...

首款配备骁龙X Elite处理器的Linux笔记本:采用KDE Plasma桌面环境

德国Linux硬件供应商TUXEDOComputers宣布正在开发一款配备高通骁龙XElite处理器(SnapdragonXEliteSoC)的ARM笔记本电脑,内部将该...

System76推出Gazelle Linux笔记本:配酷睿i9-13900H处理器

IT之家3月30日消息,主打Linux硬件的厂商System76于今天发布了新一代Gazelle笔记本电脑,共有15英寸和17英寸两个版本,将于3月30日接受预订,...

Kubuntu Focus Xe Gen 2笔记本发布,预装Linux系统

IT之家3月25日消息,KubuntuFocusXeGen2笔记本于近日发布,这是一款预装Kubuntu22.04LTSGNU/Linux发行版的轻薄本。上一代Kub...

这台Linux笔记本已用上英特尔12代酷睿,最高可选i7-1255U、卖1149美元起

Linux笔记本可能因为比较小众,一般都是拿Windows笔记本换个系统而来,硬件上也会落后同期Windows笔记本一两代,不过现在专门做Linux电脑的System76,推出了一款名为LemurP...

戴尔Inspiron 14 Plus骁龙笔记本迎新补丁,支持启动Linux

IT之家4月25日消息,科技媒体phoronix今天(4月25日)发布博文,报道称最新发布的Linux内核补丁,针对骁龙芯片的戴尔Inspiron14Plus笔记本,让其...

TUXEDO推出InfinityFlex 14二合一Linux笔记本,配i5-1335U

IT之家8月12日消息,Linux硬件企业TUXEDO当地时间本月2日推出了InfinityFlex14二合一Linux笔记本。该笔记本搭载2+8核的英特尔酷睿i5-...

登月探测器嫦娥使用什么操作系统,是Linux还是其它自主研发?

这是不是国家机密啊。事实什么样的不知道,但是从美国的探测器来看,就算不是也是相似的东西。下面我来说说我知道的。龙芯已经随北斗卫星上天了.就算登月探测器嫦娥是用"龙芯+Linux"也不出奇.没必要...

DNS分离解析实验

如果本文对你有帮助,欢迎关注、点赞、收藏、转发给朋友,让我有持续创作的动力目录一、分离解析概述二、实验需求三、实验步骤3.1双网卡服务器配置3.1.1添加两张网卡(内外网)3.1.2对两个网卡进...

一个小实验巩固下进程管理

先回顾下之前的三篇文章:Linux进程在内核眼中是什么样子的?Linux进程线程是如何创建的?Linux是如何调度进程的?通过这三篇文章的学习我们知道,无论内核进程还是用户进程,都是可以用task...

VMware Kali无线WIFI密码破解

WIFI破解前准备工作一张支持Kali系统监听的无线网卡VMware虚拟机安装好Kali系统(本实验用的是Kali2022版本)Kali系统下载、安装官方网站:https://www.kali.or...

python多进程编程

forkwindows中是没有fork函数的,一开始直接在Windows中测试,直接报错importosimporttimeret=os.fork()ifret==0:...

拔电源十台电脑藏后门!德国实验惊曝Windows致命漏洞

2025年4月15日,央视突然曝出一个超级大新闻!原来美国国家安全局通过黑龙江,往微软Windows系统里发送加密信息,激活了系统里藏着的后门程序,想破坏哈尔滨亚冬会!这消息一出来,大家才发现,竟然已...

深度探索RK3568嵌入式教学平台实战案例:设备驱动开发实验

一、产品简介TL3568-PlusTEB人工智能实验箱国产高性能处理器64位4核低功耗2.0GHz超高主频1T超高算力NPU兼容鸿蒙等国产操作系统二、实验目的1、熟悉基本字符设备的驱动程序...