Odpowiedzi:
Można rejestrować wszystkie wywołania określonego pliku wykonywalnego (setuid lub nie) za pośrednictwem podsystemu kontroli . Dokumentacja jest raczej rzadka; zacznij od strony manuala auditctl lub może tego samouczka . Najnowsze dystrybucje wysyłają auditd
paczkę. Zainstaluj go i upewnij się, że auditd
demon działa, a następnie zrób
auditctl -A exit,always -F path=/path/to/executable -S execve
i obserwuj, jak połączenia się logują /var/log/audit/audit.log
(lub gdziekolwiek skonfigurowała to Twoja dystrybucja).
-F path=…
je -F euid=0 -F 'uid!=0'
lub coś podobnego. Nie widzę haka w kodzie setxid wywoływanego przezexecve
konkretny zegarek setxid w podsystemie kontroli . Lub, oczywiście, możesz rejestrować wszystkie execve
i postprocesy.
auditd
.
find
polecenie, aby wyświetlić listę wszystkich plików SUID:find / -xdev \( -perm -4000 \) -type f -print