如何记录 Linux 上特定命令的执行情况,无论该命令来自何处?

Geo*_*e Y 7 security linux selinux

rm诸如、kill和之类的危险命令systemctl stop 可以隐藏在 bash 输入之外 - 即,恶意用户可以使用模块轻松地将它们隐藏在 python 脚本中os,只需运行 python 脚本作为代理即可隐藏他们真正想要伤害的内容,以及 bash 历史记录或类似的事情只会留下他们python3 [the malicious script].py在删除该脚本之前运行的记录以隐藏他们真正所做的事情。

我想做的是在每次执行这些关键命令时记录这些关键命令(欢迎指出超过 3 个命令的任何命令),无论它来自哪里。并且该日志不能被除 root 之外的任何用户丢弃。

Rom*_*nov 8

您可以使用auditd和监视文件操作/系统调用来删除文件/目录。规则将类似于:

-a exit,always -S unlink -S rmdir -k Remove_dir_file
Run Code Online (Sandbox Code Playgroud)

当然,您可以在规则中添加特定文件监控的其他调用,例如kill

-a exit,always -F arch=b64 -S kill -k Kill_Process
Run Code Online (Sandbox Code Playgroud)

  • @GeorgeY,是的,您可以在“-S”之后添加带有正确系统调用名称的规则 (3认同)