Jedna z rzeczy ktora nalezy wykonywac w celu wykrywania podatnosci w systemie jest sprawdzanie uprawnien plikow
zwlaszcza tych podatnych na nadpisanie i z uprawnieniami root.
i szukalem do tego odpowiednich komend.
Znalazlem np. cos takiego
https://www.suse.com/documentation/sles11/book_hardening/data/sec_sec_prot_general_filepermissions.htmlAle chyba cos z ta komenda jest nie tak ?
# find / -path /proc -prune -o -perm -2 ! -type l -ls
5898545 0 crw-rw-rw- 1 root root 1, 3 May 23 2011 /lib/udev/devices/null
5898529 0 crw-rw-rw- 1 root root 10, 229 May 23 2011 /lib/udev/devices/fuse
5898544 0 crw-rw-rw- 1 root root 10, 200 May 23 2011 /lib/udev/devices/net/tun
find: ‘/home/x/.gvfs’: Permission denied
299060 4 drwxrwxrwt 2 root root 4096 Nov 14 06:55 /var/lib/xkb
1184213 4 drwxrwxrwt 2 root root 4096 Feb 22 2010 /var/lib/lib/xkb
1310761 0 srwxrwxrwx 3 root root 0 Nov 14 06:40 /var/lib/sasl2/mux
1316552 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/proxywrite
1316568 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/lmtp-filter
1316566 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/cyrus-chroot
1316563 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/scache
1316560 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/virtual
1316561 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/lmtp
1316557 0 srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/retry
...
bo wiekszosc z nich, to chyba socket-y ?
# ls -l /var/spool/postfix/private/error
srw-rw-rw- 1 postfix postfix 0 Apr 12 2018 /var/spool/postfix/private/error=
A jesli uzyje np. takiej komendy
# find / -perm -o+w -type f
/proc/1/task/1/attr/current
/proc/1/task/1/attr/exec
/proc/1/task/1/attr/fscreate
/proc/1/task/1/attr/keycreate
/proc/1/task/1/attr/sockcreate
/proc/1/attr/current
/proc/1/attr/exec
/proc/1/attr/fscreate
/proc/1/attr/keycreate
To mi pokazuje procesy.
Czyli szukalbym bardziej w ten sposob
# find / -perm -o+w -type f -not -path "/proc/*" | grep root
(No chyba ze ktos liczy na mniejsza eskalacje uprawnienien, to pominalbym "| grep root". Ale mniejsza oto )
Czyli z uprawnieniami do "nadpisania" znajduje glownie: procesy, socket-y i ewentualnie linki.
Linki, bynajmniej te z wlascicielem root i grupa root, sie nie da nadpisac - próbowałem, czyli jest OK
Ale nie moge znalesc zbyt wiele o procesach i socket-ach. Jak sprawdzic czy sa bezpieczne ?
EdytowaneZnalazlem cos takiego o socket-ach
https://stackoverflow.com/questions/5977556/how-can-i-change-the-permissions-of-a-linux-socket-fileUtworzenie nowego gniazda zakończy się niepowodzeniem, jeśli proces nie ma uprawnień do zapisu i wyszukiwania (wykonywania) w katalogu, w którym jest tworzone gniazdo. Łączenie się z obiektem gniazda wymaga uprawnień do odczytu / zapisu. To zachowanie różni się od wielu systemów pochodnych opartych na BSD, które ignorują uprawnienia dla gniazd domeny UNIX. Przenośne programy nie powinny polegać na tej funkcji dla bezpieczeństwa.
A jak jest z "proc"-esami ?
Czy jest cos istotnego na co nalezy zwracac uwage ?