网站搜索

如何在 CentOS/RHEL 上使用“autrace”审核 Linux 进程


本文是我们正在进行的关于 Linux 审计的系列文章,在过去的三篇文章中,我们解释了如何审计 Linux 系统(CentOSRHEL)、使用 ausearch 查询auditd 日志并生成使用 aureport 实用程序进行报告。

在本文中,我们将解释如何使用 autrace 实用程序审核给定进程,其中我们将通过跟踪进程进行的系统调用来分析进程。

另请阅读:如何使用 Shell 跟踪来跟踪 Shell 脚本中命令的执行

什么是autrace?

autrace 是一个命令行实用程序,它运行程序直至退出,就像 strace 一样;它添加审计规则来跟踪进程并将审计信息保存在 /var/www/audit/audit.log 文件中。为了让它工作(即在运行所选程序之前),您必须首先删除所有现有的审核规则。

使用autrace的语法如下所示,它只接受一个选项-r,它将收集的系统调用限制为评估进程资源使用情况所需的系统调用:

autrace -r program program-args

注意:在autrace手册页中,语法如下,这实际上是一个文档错误。因为使用这种形式,您运行的程序将假设您正在使用其内部选项之一,从而导致错误或执行该选项启用的默认操作。

autrace program -r program-args

如果您存在任何审核规则,autrace 将显示以下错误。

autrace /usr/bin/df

首先使用以下命令删除所有auditd规则。

auditctl -D

然后继续使用您的目标程序运行autrace。在此示例中,我们正在跟踪 df 命令的执行,该命令显示文件系统的使用情况。

autrace /usr/bin/df -h

从上面的屏幕截图中,您可以使用 ausearch 实用程序从审核日志文件中找到与跟踪有关的所有日志条目,如下所示。

ausearch -i -p 2678

其中选项:

  • -i – 允许将数值解释为文本。
  • -p – 传递要搜索的进程 ID。

要生成有关跟踪详细信息的报告,您可以像这样构建 ausearchaureport 的命令行。

ausearch -p 2678 --raw | aureport -i -f

在哪里 :

  • --raw – 告诉 ausearch 将原始输入传送到 aureport。
  • -f – 启用有关文件和 af_unix 套接字的报告。
  • -i – 允许将数值解释为文本。

使用下面的命令,我们将收集的系统调用限制为分析 df 进程的资源使用情况所需的系统调用。

autrace -r /usr/bin/df -h

假设您在过去一周内完成了一项计划;这意味着审计日志中转储了大量信息。要仅生成今天记录的报告,请使用 -ts ausearch 标志指定搜索的开始日期/时间:

ausearch -ts today -p 2678 --raw | aureport -i -f

就是这样!这样您就可以使用 autrace 工具跟踪和审计特定的 Linux 进程,有关更多信息,请查看手册页。

您还可以阅读这些相关的有用指南:

  1. Sysdig – 适用于 Linux 的强大系统监控和故障排除工具
  2. BCC – 用于 Linux 性能监控、网络等的动态跟踪工具
  3. 30 个有用的 Linux 进程监控“ps 命令”示例
  4. CPUTool – 限制和控制 Linux 中任何进程的 CPU 使用率
  5. 根据 Linux 中内存和 CPU 使用率最高的情况查找运行最多的进程

目前为止就这样了!您可以通过下面的评论提出任何问题或分享对本文的想法。在下一篇文章中,我们将介绍如何配置 PAM(可插拔身份验证模块)来审核指定用户 CentOS/RHEL 的 TTY 输入。