Linux入侵检测之文件监控
字数 1674 2025-08-15 21:31:11
Linux入侵检测之文件监控技术详解
0x01 文件监控的重要性
Linux文件监控是安全防护体系中的关键环节,主要作用包括:
- 识别可疑文件篡改和权限变更
- 及时发现恶意代码(如Webshell)
- 检测攻击者在渗透过程中的文件操作
文件监控的技术原理
-
基于文件特征的检测:
- 部署方便,通过脚本即可实现
- 高准确率,可扩展性强
- 可自定义规则(但可能被修改特征值绕过)
-
文件哈希对比:
- 将当前文件与原始版本(如SVN)进行哈希比对
- 识别新增和修改的文件
- 使用
diff工具进行内容差异分析
-
攻击行为关联:
- Linux攻击大多涉及文件修改(命令控制、持久化、横向移动等)
- 通过监控关键文件变化可发现攻击痕迹
0x02 开源文件监控工具
OSSEC
配置路径:/etc/ossec/ossec.conf
<ossec_config>
<syscheck>
<!-- 文件监控配置 -->
</syscheck>
</ossec_config>
功能特性:
- 文件修改检测(内容及属性)
- 完整性检查
- 实时监控告警
Auditd(Linux审计系统)
基本命令:
auditctl -w /path/to/monitor -p wxra
监控选项:
w:写入监控x:执行监控r:读取监控a:属性变更监控
0x03 关键监控目录
| 目录 | 重要性 | 监控要点 |
|---|---|---|
| /etc | 系统核心配置 | 密码文件、服务配置 |
| /bin, /usr/bin | 系统必备二进制 | 可执行文件完整性 |
| /sbin, /usr/sbin | 管理员命令 | 特权命令监控 |
| /proc | 进程信息 | 进程内存映射文件 |
| /var/log | 日志文件 | 日志清除行为 |
0x04 攻击者视角的文件监控策略
凭证窃取阶段监控
-
内存密码提取:
- 攻击者通过
/proc/$pid/maps访问进程内存 - 使用工具如
mimipenguin提取认证数据
- 攻击者通过
-
关键文件监控点:
/etc/shadow:密码哈希文件/etc/passwd:用户账户信息~/.ssh/:SSH密钥文件
持久化技术监控
-
启动项监控:
- 传统SysVinit:
/etc/init.d//etc/rc[0-6].d//etc/rc.local
- Systemd:
/etc/systemd/system//usr/lib/systemd/system/- 用户级:
~/.config/systemd/user/
- 传统SysVinit:
-
环境配置文件:
~/.bashrc~/.bash_profile~/.profile/etc/profile
-
定时任务监控点:
/var/spool/cron//etc/crontab/etc/cron.*/
-
动态链接库劫持:
/etc/ld.so.preloadLD_PRELOAD环境变量- 常见劫持目标:
libc.so.*
权限维持技术监控
-
账户操作:
/etc/passwd追加特权账户/etc/sudoers权限变更
-
SUID后门:
cp /bin/bash /dev/.rootshell chmod u+s /dev/.rootshell -
SSH后门:
~/.ssh/authorized_keys异常公钥- SSH配置修改(
/etc/ssh/sshd_config)
痕迹清理监控
-
历史记录操作:
history -c清空记录/etc/profile中HISTSIZE设为0
-
日志文件操作:
/var/log/btmp(登录失败)/var/log/wtmp(登录成功)/var/log/secure(认证日志)
-
SSH隐藏登录:
ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash -i
0x05 文件监控分类体系
-
按监控目标分类:
- 特定文件被哪些进程操作
- 特定进程操作哪些文件
- 特定程序执行时的文件操作
-
按时间维度分类:
- 实时监控
- 周期性扫描
- 一次性完整性检查
总结
Linux文件监控的核心原则:
- 全面性:覆盖关键目录和文件
- 实时性:及时发现异常操作
- 攻击视角:从渗透链各阶段设置监控点
- 纵深防御:结合多种检测手段(特征、行为、完整性)
通过系统化的文件监控,可以有效检测和防御Linux系统上的各类入侵行为,实现"监控文件即掌控系统"的安全目标。