防范恶意程序篡改系统核心命令需三步:一是用chattr +i锁定关键命令如/bin/chmod、/usr/bin/chattr等不可变属性;二是通过sha256sum校验哈希并每日巡检,配合AIDE等工具监控完整性;三是限制执行权限、禁用绕过调用、启用SELinux,并清理crontab、启动项及rootkit。

防范恶意程序篡改系统核心命令,关键在于阻断其修改权限、锁定关键二进制文件、限制执行上下文,并建立主动监控机制。黑客常通过篡改 chattr、chmod、crontab 等命令的权限或替换二进制文件实现持久控制,因此加固需从文件属性保护、命令完整性校验、运行时权限隔离三方面入手。
锁定关键命令的不可变属性(i/a 属性防护)
Linux 的 chattr +i 可使文件不可修改、删除或重命名,是防篡改最直接有效的手段。对系统核心命令应统一加锁:
- 锁定常用管理命令:如
/bin/chmod、/bin/chown、/usr/bin/chattr、/usr/bin/crontab等 - 执行命令示例:
chattr +i /bin/chmod /bin/chown /usr/bin/chattr - 注意:加锁前确保已验证命令功能正常;解锁必须先用
chattr -i,且仅限可信管理员操作 - 避免对整个
/bin或/usr/bin目录加锁,防止系统升级或软件包更新失败
校验命令哈希并定期巡检完整性
恶意程序常静默替换命令二进制文件。通过预存合法哈希值并定时比对,可快速发现异常:
- 首次部署后生成可信哈希清单:
sha256sum /bin/chmod /bin/chown /usr/bin/chattr > /etc/sec/cmdsums.sha256 - 编写简易巡检脚本,每日比对:
sha256sum -c /etc/sec/cmdsums.sha256 2>/dev/null | grep -v OK - 将巡检结果写入日志并触发告警(如邮件或企业微信通知),异常时立即人工介入
- 建议配合 AIDE 或 Tripwire 等专业完整性校验工具,支持增量扫描与规则自定义
限制命令执行权限与调用路径
即使命令未被替换,也可通过权限控制降低滥用风险:
- 移除非必要用户的执行权限:如
chmod 750 /usr/bin/chattr,仅保留 root 和特定运维组可执行 - 禁用 shell 中的命令绕过行为:在
/etc/bash.bashrc或用户级.bashrc中禁止使用env、printf等间接调用方式 - 配置 sudo 权限最小化:避免授予
ALL权限,明确限定可用命令及参数范围,例如:alice ALL=(root) /usr/bin/chattr -i /var/spool/cron/* - 启用 SELinux 或 AppArmor,为关键命令设置严格域策略,阻止非授权上下文调用
切断恶意程序提权与驻留路径
很多篡改行为依赖定时任务、启动项或隐藏进程长期驻留。需同步清理入口点:
- 检查所有 crontab 位置:
crontab -l、cat /etc/crontab、ls /etc/cron.*、ls /var/spool/cron/ - 排查开机启动项:
systemctl list-unit-files --type=service --state=enabled、ls /etc/init.d/、ls /etc/rc.d/rc*.d/ - 扫描隐藏进程:
ps auxf | grep -E "(bash|sh|perl|python).*[[:space:]]\." | grep -v grep - 检查 rootkit 痕迹:
rkhunter --check或chkrootkit,重点关注/usr/bin/下异常时间戳或无签名二进制


















