Ich habe vor kurzem entdecktdie Prozessabrechnungsfunktion in Unix-Systemen. Im Grunde genommen scheint es sich um ein veraltetes System zur Aufzeichnung der Ressourcennutzung zu handeln, das einfach nie entfernt wurde.
Seit Anbeginn der Zeit (eigentlich seit der Zeit, als die Leute noch echtes Geld pro genutztem Computerzyklus zahlen mussten) ist in Unix und seinen Klonen ein System namens Process Accounting (acct) eingebaut. Dadurch konnten die Systemadministratoren genau wissen, was ihre Benutzer taten, und ihnen entsprechend Rechnungen stellen. Die acct-Funktionen sind bis heute in den meisten Unix- und Linux-Systemen vorhanden.- @Majenko
Aus der Perspektive der Cybersicherheit ist dies ziemlich interessant, da Benutzer den Bash-Verlauf löschen können und (abgesehen davon) es (zumindest dachte ich das) standardmäßig keinen Verlauf für Borne-Shell-Befehle gibt.
Indem Sie Folgendes tun:
sudo apt-get install acct
sudo /etc/init.d/acct start
sudo lastcomm
... und vielen anderen zugehörigen Befehlen und Optionen können wir Datensätze erhalten wie:
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
Das ist im Grunde ein leistungsstarker, umfassender Shell-Verlauf, der alle Arten von Shells enthält. Aber ich habe Schwierigkeiten, mehr darüber zu erfahren, wie das funktioniert. Woher stammen die Daten, auf die dieser Befehl zurückgreift? Ich versuche, mehr darüber herauszufinden, wie leicht ein Angreifer auf diese Daten zugreifen und sie löschen könnte oder wo wir darauf zugreifen können, um sie zu sichern.
Antwort1
Konto(5), oder acct – Buchhaltungsdatei verarbeiten, sagt Folgendes:
Wenn der Kernel mit aktivierter Prozessabrechnungsoption (CONFIG_BSD_PROCESS_ACCT) erstellt wurde, dann Konto(2)startet die Prozessabrechnung, zum Beispiel:
acct("/var/log/pacct");
Wenn die Prozessabrechnung aktiviert ist, schreibt der Kernel beim Beenden jedes Prozesses im System einen Datensatz in die Abrechnungsdatei. Dieser Datensatz enthält Informationen über den beendeten Prozess und ist in definiert
<sys/acct.h>
.
Der typische Standardspeicherort der Datei ist /var/log/account/pacct
, wo die Daten gespeichert werden.
Leider handelt es sich bei dieser Datei nicht um eine reine Textdatei. Versuchen Sie daher nicht, sie mit den Befehlen more
oder anzuzeigen tail
. Verwenden Sie stattdessen die
Dump-Konto
Befehl, um es anzuzeigen.
Antwort2
/var/log/account/pacct