Linux入侵检测之文件监控
字数 1674 2025-08-15 21:31:11

Linux入侵检测之文件监控技术详解

0x01 文件监控的重要性

Linux文件监控是安全防护体系中的关键环节,主要作用包括:

  • 识别可疑文件篡改和权限变更
  • 及时发现恶意代码(如Webshell)
  • 检测攻击者在渗透过程中的文件操作

文件监控的技术原理

  1. 基于文件特征的检测

    • 部署方便,通过脚本即可实现
    • 高准确率,可扩展性强
    • 可自定义规则(但可能被修改特征值绕过)
  2. 文件哈希对比

    • 将当前文件与原始版本(如SVN)进行哈希比对
    • 识别新增和修改的文件
    • 使用diff工具进行内容差异分析
  3. 攻击行为关联

    • 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 攻击者视角的文件监控策略

凭证窃取阶段监控

  1. 内存密码提取

    • 攻击者通过/proc/$pid/maps访问进程内存
    • 使用工具如mimipenguin提取认证数据
  2. 关键文件监控点

    • /etc/shadow:密码哈希文件
    • /etc/passwd:用户账户信息
    • ~/.ssh/:SSH密钥文件

持久化技术监控

  1. 启动项监控

    • 传统SysVinit:
      • /etc/init.d/
      • /etc/rc[0-6].d/
      • /etc/rc.local
    • Systemd:
      • /etc/systemd/system/
      • /usr/lib/systemd/system/
      • 用户级:~/.config/systemd/user/
  2. 环境配置文件

    • ~/.bashrc
    • ~/.bash_profile
    • ~/.profile
    • /etc/profile
  3. 定时任务监控点

    • /var/spool/cron/
    • /etc/crontab
    • /etc/cron.*/
  4. 动态链接库劫持

    • /etc/ld.so.preload
    • LD_PRELOAD环境变量
    • 常见劫持目标:libc.so.*

权限维持技术监控

  1. 账户操作

    • /etc/passwd追加特权账户
    • /etc/sudoers权限变更
  2. SUID后门

    cp /bin/bash /dev/.rootshell
    chmod u+s /dev/.rootshell
    
  3. SSH后门

    • ~/.ssh/authorized_keys异常公钥
    • SSH配置修改(/etc/ssh/sshd_config

痕迹清理监控

  1. 历史记录操作

    • history -c清空记录
    • /etc/profileHISTSIZE设为0
  2. 日志文件操作

    • /var/log/btmp(登录失败)
    • /var/log/wtmp(登录成功)
    • /var/log/secure(认证日志)
  3. SSH隐藏登录

    ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash -i
    

0x05 文件监控分类体系

  1. 按监控目标分类

    • 特定文件被哪些进程操作
    • 特定进程操作哪些文件
    • 特定程序执行时的文件操作
  2. 按时间维度分类

    • 实时监控
    • 周期性扫描
    • 一次性完整性检查

总结

Linux文件监控的核心原则:

  1. 全面性:覆盖关键目录和文件
  2. 实时性:及时发现异常操作
  3. 攻击视角:从渗透链各阶段设置监控点
  4. 纵深防御:结合多种检测手段(特征、行为、完整性)

通过系统化的文件监控,可以有效检测和防御Linux系统上的各类入侵行为,实现"监控文件即掌控系统"的安全目标。

Linux入侵检测之文件监控技术详解 0x01 文件监控的重要性 Linux文件监控是安全防护体系中的关键环节,主要作用包括: 识别可疑文件篡改和权限变更 及时发现恶意代码(如Webshell) 检测攻击者在渗透过程中的文件操作 文件监控的技术原理 基于文件特征的检测 : 部署方便,通过脚本即可实现 高准确率,可扩展性强 可自定义规则(但可能被修改特征值绕过) 文件哈希对比 : 将当前文件与原始版本(如SVN)进行哈希比对 识别新增和修改的文件 使用 diff 工具进行内容差异分析 攻击行为关联 : Linux攻击大多涉及文件修改(命令控制、持久化、横向移动等) 通过监控关键文件变化可发现攻击痕迹 0x02 开源文件监控工具 OSSEC 配置路径: /etc/ossec/ossec.conf 功能特性: 文件修改检测(内容及属性) 完整性检查 实时监控告警 Auditd(Linux审计系统) 基本命令: 监控选项: 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/ 环境配置文件 : ~/.bashrc ~/.bash_profile ~/.profile /etc/profile 定时任务监控点 : /var/spool/cron/ /etc/crontab /etc/cron.*/ 动态链接库劫持 : /etc/ld.so.preload LD_PRELOAD 环境变量 常见劫持目标: libc.so.* 权限维持技术监控 账户操作 : /etc/passwd 追加特权账户 /etc/sudoers 权限变更 SUID后门 : 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隐藏登录 : 0x05 文件监控分类体系 按监控目标分类 : 特定文件被哪些进程操作 特定进程操作哪些文件 特定程序执行时的文件操作 按时间维度分类 : 实时监控 周期性扫描 一次性完整性检查 总结 Linux文件监控的核心原则: 全面性 :覆盖关键目录和文件 实时性 :及时发现异常操作 攻击视角 :从渗透链各阶段设置监控点 纵深防御 :结合多种检测手段(特征、行为、完整性) 通过系统化的文件监控,可以有效检测和防御Linux系统上的各类入侵行为,实现"监控文件即掌控系统"的安全目标。