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

