流程記帳功能從哪裡擷取資料?

流程記帳功能從哪裡擷取資料?

我最近發現Unix 系統中的進程統計功能。基本上,它似乎是一個從未被刪除的遺留資源使用記錄系統。

自誕生以來(實際上可以追溯到人們必須為他們使用的每個電腦週期實際支付真實費用的時代),Unix 及其克隆版本就內建了一個名為進程記帳(acct) 的系統。管理員能夠了解他們的用戶正在做什麼,因此可以相應地向他們收費。迄今為止,acct 工具仍然存在於大多數 Unix 和 Linux 系統中。馬延科

從網路安全的角度來看,這非常有趣,因為用戶可以刪除 bash 歷史記錄,並且(除此之外)默認情況下(或者我是這麼認為)所承載的 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

相關內容