当前位置:首页>Linux>Linux 病毒应急响应方案

Linux 病毒应急响应方案

  • 2026-09-04 02:22:47
Linux 病毒应急响应方案

一、应急响应概述

当 Linux 服务器出现异常行为(CPU/内存异常、可疑进程、网络连接异常等)时,需要按照标准化流程进行应急处置,快速定位问题、遏制影响、恢复服务并留存证据。

二、应急响应流程

1. 初步识别与研判

1.1 异常现象确认

  • 系统负载异常升高(top、htop)

  • 可疑进程占用资源

  • 异常网络连接

  • 文件被篡改或删除

  • 定时任务异常

  • 用户账户异常登录

1.2 初步排查命令

# 查看系统负载和进程top-cps auxf# 查看网络连接netstat -antlpss -antlp# 查看登录用户wlastlastb  # 失败登录记录# 查看定时任务crontab -lcat /etc/crontabls-la /etc/cron.d/ls-la /var/spool/cron/# 查看开机启动项systemctl list-unit-files --type=service | grep enabledchkconfig --list# CentOS 6

2. 现场保护与证据固定

2.1 立即执行

  • ✅ 记录当前时间:date

  • ✅ 保存进程信息:ps auxf > /tmp/ps_info.txt

  • ✅ 保存网络连接:netstat -antlp > /tmp/net_info.txt

  • ✅ 保存登录记录:last > /tmp/last_info.txt

  • ✅ 对可疑文件进行备份(勿删除)

2.2 系统快照(如有条件)

# 虚拟机快照# 或使用 LiME 进行内存取证(需提前准备)insmod lime.ko "path=/tmp/mem.lime format=lime"

2.3 重要文件备份

# 备份关键系统文件tar -czvf /tmp/system_backup_$(date +%Y%m%d_%H%M%S).tar.gz \  /etc/passwd /etc/shadow /etc/sudoers \  /etc/ssh/sshd_config /etc/crontab /var/spool/cron/ \  /etc/init.d/ /etc/systemd/ /etc/rc.local

3. 威胁排查与定位

3.1 恶意进程排查

# 查看所有进程及其命令行参数ps auxfps-eo pid,user,args --forest# 查看进程打开的文件lsof -p <PID># 查看进程的可执行文件路径ls-l /proc/<PID>/exels-l /proc/<PID>/cwd  # 工作目录ls-l /proc/<PID>/fd   # 文件描述符# 查看隐藏进程(对比 /proc 和 ps 输出)ls /proc | grep-E'^[0-9]+$' | sort > /tmp/proc_pids.txtps-eo pid | tail -n+2 | sort > /tmp/ps_pids.txtdiff /tmp/proc_pids.txt /tmp/ps_pids.txt

3.2 网络连接排查

# 查看所有网络连接netstat -antlpss -antlp# 查看进程监听端口lsof -i# 查看特定端口的进程lsof -i :<PORT>netstat -antlp | grep <PORT># 检查可疑外连netstat -antlp | grep ESTABLISHED

3.3 可疑文件排查

# 查找最近修改的文件find / -type f -mtime-7-ls2>/dev/null# 查找最近24小时内创建的文件find / -type f -ctime-1-ls2>/dev/null# 查找 SUID/SGID 文件(提权后门)find / -perm-4000-type f -ls2>/dev/nullfind / -perm-2000-type f -ls2>/dev/null# 查找隐藏文件find / -name".*"-type f 2>/dev/null# 查找可疑脚本find / \( -name"*.sh"-o-name"*.py"-o-name"*.pl"-o-name"*.php" \) \-mtime-30-ls2>/dev/null# 检查常见 Webshell 目录find /var/www /home -type f -name"*.php"-mtime-72>/dev/null

3.4 定时任务排查

# 用户定时任务for user in$(cut -f1 -d: /etc/passwd); doecho"=== $user ==="  crontab -u$user-l2>/dev/nulldone# 系统定时任务cat /etc/crontabls-la /etc/cron.d/ls-la /etc/cron.daily/ls-la /etc/cron.hourly/ls-la /etc/cron.monthly/ls-la /etc/cron.weekly/ls-la /var/spool/cron/# 检查 anacroncat /etc/anacrontab

3.5 启动项排查

# Systemd 服务systemctl list-unit-files --type=service--state=enabledls-la /etc/systemd/system/ls-la /lib/systemd/system/# Init.d 脚本ls-la /etc/init.d/# RC 本地启动cat /etc/rc.localls-la /etc/rc.d/# 用户自启动项ls-la ~/.config/autostart/ls-la /home/*/.config/autostart/

3.6 用户账户排查

# 检查特权用户awk-F: '$3==0 {print $1}' /etc/passwd# 检查有密码的用户awk-F: '($2!="" && $2!="x") {print $1}' /etc/shadow# 检查 sudo 权限cat /etc/sudoersls-la /etc/sudoers.d/# 检查 SSH 密钥ls-la /root/.ssh/cat /root/.ssh/authorized_keysls-la /home/*/.ssh/cat /home/*/.ssh/authorized_keys 2>/dev/null# 检查可疑账户cat /etc/passwd | grep-v nologin | grep-vfalse

3.7 日志分析

# 系统日志tail -100 /var/log/messagestail -100 /var/log/syslog# 安全日志(登录、sudo等)tail -500 /var/log/secure      # RHEL/CentOStail -500 /var/log/auth.log    # Debian/Ubuntu# SSH 日志grep-i"failed\|accepted\|invalid" /var/log/securegrep-i"failed\|accepted\|invalid" /var/log/auth.log# 用户命令历史cat ~/.bash_historycat /home/*/.bash_history 2>/dev/null# Web 服务器日志(如有)tail -500 /var/log/nginx/access.logtail -500 /var/log/apache2/access.loggrep-i"eval\|base64\|exec\|shell" /var/log/nginx/access.log

4. 威胁遏制与清除

4.1 隔离网络(视情况)

# 禁用网络接口ifconfig eth0 down# 或ip link set eth0 down# 配置防火墙阻断外连iptables -A OUTPUT -d <恶意IP> -j DROPiptables -A OUTPUT -p tcp --dport <恶意端口> -j DROP# 保存防火墙规则iptables-save > /tmp/iptables_backup.rules

4.2 终止恶意进程

# 终止进程kill-9 <PID># 终止进程树kill-9-$(ps -o pgid= -p <PID> | tr -d ' ')# 防止进程重启(检查定时任务、启动项)

4.3 删除恶意文件

# 先备份可疑文件(用于后续分析)mkdir-p /tmp/malware_backupcp <可疑文件> /tmp/malware_backup/# 计算文件哈希(用于威胁情报查询)md5sum <可疑文件>sha256sum <可疑文件># 删除恶意文件rm-f <恶意文件路径># 删除恶意定时任务crontab -e# 编辑删除rm-f /etc/cron.d/<恶意任务文件># 删除恶意启动项systemctl disable <恶意服务>rm-f /etc/systemd/system/<恶意服务>.servicesystemctl daemon-reload# 删除恶意用户userdel -r <恶意用户名>

4.4 清除后门

# 清除 SSH 后门密钥vim /root/.ssh/authorized_keysvim /home/*/.ssh/authorized_keys# 清除 SUID 后门chmod u-s <可疑SUID文件># 检查并清除内核模块后门lsmod | grep <可疑模块名>rmmod <可疑模块名>

5. 系统恢复与加固

5.1 修复漏洞

  • 更新系统和软件包:yum update / apt update && apt upgrade

  • 修复被利用的漏洞点(Web应用、弱密码等)

  • 检查并关闭不必要的服务和端口

5.2 加固措施

# SSH 加固vim /etc/ssh/sshd_config# PermitRootLogin no# PasswordAuthentication no# Port <非默认端口># 配置防火墙白名单iptables -A INPUT -s <信任IP> -j ACCEPTiptables -A INPUT -j DROP# 禁用不必要的服务systemctl disable <服务名># 安装入侵检测工具(可选)yum install -y rkhunter chkrootkitrkhunter --checkchkrootkit

5.3 密码重置

  • 重置所有可能泄露的密码

  • 重置 SSH 密钥

  • 重置数据库密码

5.4 监控与告警

# 安装监控工具yum install -y aide  # 文件完整性监控aide --initaide --check# 配置日志监控# 考虑部署 ELK、Wazuh 等 SIEM 系统

6. 事件总结与报告

6.1 事件报告内容

  • 事件概述:发现时间、发现方式、影响范围

  • 攻击时间线:入侵时间、攻击者行为、持续时间

  • 攻击手段:利用的漏洞、植入的后门、持久化方式

  • 影响评估:受影响系统、数据泄露情况、业务影响

  • 处置措施:遏制措施、清除措施、加固措施

  • 改进建议:预防措施、监控改进、流程优化

6.2 威胁情报共享

  • 提交恶意文件样本到 VirusTotal、微步在线

  • 提交恶意 IP/域名到威胁情报平台

  • 内部知识库记录攻击特征


三、常用工具

1. 文件分析

# 文件类型识别file <文件名># 字符串提取strings <文件名># 文件哈希md5sum <文件名>sha256sum <文件名># 查看文件时间属性stat <文件名>

2. 网络分析

# 抓包分析tcpdump -i eth0 -w capture.pcaptcpdump -i eth0 port <端口># 查看流量统计iftopnethogs

3. 进程分析

# 进程树pstree -p# 进程资源占用pidstat -p <PID># 系统调用跟踪strace -p <PID>

4. 专业工具

工具用途
Volatility内存取证
LiME内存采集
chkrootkitRootkit检测
rkhunterRootkit检测
ClamAV开源杀毒
YARA恶意代码识别
CrowdStrikeEDR平台
WazuhSIEM平台

📌 声明:本文仅供安全研究与学习使用,请勿用于非法用途。应急响应过程中请遵守相关法律法规,保护用户隐私和数据安全。

最新文章

随机文章