Slackware 13.37 – /proc/sys/kernel/dmesg_restrict
Napisał: Patryk Krawaczyński
21/09/2011 w Bezpieczeństwo Brak komentarzy. (artykuł nr 326, ilość słów: 248)
O
d wersji jądra 2.6.37 wprowadzono mechanizm CONFIG_SECURITY_DMESG_RESTRICT (Restrict unprivileged access to the kernel syslog), który umożliwia określanie, czy zwykli użytkownicy systemu powinni mieć dostęp do polecenia dmesg
służącego do wyświetlania informacji z dziennika bufora jądra. Jak zauważył Kees Cook z Ubuntu Security Team – syslog jądra (wspomniany dmesg[8]
) pozostał jednym z ostatnich miejsc w systemie Linux, w którym występuje duży przeciek informacji o przestrzeni adresowej jądra:
[user@stardust ~]$ dmesg | grep -m1 text .text : 0xc0400000 - 0xc0812c46 (4171 kB)
Dlatego jeśli chcemy, aby exploity wykorzystujące lokalne podatności jądra straciły jeden z swoich stałych przyczółków możemy wyłączyć dmesg, dla normalnych użytkowników. W tym celu wystarczy do pliku rc.local
dodać warunek sprawdzający czy restrykcja jest włączona:
if [ -r /proc/sys/kernel/dmesg_restrict ]; then if [ $(cat /proc/sys/kernel/dmesg_restrict) = 0 ]; then echo 1 > /proc/sys/kernel/dmesg_restrict fi fi
Możemy również dodać wpis do /etc/sysctl.conf
:
kernel.dmesg_restrict = 1
Po wprowadzonych zmianach zwykły użytkownik powinien stracić możliwość wykonywania polecenia dmesg
:
[user@stardust ~]$ dmesg | grep -m1 text klogctl: Operacja niedozwolona
Dodatkowo należy upewnić się, czy pliki logów dmesg
(/var/log/dmesg | /var/log/dmesg.old) posiadają odpowiednie prawa dostępu:
[root@stardust log]# pwd /var/log [root@stardust log]# ls -al | grep dmesg -rw-r-----. 1 root root 24296 08-27 17:05 dmesg -rw-r-----. 1 root root 29931 08-27 16:44 dmesg.old
Więcej informacji: Restrict unprivileged access to kernel syslog