На Redhat, что означает «kernel.suid_dumpable = 1»?

9

Я запускаю сценарий bash, чтобы скопировать некоторые файлы журнала и затем перезапустить службу в окне Red Hat. Каждый раз, когда я выполняю скрипт, я получаю на своей консоли следующее:

[root@servername ~]# sh /bin/restart_nss.sh
kernel.suid
_dumpable = 1
Stopping Service: [ OK ]
Starting Service: [ OK ]
[root@servername ~]#

Что означает «kernel.suid_dumpable = 1» в этом случае?

Спасибо, IVR Avenger

IVR Avenger
источник

Ответы:

13

Немного предыстории:

Бит setuid: Бит
setuid в исполняемом файле делает его исполняемым файлом, запускаемым любым пользователем, так, как если бы он запускался владельцем исполняемого файла. Таким образом, если setuid установлен в программе, которой владеет root, независимо от того, кто его запускает, он будет запускаться с привилегиями root. Это, конечно, не так просто, посмотрите эту статью в Википедии или получите копию Программы Стивена в среде Unix.

Дамп
ядра: дамп ядра - это дамп рабочей памяти программы в файл. Смотрите эту статью в Википедии .

suid_dumpable :
контролирует, может ли ядро ​​быть выгружено из программы setuid, как описано выше. См. ниже. Это настраиваемое ядро, вы можете изменить его:

sudo sysctl -w kernel.suid_dumpable=2

Вы можете узнать об этой настройке в документации для своего sourcode, который, если установлен, вы можете найти в каталоге, например: /usr/src/linux-source-2.6.27/Documentation/sysctl/. В этом случае ссылка ниже находится в fs.txt в этом каталоге. Используйте uname -aкоманду, чтобы узнать версию вашего ядра.

Почему это важно:

Это может быть риск для безопасности:
так что идея в том, что если есть дампы ядра и обычный пользователь может их прочитать, они могут узнать привилегированную информацию. Если программа хорошо выгружена, у нее есть привилегированная информация в памяти, и пользователь может прочитать дамп, они могут узнать эту привилегированную информацию.

Ссылка:

This value can be used to query and set the core dump mode for setuid
or otherwise protected/tainted binaries. The modes are

0 - (default) - traditional behaviour. Any process which has changed
   privilege levels or is execute only will not be dumped
1 - (debug) - all processes dump core when possible. The core dump is
   owned by the current user and no security is applied. This is
   intended for system debugging situations only.
2 - (suidsafe) - any binary which normally not be dumped is dumped
   readable by root only. This allows the end user to remove
   such a dump but not access it directly. For security reasons
   core dumps in this mode will not overwrite one another or 
   other files. This mode is appropriate when adminstrators are
   attempting to debug problems in a normal environment.
Кайл Брандт
источник
fs.txt также доступен здесь: kernel.org/doc/Documentation/sysctl/fs.txt
Sundae
1

Он определяет, можете ли вы получить дамп ядра из процессов setuid.

Некоторая информация из оригинального патча

+suid_dumpable:
+
+This value can be used to query and set the core dump mode for setuid
+or otherwise protected/tainted binaries. The modes are
+
+0 - (default) - traditional behaviour. Any process which has changed
+   privilege levels or is execute only will not be dumped
+1 - (debug) - all processes dump core when possible. The core dump is
+   owned by the current user and no security is applied. This is
+   intended for system debugging situations only.
+2 - (suidsafe) - any binary which normally not be dumped is dumped
+   readable by root only. This allows the end user to remove
+   such a dump but not access it directly. For security reasons
+   core dumps in this mode will not overwrite one another or 
+   other files. This mode is appropriate when adminstrators are
+   attempting to debug problems in a normal environment.
Трэвис Кэмпбелл
источник
Итак, это строго информативно? Это говорит мне, какую свалку я могу получить из процесса, который я запускаю?
IVR Avenger