内核审查文件系统变化

挖矿病毒通常会采用一些技术手段来隐藏自己的行为,比如通过伪装成系统进程、使用内核模块隐藏进程,或者利用其他复杂的技术隐藏其活动。因此,使用常规的命令如 fuserlsof 可能无法检测到这些进程,尤其是在它们使用了高级隐藏技术的情况下。

为了捕获这些挖矿病毒的创建目录行为,你可以尝试以下几种高级方法:

1. 使用 auditd 进行内核级别的审计

auditd 是 Linux 内核中的审计系统,可以记录文件系统变化、进程执行等详细信息。通过配置 auditd,你可以监控特定目录(比如 /root)的创建目录行为,并记录下相关的进程信息。

步骤:

  1. 安装 auditd(如果未安装):

    sudo apt-get install auditd audispd-plugins  # Ubuntu/Debian
    sudo yum install audit  # CentOS/RHEL
    
  2. 添加审计规则
    监控 /root 目录下的创建目录行为:

    auditctl -w /root -p wa -k monitor_root
    

    这条命令的意思是:

    • -w /root:监控 /root 目录。
    • -p wa:监控写入和属性变化。
    • -k monitor_root:为该规则设置一个键(标识符),方便在日志中查找。
  3. 查看审计日志
    查看审计日志,可以使用 ausearch 或直接查看 /var/log/audit/audit.log

    ausearch -k monitor_root
    

    这将显示所有与 /root 目录相关的审计日志,包含创建目录的进程信息。

示例输出:

type=PROCTITLE msg=audit(1630453321.123:456): proctitle=/path/to/malicious_program
type=SYSCALL msg=audit(1630453321.123:456): arch=x86_64 syscall=mkdir success=yes exit=0 a0=0x7ffd8f43c9f0 a1=0x168 a2=0x1b6 a3=0x7ffd8f43c9f0 items=1 ppid=1234 pid=5678 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=1 comm=malicious_program exe=/path/to/malicious_program key=monitor_root

在这个日志中,你可以看到:

  • ppid=1234:父进程 ID。
  • pid=5678:进程 ID。
  • exe=/path/to/malicious_program:执行程序的路径。

2. 使用 strace 跟踪系统调用

strace 是一个可以跟踪进程系统调用的工具。如果挖矿病毒在运行,你可以使用 strace 来跟踪其行为,查看它是否在调用 mkdir 或其他与目录创建相关的系统调用。

使用方法:

  1. 找到可疑进程(例如,通过 CPU 使用率高或者通过网络连接发现可疑活动)。假设可疑进程的 PID 是 12345
  2. 使用 strace 跟踪该进程
    strace -p 12345 -e trace=mkdir,openat,creat -s 1024 -f
    
    这条命令会跟踪进程 12345 中的 mkdiropenatcreat 等系统调用,并输出相关信息。

示例输出:

mkdir("/root/.someHiddenDir", 0755)          = 0

这将显示病毒进程创建目录的具体路径。

3. 使用 systemtapftrace 进行内核函数跟踪

如果 auditdstrace 都无法捕获挖矿病毒的行为,你可以使用更高级的工具如 systemtapftrace 直接在内核级别进行函数跟踪。

使用 systemtap

  1. 安装 systemtap

    sudo apt-get install systemtap  # Ubuntu/Debian
    sudo yum install systemtap  # CentOS/RHEL
    
  2. 编写 systemtap 脚本
    创建一个简单的 systemtap 脚本,监控 mkdir 系统调用:

    probe syscall.mkdir {
        printf("%s (PID %d) created directory: %s\n", execname(), pid(), argstr)
    }
    
  3. 运行 systemtap 脚本

    sudo stap mkdir_trace.stap
    

这将输出所有创建目录的系统调用,并显示进程名称和 PID。

4. 检查是否有 Rootkit

一些挖矿病毒会使用 Rootkit 技术隐藏进程。你可以使用工具如 chkrootkitrkhunter 来检查系统是否存在 Rootkit。

安装和使用 chkrootkit

sudo apt-get install chkrootkit  # Ubuntu/Debian
sudo yum install chkrootkit     # CentOS/RHEL
sudo chkrootkit

安装和使用 rkhunter

sudo apt-get install rkhunter  # Ubuntu/Debian
sudo yum install rkhunter      # CentOS/RHEL
sudo rkhunter --check

总结

挖矿病毒通常会采取一些高级技术来隐藏自己的行为,因此常规的工具可能无法有效检测。以下是一些更为有效的检测手段:

  1. 使用 auditd 监控文件系统变化,并记录进程信息。
  2. 使用 strace 跟踪可疑进程的系统调用
  3. 使用 systemtapftrace 进行内核级别的函数跟踪
  4. 使用 Rootkit 检测工具(如 chkrootkitrkhunter)检查系统是否被植入 Rootkit。

通过这些方法,你应该能够更有效地捕获挖矿病毒创建目录的行为并找到相关的进程信息。如果问题依然存在,可能需要进一步分析系统中的异常活动或考虑备份数据并重装系统。

posted on 2024-11-27 15:44  Huihcuanf  阅读(62)  评论(0)    收藏  举报

导航