Jeden Aufruf jedes SUID-Programms protokollieren?


12

Ich möchte eine Protokolldatei haben, die einen Eintrag für jedes Mal enthält, wenn ein Benutzer ein suid-Programm ausführt, das den Benutzernamen, das Programm und alle an ihn übergebenen Befehlszeilenargumente enthält. Gibt es eine Standardmethode, um dies unter Linux zu erreichen?

Antworten:


7

Sie können alle Aufrufe einer bestimmten ausführbaren Datei (setuid oder nicht) über das Überwachungssubsystem protokollieren . Die Dokumentation ist eher spärlich; Beginnen Sie mit der Manpage auditctl oder vielleicht mit diesem Tutorial . Die neuesten Distributionen versenden ein auditdPaket. Installieren Sie es und stellen Sie sicher, dass der auditdDämon ausgeführt wird

auditctl -A exit,always -F path=/path/to/executable -S execve

und beobachten Sie, wie die Anrufe angemeldet werden /var/log/audit/audit.log(oder wo immer Ihre Verteilung dies eingerichtet hat).


1
Ich denke, man könnte ein Skript schreiben, um zuerst alle SUID-Binärdateien mit find abzurufen und dann Ihre Lösung für jede zu verwenden. Nicht elegant, aber machbar. Vielen Dank!
Kim

2
@Kim: Ich denke, Sie können alle Aufrufe einer setuid-Root-Binärdatei durch einen Nicht-Root-Benutzer protokollieren, indem Sie -F path=…durch -F euid=0 -F 'uid!=0'oder so etwas ersetzen . Ich kann nicht einen Haken in sehe den setxid Code durch aufgerufenexecve , noch eine bestimmte setxid Uhr im Audit - Subsystem . Natürlich können Sie auch jeden einzelnen execveVorgang nachbearbeiten.
Gilles 'SO- hör auf böse zu sein'

Interessant. Noch nie davon gehört. Ich frage mich, wie weit verbreitet es ist. Debian popcon hat keinen Eintrag für auditd.
Faheem Mitha

findBefehl zum Auflisten aller SUID-Dateien:find / -xdev \( -perm -4000 \) -type f -print

1
@FaheemMitha Es hat einen Popcon-Eintrag: qa.debian.org/popcon-graph.php?packages=auditd
jofel
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.