Linux系统命令被篡改怎么办_完整性校验排查方法【指导】

3次阅读

系统被篡改时应优先隔离取证,用绝对路径调用可信 工具、比对官方哈希、检查 stat 时间戳、包管理器验证(如 rpm -Vf)交叉确认;批量筛查核心命令与可疑二进制;通过重装或离线 ISO 恢复;部署aiDE、内核 lockdown、只读挂载等长效防护。

Linux 系统命令被篡改怎么办_完整性校验排查方法【指导】

linux系统命令被篡改,说明系统可能已失陷,不能直接信任当前运行的命令(比如 lspsnetstat 甚至 sha256sum 本身都可能被替换)。关键在于:** 用未被污染的手段验证文件真实性,并优先隔离、取证、恢复 **。

确认是否真被篡改

别急着修复,先交叉验证。攻击者常替换常用命令但忽略冷门 工具 或静态二进制:

  • 用绝对路径调用可信工具:如/usr/bin/sha256sum /bin/ls(避免 PATH 污染);
  • 对比官方哈希值:从同一版本 ISO 镜像中提取 /bin/ls,本地计算sha256sum 比对;
  • 检查文件元信息:stat /bin/lsmtimectime 是否异常(如发生在凌晨 2 点且无运维操作);
  • 用包管理器自查:rpm -Vf /bin/ls(RHEL/centos)或debsums -s /bin/lsdebian/ubuntu),输出含S(大小变)、5(校验和错)即为异常。

快速定位被改命令范围

单个命令异常往往不是孤立 事件,需批量筛查高频入口点:

  • 检查 /bin/usr/bin/sbin/usr/sbin 下核心命令:用for i in ls ps top netstat ifconfig; do rpm -Vf /usr/bin/$i 2>/dev/NULL || echo "$i: not rpm-managed"; done
  • 扫描可疑可执行文件:find /bin /usr/bin -type f -perm /111 -size -500k -exec sha256sum {} ; | sort,观察是否有大量哈希值重复(可能是同个后门二进制覆盖多个命令);
  • 检查 $PATH 开头目录:echo $PATH | tr ':' 'n',重点审查 /usr/local/bin~/bin 等非系统默认路径是否混入恶意软链接或二进制。

安全恢复被篡改命令

修复动作必须基于可信源,禁止在疑似被控系统上下载或编译:

  • 从原厂软件包重装:如发现 /usr/bin/curl 异常,运行yum reinstall curl(RPM 系)或apt install --reinstall curl(DEB 系);
  • 用离线可信介质恢复:挂载原始安装 ISO,从中拷贝干净二进制,例如mount -o loop CentOS-7-x86_64-DVD.iso /mnt && cp /mnt/Packages/curl-*.rpm ./ && rpm2cpio curl-*.rpm | cpio -idmv,再提取./usr/bin/curl
  • 若整个 /usr/bin 不可信,优先恢复 sha256sumcpchown 等基础工具,再逐步重建信任链。

建立长效完整性防护

事后加固比临时修复更重要,目标是让下次篡改能被秒级发现:

  • 部署 AIDE:安装后立即初始化 数据库 aide --init,将生成的aide.db.new.gz 重命名为 aide.db.gz,加入 crontab 每日自动aide --check 并邮件告警;
  • 启用内核模块保护:加载kernel lockdown(如 CONFIG_SECURITY_LOCKDOWN_LSM=y),阻止未签名模块加载和 /proc/sys/kernel/kptr_restrict 绕过;
  • 限制命令执行权限:对非管理员用户禁用 sudo 执行敏感命令,用 chmod 700 /usr/bin 等缩小可写范围(注意不影响服务运行);
  • 启用只读挂载:将 /usr/boot 等关键分区设为ro(只读),异常时需显式 remount rw 才可修改。
站长
版权声明:本站原创文章,由 站长 2025-12-21发表,共计1525字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources