流程会计功能从哪里提取数据?

流程会计功能从哪里提取数据?

我最近发现Unix 系统中的进程记帐功能基本上,它似乎是一个从未被删除的遗留资源使用记录系统。

自古以来(实际上可以追溯到人们必须为他们使用的计算机周期支付真金白银的时代),Unix 及其克隆版本就内置了一个名为进程记账 (acct) 的系统。这使系统管理员能够准确了解用户在做什么,从而可以相应地向他们收费。至今,大多数 Unix 和 Linux 系统中仍然存在 acct 功能。- @马延科

从网络安全角度来看,这非常有趣,因为用户可以删除 bash 历史记录,并且(除此之外)默认情况下(或者我认为)没有 borne shell 命令的历史记录。

通过做:

sudo apt-get install acct
sudo /etc/init.d/acct start
sudo lastcomm

...以及许多其他相关命令和选项,我们可以获得如下记录:

mandb             F    man      pts/4      0.00 secs Mon Dec  6 13:33
mandb             F    man      pts/4      0.00 secs Mon Dec  6 13:33
acct.postinst          root     pts/4      0.00 secs Mon Dec  6 13:33
systemctl              root     pts/4      0.00 secs Mon Dec  6 13:33
systemd-tty-ask  S     root     pts/4      0.00 secs Mon Dec  6 13:33
accton           S     root     __         0.00 secs Mon Dec  6 13:33

它基本上是一个功能强大、内容广泛的 shell 历史记录,包括所有类型的 shell。但我很难进一步了解它的工作原理。此命令从哪里提取数据?我试图进一步了解攻击者可以多么轻松地访问和删除这些数据,或者我们可以在哪里访问它以备份它。

答案1

帐户(5)或 acct - 处理会计文件,内容如下:

如果内核在构建时启用了进程记账选项(CONFIG_BSD_PROCESS_ACCT),那么调用 帐户(2)启动进程会计,例如:

acct("/var/log/pacct");

启用进程记帐后,系统上每个进程终止时,内核都会将记录写入记帐文件。此记录包含有关终止进程的信息,定义在 中 <sys/acct.h>

该文件的典型默认位置是/var/log/account/pacct,数据将保存在该位置。

不幸的是,此文件不是纯文本文件,因此不要尝试使用moretail命令查看它。相反,使用 转储帐户 命令来查看它。

答案2

找到了。

/var/log/account/pacct

相关内容