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.